Sentra Membership — Modules¶
Sistem SentraMembership didesain menggunakan pendekatan Modular Monolith dengan batas-batas domain bisnis (Bounded Context) yang jelas.
sentramembership-monolith/
├── src/
│ ├── modules/
│ │ ├── member-subscription/ # Pembelian Paket, Freeze, Auto-Renewal
│ │ │ ├── controllers/
│ │ │ ├── services/
│ │ │ └── entities/
│ │ ├── booking-engine/ # Redis Lock Reservation, Waiting List, Cancel Penalty
│ │ │ ├── redis/
│ │ │ ├── services/
│ │ │ └── entities/
│ │ ├── access-control/ # Edge Gate Sync, Face Biometric, Anti-Passback
│ │ │ ├── controllers/
│ │ │ ├── gateways/ # MQTT Access Gateway
│ │ │ └── services/
│ │ ├── wallet-billing/ # In-app Wallet, Payment Gateway QRIS, Auto-Deduct
│ │ │ ├── services/
│ │ │ └── entities/
│ │ ├── trainer-scheduling/ # Jadwal Trainer, Penugasan Sesi, Evaluasi
│ │ │ ├── controllers/
│ │ │ └── services/
│ │ └── gamification-loyalty/ # Reward Points, Badge Achievements, Referrals
│ │ ├── services/
│ │ └── entities/
│ ├── shared/
│ │ ├── security/ # Wallet signature keys, AES Biometrics
│ │ └── notifications/ # WA Gateway Client, Push Notifications
│ └── main.ts
| Modul | File | Deskripsi |
|---|---|---|
| Gate & RFID Access Control | gate-rfid.md | MQTT broker, anti-passback, biometric face + RFID gate flow |
| Wallet & Billing | wallet.md | Closed-loop wallet, signed transactions, top-up via QRIS, double-entry ledger |
| Booking & Class Engine | booking.md | Redis slot lock, waiting list, cancellation penalty, subscription state machine |
| Payroll & Trainer Incentive | payroll.md | Komisi instruktur per sesi, occupancy multiplier, retainer |