Lewati ke isi

Sentra Membership — Overview

1. Product Requirements Document (PRD)

1.1 Context & Business Goals

Dalam industri kebugaran (fitness), hiburan (entertainment), dan olahraga di Indonesia (seperti gym modern, studio yoga/pilates, arena futsal/badminton, kids activity center, dan coworking space), retensi anggota (member retention) dan pendapatan berulang (recurring revenue) adalah kunci keberlanjutan bisnis. Metode pendaftaran manual, pelacakan kehadiran manual, serta manipulasi akses masuk merupakan sumber kerugian finansial yang signifikan bagi bisnis multi-cabang.

SentraClub Fit (alias SentraMembership Play) adalah sistem manajemen keanggotaan dan pemesanan kelas modern berskala enterprise yang dirancang khusus untuk mengelola operasional multi-cabang secara real-time. Tujuan utama:

  • Mengamankan aliran pendapatan melalui paket subscription recurring otomatis.
  • Mengurangi friksi pemesanan kelas dengan sistem kuota dan daftar tunggu (waiting list) dinamis.
  • Mencegah kerugian finansial akibat kebocoran akses (misal: penyalahgunaan satu kartu membership oleh beberapa orang) melalui Face Recognition dan QR dinamis.
  • Mengotomatisasi penggajian trainer berbasis volume kelas yang diajar secara transparan.
  • Meningkatkan interaksi dan kesetiaan anggota menggunakan gamifikasi dan program loyalitas terintegrasi.

1.2 Scope of the System

Komponen Deskripsi
Member Mobile App Pembelian paket, booking kelas/studio, top-up deposit wallet, check-in QR dinamis, riwayat kunjungan, gamifikasi
Frontdesk & Reception App Pendaftaran member, cetak kartu RFID/NFC, monitor gerbang akses masuk, manajemen deposit wallet, walk-in
Trainer Console Jadwal mengajar harian, daftar presensi member, penilaian performa, rekapitulasi slip jasa/komisi per sesi
Edge Access Control Gateway Integrasi lokal turnstile gate dengan Face Recognition + RFID/NFC reader, offline-capable
Central Administration & Payroll Engine Manajemen multi-cabang, skema komisi trainer, laporan keuangan konsolidasi, analitik churn rate

1.3 User Personas

Role Primary Goals & Critical Needs Pain Points
Member (Pelanggan) Booking kelas olahraga favorit dengan mudah, check-in cepat tanpa antre, memantau kemajuan latihan Kehabisan slot kelas dalam hitungan detik, antrean check-in mengular di jam sibuk, kartu fisik sering tertinggal
Receptionist / Frontdesk Memproses check-in walk-in cepat, memvalidasi status keanggotaan aktif, memproses top-up deposit Kesulitan mendeteksi member nakal yang meminjamkan kartunya, selisih laporan kas deposit harian
Trainer / Instruktur Melihat jadwal mengajar terupdate, mempresensi member yang hadir, memantau komisi bulanan Jadwal bentrok antar cabang, tidak tahu kapasitas kelas, perhitungan komisi sering selisih
Branch Manager Memastikan kapasitas studio terisi optimal, mengurangi no-show rate member, mengawasi kasir Tingginya tingkat no-show member pada kelas populer, kesulitan membagi jadwal trainer secara merata
Executive Owner Memantau MRR, mengendalikan biaya komisi trainer, mengukur retensi member Kebocoran finansial di kasir cabang, tingginya member churn rate tanpa terdeteksi penyebab utamanya

1.4 Key Non-Functional Requirements

  • High Concurrency Booking Support: Mampu menangani hingga 5.000 transaksi reservasi kelas secara simultan dalam 5 detik pertama pembukaan slot kelas populer (misal: kelas Zumba jam 19.00).
  • Sub-Second Gate Response: Respon gerbang turnstile (Face Recognition/NFC) harus < 800 ms untuk mencegah penumpukan antrean fisik di reception desk.
  • Biometric Hash Privacy: Template wajah Face Recognition harus dikonversi menjadi representasi vektor numerik (hash) satu arah dan dienkripsi sebelum disimpan untuk memenuhi aturan UU PDP. Foto mentah dilarang disimpan.

1.5 Success Metrics

Metric Target
MRR Growth +25% berkat modul auto-renewal
Class Occupancy Rate > 85% rata-rata
No-Show Rate < 5% berkat penalti otomatis
Zero Access Abuse 0% kasus sharing keanggotaan terdeteksi

2. Business Flow

Alur bisnis SentraClub Fit mencakup siklus hidup member dari registrasi hingga retensi, terintegrasi dengan pemesanan kuota kelas dan pembayaran otomatis.

2.1 High-Level Member Journey Flowchart

