School HRIS
9-package school HR platform with RBAC
Problem
Islamic boarding schools (pesantren) in Indonesia struggle with:
- Manual attendance tracking for hundreds of students and staff
- No system for monitoring Quran memorization progress
- Fragmented employee data across spreadsheets
- Performance evaluation done on paper
- Inventory management for school assets done ad-hoc
Solution
A modular HRIS built with Laravel 12 + Filament 4, organized as 9 independent
package groups using nwidart/laravel-modules:
- Kepegawaian (Staff Management) — Employee profiles, contracts, history
- Presensi (Attendance) — GPS + QR Code scanning for staff and students
- Penilaian Kinerja (Performance) — KPI definition, appraisal forms, scoring
- Cuti (Leave) — Leave requests, approvals, balance tracking
- Akademik (Academic) — Student profiles, class assignments, QR attendance
- Al-Quran — Quran reading progress tracker with surah/juz completion
- Inventaris (Inventory) — Asset management with loan tracking
- Master Data — Reference data shared across all modules
- Resign & Pensiun (Resignation & Retirement) — Exit management
Key Tech Decisions
GPS + QR dual attendance
GPS verifies the staff member is physically at school (geofence check), while QR code acts as the “check-in” trigger. This prevents remote check-ins while keeping the UX simple. QR codes are generated per-employee and printed on ID cards.
Quran progress tracking as a domain-specific feature
Built a dedicated quran_progress table tracking per-student, per-surah, per-juz
completion status. This is a unique differentiator — no generic HRIS has this.
Teachers log progress via Filament forms; dashboards show class-wide statistics.
Module isolation via nwidart/laravel-modules
Each of the 9 package groups is an independent Composer-like module with its own:
- Migrations
- Models
- Filament resources, pages, widgets
- Service provider
- Routes
Modules use Laravel’s event system for cross-module communication (e.g.,
Kepegawaian fires EmployeeHired event → Presensi module auto-creates
attendance profile).
Metrics
| Metric | Value |
|---|---|
| Module Groups | 9 (Kepegawaian, Presensi, Akademik, etc.) |
| User Roles | 3 (Super Admin, PSDM, Kepala Sekolah) |
| Attendance Methods | GPS + QR Code |
| Export Formats | Excel (Maatwebsite) + PDF (DomPDF) |