NextGen Voting
A Django-based voting platform that encrypts ballots client-side and records verifiable proofs on-chain. Built to explore practical, auditable online elections.
System diagrams
Demo walkthrough
Admin: create and publish an election
-
Home -
Sign in -
Dashboard -
Set up election
Add candidates
Define ballot
Upload voters CSV
Review & publish -
Election page (published)
Voters perspective
-
Email invite
Welcome
Ballot (rank choices)
Encrypted + submitted
Simulate large election with command
-
Management command for seeding votes (50,000 votes, 5 candidates, 1 winner) -
Election with generated ballots
Results (ranked choice rounds)
NextGenVoting 2.0
After building this project, I realised there are a few things I’d do differently if I were starting again. The first version was very focused on functionality, with less attention to design and user experience. For the next version, I plan to build a dedicated React frontend to give it a more modern, responsive interface, and rework the Django backend into a clean REST API that powers it.
- React UI with live result streams
- Django REST API endpoints for admin and voters