Teknologi yang Digunakan
- PHP 8.3+
- MySQL / MariaDB
- Bootstrap 5
- AdminLTE 4 atau CoreUI
- JavaScript ES6
- AJAX Fetch API
- SweetAlert2
- DataTables
- Chart.js
- Composer (autoload)
- PHPMailer
- QR Code Library
- DomPDF
Struktur Folder
student-attendance/ │ ├── app/ │ ├── Core/ │ ├── Helpers/ │ ├── Libraries/ │ ├── Middleware/ │ ├── Config/ │ └── Modules/ │ ├── public/ │ ├── assets/ │ ├── uploads/ │ └── index.php │ ├── storage/ │ ├── routes/ │ ├── vendor/ │ └── database/
Struktur Modules
Modules/ Dashboard/ Auth/ Master/ Absensi/ Kelas/ Siswa/ Guru/ Jadwal/ Mapel/ Laporan/ Pengaturan/ Api/ Whatsapp/ Notification/ Backup/ Logs/
Setiap module berdiri sendiri.
Contoh
Modules/ Siswa/ Controller/ Model/ Views/ Routes/ Config/ Assets/
Module Login
Menu
- Login
- Logout
- Lupa Password
- OTP Email
- Ganti Password
- Profile
Role
- Super Admin
- Kepala Sekolah
- Guru
- Wali Kelas
- Tata Usaha
- Orang Tua
- Siswa
Module Dashboard
Dashboard berbeda sesuai role.
Widget
- Total Siswa
- Total Guru
- Total Kelas
- Hadir Hari Ini
- Terlambat
- Izin
- Sakit
- Alpha
Grafik
- Grafik Kehadiran
- Grafik Per Kelas
- Grafik Bulanan
- Statistik Absensi
Module Master Siswa
Data
- NIS
- NISN
- Nama
- Jenis Kelamin
- Tempat Lahir
- Tanggal Lahir
- Agama
- Alamat
- Nomor HP
- Orang Tua
- Foto
- QR Code
- RFID
- Status
Fitur
- Import Excel
- Export Excel
- Export PDF
- Cetak Kartu
- Upload Foto
Module Guru
Data Guru
- NIP
- Nama
- Mata Pelajaran
- HP
- Foto
Module Kelas
Master
- Tingkat
- Jurusan
- Ruang
- Wali Kelas
Module Mata Pelajaran
- Nama
- Kode
- Jam
- Guru
Module Jadwal
Jadwal mengajar
- Hari
- Jam
- Guru
- Kelas
- Mapel
Module Absensi
Jenis Absensi
- Hadir
- Terlambat
- Izin
- Sakit
- Alpha
Metode Absensi
- Manual
- QR Code
- RFID
- NFC
- Fingerprint API
- Face Recognition API
- GPS
- Self Check-in
Alur Absensi
Login Guru
↓
Pilih Kelas
↓
Pilih Mata Pelajaran
↓
Pilih Jam
↓
Daftar Siswa
↓
Centang Kehadiran
↓
Simpan
↓
Notifikasi Orang Tua
Absensi QR Code
Setiap siswa memiliki QR unik.
Scan
↓
Validasi
↓
Cek Jadwal
↓
Cek Jam
↓
Simpan Absensi
↓
Kirim Notifikasi
Module Laporan
Laporan
- Harian
- Mingguan
- Bulanan
- Semester
- Tahunan
Filter
- Kelas
- Guru
- Mata Pelajaran
- Siswa
Export
- Excel
Module Orang Tua
Dashboard
- Kehadiran Anak
- Grafik
- Riwayat
- Notifikasi
Module WhatsApp Gateway
Otomatis mengirim
Ananda : Nama : Kelas : Hari ini : ✔ Hadir Jam Masuk : 07:03 Terima kasih.
Notifikasi
- Hadir
- Terlambat
- Tidak Hadir
- Izin
- Sakit
Module API
REST API
GET /api/student POST /api/attendance GET /api/class GET /api/report
Authentication
- JWT
- API Key
Module Pengaturan
Sekolah
- Nama
- Logo
- Alamat
- Tahun Ajaran
- Semester
Module Backup
- Backup Database
- Restore
- Download
Module Audit Log
Mencatat
- Login
- Logout
- Edit Data
- Hapus
- Import
- Export
- Absensi
Hak Akses (RBAC)
| Modul | Admin | Guru | Wali Kelas | Orang Tua | Siswa |
|---|---|---|---|---|---|
| Dashboard | ✅ | ✅ | ✅ | ✅ | ✅ |
| Siswa | ✅ | π | π | ❌ | π |
| Guru | ✅ | π | ❌ | ❌ | ❌ |
| Absensi | ✅ | ✅ | ✅ | π | π |
| Laporan | ✅ | ✅ | ✅ | π | π |
| Pengaturan | ✅ | ❌ | ❌ | ❌ | ❌ |
Database Utama
users roles permissions user_roles students parents teachers classes subjects schedules attendance attendance_details school_years semesters notifications audit_logs settings uploads
Fitur Modern
- Responsive Mobile First
- Progressive Web App (PWA)
- Dark Mode
- Dashboard Interaktif
- AJAX Tanpa Reload
- Auto Save Form
- Real-time Notification
- QR Code & Barcode
- Integrasi WhatsApp Gateway
- Import/Export Excel
- Export PDF
- REST API
- Multi Role & Multi User
- Audit Trail
- Soft Delete
- Backup Otomatis
- Activity Log
- Cache Management
- CSRF Protection
- Rate Limiting Login
- Enkripsi Password (bcrypt/Argon2)
- Logging Error Terpusat
- Modular Plugin System untuk penambahan fitur baru tanpa mengubah inti aplikasi.
Rekomendasi Arsitektur
Untuk aplikasi yang akan terus berkembang, gunakan pola Modular MVC sehingga setiap fitur (misalnya Absensi, Siswa, Guru, atau Laporan) memiliki Controller, Model, Views, Routes, dan Config sendiri.

.webp)
0 Komentar