This project implements an intelligent IoT-based employee attendance system that combines advanced fingerprint recognition technology with real-time analytics. The system integrates both hardware and software components to provide accurate and reliable attendance tracking for organizations.
Live Demo: https://fingerprints.husseinkad.com/ (Note: Frontend interface only. Backend and AI processing servers are not deployed. Complete source code is available for local testing and implementation.)
P.S: AN MVP of this project was built during HurryApp3's 1.5-day hackathone by team 8 (Shahad Muhsin, Hussein Kadhem, and Yosuf Maher) and was improved later because we thought we were going to be qualified but unfortunately we were not.
Fingerprint Recognition Processing The system utilizes advanced computer vision algorithms for fingerprint matching. Response times are maintained under 2 seconds while achieving high accuracy rates. The system automatically determines entry or exit status based on timestamp analysis of the employee's last recorded interaction.
AI-Powered Image Processing The recognition engine employs sophisticated matching algorithms that analyze fingerprint minutiae patterns. The system generates detailed visualizations showing exactly which portions of the fingerprint contributed to successful matches. All processing includes before-and-after image comparisons between uploaded query images and stored reference fingerprints.
Web Interface A Vue.js-based web application provides intuitive employee management capabilities and displays comprehensive recognition history logs. The interface supports real-time monitoring and administrative functions.
demo.mp4
Testing and Validation System The system includes extensive testing capabilities with a substantial database of reference fingerprints. Testing is conducted across multiple difficulty levels (Easy, Medium, Hard, Impossible) to validate system performance under varying conditions. The interface provides detailed feedback on recognition accuracy and system reliability.
Analytics and Reporting Comprehensive dashboard analytics track performance metrics including certainty rates, success rates, total scan counts, response times, and failure rates. Employee-specific insights cover attendance patterns, punctuality records, and historical data analysis.
Offline Operation Capability The system maintains functionality during network connectivity issues by storing events locally. Data synchronization occurs automatically when network connectivity is restored, ensuring uninterrupted operation.
The system follows a three-tier architecture design:
Frontend Layer Built using Vue.js framework with responsive design principles. Provides interactive dashboards with real-time data visualization and administrative interfaces for employee management.
Backend Layer FastAPI-based REST API handles business logic and data processing. MongoDB serves as the primary database for storing employee records, attendance logs, and system analytics. The backend coordinates communication between the web interface and AI processing services.
AI Processing Layer Custom-developed fingerprint matching algorithms process biometric data. The system employs SIFT (Scale-Invariant Feature Transform) and ORB (Oriented FAST and Rotated BRIEF) feature detection methods combined with sophisticated matching techniques. Processing includes image enhancement, feature extraction, and similarity scoring algorithms.
Hardware Layer ESP32 microcontroller manages sensor input and local processing. R307 fingerprint sensor handles biometric capture. OLED display provides user feedback. Lithium battery system with integrated battery management ensures portable operation.
Core Components
- ESP32: Main processing unit handling sensor communication and network connectivity
- R307 Fingerprint Sensor: Biometric data capture with local template matching capabilities
- OLED Display (0.96"): Real-time user feedback showing employee names, status, and timestamps
- Level Shifter: Voltage conversion for component compatibility
- Lithium Battery (3.7V): Portable power supply with integrated charging circuit
- Battery Management System: Charging control and power protection
- Boost Converter: Voltage regulation to 5V for sensor operation
- Custom 3D Printed Enclosure: Professional housing for all electronic components
Pin Configuration
ESP32 GPIO17 → R307 RX
ESP32 GPIO16 ← R307 TX (via Level Shifter)
ESP32 GPIO21 (SDA) → OLED SDA
ESP32 GPIO22 (SCL) → OLED SCL
ESP32 3V3 → OLED VCC
5V Supply → R307 VCC
Employee Registration Process New employees are registered through the web administrative interface. Fingerprint templates are captured and stored during the enrollment process. Employee details and access permissions are assigned through the management system.
Attendance Recording Workflow
- Employee places finger on the sensor surface
- ESP32 performs initial local fingerprint matching
- System determines entry or exit status based on previous interaction timestamp
- Fingerprint image and timestamp data are transmitted to the server
- AI processing engine performs detailed analysis using advanced matching algorithms
- OLED display shows employee name, attendance status, and current time
- All data is stored with comprehensive analytics tracking
Network Connectivity Management During network outages, the system stores attendance events in local memory. When connectivity is restored, stored data is automatically synchronized with the central database. This ensures continuous operation regardless of network stability.
The system provides comprehensive reporting through real-time dashboards that monitor attendance patterns and system performance. Analytics include individual employee attendance tracking, punctuality analysis, and historical trend data. Performance metrics cover recognition accuracy, response times, and system reliability statistics.
The fingerprint recognition system employs multiple computer vision techniques for robust matching performance. SIFT feature detection identifies scale and rotation-invariant keypoints in fingerprint images, while ORB detection provides additional feature data for comparison.
The matching algorithm uses FLANN-based nearest neighbor search for SIFT features and Hamming distance calculations for ORB features. Image preprocessing includes contrast enhancement through CLAHE (Contrast Limited Adaptive Histogram Equalization), noise reduction using Gaussian filtering, and morphological operations for ridge pattern enhancement.
Similarity scoring combines weighted results from both SIFT and ORB matching methods, with match density calculations normalized for image dimensions. The weights was chosen after an exmination of different results and an assessment to the accuarcy of the two matching methods and tolerance to damaged imgaes. The system generates detailed visualizations showing matching keypoints and connecting lines between corresponding features in query and reference images.
For testing you will have to first run:
pip install requirements.txt
The repo also includes the Augumentator.py file that was used to generate a total of 5040 augmented data out of 360 fingerprint image of our own biometric information (9 varaitions of 10 fingers of 4 people). During data collection we thought that it would be useful to take different variations (clipped) of each finger due to the scanner being too small to fit a non-clipped fingerprint. So we collected the data in different variations as illustrated in the image bellow. and had an agreed naming conviention for them too.
this method was useful for testing and for getting more distorted (clipped) augumented data. For augmentation we focused on distortion methods that do not change the biometeric information of the fingerprint that it is impossible to to regenerate for example it is impossible to regenerate a fingerprint with a non-existent/extremely-damaged ridge and 0 minutiae visible. So we were careful choosing the right distortion methods that you can check in Augmentator.py file.
Due to fingerprint images being extermely distorted, a threshold of 0.3 was chosen, otherwise it will be labeled as "Not Found" and this thresold can be changed depending on what kind of data we are dealing with.
| Component | Technology |
|---|---|
| Frontend | Vue.js, Interactive Charting Libraries |
| Backend API | FastAPI, Python |
| Database | MongoDB |
| AI Processing | OpenCV, Custom Matching Algorithms |
| Hardware Controller | ESP32, Arduino Framework |
| Sensor | R307 Optical Fingerprint Sensor |
| Display | OLED I2C Interface |
| Communication | WiFi, HTTP/HTTPS Protocols |
| Power Management | Lithium Battery with Smart Charging |
This attendance system combines hardware engineering, advanced image processing algorithms, and modern web technologies to provide reliable employee attendance tracking for organizational environments.

