Skip to content

[US3-1] Add public tutor list page with search, filter, and sort #94

Closed
3 of 3 issues completed
Closed

Description

@NatSilprasert

User Story

As a student, I want to browse active tutors with search, filters, and sorting, so that I can quickly find a tutor that fits my subject, budget, and quality preferences.

Reviewer

@RyuJomphol

Description

Currently there is no page to browse tutors. We need a list page that shows only active tutors and lets students narrow down the list by subject and price range, search by keyword, and sort results by rating, price, or popularity. Rating reflects the tutor's average review score (e.g. 4.8/5), and popularity reflects the number of students who have taken lessons with that tutor.

Scope

  • New page listing tutors where status is active (inactive tutors excluded)
  • Search input to find tutors (e.g. by name)
  • Filter by subject
  • Filter by price range (min/max)
  • Sort by: rating (average review score), price, or popularity (number of past students)
  • Display each tutor's key info in the list: name, subject(s), price, rating, popularity count

Acceptance Criteria

  • Given tutors with mixed active and inactive status, when a student views the tutor list, then only active tutors appear
  • Given a search term is entered, when a student searches, then only tutors matching the term are returned
  • Given a subject filter is applied, when a student filters by subject, then only tutors teaching that subject are shown
  • Given a price range is applied, when a student filters by price, then only tutors within the given min/max price appear
  • Given rating sort is selected, when a student sorts by rating, then tutors are ordered by average review score, descending by default
  • Given price sort is selected, when a student sorts by price, then tutors are ordered by price, ascending by default
  • Given popularity sort is selected, when a student sorts by popularity, then tutors are ordered by number of past students, descending by default
  • Given search, filters, and sort are all set, when a student applies them together, then the results reflect all criteria combined
  • Given a tutor has a review score, when their rating is displayed, then it shows as a score out of 5 (e.g. "4.8/5")
  • Given a tutor has taught students, when popularity is displayed, then it shows the count of students who have learned with the tutor

Out of Scope

  • Tutor profile detail page
  • Booking or contacting a tutor from the list
  • Pagination/infinite scroll implementation details (assumed needed but not specified here)

Metadata

Metadata

Assignees

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