# Kebutuhan Produk

## Fungsional
1. Kelola identitas, program studi, periode, kurikulum, mata kuliah, dosen, ruang, dan kalender.
2. Rekam pendaftaran, seleksi, dokumen, keputusan penerimaan, dan konversi calon menjadi mahasiswa tanpa kehilangan riwayat.
3. Sediakan KRS dengan prasyarat, batas SKS, persetujuan, jadwal, dan periode yang dapat diatur.
4. Kelola jadwal, presensi, penilaian berbobot, publikasi nilai, KHS, dan transkrip sesuai aturan kampus.
5. Kelola tagihan/pembayaran secara tercatat; rekonsiliasi dan integrasi payment gateway menunggu keputusan.
6. Dukung layanan kemahasiswaan, tugas akhir, yudisium, wisuda, serta laporan operasional.
7. Sediakan RBAC, audit, ekspor terkontrol, dan sinkronisasi Feeder yang dapat dipantau.

## Nonfungsional
- PHP 8.3; Laravel 13; MySQL; UI Blade, Livewire, Alpine.js, Tailwind.
- Lokal: Laragon, `http://siakad.test`. Zona waktu aplikasi `Asia/Makassar`; locale `id_ID`; IDR.
- Tahun akademik dan semester bukan konstanta; admin berwenang mengelolanya.
- Aman untuk shared hosting: document root ke `public`, HTTPS, cron, SSH, penyimpanan rahasia di environment.
- Desain dapat dipindah ke VPS; pekerjaan berat dan bridge tidak boleh mengunci domain bisnis ke shared hosting.

## Kriteria penerimaan tingkat produk
- Admin dapat mengatur tahun akademik/semester dan kalender tanpa deploy ulang.
- Siklus KRS–jadwal–presensi–nilai–KHS terhubung ke mahasiswa, kelas, dosen, dan periode yang benar.
- Perubahan nilai/status penting menyimpan aktor, waktu, dan nilai sebelum/sesudah sesuai kebijakan.
- Pengguna tanpa izin tidak dapat mengakses atau mengubah data melalui URL langsung.
- Setiap ekspor/sinkronisasi dapat ditelusuri; kegagalan tidak diam-diam dianggap sukses.
- Uji restore membuktikan data dan konfigurasi yang diperlukan dapat dipulihkan.

## Terbuka
Rumus IPK, skala nilai, aturan SKS, batas presensi, biaya, retensi, SLO, dan kebijakan persetujuan harus disahkan kampus sebelum implementasi. Rincian di [workflow](07-alur-kerja.md) dan [keputusan](15-catatan-keputusan.md).
