Commit Graph
93 Commits
Author SHA1 Message Date
Novy San87 e20cb2d478 feat(parent): kirim rejection_reason ke app wali + izinkan tautkan ulang setelah ditolak (link rejected dibuka lagi jadi pending/active) 2026-08-07 10:43:27 +07:00
Novy San87 503e910e18 feat: sinkronisasi foto siswa dari kesiswaan (photo_url PAS FOTO) + API wali return URL absolut 2026-08-07 08:27:44 +07:00
Novy San87 2b354e9e46 fix: laporan rekap pakai snapshot student_class (kelas saat pelanggaran) — akurat walau siswa naik kelas/lulus 2026-08-06 23:10:22 +07:00
Novy San87 27e1e71fc9 fix: Export Excel kini mengikuti semua filter (periode, kelas, jenis pelanggaran) + scope wali kelas 2026-08-06 23:04:19 +07:00
Novy San87 f5a24a4cf0 chore: hapus debug log sementara di pdf() 2026-08-06 23:03:08 +07:00
Novy San87 fe6c34abce debug: log filter saat cetak PDF (sementara) 2026-08-06 22:58:19 +07:00
Novy San87 0013facf5f feat: filter Jenis Pelanggaran di Laporan Rekap — dropdown kategori+jenis (poin), berlaku untuk tampilan & cetak PDF 2026-08-06 22:43:27 +07:00
Novy San87 6524cb8616 ui(premium): Verifikasi Wali — header gradien + badge SiMURID, 4 kartu statistik, kartu antrean premium (avatar gradien + badge relasi + chip NISN + HP), tombol setujui/tolak gradien, konfirmasi Swal + alasan penolakan, tabel riwayat premium 2026-08-06 22:34:54 +07:00
Novy San87 5b66339951 fix: simpan nomor HP wali saat registrasi & taut anak → kolom HP terisi, backfill data siswa saat approve jalan, auto-verifikasi kini benar-benar berfungsi (diuji end-to-end +62 vs 0) 2026-08-06 22:10:34 +07:00
Novy San87 505d060df2 feat: Logout jarak jauh wali — cabut semua token Sanctum dari panel admin, app langsung 401 → login ulang 2026-08-06 22:03:05 +07:00
Novy San87 5a968932a4 fix: hapus akun wali juga cabut token Sanctum → app langsung 401 2026-08-06 22:00:06 +07:00
Novy San87 c8f90866ca feat: hapus akun wali murid — tombol Hapus + konfirmasi Swal, hapus user + tautan anak + perangkat (data siswa aman) 2026-08-06 21:57:18 +07:00
Novy San87 25502b99f3 feat: Data Wali Murid diperkaya — relasi (Ayah/Ibu/Wali), email, status akun, perangkat & last active (fix $pending/$baruMingguIni) 2026-08-06 21:52:07 +07:00
Novy San87 d83689a95b ui(premium): Data Wali Murid — header gradien + badge SiMURID, 4 kartu statistik, search premium, tabel dengan avatar gradien & badge status pulsing, tombol reset gradien amber 2026-08-06 21:47:44 +07:00
Novy San87 eb6d8c4256 feat: Data Wali Murid terpisah — halaman khusus (daftar akun + anak + reset password), user internal difilter dari role parent 2026-08-06 21:44:52 +07:00
Novy San87 c1cdc016ba feat: endpoint prestasi siswa (student_achievements kesiswaan) 2026-08-06 21:06:56 +07:00
Novy San87 3f780814e2 feat: endpoint kelas (wali kelas dari kesiswaan + teman sekelas) + koneksi DB kesiswaan 2026-08-06 20:44:31 +07:00
Novy San87 d9af7ef45d feat: notifikasi + push Informasi Sekolah ke semua wali (broadcast, dedupe per hari) 2026-08-06 20:25:24 +07:00
Novy San87 c3bda9c0cf feat: summary kehadiran berbasis hari (1 hari = 1 status utama) 2026-08-06 20:15:31 +07:00
Novy San87 30de2850f7 feat: is_read di violation_notifications + unread count + mark all read 2026-08-06 18:39:02 +07:00
Novy San87 8f866737a0 feat: endpoint notifikasi unread count (7 hari) 2026-08-06 18:34:26 +07:00
Novy San87 d3825df488 rebrand: fallback FCM SiMURID 2026-08-06 18:04:58 +07:00
Novy San87 3f25ca6c8a feat: endpoint nilai wali (teacher_grades e-jurnal per mapel + rata-rata) 2026-08-06 13:10:41 +07:00
Novy San87 9078377e7e feat: notifikasi kehadiran ke wali per sesi (hadir/izin/sakit) saat sync e-jurnal + fix violation_id nullable 2026-08-06 13:05:59 +07:00
Novy San87 1b49270c4a feat: endpoint statistik pelanggaran wali (kategori, jenis, tren 6 bulan) 2026-08-06 12:52:25 +07:00
Novy San87 86950060fc feat: kalender akademik — tabel + seed 66 event TA 2026/2027 + endpoint 2026-08-06 12:47:45 +07:00
Novy San87 e7c146a6bb feat: endpoint riwayat poin wali (events + monthly 6 bulan) 2026-08-06 12:41:27 +07:00
Novy San87 75bafa4997 feat: endpoint attendance sertakan detail per jam (waktu time_slots + mapel schedule) 2026-08-06 12:16:06 +07:00
Novy San87 3c6f35f23c feat: endpoint rekap kehadiran wali (per tanggal + ringkasan bulan) 2026-08-06 11:06:28 +07:00
Novy San87 8d10ca3edf feat: jadwal sertakan nama guru (join teachers+users) 2026-08-06 11:00:11 +07:00
Novy San87 e4d3bc19bb feat: endpoint jadwal pelajaran wali (koneksi DB e-jurnal, grouping per hari) 2026-08-06 10:55:09 +07:00
Novy San87 cebb32c248 fix: hapus otomatis token FCM yang UNREGISTERED saat kirim gagal 404 2026-08-06 10:33:18 +07:00
Novy San87 744b1241b8 feat: endpoint push-debug untuk diagnosis FCM web 2026-08-06 09:10:46 +07:00
Novy San87 18a3875d2c fix: ParentStudentController tidak bisa panggil studentPayloads() yang protected → public 2026-08-06 09:08:46 +07:00
Novy San87 d43d99585a chore: log kegagalan FCM di level error (LOG_LEVEL=error) + gitignore storage/firebase 2026-08-06 08:47:32 +07:00
Novy San87 b4d212ad0e feat: FCM push notification wali (HTTP v1 + service account) — otomatis saat pelanggaran/SP, platform web didukung, command fcm:test 2026-08-06 07:19:36 +07:00
Novy San87 921a3495db feat: API informasi sekolah hanya menampilkan info dengan tanggal hari ini 2026-08-05 21:13:29 +07:00
Novy San87 31643ff7dc feat: menu & API Informasi Sekolah untuk aplikasi wali
- Tabel school_informations (judul, isi, kategori, tanggal kegiatan, publish)
- Menu admin 'Informasi Sekolah' (CRUD + permission manage-school-info)
- API wali: GET /parent/school-informations (hanya yang dipublikasikan)
- 2 data contoh: Jadwal UTS & Class Meet
- Test suite tetap hijau (39 test)
2026-08-05 21:11:06 +07:00
Novy San87 1cb1cb0569 feat: endpoint parent/school-info (data sekolah dinamis dari settings) 2026-08-05 21:05:27 +07:00
Novy San87 a032b55025 feat: data kehadiran harian di summary API wali
- Relasi Student::attendances
- Summary wali kini menyertakan attendance.today_status (status jam pelajaran pertama hari ini) + school_start 07:00
2026-08-05 20:51:04 +07:00
Novy San87 3efce0f919 feat: API wali murid (Sanctum) + verifikasi admin
- Pasang laravel/sanctum, routes/api.php (prefix api/v1, 10 endpoint)
- Migrasi: parent_name di students, parent_students (pivot wali↔anak),
  parent_devices (token FCM), permission parents-verify