graph TD
    A[Calon Member Download App] --> B[Registrasi Akun & Upload Profil/Face Scan]
    B --> C{Pilih Paket Keanggotaan}
    C -- Paket Subscription Bulanan --> D[Setup Auto-Debit Card / GoPay Recurring]
    C -- Paket Sesi / Sesi Tunggal --> E[Pembayaran Instan via QRIS / E-Wallet]
    D --> F[Membership Aktif & Saldo Wallet Bertambah]
    E --> F
    F --> G[Browse Jadwal & Booking Kelas di App]
    G --> H{Apakah Slot Kelas Tersedia?}
    H -- Penuh --> I[Masuk Daftar Tunggu / Waiting List Queue]
    H -- Tersedia --> J[Slot Terkunci & QR Booking Diterbitkan]
    I -- Ada Member Cancel --> J
    J --> K[Datang ke Cabang - Check-in di Turnstile Gate via QR/Face Scan]
    K --> L{Validasi Akses Gate}
    L -- Sukses / Lolos APB --> M[Gerbang Terbuka & Kehadiran Tercatat]
    L -- Gagal / Sharing Abuse --> N[Gerbang Terkunci & Notifikasi ke Resepsionis]
    M --> O[Mengikuti Kelas / Latihan Mandiri]
    O --> P[Checkout Gate - Kuota Sesi Terpotong / Wallet Terdebet]
    P --> Q[Kirim WhatsApp Slip & Loyalty Point Gamifikasi]

2.2 Detailed Operational Touchpoints

  1. Akuisisi & Pembelian Subscription: Member mendaftar melalui aplikasi seluler. Sistem menghubungkan metode pembayaran berulang menggunakan Payment Gateway (Xendit/Midtrans Subscription API). Kartu kredit atau akun e-wallet (seperti GoPay recurring) diverifikasi untuk pendebetan otomatis bulanan.
  2. Reservasi Slot Kelas: Jadwal kelas dibuka tepat 7 hari sebelum kelas dimulai. Sistem menggunakan antrean memori Redis untuk mengelola kuota slot yang diperebutkan secara bersamaan. Member yang membatalkan booking melewati batas minimal pembatalan (< 2 jam sebelum kelas) dikenakan penalti kredit sesi atau pembekuan booking sementara.
  3. Verifikasi Check-in di Cabang: Member mendekati turnstile gate. Kamera menangkap wajah member, mengekstrak fitur wajah, dan mencocokkannya dengan database vektor lokal dalam durasi milidetik. Sistem menerapkan aturan Anti-Passback (APB): kartu/wajah yang sudah berstatus check-in tidak dapat digunakan untuk masuk kembali sebelum melakukan check-out terlebih dahulu.
  4. Sesi Latihan & Komisi Trainer: Kehadiran member di kelas secara otomatis memicu pencatatan absensi trainer. Jika tingkat occupancy kelas mencapai target tertentu (> 90%), sistem payroll menambahkan bonus occupancy multiplier ke komisi dasar trainer.
  5. Gamifikasi & Loyalty: Selesai latihan, member menerima push notification berisi perolehan Loyalty Points dan lencana pencapaian (badge) baru. Poin yang terkumpul dapat ditukar dengan voucher merchandise atau potongan biaya langganan bulan berikutnya.

8. Feature List

8.1 Membership & Subscription

  • Recurring Auto-billing Integration: Modul otomatis mendebet dana kartu kredit atau GoPay terdaftar tepat pada pukul 00.00 di hari keanggotaan berakhir. Menggunakan antrean retry otomatis jika pendebetan pertama gagal (3 kali percobaan dalam 3 hari sebelum mematikan status member).
  • Flexible Freeze Membership: Member dapat membekukan keanggotaannya secara sementara (maksimal 30 hari dalam setahun) langsung lewat aplikasi seluler. Sistem otomatis menghitung ulang dan memperpanjang masa aktif keanggotaan sebanyak hari pembekuan disetujui.

8.2 Booking System

  • Atomic Redis Slot Lock: Menggunakan perintah EVAL Lua Script pada Redis untuk memvalidasi kuota slot dan mengurangi kuota tersisa secara atomik dalam microsecond untuk menghindari race conditions.
  • Priority Waiting List Engine: Jika kapasitas kelas penuh, member masuk ke antrean waiting list. Sistem secara otomatis menaikkan antrean teratas menjadi peserta terkonfirmasi dan mengirim pesan WhatsApp jika ada peserta aktif yang membatalkan booking.

8.3 Check-in Access Control

  • Anti-Passback Guard: Menerapkan aturan transisi status masuk/keluar. Sistem menolak pintu masuk terbuka jika status akses terakhir member tercatat adalah IN di cabang manapun.
  • Offline Access Cache: Gateway lokal cabang men-cache data biometrik hash member aktif 24 jam terakhir secara lokal untuk mengizinkan verifikasi wajah offline jika internet cabang terputus total.

8.4 Deposit & Payment

  • Digital Closed-loop Wallet: Pembayaran sesi permainan (futsal, rental PS, playground) menggunakan saldo wallet internal yang terintegrasi dengan Payment Gateway Midtrans / Xendit.
  • Integrity Signed Wallet: Kriptografi SHA-256 membungkus saldo setiap member secara berkala untuk menghindari modifikasi database lokal ilegal dari kasir nakal yang mencoba memanipulasi nilai saldo.