This project is a full-stack, secure, and modern online voting platform designed by Ms. Naigaga Shillah, a Software Engineering Student, to facilitate paperless, transparent, and accessible election processes. It includes a robust Spring Boot (Java) backend for API and data management, and a dynamic React (JavaScript) frontend for the user interface.
| Component | Technology | Description |
|---|---|---|
| Frontend | React (with Hooks/Router) | Provides a responsive and interactive user experience for voters and administrators. |
| Backend | Spring Boot (Java) | Handles business logic, security, and RESTful API endpoints. |
| Database | (Assumed) MySQL/PostgreSQL/H2 | For persistent storage of voter, candidate, and election data. |
| Styling | CSS/Tailwind/Bootstrap (Based on project files) | For application styling and layout. |
Follow these steps to set up the project locally for development and testing.
- Java Development Kit (JDK) 17+
- Maven (for the Backend)
- Node.js & npm (for the Frontend)
- A suitable IDE (e.g., IntelliJ IDEA, VS Code, Eclipse)
git clone git@github.com:bos-com/Online-Voting-System.git
cd Online-Voting-System- Navigate to the backend directory:
cd backend - Configure Database: Edit the connection properties in
src/main/resources/application.propertiesto point to your local database instance. Example:spring.datasource.url=jdbc:mysql://localhost:3306/voting_db spring.datasource.username=root spring.datasource.password=your_password
- Build and Run: Use Maven to compile and start the Spring Boot application:
The backend will typically start on
mvn clean install mvn spring-boot:run
http://localhost:8080.
- Navigate to the frontend directory:
cd ../frontend/voting-client - Install Dependencies:
npm install
- Start the Application:
The frontend application will typically open in your browser on
npm start
http://localhost:3000.
- Voter Management: Secure registration, authentication, and eligibility checks for registered voters.
- Candidate Management: Admin tools to add, modify, and remove candidates for different offices.
- Election Creation: Tools to define election periods, offices, and rules.
- Real-Time Voting: Secure casting of votes, ensuring one vote per voter.
- Results Dashboard: Real-time visibility of election results for administrators and potentially voters.
We welcome contributions to improve the Online Voting System!
- Fork the repository.
- Create a feature branch:
git checkout -b feature/your-new-feature - Commit your changes clearly:
git commit -m "Feat: Added new admin view for voters" - Push to your branch:
git push origin feature/your-new-feature - Open a Pull Request to the
mainbranch.
- Organization: bos-com
- Repository Owner: shillat
- Email: shillahnaigaga5@gmail.com