Appearance
Project Goals
Visi
Jadi platform les privat yang paling terpercaya di Indonesia — di mana setiap sesi les tercatat, tervalidasi, dan ter-audit dengan transparan.
Misi
- Transparansi — Murid, guru, dan backoffice semua punya visibilitas yang sama terhadap status les.
- Akuntabilitas — Setiap les harus divalidasi oleh minimal 2 pihak (guru + murid) dan dimonitor backoffice.
- Efisiensi Operasional — Backoffice bisa mengelola order, jadwal, konfirmasi, dan laporan dari satu dashboard.
- Trust & Safety — Evidence foto dan presence report memastikan les benar-benar berjalan.
Goals Teknis (2026)
Q2: MVP
- [ ] Website publik dengan landing page
- [ ] Auth system lengkap (Google, Email/Password, Magic Link)
- [ ] Role system: student, teacher, admin, owner
- [ ] Order & pembayaran dengan bukti transfer
- [ ] Lesson session management
- [ ] Triple-confirmation flow
- [ ] Presence reporting (wajib)
- [ ] Photo evidence upload
- [ ] Backoffice dashboard untuk admin/owner
Q3: Enhancement
- [ ] Interface lengkap untuk murid (dashboard, history, notifikasi)
- [ ] Interface lengkap untuk guru (jadwal, confirm, presence)
- [ ] Kalender murid untuk booking slot waktu
- [ ] Google Calendar sync (optional untuk student, wajib untuk teacher)
- [ ] 2FA untuk admin dan owner
- [ ] Notifikasi email/WhatsApp untuk reminder les
Q4: Scale
- [ ] Analytics dan reporting
- [ ] Mobile-responsive optimization
- [ ] Multi-cabang support
- [ ] Performance optimization
Success Metrics
| Metric | Target |
|---|---|
| Monthly Active Users | 500 (end of 2026) |
| Les Completion Rate | 95% |
| Confirmation Mismatch Rate | < 5% |
| Presence Submission Rate | 100% |
| API Response Time (p95) | < 200ms |
| Uptime | 99.9% |
Principles
- Data Integrity > Speed — Setiap transaksi les harus tercatat lengkap. Lebih baik lambat tapi akurat.
- Audit Trail First — Semua action (confirm, upload, verify) harus punya timestamp dan actor.
- Simplicity — Backoffice workflow harus intuitif. Admin tidak perlu training lama.
- Indonesia First — Payment via transfer bank lokal, Bahasa Indonesia, timezone WIB.
Decision Log
2026-05-08: Monorepo dengan Cloudflare Stack
Context: Perlu deploy di edge dengan biaya rendah dan scalability tinggi. Decision: Pakai Cloudflare full stack: D1 (DB), R2 (storage), Workers (API), Pages (web + docs). Impact: Low latency di Indonesia, murah, tapi ada constraint D1 (SQLite, limited transactions).
2026-05-08: better-auth untuk Auth
Context: Perlu auth system yang support Google OAuth, Email/Password, dan Magic Link. Decision: better-auth 1.6 dengan Drizzle adapter dan Resend untuk email. Impact: Role system via additionalFields, session cookie flow, magic link via email OTP.
2026-05-08: Triple-Confirmation Flow
Context: Perlu memastikan les benar-benar berjalan dan tidak ada fraud. Decision: Implementasi 4 konfirmasi: teacher start, student start, teacher end, student end. Backoffice monitor dan resolve mismatch. Impact: Lebih kompleks tapi memberikan audit trail yang kuat.
Untuk detail teknis dan arsitektur, lihat Architecture.