Commit Graph
100 Commits
Author SHA1 Message Date
Novy San87 fb558bdce9 fix(sp-letters): nomor surat jadi huruf besar 'SP-2/001/08/2026' (generasi baru + data lama di-update) 2026-08-07 15:00:47 +07:00
Novy San87 911064805b fix(sp-letters): 'di tempat' → 'di Tempat' 2026-08-07 14:59:44 +07:00
Novy San87 f06fcdda98 fix(sp-letters): indent blok tanda tangan tambah 6 tab (total 24em) 2026-08-07 14:59:04 +07:00
Novy San87 a6db6ba6ff fix(sp-letters): indent blok tanda tangan tambah 6 tab (total 18em) 2026-08-07 14:58:27 +07:00
Novy San87 8670f786ea fix(sp-letters): indent blok tanda tangan tambah 6 tab (total 12em) 2026-08-07 14:57:46 +07:00
Novy San87 7494e8b9b1 fix(sp-letters): indent blok tanda tangan 5→6 tab 2026-08-07 14:57:06 +07:00
Novy San87 f15419e226 fix(sp-letters): blok tanda tangan diberi indent 5 tab 2026-08-07 14:56:25 +07:00
Novy San87 2e1e1bd2bf fix(sp-letters): tanggal tanda tangan jadi 'Wonorejo, 7 Agustus 2026' (setting school_place, default Wonorejo) 2026-08-07 14:55:38 +07:00
Novy San87 fd9620a3bd fix(sp-letters): spasi antar baris blok tanda tangan jadi 1 spasi 2026-08-07 14:54:43 +07:00
Novy San87 db999ffeb7 fix(sp-letters): blok tanda tangan (tanggal, Kepala, nama, NIP) rata kiri 2026-08-07 14:54:11 +07:00
Novy San87 1e2c53b522 fix(sp-letters): paragraf penutup diberi indentasi 2 tab 2026-08-07 14:52:51 +07:00
Novy San87 7b54d8dc33 fix(sp-letters): paragraf penutup — 'Saudara/i' diganti nama siswa (tebal) 2026-08-07 14:51:31 +07:00
Novy San87 c7dd8c5dfb fix(sp-letters): uraian pelanggaran tampil miring kecil di bawah jenis pelanggaran 2026-08-07 14:49:27 +07:00
Novy San87 e749c19073 fix(sp-letters): kolom 'Jenis Pelanggaran' tampilkan nama jenis pelanggaran (bukan description) 2026-08-07 14:48:16 +07:00
Novy San87 cf3a94794b fix(sp-letters): tanggal pelanggaran dikonversi ke Asia/Jakarta sebelum format — cegah geser -1 hari (snapshot tersimpan UTC) 2026-08-07 14:45:58 +07:00
Novy San87 a9efc83dab fix(sp-letters): tanggal pelanggaran jadi format 'Hari, 02 Agustus 2026' (locale id) 2026-08-07 14:43:13 +07:00
Novy San87 59981abab0 fix(sp-letters): daftar pelanggaran jadi tabel (Tanggal | Jenis | Point) + baris Total, tanpa bullet 2026-08-07 14:41:04 +07:00
Novy San87 c44eb84346 fix(sp-letters): paragraf pembuka diberi indentasi 2 tab (text-indent 2em) 2026-08-07 14:37:47 +07:00
Novy San87 670be7ebad fix(sp-letters): kalimat pembuka — 'kepada ananda NAMA (tebal)' menggantikan 'Saudara/i' 2026-08-07 14:36:47 +07:00
Novy San87 98614545fc fix(sp-letters): alamat 'Kepada Yth. Bapak/Ibu/Wali' + nama siswa uppercase langsung di bawahnya, jarak 1 spasi 2026-08-07 14:32:50 +07:00
Novy San87 fffb35e868 fix(sp-letters): rapatkan jarak judul SURAT PERINGATAN dengan Nomor surat (1 spasi) 2026-08-07 14:30:42 +07:00
Novy San87 743a4d39fa fix(sp-letters): kertas cetak F4 (210x330mm) dengan margin kiri-kanan 1cm 2026-08-07 14:29:42 +07:00
Novy San87 9877f93e8f fix(sp-letters): logo di cetakan pakai asset() URL, bukan public_path() filesystem — perbaiki logo pecah (kotak image) saat cetak surat 2026-08-07 14:28:46 +07:00
Novy San87 0d8c40af40 fix(modal): tambah overflow-hidden di container modal reset & tolak — sudut header gradien kini mengikuti radius container 2026-08-07 12:47:46 +07:00
Novy San87 44fde365d9 ui(reset-password): samakan dengan modal premium lain — container max-w-xl, header gradien amber-oranye, input pakai kelas .input seragam 2026-08-07 12:46:04 +07:00
Novy San87 2d2ff0dac0 ui(premium): modal Reset Password Wali custom (Alpine) — header ikon gradien amber, info card, input password + toggle show/hide, validasi inline, loading state; ganti SweetAlert polos 2026-08-07 12:40:27 +07:00
Novy San87 9e48b67e94 fix(parent): saat wali membuat link baru, hapus otomatis link REJECTED lain (NISN salah) — cegah siswa dobel di aplikasi 2026-08-07 10:54:22 +07:00
Novy San87 61b93a35ac ui(premium): modal Tolak Wali custom (Alpine) — header ikon gradien rose, kartu info, textarea alasan + counter 0/255, tombol loading state; ganti SweetAlert polos 2026-08-07 10:47:40 +07:00
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 42ffd893b2 ui(school-info): rombak kartu Tambah/Edit Informasi — kolom lebih lebar (2/5), header gradien dengan watermark & subtitle kontekstual, kategori jadi pill berwarna (6 pilihan), input berikon + counter judul 0/200, tanggal dengan hint badge Hari Ini, textarea berikon, toggle publikasi premium, tombol submit gradien dengan ikon dinamis 2026-08-07 09:53:51 +07:00
Novy San87 eef1d8d1fa fix(school-info): perbaiki 3 bug — @json ganti @js (x-data rusak karena quote tidak ter-escape), _method pakai :value PUT/POST (create tidak lagi 405/500), pastikan edit memuat data benar 2026-08-07 09:50:14 +07:00
Novy San87 9b821602a0 ui(premium): poles halaman Informasi Sekolah — breadcrumb, hero gradien, 4 KPI, filter live (cari/kategori/status), kartu premium per kategori, form sticky dengan header gradien 2026-08-07 09:39:32 +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 c80f968abd fix(nyata): buang Alpine x-model dari form filter laporan — konflik x-model membuat select class/jenis tidak ikut terkirim (bukti log: class_id & violation_type_id null); ganti preset/reset ke JS vanilla 2026-08-06 23:00:08 +07:00
Novy San87 fe6c34abce debug: log filter saat cetak PDF (sementara) 2026-08-06 22:58:19 +07:00
Novy San87 1a7c18ce07 fix: tombol Cetak PDF & Export Excel jadi submit native di dalam form (formaction) — pasti membawa semua filter 2026-08-06 22:54:50 +07:00
Novy San87 7c0f1dc02a fix: tombol Cetak PDF/Export Excel kirim filter via state Alpine (class+jenis) — bukan atribut form yang kadang tidak membawa nilai 2026-08-06 22:52:01 +07:00
Novy San87 558bb883ad fix(ui): tata ulang filter laporan — 4 kolom rapi (tanggal/kelas/jenis), tombol Terapkan+Reset+Cepat satu baris terpisah, perbaiki div tak seimbang 2026-08-06 22:45:07 +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 7ed2d7e1b3 fix: icon FA7 — megaphone/clipboard-user tidak ada di FontAwesome 7, ganti tower-broadcast & user-clock 2026-08-06 22:42:05 +07:00
Novy San87 8da3f6fac4 fix: icon sidebar wali — daftarkan house-user/clipboard-user/megaphone ke mapping nav-item (sebelumnya jatuh ke default circle) 2026-08-06 22:40:38 +07:00
Novy San87 940bba8a6a ui: ganti icon sidebar — Data Wali Murid (house-user), Verifikasi Wali (clipboard-user), Informasi Sekolah (megaphone) 2026-08-06 22:38:59 +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 dc211f3e05 fix: status akun di Data Wali Murid ikut status verifikasi tautan — pending tampil 'Menunggu verifikasi' (bukan aktif) 2026-08-06 22:32:36 +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 6907ee2968 chore: ignore build preview Flutter (aplikasi-wali, preview, apk) 2026-08-05 20:51:09 +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 b06419624b Fix viewfinder hilang: aspect-[3/4] tidak di-generate Tailwind v4 → CSS manual .face-viewfinder (3:4 HP, 4:3 desktop) 2026-08-05 18:29:26 +07:00
Novy San87 28abd132c9 Face scan: viewfinder lebih lega di HP (rasio 3:4 potret) — desktop tetap 4:3 2026-08-05 18:28:16 +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 381f087a51 Face scan: ganti library deteksi MediaPipe WASM → face-api.js (tfjs + tinyFaceDetector) — kompatibilitas browser HP jauh lebih baik, model 193KB self-host 2026-08-05 18:20:02 +07:00
Novy San87 4ff1e4495f Face scan: ganti model deteksi ke blaze_face_full_range — jangkauan lebih luas (wajah sedang/jauh), tidak hanya wajah dekat 2026-08-05 18:17:23 +07:00
Novy San87 324d9d55d8 Face scan: sensitivitas deteksi dinaikkan — minDetectionConfidence 0.5→0.35, resolusi kamera 1280→960 (frame lebih cepat di HP) 2026-08-05 18:15:44 +07:00
Novy San87 586fbc3a56 Face scan: hapus UI indikator liveness (Kedip/Senyum/3D/Gerak) — mode tanpa liveness bersih 2026-08-05 18:14:39 +07:00
Novy San87 1019ac34e1 Face scan: kembali ke mode tanpa liveness — wajah cocok langsung selesai (sesuai permintaan) 2026-08-05 18:12:37 +07:00
Novy San87 1ed6fb43f1 Face scan: gerak (motion) ikut jadi sinyal penerimaan — praktis di kamera HP; foto diam tetap tertolak; auto-accept tidak lagi bergantung landmarker 2026-08-05 18:09:10 +07:00
Novy San87 28432a7999 Face scan: longgarkan threshold liveness utk kamera HP — EAR_CLOSED 0.20→0.24 (kedip mudah terbaca), SMILE_MIN 0.35→0.25 (senyum tipis cukup), DEPTH_MIN 0.03→0.02 2026-08-05 18:04:14 +07:00
Novy San87 63bdadcdd2 Poles halaman Pengaturan premium
- Header card gradient biru + watermark, judul extrabold
- Input/label seragam (.input, label xs bold slate)
- 5 seksi dengan icon chip: Identitas (school), Kop Surat (file-lines),
  Background Login (image), Kepala Sekolah (user-tie), Template WA
  (whatsapp brand)