- Auth wali: registrasi NISN+HP (auto-verify jika HP cocok data siswa,
  pending jika tidak) + login token Sanctum
- Endpoint: me, logout, students, link anak, violations, sp-letters,
  notifications, register device
- Halaman admin Verifikasi Wali (approve/reject) + menu sidebar
- Sync kesiswaan: tarik data orang tua (student_parents) ke students
- 8 feature test baru (ParentApiTest) — total suite 39 test hijau
2026-08-05 18:58:29 +07:00
Novy San87 04ddadce19 Face scan: tampilkan hanya kandidat dengan skor >= 0.45 (ambang cocok microservice) — kandidat skor rendah tidak muncul lagi, hanya siswa yang dikenali 2026-08-05 18:26:19 +07:00
Novy San87 279ef07ae2 Sederhanakan ambang SP: hapus kolom max_points
- max_points tidak pernah dipakai logika penerbitan SP (trigger hanya baca
  min_points: level dgn ambang tertinggi <= total poin siswa)
- Migrasi drop kolom; model, MasterDataController, ResetController (seeder)
  dibersihkan; form Ambang SP & form tambah cukup satu angka (Min Poin)
- Dashboard Ambang SP: batas atas level dihitung dari min_points level
  berikutnya (level terakhir = tak terbatas), urutan dijamin orderBy min_points
