� � EPIC 4 — Certificate & Completion � � Tujuan Utama Membangun sistem penyelesaian kursus dan sertifikat digital (certificate of completion) yang: ● Otomatis terbit ketika semua modul dan quiz telah selesai, ● Menampilkan data user, course, dan tanggal penyelesaian, ● Dapat diunduh (PDF / image) atau dibagikan melalui link, ● Memiliki nomor unik dan validasi sederhana, ● Dapat dikelola dan diverifikasi oleh Admin. � � Aktor / Role Role Kemampuan Learner Menerima, melihat, dan mengunduh sertifikat setelah menyelesaikan course Admin Melihat daftar sertifikat peserta, memverifikasi, atau membatalkan jika perlu Keterangan Akses /certificate/:id Akses /admin/certificate s � � User Stories & Acceptance Criteria US-401 — Menandai course sebagai selesai (auto completion) Sebagai Learner Saya ingin course otomatis dianggap selesai setelah semua lesson & quiz selesai, Agar sistem dapat memunculkan sertifikat tanpa perlu manual konfirmasi. Acceptance Criteria: ● Sistem memeriksa status setiap lesson & quiz di course. ● Jika semua complete & passing grade tercapai ● Tombol “Lihat Sertifikat” muncul otomatis. ● Progress bar mencapai 100%. US-402 — Menampilkan sertifikat digital (frontend) Sebagai Learner Saya ingin melihat sertifikat digital dengan data lengkap saya dan course, Agar saya bisa membuktikan penyelesaian pelatihan. US-403 — Mengunduh sertifikat dalam bentuk PDF Sebagai Learner Saya ingin mengunduh sertifikat saya dalam bentuk PDF, Agar bisa saya cetak atau kirim ke pihak lain. Acceptance Criteria: ● Tombol Download PDF tersedia di halaman sertifikat. ● Menggunakan html2pdf.js atau jspdf untuk generate file. ● Nama file otomatis: Certificate_[UserName]_[Course].pdf. ● Tampilan PDF identik dengan halaman sertifikat (A4). US-404 — Verifikasi sertifikat digital (mock validation) Sebagai publik (non-login user) Saya ingin bisa mengecek keaslian sertifikat berdasarkan nomor, Agar dapat memastikan sertifikat itu valid. Acceptance Criteria: ● Halaman publik /verify?cert=CERT-2025-0001. ● Input nomor sertifikat → klik “Verifikasi”. ● Mock API GET /certificate/verify/:number → mengembalikan status valid/invalid. ● Jika valid → tampil data pemilik & course. ● Jika invalid → tampil pesan “Nomor sertifikat tidak ditemukan.” US-405 — Daftar sertifikat (riwayat peserta) Sebagai Learner Saya ingin melihat daftar semua sertifikat yang pernah saya dapat, Agar saya bisa mengelolanya dari satu tempat. US-406 — Admin melihat dan memverifikasi sertifikat Sebagai Admin Saya ingin melihat daftar sertifikat seluruh peserta dan memverifikasinya, Agar saya dapat mengatur validitas dan audit training. Acceptance Criteria: ● Admin halaman menampilkan daftar sertifikat peserta. ● Kolom: User, Course, Issued Date, Status (Verified/Revoked). ● Admin dapat klik “Verify” / “Revoke”. ● Status berubah tanpa reload (optimistic update). US-407 — QR Code untuk verifikasi cepat (opsional) Sebagai siapa pun Saya ingin sertifikat memiliki QR code yang bisa discan ke halaman verifikasi, Agar bisa validasi lebih cepat. Acceptance Criteria: ● Sertifikat PDF menampilkan QR code yang mengarah ke /verify?cert=CERT-XXXX. ● Gunakan library qrcode.react atau qrcodejs.