Metropole Padel Club — Summary
- Dokumen: Hub ringkasan seluruh platform MPC (bukan PRD teknis terpisah)
- Sumber:
mpc-dev/docs/— changelog, specs, API, schema, tasks - Status per: 21 Agustus 2026
- Cara pakai: Baca overview → actors → diagram → features per app → backlog. Detail operasional di link wiki di bawah.
Legenda status
| Simbol | Arti |
|---|---|
| ✅ | Ada dan dipakai (API / production path) |
| 🟡 | Ada sebagian (UI, satu platform, atau tanpa gateway penuh) |
| ❌ | Belum dibangun / backlog |
1. Overview
Metropole Padel Club (MPC) adalah platform digital untuk mengelola klub padel premium: booking lapangan, komunitas & matchplay, F&B / resto / proshop, membership, operasional venue (POS & admin), analytics owner, dan CRM broadcast.
Cloud adalah Single Source of Truth untuk identitas member, booking, order, dan membership. POS venue dan channel partner (mis. Courtside) terintegrasi tanpa menyerahkan kepemilikan data utama.
Positioning
- Open registration — daftar dengan email/phone + OTP email; bukan invite-only.
- Membership tiering — Free → Basic / Pro / Elite (benefit & prioritas naik; konfigurasi admin).
- UX kalangan atas — polished, jelas, tidak membingungkan (
ux-high-class).
Siapa usernya?
| Kelompok | Tujuan utama |
|---|---|
| Member / guest | Booking, bayar, match, resto, notifikasi |
| Front-desk / kasir venue | Check-in, jual F&B/rent, sesi lapangan (POS) |
| Ops / admin klub | Master data, harga, promo, customers, broadcast |
| Owner / management | Omzet, chart, insight multi-cabang |
| Coach | Jadwal & sesi (via admin/member; portal khusus belum) |
| CRM / marketing | Broadcast outbound (DB terpisah) |
| Engineer / product | Specs, API, schema, versions (mpc-dev) |
Aplikasi yang dipakai
| App | Path | Peran |
|---|---|---|
| Member Android | mpc-customer/mpc-android | Sumber kebenaran UX member |
| Member iOS | mpc-customer/mpc-ios | Parity 1:1 dengan Android |
| Member Web | mpc-customer/mpc-web | Parity 1:1 dengan Android |
| Admin | mpc-admin-site | Ops console |
| POS | mpc-pos | Court / kasir venue |
| Backend member+admin | mpc-be | API cloud utama |
| Backend POS | mpc-be-pos | API POS |
| Owner | mpc-owner | Analytics (baca ksrdb) |
| Sync | ksr-sync | mpcdb → ksrdb |
| CRM | mpc-crm | Hub broadcast (crmdb) |
| Docs hub | mpc-dev | Library markdown ini |
Versi terkini: versions/README.md.
Detail per app (published URL, fitur, latest changes): applications/README.md.
2. Actors
| Actor | Role | Aksi utama | Aplikasi |
|---|---|---|---|
| Guest | Calon member | Browse (terbatas), register, verifikasi OTP | Android / iOS / Web → mpc-be |
| Member (Free) | Member default | Login, booking, history, matchplay, players, resto, tip, inbox | Android / iOS / Web → mpc-be |
| Member (Paid tier) | Basic / Pro / Elite | Semua di atas + benefit membership (kuota/diskon/event) | Android / iOS / Web → mpc-be |
| Receptionist / Kasir | Front-desk | Setup device, lihat sesi lapangan, jual produk, check-in | mpc-pos → mpc-be-pos |
| Ops Admin | Staff ops | CRUD courts/products/spaces/events/coaches/promos, customers, push broadcast (langsung mpcdb + FCM) | mpc-admin-site → mpcdb (+ Firebase) |
| Manager | Ops senior | Sama admin + kebijakan harga/promo (target RBAC lebih ketat) | Admin (+ Owner bila perlu) |
| Owner | Bisnis | Login owner, chart omzet, Gemini assistant, multi-branch | mpc-owner ← ksrdb via ksr-sync |
| Coach | Pelatih | Dikelola di admin; member book sesi (portal coach ❌) | Admin + member apps |
| CRM operator | Marketing | Broadcast / sync contact (DB crmdb) | mpc-crm |
| System / Sync | Daemon | Replikasi datamart, reconcile | ksr-sync |
| Engineer | Dev | Docs, changelog, migration, API contract | mpc-dev + repos |
Matriks actor × aplikasi (ringkas)
| Actor | Android/iOS/Web | Admin | POS | Owner | CRM |
|---|---|---|---|---|---|
| Guest / Member | ✅ | — | — | — | — |
| Kasir | — | — | ✅ | — | — |
| Ops Admin | — | ✅ | — | — | — |
| Owner | — | 🟡 | — | ✅ | — |
| Coach | 🟡 | 🟡 | — | — | — |
| CRM | — | — | — | — | ✅ |
3. Diagrams
A. Overview — hubungan antar aplikasi
Admin menulis langsung ke mpcdb (Prisma). Push broadcast admin juga FCM langsung + tabel device_tokens / notifications — tanpa panggil mpc-be. Member apps tetap lewat mpc-be.
Diagram…
B. Swimlane — journey inti
B1. Member booking lapangan
Diagram…
B2. Kasir jual F and B / rent di venue
Diagram…
B3. Owner lihat omzet
Diagram…
B4. Register + OTP email
Diagram…
B5. Admin broadcast push (langsung, tanpa mpc-be)
Diagram…
Detail kontrak API member/POS: api/be.md, api/be-pos.md.
4. Features (per aplikasi)
4.1 Member — Android / iOS / Web (mpc-customer)
Parity wajib 1:1 (Android = sumber UX). Changelog: android · ios · web.
| Area | Fitur | Status |
|---|---|---|
| Home | Landing, greeting, promo carousel, quick actions, pull-to-refresh | ✅ |
| Auth | Register/login, OTP email, reset password, profile, logout | ✅ |
| Auth | Google SSO | 🟡 |
| Courts | List, detail showcase, availability, by-time/by-court, peak pricing | ✅ |
| Booking | Confirm + extras, history grouped, tip on completed | ✅ |
| Booking | Reschedule / cancel / waitlist | 🟡 / ❌ |
| Matchplay | Create/join/score, guests, leaderboard | 🟡 |
| Community | Players search / ranking / favorites | 🟡 |
| Coaching | Listing & book path | 🟡 |
| Membership | Plans / usage | 🟡 |
| Events | List / register | 🟡 |
| Resto | Space reservation + F&B terikat | ✅ |
| Commerce | FnB / ProShop / Rent (kategori dinamis) | ✅ |
| Payments | Order/invoice path; Midtrans penuh | ✅ / 🟡 |
| Notif | Inbox; FCM Android; APNs iOS | ✅ / ❌ |
4.2 Admin (mpc-admin-site)
Changelog: admin.md.
| Area | Status |
|---|---|
| Dashboard ops | ✅ |
| Courts (foto, harga, specs, display_order) | ✅ |
| Products FnB / ProShop / Rent | ✅ |
| Resto spaces | ✅ |
| Events, coaches, promos | ✅ |
| Customers | ✅ |
| POS devices | ✅ |
| Push / email broadcast | ✅ |
| Copy UI English | ✅ |
| Image upload Firebase | ✅ |
| RBAC matrix & audit penuh | 🟡 |
4.3 POS (mpc-pos)
Changelog: pos.md.
| Area | Status |
|---|---|
| Device setup / auth | ✅ |
| Sesi lapangan / split display | ✅ |
| Catalog jual + attach booking | ✅ |
| Offline resilience penuh | 🟡 |
| UX error setup | ✅ |
4.4 Backend mpc-be
Changelog: be.md · API: api/be.md.
Auth JWT + OTP, courts/availability, bookings/orders, matchplay, players, notifications, device-tokens, promos, spaces, admin CRUD surfaces, tip, reschedule fees.
4.5 Backend mpc-be-pos
Changelog: be-pos.md · API: api/be-pos.md.
Outlet/device, cashier session, catalog POS, sales, booking status di venue.
4.6 Owner (mpc-owner) + Sync (ksr-sync)
Changelog: owner.md · ksr-sync.md.
| Area | Status |
|---|---|
| Owner auth | ✅ |
| Charts omzet / multi-branch | ✅ |
| Gemini assistant | ✅ |
| Datamart sync hardening | ✅ / 🟡 |
| Export PDF/Excel, CLV mendalam | ❌ |
4.7 CRM (mpc-crm)
Changelog: crm.md. Hub broadcast + DB crmdb (terpisah dari mpcdb); sync opsional dari MPC.
4.8 Docs hub (mpc-dev)
Changelog: dev.md. Merender seluruh tree mpc-dev/docs/ sebagai wiki (/docs/...).
5. Backlog
Checklist produk yang belum / tipis — update status di sini saat selesai (dan catat di changelog + specs).
Member & growth
- Google OAuth penuh (bukan tombol UI saja)
- Waitlist lapangan
- Cancel policy jelas end-to-end
- Calendar grid events
- Chat / social feed
- Rating ELO / DUPR-style
- Localization ID/EN penuh
- Coach portal dedicated
Payments & commerce
- Midtrans / webhook production hardening
- Refund policy engine lengkap
- Membership self-serve billing + prorate
- Accessories fulfilment / shipping penuh
Notifications
- iOS push APNs (blocked Apple Developer — lihat tasks.md)
- WhatsApp OTP / comms
- Email fan-out non-OTP lengkap
Ops & analytics
- Staff RBAC matrix + audit log penuh
- Owner export suite + CLV
- Courtside / channel manager reconcile matang
- Multi-venue map
- Observability + DLQ tooling
Roadmap arah
| Fase | Fokus |
|---|---|
| Sekarang | API-backed member + admin + POS + owner; polish UX & parity |
| Berikut | Payment gateway; iOS push; cancel/waitlist; Courtside |
| Lanjut | Coach portal; fulfilment; membership billing self-serve |
| Skala | Multi-venue; observability; localization |
6. Changelog
Indeks versi semua app: versions/README.md.
| App | Changelog |
|---|---|
| mpc-android | changes/android.md |
| mpc-ios | changes/ios.md |
| mpc-web | changes/web.md |
| mpc-admin | changes/admin.md |
| mpc-pos | changes/pos.md |
| mpc-be | changes/be.md |
| mpc-be-pos | changes/be-pos.md |
| mpc-owner | changes/owner.md |
| ksr-sync | changes/ksr-sync.md |
| mpc-crm | changes/crm.md |
| mpc-dev | changes/dev.md |
Specs per sesi: specs/README.md.
7. Etc — peta docs & checklist kerja
Peta folder mpc-dev/docs/
| Path | Isi |
|---|---|
| summary.md | Dokumen ini — ringkasan platform |
| versions/ | Current version per app |
| changes/ | Changelog per app |
| specs/ | Spec/PRD perubahan per chat |
| api/ | Kontrak API BE & BE-POS |
| schema/ | Konvensi + migration ALTER |
| tasks.md | Follow-up / blocker |
| push-notifications-setup.md | Setup FCM / push |
Non-fungsional (wajib diingat)
- POS tetap berguna saat link putus (cache + sync) — target.
- Integrasi andal: watermark, retry, idempotency.
- Security: JWT, pemisahan layer, privacy member.
- Parity member Android → iOS + Web kecuali skip eksplisit.
- UX elegant untuk kalangan atas.
Checklist saat ada perubahan (agent / eng)
- Impact check lintas app (
cross-app-impact) - Schema? → migration file + cascade admin/be/be-pos
- API berubah? → update
api/be.mdatauapi/be-pos.md; info client dulu - Member berubah? → Android + iOS + Web
- Changelog app +
versions/README.md - Spec baru/update di
specs/ - Update status di Summary (bagian Features / Backlog) bila scope produk berubah
Riwayat dokumen
| Tanggal | Catatan |
|---|---|
| 2026-07 | PRD member + arsitektur terpisah |
| 2026-08-21 | Merge PRD → reconcile status app |
| 2026-08-21 | Ganti jadi Summary (summary.md) — hub keseluruhan docs + checklist backlog |