Go Attendance — Smart Mobile Attendance for Schools
A production-grade Flutter mobile attendance app featuring 3-factor verification (GPS geofencing, ML Kit face liveness, server time-windows) and real-time Supabase backend.
Tech Stack
Video Demo
Overview
Go Attendance is an enterprise-grade mobile attendance management application built for educational institutions (teachers and school administrators). It modernizes traditional manual paper sheets and fixed fingerprint terminals into a secure, mobile-first workflow combining high-accuracy GPS geofencing, on-device face liveness verification, and server-authoritative time-window validation to prevent fraudulent attendance.
Problem
Schools and educational institutions struggled with outdated biometric terminals that created morning physical queues and lacked flexibility. Furthermore, conventional mobile check-in apps were susceptible to GPS spoofing, device clock tampering, and proxy check-ins. A resilient, tamper-proof system was required to guarantee authentic physical presence while keeping the check-in process under 20 seconds.
My Role
As the developer, I architected the cross-platform application using Clean Architecture (Feature-First) with Flutter and Riverpod. I implemented the complete Supabase backend infrastructure (PostgreSQL schemas, Row-Level Security policies, database triggers, and Deno Edge Functions) and integrated native device capabilities including Google ML Kit Face Detection, Geolocator, and Hive offline caching.
Technical Challenges & Solutions
Challenge: Server-Authoritative Anti-Tampering & Clock Spoofing
Client-side device clocks and GPS coordinates can be easily manipulated by users using mock location tools or manual time adjustments to bypass late thresholds.
Solusi: Designed a server-authoritative trust architecture. All attendance statuses (present, late, working_duration_min) and geofence validations are computed strictly within PostgreSQL triggers (derive_attendance_status()) using server time (now()) in the school's timezone. Client-submitted coordinates are re-evaluated server-side with Haversine distance formulas, ensuring zero reliance on untrusted client state.
Challenge: Real-Time On-Device Liveness Detection Without Latency
Validating physical presence through selfies often causes slow check-in flows if image processing relies purely on external cloud APIs.
Solusi: Integrated Google ML Kit on-device face detection with a strict liveness validation pipeline (single face constraint, eye-open probability, and smiling ratio threshold). This ensures real-time sub-second verification directly on the device before compressing and uploading proof photos to Supabase Storage.
Challenge: Unclosed Attendance Records & Auto Check-Out
Teachers frequently forget to check out at the end of the day, leading to inaccurate duration logs and open-ended attendance records.
Solusi: Developed an automated background worker using Supabase Edge Functions (Deno) triggered via pg_cron. The scheduler dispatches push notification reminders between 20:00 and 04:00, and automatically resolves any unclosed daily records to auto_checkout status at 04:00 next day.
Result & Impact
- Achieved a seamless check-in completion flow in under 15 seconds from cold app launch.
- Enforced strict 3-factor validation (GPS + Face Liveness + Server Time), eliminating proxy check-ins and mock location exploits.
- Delivered real-time administrative dashboards with sub-5-second sync using Supabase Realtime and Row Level Security (RLS).
- Provided 100% auditable attendance records backed by timestamped coordinates and facial evidence.