Migration: tambah kolom:
- attendances.class_name (varchar 100)
- violations.student_class (varchar 100)
- Backfill data existing dari students.class_name
Controller manual: simpan class_name dari form
Sync E-Jurnal: simpan class_name dari lookup student
ViolationService: ambil class_name dari student saat buat
Model: tambah ke fillable
Ini menjamin data historis tetap akurat meskipun
siswa naik kelas (X→XI→XII) di tahun ajaran baru.
- Multi-pilih pelanggaran dalam satu form input
- Export Excel dengan 19 kolom (termasuk data penanganan)
- Filter handling_status di index pelanggaran
- Handling info di riwayat pelanggaran siswa
- Fix format handled_at casting
- Perbaikan UI form input (5 bagian terstruktur, severity indicator)
- Fitur: input pelanggaran, sistem poin, surat peringatan otomatis, SP progress
- Realtime notifikasi via Laravel Reverb + Echo
- Dashboard statistik, manajemen user, manajemen master data
- Login 2 kolom premium, user dropdown, pengaturan akun
- Tema biru kalem, logo sekolah dinamis, sidebar brand dinamis
- Sinkronisasi siswa dari Database Kesiswaan via API