Skip to content

MOP 2.4 — Onboarding Coaches & Clubhouse Trainers

Audience: society_admin Outcome: Coaches (yoga, swim, music etc.) are listed in the society directory; their classes appear in the mobile app's Coaching tab and in Near-Me coaching searches; payments are tracked end-to-end.

1. Two coaching primitives

Concept Stored in Use it for
coach_profiles coach_profiles Trainer person/business with brand, photo, KYC
recurring_events recurring_events Their recurring class/slot (e.g. Mon-Wed-Fri 6am yoga)
coaching_events coaching_events Aggregator surfaced on the Coaching tab + Near-Me

A recurring class is auto-mirrored into coaching_events so the mobile-app "Near Me / Coaching" merger is a single 2dsphere query.

2. Workflow

2.1 Coach application (mobile)

Coach fills the Coach Application flow in the mobile app (coach_applications collection).

2.2 Society admin review

Sidebar → Coaching → Applications. Approve / Reject. Approving creates a coach_profiles record.

2.3 Society admin schedules a class

Sidebar → Coaching → + New Class → picks coach, days of week, time, fee, max attendees, location pin. Backend writes a recurring_events row and mirrors it into coaching_events with its geo_point.

2.4 Attendance & payments

  • Mobile app residents enroll → candidate_enrollments.
  • Coach (or society admin) marks attendance per session → coaching_attendance.
  • Society admin records monthly settlement → POST /api/admin/coaching/events/{event_id}/settlement.

3. APIs touched

Method Endpoint
GET / POST /api/admin/coach-applications
GET / POST /api/admin/coaches
POST /api/admin/recurring-events
GET /api/admin/coaching/overview
GET /api/admin/coaching/events/{id}/attendance
GET / POST /api/admin/coaching/events/{id}/settlements
GET /api/admin/coaching/overdue-notifications
GET /api/nearby/coaching?lat=&lng=&radius_km=

4. Edge cases & FAQ

  • Coach withdraws → soft-delete the recurring event; existing enrollments are preserved for audit / settlement.
  • A class without geo_point won't show up in Near-Me — pincode is inherited from the parent society if missing.
  • Phase-bound society admin can only schedule classes in their phase.
  • MOP 1.3 — Phase Isolation (coaching events also phase-scoped)
  • MOP 4.2 — Service Marketplace