attendance-cv is a face-recognition attendance system. A webcam feed runs through InsightFace + YOLO, faces are matched against a ChromaDB of enrolled students, and attendance is marked automatically. The Streamlit UI exposes role-based dashboards for admins, teachers, and students.
Originally built as my graduation project. Runs as a single Streamlit process on CPU, or as a GPU-enabled Docker container.
git clone https://github.com/moamen1358/attendance-cv.git
cd attendance-cv
pip install -r requirements.txt
python src/db_init.py
streamlit run src/app.pydb_init.py seeds the database with sample students, teachers,
subjects, and schedules so the dashboards work on first login.
After Streamlit starts, open http://localhost:8501. You'll land on a
login page — sign in with one of the default credentials
below to see the role-specific dashboard. Admins land on a system-wide
view, teachers see their assigned classes with a "Start Session" button
that opens the camera, and students see their attendance history plus
a one-time face-enrollment screen.
For the GPU Docker setup, see docs/architecture.md.
| Role | Username | Password |
|---|---|---|
| Admin | admin |
admin |
| Teacher | emp2024001 |
emp2024001 |
| Student | 2024001 |
2024001 |
Two more sample teachers (emp2024002, emp2024003) and students
(2024002, 2024003) are seeded with the same pattern.
- Admins manage users, departments, subjects, and teacher-to-subject assignments; review system-wide attendance and session logs.
- Teachers view assigned subjects, run live attendance sessions (camera + recognition), and generate per-class or per-student reports.
- Students enroll their face once, then check personal attendance history and upcoming class schedules.
- docs/architecture.md — stack, database schema, file layout, scheduling logic, configuration, GPU Docker
- METHODOLOGY.md — recognition approach, model selection, evaluation metrics
MIT.