Electronic Voting Machine
RFID-gated voting on an ESP32, with the count updating live on screen.
The problem
Paper ballots and closed electronic machines both ask you to trust a count you never see being made. We wanted the opposite: a physical vote, gated by a card, with the tally visible while it happens.
What we built
The station is an ESP32 with an MFRC522 reader. The buttons stay dead until an authorized card is scanned; the status LED blinks while it waits and goes solid once the voter is cleared. Each of the four candidate buttons has its own LED, and a buzzer confirms the cast. Ballots go to a Node server, and a React dashboard shows the running count.
- MFRC522 RFID gate, with buttons inactive until an authorized card is scanned
- Four candidate buttons with matching LEDs, a fifth LED for RFID status, and a buzzer
- Internal pull-ups on the buttons, SPI wiring for the reader (SDA, SCK, MOSI, MISO, RST)
- Node web server and React dashboard with real-time counts
- Recognized in the top 5 for the transparent, hardware-backed design
My contribution
What I owned on the team
Worked with the team across the ESP32 hardware and the web stack: the RFID authentication flow, button, LED, and buzzer wiring and firmware, and the Node and React tally dashboard.
How it turned out
A working demo in 2025: card in hand, button pressed, number moving on the screen a second later.