MOP 2.4 — Onboarding Coaches & Clubhouse Trainers¶
Audience:
society_adminOutcome: 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.
5. Related MOPs¶
- MOP 1.3 — Phase Isolation (coaching events also phase-scoped)
- MOP 4.2 — Service Marketplace