Skip to content

User Flow

1. Registration & Login

Murid Registration

Landing Page → Klik "Daftar"
  → Pilih metode: Google / Email+Password / Magic Link
    → Google: Redirect ke Google → Callback → Auto-login
    → Email+Password: Isi form → Verifikasi email → Login
    → Magic Link: Isi email → Klik link di email → Auto-login
  → Redirect ke Profile Page (lengkapi data)
  → Done

Guru Registration

Landing Page → Klik "Daftar sebagai Guru"
  → Pilih metode login (sama seperti murid)
  → Redirect ke Profile Page (lengkapi data + keahlian)
  → Status: "Pending Verification" (menunggu admin approve)
  → Admin approve → Status: "Active"

2. Order & Pembayaran

Murid Flow

Profile Page → Klik "Buat Order"
  → Pilih mata pelajaran
  → Pilih durasi (jam)
  → Isi catatan (opsional)
  → Submit Order → Status: "Pending"
  → Upload bukti transfer (foto/screenshot)
    → File di-upload ke R2
    → Status: "Paid"
  → Tunggu admin verifikasi
    → Jika verified: Status → "Verified"
    → Jika cancelled: Status → "Cancelled"

Admin Flow (Pembayaran)

Backoffice → Orders Page
  → Filter: Status "Paid"
  → Klik order → Preview bukti transfer
  → Action: "Verify" atau "Cancel"
    → Verify: Status → "Verified" → Bisa dijadwalkan les
    → Cancel: Status → "Cancelled"
  → Jika murid WA bukti (tidak upload sendiri):
    → Admin upload bukti atas nama murid
    → Lanjut verify seperti biasa

3. Lesson Session

Admin Schedule

Backoffice → Lessons Page → Klik "Buat Jadwal"
  → Pilih order yang verified
  → Assign guru
  → Set tanggal & waktu
  → Set durasi
  → Set lokasi (opsional)
  → Submit → Session Status: "Scheduled"

Triple Confirmation Flow

[Les Dimulai]
  Guru:
    → Buka link/session → Klik "Confirm Les Dimulai"
    → lesson_confirmations: teacher_start
  Student:
    → Buka link/session → Klik "Confirm Les Dimulai"
    → lesson_confirmations: student_start
  Backoffice:
    → Dashboard update: both confirmed → Session Status: "Ongoing"
    → Jika hanya satu yang confirm:
      → Flag: "Mismatch - Start"
      → Admin investigasi dan resolve

[Les Selesai]
  Guru:
    → Klik "Confirm Les Selesai"
    → lesson_confirmations: teacher_end
  Student:
    → Klik "Confirm Les Selesai"
    → lesson_confirmations: student_end
  Backoffice:
    → Dashboard update: both confirmed → Session Status: "Completed"
    → Jika hanya satu yang confirm:
      → Flag: "Mismatch - End"
      → Admin investigasi dan resolve

Presence Submission (Wajib)

Guru → Buka session yang "Completed"
  → Klik "Submit Laporan"
  → Isi form:
    - Materi yang dibahas
    - Progress murid
    - PR/tugas (opsional)
    - Rekomendasi next session (opsional)
    - Durasi aktual (menit)
  → Submit → Session Status: "Closed"
  → Jika tidak submit: Admin reminder, session tetap "Completed"

Evidence Upload

Guru → Buka session
  → Klik "Upload Foto"
  → Pilih foto (max 5MB, image only)
  → Tambah deskripsi (opsional)
  → Upload ke R2 → Tersimpan di session_evidence
  → Admin bisa lihat di backoffice

4. Backoffice Dashboard

Daily Workflow Admin

Login sebagai Admin
  → Dashboard:
    - Lihat metrics: orders pending, sessions scheduled, confirmations mismatch
  → Orders Page:
    - Verifikasi pembayaran yang baru masuk
  → Lessons Page:
    - Buat jadwal les untuk order verified
  → Confirmations Page:
    - Monitor konfirmasi real-time
    - Resolve dispute jika ada mismatch
  → Presence Page:
    - Review laporan guru
    - Follow up untuk yang belum submit

Owner Workflow

Login sebagai Owner
  → Semua akses admin
  → Users Page → Invite Admin:
    - Input email admin baru
    - Kirim invite
    - Admin baru login dan aktif

5. Profile Management

Any User → Profile Page
  → Edit nama, telepon, bio
  → Upload foto profil (ke R2)
  → Save
  → Data tersimpan di user table (better-auth extended fields)

Released under the MIT License.