About the project
Calling roll numbers wastes 5–10 minutes of every lecture, and paper registers are easy to manipulate with proxy attendance. This face recognition attendance system Android project solves it with one photo: the teacher captures the class, the app finds every face, converts it into a 192-number face code with a MobileFaceNet model and matches it with the students enrolled in that class. Attendance is marked in seconds, and the teacher can still review and edit the list before saving.
How it works
- The admin creates departments, classes and subjects, and allocates subjects to teachers
- Students register and enrol their face from 5 angles (front, left, right, up, down) with a blink check against photo spoofing
- The teacher picks the class, subject and period, then takes up to 3 class photos (camera or gallery)
- Google ML Kit detects every face; each face is cropped, resized to 112×112 and turned into a face code by MobileFaceNet (TensorFlow Lite) on the phone
- Face codes are compared with cosine similarity; each student gets at most one face (greedy matching), borderline matches are flagged "Low match" and the rest are shown as unknown faces
- The teacher saves the session; students get a notification and can request a correction with proof if they were missed
- Defaulter lists, class analytics with at-risk prediction and PDF reports are generated from the saved data
Users
- Teacher: start session, class photo, automatic face matching, edit attendance, approve corrections, defaulter list PDF, class analytics with at-risk prediction
- Student: face enrolment, subject-wise attendance, attendance calendar, correction requests, streak and badges, attendance certificate PDF
- Admin (web panel): departments, classes, subjects, allocations, teacher and student approval, attendance records, reports with print, notices, matching thresholds and settings
Highlights
- 3 roles, 24 Android screens, 15 admin pages, 29 PHP APIs, 12 database tables
- On-device AI: ML Kit face detection + MobileFaceNet TFLite face embeddings, no internet needed for matching
- Liveness (blink) check during face enrolment
- Only face codes are stored on the server, never face photos
- At-risk prediction using a least-squares trend line, with optional Gemini insight and offline fallback
- Complete validations in app and server (email, 10-digit mobile, duplicate checks, file type and size, CSRF in admin panel)
- Sample data with 26 students, 210 lectures and demo logins for every role
What you get
- Complete Android Studio project (Java) with the face model included
- PHP API + admin panel source code
- MySQL database file with sample data
- Project report in Word (56 pages, with UML and DFD diagrams)
- 2-page project abstract (Word + PDF)
- Project explanation with 20 viva questions
- Step-by-step setup guide (PDF) and installation help
Who can use this project
BE / B.Tech (Computer, IT, AI & DS), MCA, BCA, M.Tech and Diploma students looking for a machine learning Android project with source code and documentation. It fits final year project, mini project and seminar requirements for CSE, IT and ENTC departments.
Frequently asked questions
Does face matching need the internet? No. Face detection and matching run inside the Android app; the internet (or Wi-Fi to your PC) is only needed to save and load data from the server.
Can it mark the whole class from one photo? Yes. Every visible face in the photo is matched. For big classes the teacher can add up to 3 photos and repeated faces are counted only once.
Can a student cheat by showing a photo of a friend? Face enrolment requires a blink and head turns, and the teacher sees every match with its score before saving.
Can I run it without a real phone? The admin panel and most screens work on the emulator, and the class photo can be picked from the gallery. Face enrolment needs a phone with a front camera.