- Tombol Simpan Pengaturan btn-primary full-width
- Perbaiki label Nama Kepala Sekolah yang sempat hilang + keseimbangan div
- Test 31/105 hijau
2026-08-03 18:59:10 +07:00
Novy San87 187be9676b Fix sidebar blokir scroll halaman di desktop
- Hapus overscroll-contain dari nav sidebar: kelas ini memblokir scroll
  chaining ke body, sehingga saat mouse di sidebar & menu pendek, roda
  scroll tidak menggulir halaman utama
- Sekarang scroll mengalir normal: menu sidebar habis → lanjut ke halaman
2026-08-03 18:55:17 +07:00
Novy San87 3170d7deb4 Fix tumpang tindih icon & placeholder di input pencarian
- Kelas kustom (.input/.btn-primary/.btn-outline/.card) dibungkus
  @layer components — sebelumnya unlayered sehingga menang atas utility
  Tailwind (pl-9 dll), membuat icon search menimpa placeholder
- Sekarang utility (layer utilities) bisa menimpa komponen sesuai urutan
  layer CSS (base < components < utilities)
2026-08-03 18:39:58 +07:00
Novy San87 57d618a1ad Poles halaman Input Pelanggaran premium
- Breadcrumb chevron + slate, judul extrabold
- Header form: gradient lebih dalam (blue-600→sky-400) + watermark gavel
- Section label slate seragam (5 bagian), input pakai sistem .input
- Tombol Pilih File/Ambil Foto/Batal btn-outline, Simpan btn-primary
- Logika Alpine tidak disentuh
2026-08-03 18:37:26 +07:00
Novy San87 4dce2ad1d3 Poles halaman Jenis Pelanggaran premium
- Header: tombol Download/Export/Import btn-outline, Tambah btn-primary
- Filter: input .input, tombol Filter/Reset sistem
- Tabel: thead slate, kategori jadi pill warna, poin +icon bolt, aksi
  pill Edit/Nonaktifkan/Aktifkan konsisten, badge Sistem + x-tooltip,
  empty state gradient
- Modal CRUD & Import: header gradient biru-indigo, .input seragam,
  toggle iOS + glow, tombol btn
2026-08-03 18:23:04 +07:00
Novy San87 d6fa338921 Modal kategori: overlay blur konsisten (bg-slate-900/50 backdrop-blur-sm) 2026-08-03 18:20:45 +07:00
Novy San87 eec19d9a4f Poles halaman Kategori Pelanggaran premium
- Kartu: strip gradient warna, icon chip gradient, badge 'X jenis' + urutan,
  hover lift, label Nonaktif, aksi Edit/Nonaktifkan/Aktifkan pill + icon FA
- Empty state icon gradient + tombol btn-primary
- Modal: header gradient biru-indigo, input .input seragam, color picker +
  8 preset swatch, toggle status iOS + glow, preview, tombol btn-primary/
  btn-outline
2026-08-03 18:17:55 +07:00
Novy San87 c1b8a083f7 Brand area sidebar: tinggi eksplisit h-16 (sama persis topbar) + items-center 2026-08-03 18:15:32 +07:00
Novy San87 3e0c526daf Sejajarkan tinggi brand area sidebar dengan topbar (64px) 2026-08-03 18:14:11 +07:00