We built a standalone verification terminal to fix a massive flaw found at standard polling places: manual ID checking. Relying on hand-checked documents makes it incredibly easy for voter impersonation, clerical mistakes, and double-voting to compromise an election. To secure this process without slowing down lines or causing a frustrating user experience, our design enforces a two-stage biometric checkpoint right at the gate. The physical prototype is straightforward. We wired an ESP32 microcontroller directly to an R307 optical fingerprint scanner and a standard digital camera module. On the software side, a local database handles data logging on site, indexing registered voter profiles and tracking live ballot updates. When someone steps up to vote, the terminal first triggers a local facial recognition script to pull up a primary database match. The system keeps access locked down until the voter backs this up with an immediate physical fingerprint scan. While the biometric checks process, the backend runs instant database queries to catch and block duplicate ballot attempts on the spot. Because we engineered this platform strictly as an outer authentication layer, it integrates with existing election equipment without requiring any core infrastructure changes. Built entirely from affordable, off-the-shelf components and open-source code, our prototype offers a highly secure, budget-friendly validation tool tailored for university and institutional voting.
Introduction
This project presents a low-cost multi-factor biometric voting system that improves election security by combining facial recognition and fingerprint authentication. Traditional voting systems rely on ID cards or manual voter lists, making them vulnerable to impersonation, duplicate voting, and human errors. To overcome these limitations, the proposed system requires voters to successfully complete both biometric verifications before they are allowed to cast their vote.
The literature review shows that previous voting systems mainly relied on either fingerprint recognition or facial recognition individually. While these methods improved security over manual verification, each had weaknesses, such as sensor failures or reduced accuracy under unfavorable conditions. Studies also highlighted the importance of strong identity verification in maintaining fair elections. Based on these findings, the proposed system adopts a two-step biometric authentication process, combining both methods to provide greater reliability and security.
The primary objective of the project is to develop an affordable and secure voter verification system using an ESP32 microcontroller, an R307 fingerprint sensor, a webcam, and a Python-Flask application. The system includes modules for voter registration, biometric data capture, secure storage of fingerprint templates and facial features, duplicate detection, and real-time verification through serial communication between hardware and software.
The system operates in three phases. During voter registration, personal information, facial images, and fingerprint data are collected and securely stored. Instead of permanently saving photographs, the system converts facial images into 128-dimensional face embeddings, reducing storage requirements and improving privacy. On election day, voters enter their voter ID, after which the system first performs facial recognition using Python and OpenCV. If the face matches the stored template, the ESP32 activates the fingerprint sensor to verify the fingerprint. Only when both biometric checks are successful is access granted to the voting interface. After voting, the voter is marked as "voted," preventing duplicate voting.
The authentication process is represented mathematically as V = F × P, where V is the final authentication result, F represents successful face recognition, and P represents successful fingerprint verification. A voter is authorized to vote only when V = 1, meaning both biometric verifications have succeeded.
The system architecture consists of voter enrollment, feature extraction, centralized database management using SQLite, live sequential authentication, and embedded hardware integration. Supporting hardware includes an ESP32 microcontroller, R307 fingerprint sensor, webcam, LED indicators for user feedback, and communication wiring. The modular design enhances maintainability, scalability, and overall system reliability.
Experimental testing with a group of users demonstrated strong performance. The face recognition module achieved approximately 95% accuracy, while the fingerprint verification achieved 100% accuracy. The complete verification process required only 3–5 seconds per voter, successfully preventing impersonation and duplicate voting while providing a faster, more secure alternative to traditional manual identity verification. Overall, the proposed system offers an effective, affordable, and practical solution for secure voting in institutions such as colleges, organizations, and local elections.
Conclusion
We built this system to fix the incredibly obvious flaws in how voters are checked in manually. Relying on someone to glance at a photo ID or cross a name off a printed sheet is just asking for human error and identity fraud. By forcing voters to pass through a continuous pipeline of face recognition and fingerprint scanning, we managed to build a terminal where it’s basically impossible for someone to vote under a fake name or slip through the line twice.
The live testing proved that the logic holds up under stress. The Python backend easily managed the data handshakes between the webcam stream and the ESP32 hardware, cutting off unauthorized users immediately. More importantly, the database logic worked perfectly the millisecond a ballot was cast, the user\'s status flipped to \"voted,\" totally blocking any attempts at a second turn.
We ran into some classic hardware and environment quirks during the trial runs. If the room lighting was uneven, OpenCV struggled a bit with the facial match speed, and if someone had smudged the fingerprint glass, the sensor timed out. But those aren\'t design flaws; they’re just basic operational issues you solve with better lighting and a clean lens. Ultimately, the project shows that you don\'t need massive, high-budget infrastructure to secure an election. A standard laptop webcam paired with a cheap microcontroller is a completely viable, bulletproof setup for protecting votes on college campuses or in local institutions.
References
[1] A. Kumar and S. Gupta, “Biometric Voting System Using Fingerprint Recognition,” International Journal of Engineering Research and Technology (IJERT), vol. 8, no. 5, pp. 1–5, 2019.
[2] R. Sharma, P. Verma, and S. Singh, “Smart Voting System Using Face Recognition and Fingerprint Verification,” International Journal of Scientific Research in Computer Science, Engineering and Information Technology (IJSRCSEIT), vol. 6, no. 3, pp. 120–125, 2020.
[3] M. Patel and K. Shah, “Smart Online Voting System,” International Journal of Advanced Research in Computer Science and Software Engineering (IJARCSSE), vol. 7, no. 4, pp. 210–215, 2018.
[4] V. Kumar and R. Mishra, “Fingerprint Based Secured Voting System,” International Journal of Innovative Technology and Exploring Engineering (IJITEE), vol. 9, no. 2, pp. 340–345, 2020.