How rexshin1/absensi-iot works
The product is a Laravel-backed IoT attendance and health-monitoring system. ESP32 enrollment broadcasts fingerprint IDs for browser enrollment; attendance scans record BPM and attendance. Admin workflows manage student records and inspect daily analytics and historical attendance/health recaps. The README documents the Pusher-to-browser enrollment flow; browser-side subscription code is not in the sampled sources, so that link reflects documentation rather than inspected implementation.
Main entry points: DashboardController.php Admin dashboard · EnrollmentController.php Enrollment API · AttendanceController.php Attendance API · api.php API routes
Components 17
IoT workflows
- Enrollment API
app/Http/Controllers/Api/EnrollmentController.php - Attendance API
app/Http/Controllers/Api/AttendanceController.php - Fingerprint event
app/Events/FingerprintScanned.php
Admin workflows
- Admin dashboard
app/Http/Controllers/DashboardController.php - Dashboard view
resources/views/dashboard/index.blade.php - Student screens
resources/views/students/index.blade.php - Attendance recap
resources/views/attendance/recap.blade.php - Master data view
resources/views/master-data/index.blade.php
Backend services
- API routes
routes/api.php - Athlete records
app/Models/Athlete.php - Attendance records
app/Models/Attendance.php - Student records
app/Models/User.php - Device mode cache
app/Http/Controllers/Api/EnrollmentController.php - Web routes
routes/web.php
Other components
- ESP32 sensors
- Pusher Channels
- Browser client
Connections 21
- ESP32 sensors → API routes: sends HTTP
- API routes → Enrollment API: dispatches enrollment
- API routes → Attendance API: dispatches attendance
- Enrollment API → Fingerprint event: fires event
- Fingerprint event → Pusher Channels: broadcasts ID
- Pusher Channels → Browser client: sends WebSocket event
- Enrollment API → Athlete records: looks up fingerprint
- Enrollment API → Device mode cache: reads/writes mode
- Attendance API → Athlete records: finds athlete
- Attendance API → Student records: looks up user
- Attendance API → Attendance records: creates record
- Browser client → Web routes: requests pages
- Web routes → Admin dashboard: dispatches web actions
- Admin dashboard → Dashboard view: renders dashboard
- Admin dashboard → Student screens: renders student screens
- Admin dashboard → Attendance recap: renders recap
- Admin dashboard → Master data view: renders master data
- Admin dashboard → Attendance records: reads attendance
- Admin dashboard → Athlete records: reads athlete totals
- Admin dashboard → Student records: reads/writes students
- Admin dashboard → Device mode cache: sets device mode