Epic 2 — Course & Learning Management (detailed) Goal: bangun pengalaman inti “course → lesson → progress” yang lengkap untuk Learner dan Admin pada frontend (mock-backend). Fitur ini menyediakan listing course, detail course, lesson viewer (video/text/pdf), progress tracker, enrollment, and simple content management for Admin --- Personas Learner — mengakses daftar course, membuka lesson, mengikuti course, melihat progress, menandai selesai. Admin — membuat/ubah/hapus course & lesson (via UI mock), lihat peserta, atur course visibility. US-201 — Course list (Learner) Ringkasan: Sebagai Learner, saya ingin melihat daftar course yang tersedia agar saya bisa memilih untuk belajar. AC (Acceptance Criteria): Tersedia halaman courses Pagination / infinite scroll tersedia jika > 20 items (mock). Sorting (Newest, Popular) dan filter (category). UI components: CourseList, CourseCard, FilterBar, Pagination TC-US-201-01: open courses → lihat minimal 6 card; filter courses shown. --- US-202 — Course detail (Learner) Ringkasan: Sebagai Learner, saat membuka course, saya ingin melihat detail course, daftar lessons, quiz yang terkait, dan progress saya. --- US-203 — Enrollment flow (Learner) Ringkasan: Sebagai Learner, saya ingin mendaftar/enroll ke course agar dapat membuka lesson. US-204 — Lesson viewer (multiple content types) Ringkasan: Sebagai Learner, saya ingin membuka lesson yang bisa berupa video / text / pdf sehingga saya bisa belajar. US-205 — auto Mark lesson complete & sequential gating jika video/belajar selesai Ringkasan: Sebagai Learner, setelah menyelesaikan lesson, saya ingin menandai complete supaya progress course bertambah dan lesson berikutnya unlock. TC-US-205-01: mark lesson complete -> next lesson unlocks. --- US-206 — Progress tracking & resume Ringkasan: Sebagai Learner, saya ingin melihat ringkasan progress per course dan resume from last lesson. TC-US-206-01: after two lessons completed, progress shows 40% and resume button points to correct lesson. --- US-207 — Create / Edit Course (Admin) Ringkasan: Sebagai Admin, saya ingin bisa membuat dan mengedit course TC-US-207-01: Admin create course with title -> visible in course list. --- US-208 — Add / Edit Lessons (Admin) Ringkasan: Sebagai Admin, saya ingin menambah lesson ke course (type: video/text/pdf) sehingga konten bisa disusun. TC-US-208-01: create video lesson -> appears in course detail list. --- US-209 — Search & Filter courses (Learner) Ringkasan: Sebagai Learner, saya ingin mencari course by keyword and filter by category & free/paid. TC-US-209-01: search "productivity" -> results include courses with that keyword. --- US-212 — Content access rules & visibility (Admin) Ringkasan: Sebagai Admin, saya ingin bisa set course visibility (public, private, by-invite) untuk kontrol akses. AC: --- US-213 — Light analytics for Admin (Course-level) Ringkasan: Sebagai Admin, saya ingin melihat metrics per course: enrolled users, completed %, average score