TrueBallot
A Secure, Transparent, and Efficient E-Voting Platform powered by Modern Web Technologies.
Abstract
TrueBallot is a comprehensive electronic voting solution designed to modernize the electoral process. By utilizing a robust Spring Boot backend for security and data integrity, coupled with a dynamic React.js frontend for an intuitive user experience, TrueBallot ensures that every vote is cast securely, counted accurately, and results are published in real-time. This system eliminates common issues found in traditional paper ballots, such as counting errors, long wait times, and logistical complexities.
The Problem & Our Solution
Traditional voting methods are often plagued by inefficiencies, including slow manual counting, high costs, and susceptibility to human error or tampering. Furthermore, accessibility issues can prevent eligible voters from participating.
TrueBallot addresses these challenges by digitizing the entire workflow. It provides a secure platform where administrators can manage elections and candidates, while voters can cast their ballots from anywhere. The system leverages JWT authentication for security and relational databases for data consistency.
Project Objectives
Security & Integrity
Implement robust authentication (Spring Security + JWT) to ensure only eligible voters can vote exactly once.
Real-Time Efficiency
Automate the tallying process to provide instant, error-free election results immediately after polls close.
User Accessibility
Create an intuitive React-based interface that simplifies the voting experience for users of all technical levels.
Election Management
Provide comprehensive tools for administrators to create elections, manage candidates, and oversee the process.
Core Features
Secure Auth
JWT-based login ensures secure session management for all users.
Candidate Mgmt
Admins can easily add, update, or remove candidates for specific elections.
Live Results
Dynamic charts visualization for instant insight into election outcomes.
Responsive UI
Fully responsive design using Tailwind CSS that works on mobile and desktop.
System Architecture
+---------------------+ +----------------------+ +---------------------+
| CLIENT LAYER | | SERVER LAYER | | DATA LAYER |
| (React Frontend) | | (Spring Boot API) | | (MySQL Database) |
+---------------------+ +----------------------+ +---------------------+
| | | | | |
| [ User Interface ] | | [ Auth Controller ] | | [ Users Table ] |
| - Login Page |<----->| - Login/Register |<----->| |
| - Voting Page | HTTP | | JDBC | |
| - Admin Panel | JSON | [ Vote Controller ] | | [ Votes Table ] |
| | | - Cast Vote |<----->| |
| [ State Mgmt ] | | - Tally Results | | |
| (Zustand/Context) | | | | [ Elections Table ]|
| | | [ Security Config ] | | |
+---------------------+ | (JWT Filter) | +---------------------+
+----------------------+
Technology Stack
Backend (Server)
Frontend (Client)
Advantages
- Transparency: Digital records reduce the risk of human error in counting.
- Speed: Results are available almost instantly after the election concludes.
- Scalability: Can handle small club elections or large organizational polls.
Limitations
- Internet Dependency: Requires a stable network connection for the client-server architecture.
- Device Requirement: Voters need access to a smartphone or computer.