A production-ready Student Attendance Management System featuring Biometric Facial Recognition, Role-Based Access Control (RBAC), and Real-time Analytics. Designed to replace traditional manual attendance with a secure, automated, and scalable digital solution.
- Admin: Full system control - manage faculty, departments, and system audits.
- Faculty/Staff: Enroll students, manage classes, and generate attendance reports.
- Students: View personal attendance history and real-time check-in status.
- Automated Marking: Uses
dlibandface-recognitionto identify faces in milliseconds. - Biometric Enrollment: Store high-dimensional face embeddings instead of raw images for privacy.
- Anti-Spoofing Ready: Architecture supports integration with liveness detection.
- Real-time Analytics: Visual trends for attendance rates and punctuality.
- CSV/PDF Export: Export logs for academic records or compliance.
- Mobile Responsive: Fully functional on tablets and smartphones.
- JWT Auth: Stateless authentication with access/refresh token rotation.
- API Documentation: Automated OpenAPI/Swagger specs via
drf-spectacular. - CI/CD: Automated testing and Docker build pipelines.
graph TD
A[React Frontend] -->|JWT Auth| B[Django REST API]
B --> C[(PostgreSQL/SQLite)]
B --> D[OpenCV / Face Recognition Engine]
B --> E[Swagger Docs]
B --> F[CSV Export Service]
- Backend: Python 3.12, Django 5.0, Django REST Framework
- Frontend: React 18, Vite, Tailwind CSS, Framer Motion
- Database: PostgreSQL (Prod) / SQLite (Dev)
- Face Recognition: OpenCV, dlib, face-recognition
- DevOps: Docker, Docker Compose, GitHub Actions, Kubernetes (Manifests included)
- Python 3.12+
- Node.js 18+
- Docker (optional)
docker-compose up --buildThe application will be available at:
- Frontend:
http://localhost:5173 - API:
http://localhost:8000 - Swagger Docs:
http://localhost:8000/api/docs/
cd djangopip install -r requirements.txtpython manage.py migratepython manage.py seed_db(Optional: Seed initial data)python manage.py runserver
cd react-appnpm installnpm run dev
The API is fully documented using Swagger and Redoc. When the server is running, visit:
- Swagger UI:
/api/docs/ - Redoc:
/api/redoc/ - JSON Schema:
/api/schema/
cd django
python manage.py testcd react-app
npm testThe system uses a custom User model to handle multiple roles and biometric data:
- User:
id,username,email,role(Admin/Staff/Student),usn,face_embedding. - Log:
id,user_id(FK),timestamp.
- Multi-class / Course scheduling support
- Email notifications for absence
- Mobile App (Flutter/React Native)
- Liveness detection for face recognition
Contributions are welcome! Please open an issue or submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.