FaceCheckIn
An IoT attendance and affect-logging system using Raspberry Pi for edge inference, Django for cloud backend and analytics, and a Flutter mobile app for user-facing visualization. Top-rated project (full marks) in the Fundamentals of IoT course.
Overview
An IoT attendance and affect-logging system using Raspberry Pi for edge inference, Django for cloud backend and analytics, and a Flutter mobile app for user-facing visualization. Top-rated project (full marks) in the Fundamentals of IoT course.
Problem
Traditional attendance systems are manual and error-prone. The project aimed to build an automated, intelligent system that records presence and anonymously captures emotional state for longitudinal analysis — using constrained edge hardware.
Solution
Raspberry Pi captures 6 images per user on check-in. A primary frame identifies the person via facial recognition; all 6 frames feed an emotion recognition model. Results are sent to the Django backend via authenticated REST APIs and stored in PostgreSQL for analytics and dashboard visualization.
Architecture
Edge-to-cloud: Raspberry Pi (image capture + inference request) → REST API (JWT auth) → Django backend → PostgreSQL (identity, check-in, emotion analytics). Identity recognition: single primary frame. Emotion recognition: 6-frame inference set. Docker containerizes the backend for reproducible execution. Mobile app (Flutter) shows real-time check-in status for users. Admin web dashboard for attendance reports.
Challenges
Achieving acceptable end-to-end latency on constrained hardware: ~1s identity recognition, ~2–4s emotion inference in the prototype.
Designing a clean edge-to-cloud data contract that the Raspberry Pi could reliably execute without server-side failures.
Coordinating across 4 team members (backend, mobile/frontend, hardware, AI) with explicit interface contracts.
Outcomes
Top-rated project (full marks) in the Fundamentals of IoT course at Quchan University.
Demonstrated automated check-in with real-time edge inference and cloud-side analytics.
Fully containerized, reproducible system ready for integration testing across all four components.
Lessons Learned
Measure edge inference latency early — model complexity and hardware constraints interact in non-obvious ways.
Clean API contracts between hardware, AI, and backend engineers prevent integration failures at demo time.
IoT systems need graceful degradation — when edge is slow, the cloud must wait without surfacing failures to users.