72 lines
3.2 KiB
Markdown
72 lines
3.2 KiB
Markdown
# LMS-BGN — Indeks Dokumentasi Proyek (Brownfield)
|
|
|
|
Dihasilkan: 2025-11-12
|
|
Lintasan: quick-flow
|
|
Level: 2 (Proyek Menengah)
|
|
Jenis Bidang: brownfield
|
|
|
|
## Ikhtisar
|
|
LMS-BGN adalah frontend Next.js 14 + TypeScript untuk Sistem Manajemen Pembelajaran (LMS) dengan alur inti: katalog dan viewer kursus, kuis dan ujian, pelacakan progres, sertifikat, analitik admin, serta modul reward payroll fase-1 (diaktifkan lewat feature flags).
|
|
|
|
## Teknologi
|
|
- Framework: `next@14` (App Router)
|
|
- Bahasa: TypeScript
|
|
- Styling: Tailwind CSS (`tailwind.config.js`)
|
|
- Pengujian: Jest + Testing Library
|
|
- State: React Context (`AuthContext`, `ExamContext`) dan hooks
|
|
- Visualisasi: `recharts`, `framer-motion`
|
|
- Utilitas: `clsx`, `tailwind-merge`, `react-hook-form`
|
|
|
|
## Jalankan & Build
|
|
- Dev: `npm run dev`
|
|
- Pemeriksaan tipe: `npm run type-check`
|
|
- Test: `npm test`
|
|
- Build: `npm run build` lalu `npm start`
|
|
|
|
## Ringkasan Struktur Sumber (terpilih)
|
|
- `src/app/` — Halaman App Router Next.js
|
|
- Learner: `page.tsx`, `course/`, `courses/`, `reports/`
|
|
- Ujian: `exams/`, `exam-session/`, `exam-summary/`
|
|
- Admin: `admin/analytics/`, `admin/exams/`, `admin/certificates/`
|
|
- Lainnya: `assignments/`, `schedule/`, `ai-assistant/`, `help/`, `settings/`
|
|
- `src/components/` — Komponen UI (admin, course, dashboard, exam, quiz, video)
|
|
- `src/contexts/` — `AuthContext.tsx`, `ExamContext.tsx`
|
|
- `src/hooks/` — `useExamPersistence.ts`, `useProgressTracking.ts`
|
|
- `src/features/payroll-reward-system/` — modul reward fase-1 (dashboard, services, repositories, types)
|
|
- `src/core/events/SystemEvents.ts` — event bus bertipe untuk event sistem
|
|
- `src/config/featureFlags.ts` — toggle fitur
|
|
- `tailwind.config.js` — token desain BGN (warna, bayangan, tipografi)
|
|
|
|
## Alur & Komponen Kunci
|
|
- Viewer Kursus & Modul: `src/app/course/[courseId]/page.tsx` + `src/components/course/*`
|
|
- Demo Kuis: `src/app/interactive-quiz-demo/page.tsx`
|
|
- Sesi Ujian + Ringkasan: `src/app/exam-session/*`, `src/app/exam-summary/*`
|
|
- Sertifikat: `src/components/admin/CertificatePDF.tsx` dan halaman admin sertifikat
|
|
- Analitik Admin: `src/app/admin/analytics/*`
|
|
- Reward (Fase-1): `src/features/payroll-reward-system/*`
|
|
|
|
## Dokumentasi yang Sudah Ada
|
|
- PRD: `docs/mbg-lms-prd.md`
|
|
- Backlog: `docs/mbg-lms-backlog.md`
|
|
- Rencana Epik: `docs/mbg-lms-epic-plan.md`
|
|
- Rencana Sprint: `docs/mbg-lms-sprint-plan-nov-dec-2025.md`
|
|
- Sinkronisasi Codebase: `docs/mbg-lms-codebase-sync.md`
|
|
- Catatan Brainstorming: `docs/brainstorming-session-results-2025-11-11.md`
|
|
- Rencana UAT: `docs/mbg-lms-uat-plan.md`
|
|
|
|
## Snapshot Arsitektur
|
|
Aplikasi frontend satu bagian (Next.js) dengan modul fitur:
|
|
- Halaman learner/admin di `src/app`
|
|
- State berbasis Context untuk auth dan persistensi ujian
|
|
- Feature flags mengisolasi modul opsional (reward, AI)
|
|
- Event bus menyediakan event bertipe antar fitur
|
|
|
|
## Langkah Memulai
|
|
1. Install dependensi: `npm install`
|
|
2. Jalankan server dev: `npm run dev`
|
|
3. Buka `http://localhost:3000`
|
|
4. Jalankan pemeriksaan tipe dan test sebelum perubahan: `npm run type-check && npm test`
|
|
|
|
## Catatan
|
|
- Dokumentasi brownfield sudah cukup untuk lanjut ke langkah perencanaan `tech-spec`.
|
|
- Gunakan `docs/mbg-lms-codebase-sync.md` untuk rujukan path yang lebih dalam. |