# Checklist Manual Fase 5B — Lampiran Materi

1. Backup folder proyek dan database, lalu jalankan `D:\XAMPP\php\php.exe database\migrate.php`.
2. Login sebagai Guru dan buka **Materi → Tambah Materi**; pastikan materi tanpa lampiran tetap dapat disimpan.
3. Edit materi tersebut dan unggah satu PDF valid berukuran di bawah 5 MB.
4. Unggah satu JPG/JPEG valid dan satu PNG valid; pastikan preview/nama/ukuran tampil.
5. Buka seluruh lampiran dari halaman Guru; pastikan PDF/gambar tampil dan URL tidak memuat path `storage`.
6. Ubah urutan lampiran, simpan, lalu muat ulang; pastikan urutan berubah.
7. Nonaktifkan satu lampiran dan pastikan badge berubah menjadi **Disembunyikan**.
8. Login sebagai Siswa, buka materi terkait, dan pastikan hanya lampiran aktif yang tampil.
9. Dari halaman Siswa, buka gambar, lihat PDF, dan coba tombol Unduh.
10. Coba membuka ID lampiran nonaktif sebagai Siswa melalui URL; hasil harus 404/tidak tersedia.
11. Coba membuka route `/guru/materi/lampiran/...` sebagai Siswa; akses harus ditolak.
12. Unggah file yang diganti ekstensi menjadi `.jpg` atau `.pdf`; MIME palsu harus ditolak.
13. Unggah file lebih dari 5 MB; file harus ditolak tanpa HTTP 500.
14. Isi hingga lima lampiran, lalu coba lampiran keenam; sistem harus menolak batas jumlah.
15. Coba file bernama mencurigakan seperti `contoh.php.jpg`; sistem harus menolak.
16. Hapus satu lampiran dari halaman Guru; record dan file harus tidak dapat dibuka lagi.
17. Coba akses langsung `http://localhost/final_virtuallab/storage/materi-lampiran/...`; server harus menolak.
18. Uji halaman Guru dan Siswa pada HP/viewport sempit; tidak boleh ada horizontal overflow.
19. Jalankan `Ctrl+F5`, ulangi satu upload, lalu periksa `storage/logs/app.log` dan log Apache/PHP untuk fatal error baru.
20. Pastikan Materi, Kamera, Praktikum, Kuis, Teknik Visual, dan Digital Project lama tetap dapat dibuka.
