Skip to content

Add ratings and reviews #40

Closed
Closed

Description

@JonahMMay

Summary

Add ratings and reviews feature to Android client. Currently not implemented on any platform except Web.

Required Work

1. Data Models

  • Rating (user_id, content_id, score 1-10 or thumbs, timestamp)
  • Review (user_id, content_id, title, body, rating, timestamp, helpful_count)
  • AggregateRating (content_id, average_score, total_ratings, distribution)

2. API Integration

  • GET /api/v2/ratings/{content_id} - get aggregate + user's rating
  • POST /api/v2/ratings - submit/update rating
  • DELETE /api/v2/ratings/{content_id} - remove rating
  • GET /api/v2/reviews/{content_id} - list reviews (paginated)
  • POST /api/v2/reviews - submit review
  • PATCH /api/v2/reviews/{review_id} - update review
  • DELETE /api/v2/reviews/{review_id} - delete review
  • POST /api/v2/reviews/{review_id}/helpful - mark helpful

3. UI Components

  • RatingDisplay - show aggregate stars/score + user's rating
  • RatingInput - star picker or thumbs up/down
  • ReviewList - paginated list with sorting (recent, helpful, rating)
  • ReviewCard - display single review with author, rating, body
  • ReviewComposer - write/edit review sheet

4. Integration Points

  • TitleDetailScreen - show aggregate rating + user's rating
  • Episode list - show episode ratings
  • Profile - show user's ratings/reviews

Files to Modify/Create

  • androidApp/src/main/kotlin/org/prairieserver/prairie/android/ui/screens/detail/TitleDetailScreen.kt
  • androidApp/src/main/kotlin/org/prairieserver/prairie/android/ui/screens/detail/RatingDisplay.kt (NEW)
  • androidApp/src/main/kotlin/org/prairieserver/prairie/android/ui/screens/detail/RatingInput.kt (NEW)
  • androidApp/src/main/kotlin/org/prairieserver/prairie/android/ui/screens/detail/ReviewList.kt (NEW)
  • androidApp/src/main/kotlin/org/prairieserver/prairie/android/ui/screens/detail/ReviewComposer.kt (NEW)
  • androidTvApp/src/main/kotlin/org/prairieserver/prairie/tv/ui/screens/detail/ - TV variants
  • shared/src/commonMain/kotlin/org/prairieserver/prairie/model/rating/ - NEW: shared models

Reference Implementation

  • Web: prairie-server/web/src/components/RatingDisplay.tsx, ReviewList.tsx
  • Server: internal/apiv2/ratings.go, internal/apiv2/reviews.go

Activity

  1. JonahMMay commented on Oct 12, 2026

    @JonahMMay
    Author

    Implemented in #42: the title detail screen shows the new community (aggregate) rating, 1–5 stars averaged across profiles and shown from 3 ratings up (server: Prairie-Server/prairie-server#229). Reviews aren't included because the server has no reviews API.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions