# AZCHESS Coaching Project Plan (Active Track)

Status: Active
Owner: Product + Coaching + Engineering
Last updated: 2026-03-22

## 1) Objective

Deliver a high-value coaching experience that improves player progress, session booking efficiency, and learner retention.

## 2) Active product focus

Coaching is now the primary execution track.
Streamer growth tooling is deferred and documented separately in `STREAMER_PROJECT_PLAN.md`.

## 3) MVP outcomes

- Players can discover coaches by skill and language
- Players can request/book coaching sessions
- Coaches can manage requests and track student tasks
- Students can see progress milestones and next recommended actions

## 4) MVP scope (Phase 1)

1. Coach profile system
   - Public profile (bio, rating, specialties, languages, pricing model placeholder)
   - Availability windows (simple weekly slots)
2. Discovery + matchmaking
   - Coach listing page with basic filtering
   - Coach detail page with request session CTA
3. Session request workflow
   - Student submits request with goals and preferred time
   - Coach accepts/declines with optional note
   - Session status lifecycle (requested -> accepted -> completed/cancelled)
4. Coaching tasks and progress
   - Coach assigns lightweight tasks (e.g., opening drill, puzzle volume target)
   - Student sees checklist and completion state
5. Basic analytics
   - Session counts, completion rate, and active students per coach

## 5) Phase 2 scope (post-MVP)

- In-app messaging for coach/student thread per session
- Integrated payment handling and payout flow
- Calendar sync + timezone conflict handling
- Session review/rating system
- Structured lesson plans and curriculum templates

## 6) Functional requirements

- Create/edit coach profile
- Browse/search coaches with filters
- Create, accept, decline, complete, cancel session requests
- Attach coaching notes and task list to a session
- Track task completion by student
- Display progress timeline per student

## 7) Technical outline

- Data model (proposed)
  - `coach_profiles` (id, user_id, title, bio, rating_band, languages, specialties, active)
  - `coach_availability` (id, coach_id, weekday, start_minute, end_minute, timezone)
  - `coach_session_requests` (id, coach_id, student_id, goal_text, preferred_time, status, note, created_at)
  - `coach_session_tasks` (id, session_id, title, details, status, due_at)
  - `coach_student_progress` (id, coach_id, student_id, metric_key, metric_value, recorded_at)
- API (proposed)
  - `GET /api/coaches`
  - `GET /api/coaches/:id`
  - `POST /api/coaches/:id/request-session`
  - `POST /api/coach/sessions/:id/status`
  - `POST /api/coach/sessions/:id/tasks`
  - `GET /api/coach/dashboard`
- Frontend (proposed)
  - Coach directory page
  - Coach profile page
  - Student "My Coaching" page
  - Coach dashboard page

## 8) Non-functional requirements

- Mobile-first flows for request/accept workflows
- p95 under 600ms for coach list and profile fetches
- Reliable status transitions (idempotent endpoints for session state updates)
- Clear audit trail for coaching actions

## 9) Risks and mitigations

- Scheduling complexity and timezone confusion
  - Mitigation: start with simple slot model and explicit timezone labels
- Coach quality variance
  - Mitigation: profile completeness requirements + later rating system
- Overlapping work with existing user/account flows
  - Mitigation: reuse current auth/session patterns and route guard behavior

## 10) Delivery order

1. Data schema + API endpoints for profile and session request lifecycle
2. Coach discovery list + detail UI
3. Session request/accept/decline UX
4. Task assignment and student checklist
5. Coach dashboard summary metrics

## 11) Definition of done for Phase 1

- User can discover coach profiles and request sessions
- Coach can manage request lifecycle end-to-end
- Basic task assignment + completion tracking works
- Dashboard shows key coaching activity metrics
