Skip to content

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🗳️ ONLINE VOTING SYSTEM

Project Overview

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.

Technology Stack

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.

🚀 Getting Started

Follow these steps to set up the project locally for development and testing.

Prerequisites

  • 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)

1. Clone the Repository

git clone git@github.com:bos-com/Online-Voting-System.git
cd Online-Voting-System

2. Backend Setup (Java/Spring Boot)

  1. Navigate to the backend directory:
    cd backend
  2. Configure Database: Edit the connection properties in src/main/resources/application.properties to 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
  3. Build and Run: Use Maven to compile and start the Spring Boot application:
    mvn clean install
    mvn spring-boot:run
    The backend will typically start on http://localhost:8080.

3. Frontend Setup (React)

  1. Navigate to the frontend directory:
    cd ../frontend/voting-client
  2. Install Dependencies:
    npm install
  3. Start the Application:
    npm start
    The frontend application will typically open in your browser on http://localhost:3000.

🔑 Key Features

  • 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.

🤝 Contribution Guidelines

We welcome contributions to improve the Online Voting System!

  1. Fork the repository.
  2. Create a feature branch: git checkout -b feature/your-new-feature
  3. Commit your changes clearly: git commit -m "Feat: Added new admin view for voters"
  4. Push to your branch: git push origin feature/your-new-feature
  5. Open a Pull Request to the main branch.

👤 Contact

About

Full-stack online voting system designed to replace traditional paper ballots. The application features role-based access control (RBAC), separating Admin management tools (voter registration, election setup) from the secure Voter dashboard. Built with a modern React frontend (Tailwind CSS) and RESTful API integration.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages