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
