< 120ms
On-Device ML LatencyHardware-accelerated Google ML Kit face landmark & contour evaluation
Hardware-accelerated Google ML Kit face landmark & contour evaluation
Instant reactive UI updates via Firebase Firestore real-time snapshot streams
Zero biometric face images uploaded to cloud; 100% processed locally on-device
Design, Sport, Meet, and Work with automated counter calculation
One-tap instantaneous switching between custom Light and Dark themes
Stateless Firebase Auth credentials paired with user-isolated Firestore rules
Traditional workplace and educational attendance tracking often relies on manual sign-ins or RFID cards prone to proxy check-ins and manipulation. The objective of Attendance App was to engineer a fast, secure, and privacy-preserving mobile attendance and task management application built in Flutter with on-device computer vision.
Core Mandate: Build a unified mobile platform pairing hardware camera face verification with a real-time cloud task board, responsive Light/Dark theme switching, and seamless user identity management.
Explore the reactive mobile interfaces of Attendance App — from hardware-accelerated on-device face detection and live categorized task boards to dynamic dark/light theme switching and self-service credential recovery.
Comprehensive application presentation flyer showcasing Attendance App's multi-device mobile architecture, on-device biometric verification, modern Poppins UI design, and cloud task management.
Engineered for frictionless biometric check-in and task tracking — merging hardware camera streams, local computer vision ML inference, cloud NoSQL streaming, and modern reactive Flutter state management.
Integrates Google ML Kit face detection directly with camera hardware streams. Analyzes facial landmarks, contours, and presence in real time with sub-120ms inference latency and zero cloud data leaks.
Employs persistent StreamBuilder listeners on user-scoped Firestore collections. Delivers real-time CRUD reactivity, automated timestamp auditing, and dynamic category task count recalculations.
Utilizes GetX reactive observables (isTheme.obs) to decouple theme state from widget lifecycles. Users switch seamlessly between custom high-contrast light and dark themes with zero redraw lag.
Secured with Firebase Authentication supporting email/password registration, persistent session tokens via authStateChanges(), and self-service automated password reset pipelines.
Each module is engineered with robust transactional boundaries, modular isolation, and comprehensive audit trails.
Real-time facial detection and landmark extraction powered by Google ML Kit running on-device via native C++ binaries.
From camera initialization and facial feature verification to cloud data synchronization — every operation follows a secure, privacy-preserving pipeline.
Application requests camera hardware permissions via permission_handler. CameraController initializes the primary camera sensor with ResolutionPreset.medium.
Image frame is passed into Google ML Kit InputImage. The face detector processes landmarks, contours, and classifications locally in under 120ms.
Upon successful verification, the user accesses their personal task board. All tasks and status updates are synchronized live via Firebase Firestore streams.
All face detection calculations are performed strictly within the device's volatile memory using on-device ML Kit models. No camera frames or facial landmark geometries are ever transmitted or saved to external servers, guaranteeing complete biometric confidentiality.
Engineered with a clean separation between reactive Flutter UI widgets, on-device Google ML Kit computer vision models, GetX reactive state management, and Google Cloud Firestore streaming services.
Cross-platform UI utilizing GetX reactive state controllers, custom Poppins typography hierarchy, animated bottom sheets, and responsive Material 3 design.
High-performance on-device machine learning engine running FaceDetectorMode.accurate for landmark and contour detection without network dependency.
Reactive observable controller (isTheme.obs) driving instant dark/light mode toggling across the entire widget tree.
Stateless token-based authentication handling user signup, login, session persistence, and password reset email delivery.
Real-time distributed NoSQL database streaming user-scoped task documents, category aggregations, and server-verified timestamps.
Direct integration with native Android and iOS camera hardware drivers and runtime operating system permission dialogs.
A modern engineering stack combining high-throughput user interfaces, modular backend architecture, and resilient data layers.
Clear boundary separation between system components, paired with modular schemas and structured repositories.
Stores user task documents including title (string), check (bool status), time (FieldValue.serverTimestamp), and userId (owner authentication UID).
Stateless identity credentials including uid, email, displayName, passwordHash (securely managed by Firebase), and token expiration timestamps.
Privacy-first mobile architecture combining on-device computer vision processing, stateless Firebase Auth tokens, and user-scoped Firestore database queries.
All face detection and landmark extraction run strictly on the user's physical device via Google ML Kit. No facial images or biometric vectors are ever uploaded to cloud servers.
Firestore queries strictly enforce where('userId', isEqualTo: user.uid), preventing cross-user data leakage and guaranteeing data privacy.
Task creation uses FieldValue.serverTimestamp() to neutralize client device clock tampering and ensure tamper-proof chronological ordering.
Camera hardware access is guarded by permission_handler, ensuring camera drivers are only engaged after explicit user approval.
How critical technical bottlenecks were overcome and verified under real production conditions.
Ensuring smooth camera initialization and lifecycle management across different mobile operating system versions. Solved by binding camera initialization to FutureBuilder widgets with graceful loading indicators and comprehensive permission checks via permission_handler.
Designing a high-accuracy biometric verification flow that remains responsive on mid-range hardware. Solved by tuning FaceDetectorOptions to run accurate mode locally on single frames, delivering instantaneous feedback to the user without stuttering the UI thread.
Decoupling theme toggling from widget lifecycles. Solved by implementing a clean GetX ThemeController with observable state (isTheme.obs), enabling dynamic one-tap switching between custom Light and Dark themes with zero redraw overhead.