Appearance
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)
→ DoneGuru 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 biasa3. 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 resolvePresence 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 backoffice4. 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 submitOwner Workflow
Login sebagai Owner
→ Semua akses admin
→ Users Page → Invite Admin:
- Input email admin baru
- Kirim invite
- Admin baru login dan aktif5. 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)