College attendance and timetable management - built for real institutions.
Schedulify is a closed-source mobile application built for colleges to manage timetables and track student attendance using GPS-enforced, QR-based check-ins.
- Admin - Onboard a new college in 5 steps - no backend setup required. Manage departments, courses, classrooms, faculty, and students. Upload or AI-parse timetable data from CSV/text. Draw a geofence polygon on a live map to define the campus boundary. View live attendance sessions and audit logs.
- Faculty - See daily schedule and today's classes. Start an attendance session - a rotating QR code is displayed for students to scan. End the session and view the attendance record.
- Student - View enrolled courses and weekly timetable. Mark attendance by scanning the faculty's QR code. Location is verified against the campus geofence before the scanner opens. Attendance history is visible per course.
- Multi-tenant - each college has its own isolated Supabase project. A central vendor registry maps college IDs to credentials.
- GPS-enforced attendance - geofence is drawn by the admin. Students outside the boundary cannot open the scanner. Mock GPS is rejected.
- Rotating QR hashes - the QR code changes every 5 seconds using a deterministic SHA-256 hash shared between the app and the Supabase RPC. Screenshot sharing cannot be used for proxy attendance.
- Role-based routing - admin, faculty, and student each land on a separate dashboard with isolated permissions.
| Category | Technology |
|---|---|
| Framework | |
| State Management | |
| Navigation | |
| Backend | |
| AI | |
| Geofencing |
| Platform | Minimum Version | Notes |
|---|---|---|
| Android | Android 5.0 (API 21) | Primary supported platform |
| iOS | iOS 11.0 | Full platform support |
| Web | Modern Browsers | Supported for Admin dashboard |
GPS and camera permissions are required for attendance marking.
- Geofence now fails closed - if no polygon is configured, attendance is blocked (previously allowed everyone through)
- GPS buffer changed from a fixed 60 m to a dynamic accuracy-based buffer capped at 20 m - matches the device's reported GPS error margin
- Replaced
flutter_barcode_scanner(abandoned, jcenter-dependent) withbarcode_scan2(native ZXing, Gradle 9 compatible) - Fixed Gradle duplicate class error caused by legacy Android support library
- Removed all unnecessary comments from the codebase
- Student enrollment management from the admin panel
- Attendance analytics dashboard with per-course percentage breakdowns
- Push notifications for session start/end
- Offline grace period for poor connectivity environments
Built for colleges. Runs on Android, iOS, and Web.