Page: Student-Teacher Directory

Code: STDR Route: /teachers Access: Public Priority: P1 Status: In Scope

Purpose

Allow visitors and students to discover available Student-Teachers, browse by course specialty, and find teachers before or after course enrollment.


Connections

Incoming (users arrive from)

Source Trigger Notes
Nav "Student-Teachers" link Global navigation (if shown)
CDET "View All STs" link From course detail ST section
SDSH "Find a Teacher" link Student looking for ST
HOME "Become a Teacher" → lands here to see examples Aspirational path
(External) Direct URL `/student-teachers`

Outgoing (users navigate to)

Target Trigger Notes
STPR ST card click View ST profile
CDET Course badge click on ST card See the course they teach
SBOK "Book Session" CTA on card Direct to booking (if enrolled)

Data Requirements

Entity Fields Used Purpose
users (STs) id, name, handle, avatar, bio_short ST cards
student_teachers course_id, students_taught, certified_date, is_active Certification info
user_expertise tag Expertise display
courses id, title, slug Course badges on cards
user_availability is_available "Available Now" indicator

Sections

Header

  • Page title: "Student-Teachers" or "Learn from Your Peers"
  • Subtitle: Explain the ST model briefly

Search/Filter Bar

  • Search by name or expertise
  • **Filter by course:** Dropdown of courses with STs
  • **Availability:** "Available Now" toggle
  • **Sort:** Most Students, Highest Rated, Newest

ST Grid

  • Responsive grid: 3 columns desktop, 2 tablet, 1 mobile
  • ST card:

Empty State

  • No STs match filters
  • "Try a different filter or check back soon"

Become a Teacher CTA

  • Banner or section at bottom
  • "Want to teach? Complete a course and become a Student-Teacher"
  • Link to CDET or info page

User Stories Fulfilled

  • US-S050: Browse Student-Teachers before selecting one
  • US-S051: Filter STs by course
  • US-P066: Platform lists available STs

States & Variations

State Description
Visitor View-only, "Sign up to book" CTAs
Logged In (Not Enrolled) Can view but "Enroll first" prompts
Logged In (Enrolled) "Book Session" buttons active for matching courses
Filtered by Course Pre-filtered from CDET link

Mobile Considerations

  • Single column cards
  • Filters in collapsible drawer
  • "Available Now" toggle prominent

Error Handling

Error Display
No STs available "No Student-Teachers available yet. Check back soon!"
Load fails Retry button

Analytics Events

Event Trigger Data
`page_view` Page load filters
`st_card_click` ST clicked st_id, position
`filter_applied` Filter changed filter_type, value
`book_session_click` Book clicked st_id, course_id

API Calls

Endpoint When Purpose
`GET /api/student-teachers` Page load ST list with stats
`GET /api/student-teachers?course=...&available=...` Filter Filtered results
`GET /api/courses` Page load Course filter dropdown options

Notes

  • P1 priority: Core flow works via CDET ST section; directory is enhancement
  • Genesis Cohort: May have very few STs initially
  • Consider "Featured ST" or "Top Teachers" section