# Product Requirement Document (PRD)
**Nama Produk:** Sistem Perizinan Santri Digital Berbasis QR Code
**Teknologi Utama:** CodeIgniter 4, Tailwind CSS, MySQL, JavaScript (HTML5-QRCode Scanner)

## 1. Ringkasan Produk
Aplikasi berbasis web untuk mendigitalisasi proses birokrasi perizinan keluar/pulang santri di pondok pesantren. Menggantikan kartu izin fisik dengan e-ticket berbasis dynamic QR Code yang divalidasi langsung oleh pihak keamanan/pos gerbang.

## 2. Peran Pengguna (User Roles) & Hak Akses
| Role | Tanggung Jawab Utama | Akses Fitur Kunci |
|---|---|---|
| **Wali Santri** | Mengajukan izin dan memantau status anak | Pengajuan izin, e-ticket QR Code, riwayat kepulangan santri. |
| **Kesantrian** | Memvalidasi dan menerbitkan izin | Verifikasi pengajuan (Approve/Reject), Direct Issue izin, master data santri & pelanggaran. |
| **Keamanan (Satpam)** | Memeriksa fisik santri di pos gerbang | Scanner kamera QR Code, update status riil (Keluar / Kembali). |
| **Super Admin** | Tata kelola sistem | Manajemen user/role, konfigurasi kuota izin, audit log, backup database. |

## 3. Fitur Utama & Alur Kerja
### 3.1. Pengajuan oleh Wali Santri (Flow 1)
- **Submit Formulir:** Wali santri memilih nama santri, jenis izin, tanggal, alasan, dan dokumen pendukung.
- **Review Kesantrian:** Status izin pending, di-review oleh Kesantrian.
- **Penerbitan QR Code:** E-ticket diterbitkan setelah disetujui.

### 3.2. Pembuatan Izin Langsung oleh Kesantrian (Flow 2)
- **Direct Create:** Untuk tugas pondok atau sakit mendadak.
- **Bypass Verifikasi:** Status langsung approved, QR Code otomatis terbit.

### 3.3. Validasi Gerbang Menggunakan QR Code
- **Check-Out (Keluar):** Satpam scan QR Code saat keluar -> status 'out'.
- **Check-In (Kembali):** Satpam scan saat kembali -> status 'completed'.
- **Deteksi Terlambat:** Otomatis menandai status 'overdue' dan mencatat poin pelanggaran jika melebihi batas.

## 4. Struktur Basis Data (MySQL Schema)
- `users`: Multi-role accounts.
- `santri`: Master data for students.
- `perizinan`: Transaction table for permits (tracking status, timestamps, and QR tokens).

## 5. Kebutuhan Teknis
- **Backend:** CodeIgniter 4 (RBAC, JWT/HMAC QR encryption).
- **Frontend:** Tailwind CSS (Mobile-first for parents/security).
- **Modul Scanner:** html5-qrcode library integration.