# Epik & Roadmap — LMS MBG ## Overview Roadmap 2 bulan memanfaatkan codebase eksisting untuk mempercepat. Tiap epik memiliki outcome terukur, keterkaitan komponen, dan acceptance criteria. ## Epik A — Course & Learning Management - Rujukan: `docs/Epic 2 — Course & Learning Management.md` (eksisting). - Komponen/halaman terkait: - `src/app/course/page.tsx`, `src/app/course/[id]/page.tsx` - `src/components/course/ModuleTabs.tsx`, `ModuleNavigation.tsx` - `src/app/assignments/page.tsx`, `src/app/schedule/page.tsx` - Outcome: katalog kursus, detail kursus, modul/lesson viewer, progres, jadwal & penugasan. - Acceptance: - Learner dapat mendaftar, membuka lesson, progres bertambah sesuai aktivitas. - Admin melihat ringkasan kursus & progres kelas. ### Stories (Backend Draft — Non-Implementasi) > Catatan: semua story ini untuk dokumentasi & kontrak API; eksekusi backend ditunda hingga gate terpenuhi. ### Story 1.1: Course Catalog Read API - Tujuan: endpoint read-only untuk daftar kursus (paging, filter dasar). - Gate: kontrak API disetujui, data privacy OK, tidak ada coding. ### Story 1.2: Course Detail Read API - Tujuan: endpoint read-only untuk detail kursus + modul/lessons. - Gate: kontrak API disetujui, relasi data diverifikasi. ### Story 1.3: Module Progress Update API - Tujuan: endpoint untuk mencatat progres belajar (id user, modul, progress delta). - Gate: definisi skema progres & idempotency disetujui. ### Story 1.4: Assignment Submission Persist - Tujuan: draft kontrak penyimpanan submission tugas (metadata, payload). - Gate: checklist keamanan & audit trail disetujui. ## Epik B — Assessment & Sertifikasi - Komponen/halaman terkait: - `src/app/features/interactive-quiz-demo/page.tsx` - `src/app/exam-session/[sessionId]/page.tsx`, `src/app/exam-session/summary/[sessionId]/page.tsx` - `src/app/exams/page.tsx`, `src/app/admin/exams/page.tsx` - `src/components/admin/CertificatePDF.tsx`, `src/app/admin/certificates/[id]/page.tsx` - Outcome: kuis interaktif, sesi ujian, ringkasan hasil, sertifikat PDF & kirim ulang email. - Acceptance: - Kuis berjalan, skoring muncul, ujian terjadwal & ringkasan tersedia. - Sertifikat dihasilkan, dapat diunduh, dan email “kirim ulang” berfungsi. ### Stories (Backend Draft — Non-Implementasi) > Catatan: dokumentasi & kontrak, tidak ada coding hingga gate. ### Story 2.1: Exam Session Create API - Tujuan: kontrak pembuatan sesi ujian (user, examId, startTime). - Gate: model sesi ujian, validasi & lifecycle disetujui. ### Story 2.2: Exam Scoring API - Tujuan: kontrak endpoint penilaian jawaban (batch/stream, skor per soal). - Gate: aturan penilaian, integritas data & audit disetujui. ### Story 2.3: Exam Summary Read API - Tujuan: kontrak endpoint ringkasan hasil (skor total, waktu, per-soal). - Gate: format ringkasan & akses kontrol disetujui. ### Story 2.4: Certificate Resend Email Stub - Tujuan: kontrak request untuk kirim ulang email sertifikat (non-implementasi, queue stub). - Gate: template email, throttling, dan logging disetujui. ## Epik C — Reward & Payroll Integration (Phase-1) - Komponen/halaman terkait: - `src/features/payroll-reward-system/RewardDashboard.tsx` - `src/features/payroll-reward-system/PayrollManagement.tsx` - `src/features/payroll-reward-system/types.ts`, `services/`, `repositories/` - Outcome: tampilan jam belajar & pengakuan sederhana (non-transaksional), feature-flagged. - Acceptance: - Reward dashboard menampilkan jam belajar dari progres belajar. - Tidak ada perubahan ke sistem payroll produksi saat ini. ## Epik D — Analytics & Laporan - Komponen/halaman terkait: - `src/app/admin/analytics/page.tsx`, `src/app/admin/analytics/[studentId]/page.tsx` - `src/app/export/page.tsx` (jika ada) atau util ekspor sederhana. - Outcome: ringkasan performa, detail peserta, eksport CSV/Excel. - Acceptance: - Admin melihat metrik dasar (penyelesaian, skor rata-rata, waktu belajar). - Dapat mengunduh laporan untuk manajemen. ## Epik E — Desktop UX & Accessibility - Komponen terkait: seluruh halaman learner & komponen utama. - Outcome: learner flow berjalan nyaman dan efisien di perangkat desktop. - Acceptance: - Navigasi, teks, tombol, tabel terbaca & dapat dioperasikan dengan keyboard. - Waktu muat desktop p95 < 2 detik. ## Epik F — AI Assistant (Phase-1) - Komponen/halaman terkait: - `src/app/ai-assistant/page.tsx` - Outcome: tanya jawab konten pelatihan dapur (non-kritis), sebagai pendamping belajar. - Acceptance: - Learner dapat bertanya hal umum terkait materi dan mendapat jawaban yang relevan. ## Epik G — Jadwal & Penugasan - Komponen/halaman terkait: - `src/app/schedule/page.tsx`, `src/app/assignments/page.tsx` - Outcome: penjadwalan kelas/ujian & penugasan tugas modul. - Acceptance: - Jadwal terlihat bagi learner; admin/trainer dapat mengatur slot dan penugasan. ## Ketergantungan & Urutan - A mendasari B (assessment butuh course & progres). - B mendasari sertifikasi & input ke D (analytics) dan C (reward). - E berjalan paralel sebagai polishing, fokus di sprint 4. - F berjalan opsional, flagged, mengikuti ketersediaan konten.