- Test: 29 passed / 99 assertion
2026-08-03 14:22:44 +07:00
Novy San87 e815bd28d5 Admin dikecualikan dari aturan 1 akun 1 sesi
- LoginController: admin tidak ditolak saat login kedua (multi-sesi boleh)
- Middleware SingleSession: admin tidak ditendang walau sesi ≠ token aktif
- Alasan: admin terkunci = tidak ada yang bisa Paksa Logout akun lain
- 2 test baru (login kedua admin diterima; middleware tidak menendang admin)
2026-08-03 14:13:09 +07:00
Novy San87 8e625f86e0 Sesi login: lifetime 5 menit + sesi kadaluarsa dianggap mati
- SESSION_LIFETIME=5 di .env (sebelumnya 120 menit idle)
- User::sessionTokenIsAlive() kini cek umur sesi (file mtime / DB last_activity)
  vs masa hidup, bukan sekadar ada/tidaknya file — user yang sesinya habis
  langsung bisa login lagi tanpa nunggu GC atau Paksa Logout
- 2 test baru (sesi kadaluarsa → boleh login; sesi fresh → tetap terkunci)
2026-08-03 14:11:00 +07:00
Sari 0aa8beee83 feat: single session per akun — login kedua ditolak jika sesi aktif, middleware SingleSession menendang sesi lain, logout membersihkan token, tombol Paksa Logout di manajemen user; 5 feature test 2026-08-03 10:29:26 +07:00
Sari 64863456ee kop Surat Peringatan disamakan dengan format resmi (logo lambang Jatim bersih + 6 baris + garis tebal, nama sekolah satu baris via nowrap) + refactor schoolSettings() 2026-08-03 10:14:00 +07:00
Sari 3bfad9cf42 hak akses konsisten: sidebar Master Data pakai permission per-menu (+directive canAnyPermission); FIX direktif canPermission pakai canPermission() model (sebelumnya hanya role kolom — multi-role & user tanpa kolom role tidak dapat menu) + test 2026-08-03 09:58:52 +07:00
Sari 465be127ec update hak akses role: view-point-audit terkunci 'Khusus Admin' (badge + kunci di UI, proteksi di backend update()) + test 2026-08-03 09:51:28 +07:00
Sari 156841a4e7 fix: kirim WA tidak menutup aplikasi — fetch AJAX + SweetAlert dengan tombol Buka WhatsApp (tab baru, aplikasi tetap terbuka) + test JSON 2026-08-03 09:46:00 +07:00