A facial recognition authentication and management system built for Yabatech, leveraging deep learning to provide secure, contactless student identification and attendance tracking.
- Facial Recognition Authentication: Secure login using facial biometrics
- Student Management: Complete student record management system
- Admin Dashboard: Analytics and system monitoring
- Recognition Logs: Comprehensive audit trail of recognition attempts
- RESTful API: Well-documented API for integration with other systems
- Role-based Access Control: Different permissions for students and administrators
- JWT Authentication: Secure token-based authentication
- Backend: Django, Django REST Framework
- Database: SQLite (development), PostgreSQL (production)
- Authentication: JWT (JSON Web Token)
- Face Recognition: InsightFace, OpenCV, MTCNN
- Documentation: Swagger/OpenAPI, ReDoc
- Python 3.11+
- Django 5.1+
- InsightFace and its dependencies
- Docker (optional, for containerized deployment)
-
Clone the repository:
git clone https://github.com/your-username/yabatech-facial-recognition.git cd yabatech-facial-recognition -
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables:
cp .env.example .env # Edit .env with your configurations -
Run migrations:
python manage.py migrate
-
Create a superuser:
python manage.py createsuperuser
-
Start the development server:
python manage.py runserver
-
Access the API at http://localhost:8000/api/
- Swagger UI: http://localhost:8000/api/docs/
- ReDoc: http://localhost:8000/api/redoc/
We have comprehensive documentation for all aspects of the system:
- Setup Guide - Installation and configuration instructions
- API Documentation - Detailed API endpoints reference
- Database Schema - Database structure and relationships
- Architecture Overview - System design and components
The system supports two main user types:
- Students: Users who authenticate with facial recognition
- Admins: Users who manage students and system settings
The facial recognition pipeline includes:
- Face detection using MTCNN
- Feature extraction using InsightFace
- Face comparison with stored templates
- Confidence score calculation and threshold-based matching
- User uploads their face image via the API
- System detects and processes the face
- Face is compared against registered students
- If matched, JWT tokens are issued for authentication
- The recognition attempt is logged for audit purposes
We welcome contributions to the Yabatech Facial Recognition System! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Project Team - admin@yabatech.edu.ng
Project Link: https://github.com/cypher125/StudentAuth
- InsightFace - Face recognition technology
- Django REST Framework - API framework
- SimpleJWT - JWT authentication