UniBallot
A web-based election and voting management system designed for university associations. Enables digital elections with voter accreditation, vote tallying, and audit trails.

Role & Contributions
Built a voting platform covering the election lifecycle: voter accreditation via CSV upload, candidate management, a 7-state election workflow, vote submission with duplicate prevention, real-time result tallying, and audit logging.
The Problem
Association elections relied on paper ballots, causing slow accreditation, unreliable records, and disputes over results. No digital audit trail.
Approach
Built a web-based system with multi-role access (student, officer, super_admin) supporting both candidate-based elections and yes/no confirmation votes. Real-time vote counting and state-based workflow prevent invalid operations.
Solution
Used MongoDB unique constraints on (electionId, officeId, ballotToken) to make vote submission idempotent—network retries don't cause duplicate votes. p-limit(30) and Redis rate limiting handle voting traffic spikes on constrained infrastructure.
Technical Deep Dive
Architecture
React frontend, Express API backend, MongoDB + Redis
React 19, TypeScript, Vite, Tailwind CSS, shadcn/ui, Recharts
Node.js, Express, MongoDB, Redis, BullMQ
Core Features
Secure Voter Accreditation
Bulk CSV upload of eligible voters with matriculation number validation
Candidate-Based and Confirmation Voting
Support both candidate-based elections and yes/no confirmation votes
Vote Integrity Protection
Network retries don't cause duplicate votes; database constraints handle concurrency safely
Real-Time Result Tallying
Live election results visible to students and officers during voting
Audit Trail
44 audit action types logged for all administrative actions and state changes
Receipt-Based Vote Verification
Students receive unique receipt codes after voting without revealing vote content
Achievements
Idempotent Vote Submission
MongoDB unique constraints prevent duplicate vote records when requests are retried. Solves concurrency without distributed locks.
Vote Concurrency Management
p-limit(30) queuing and Redis rate limiting handle voting traffic spikes on 512MB RAM infrastructure.
Audit Logging
44 action types logged with async integrity checking for election administration accountability.
Have a similar challenge?
Tell me what you're building, what you need help with, and where you want to take it. If it sounds like a good fit, we can talk through the next steps.