A secure, transparent, and user-friendly Online Voting Platform built using Python (Flask Framework).
This project aims to modernize traditional voting by enabling digital participation while ensuring security, integrity, and accessibility for all users.
Elections are the backbone of democracy, but manual voting often suffers from:
- Long queues & delays in counting
- Possibility of human error
- Limited accessibility for remote voters
- Security challenges like ballot tampering
This project addresses these challenges with a digital-first solution that is:
- π‘οΈ Secure β Encrypted data, no duplicate voting
- β‘ Efficient β Real-time result computation
- π Accessible β Remote voting for registered users
- π Transparent β Admin dashboard for monitoring
- Voter registration & authentication
- Passwords stored securely with bcrypt hashing
- One vote per user validation
- Intuitive voting interface
- Cast vote digitally with one click
- Automatic confirmation message
- Real-time update of voting records
- Manage elections (start/end sessions)
- Add/remove voters
- View live results with candidate-wise breakdown
- Export data for auditing
- Encrypted password storage (bcrypt)
- Plans for AES encryption of vote data
- Duplicate voting prevention
- Blockchain integration (future scope) for immutable logs
- Simple, mobile-friendly web interface
- Can be deployed on cloud for remote access
- Language localization support (planned)
.
βββ admFunc.py # Admin functionalities
βββ Admin.py # Admin logic (login, results)
βββ dframe.py # Data management using pandas
βββ homePage.py # Homepage routing
βββ LICENSE # Open-source license
βββ Project Report.pdf # Project documentation
βββ README.md # Documentation file
βββ registerVoter.py # Registration logic
βββ Server.py # Flask server entry point
βββ voter.py # Voter-related logic
βββ VotingPage.py # Voting page logic
βββ static/ # CSS, JS, images
βββ templates/ # HTML templates
Make sure the following are installed:
- Python 3.8+
- pip (Python package manager)
- Git
git clone https://github.com/your-username/online-voting-system.git
cd online-voting-systempip install flask bcrypt pandas(Optional) Use a virtual environment:
python -m venv venv
source venv/bin/activate # For Linux/Mac
venv\Scripts\activate # For Windows- Start the Flask server:
python Server.py
- Open your browser and go to:
http://127.0.0.1:5000/ - Register as a voter, log in, and cast your vote.
- Admin can log in via the admin route and view live results.
- Registration β User signs up with secure credentials.
- Login β Authentication via username & password.
- Voting β User casts vote for their candidate.
- Confirmation β System acknowledges successful vote.
- Admin Monitoring β Admin views live tally in dashboard.
- Votes stored securely in
votes.csv - Admin can generate reports & export data
- Results update in real-time
- bcrypt hashing for password security
- Planned: AES encryption for sensitive data
- Planned: Blockchain-based storage for immutable voting records
- Role-based access (Voter vs Admin)
- Frontend: HTML, CSS, Bootstrap (templates)
- Backend: Python (Flask Framework)
- Database: Pandas (CSV-based), extendable to MySQL/PostgreSQL
- Authentication: bcrypt hashing
- Deployment Options: Localhost / Cloud (Heroku, AWS, etc.)
We welcome contributions from GSSoC contributors and the open-source community!
- Fork this repository
- Clone your fork:
git clone https://github.com/your-username/online-voting-system.git
- Create a new branch:
git checkout -b feature-name
- Commit your changes:
git commit -m "Added feature: X" - Push to your fork:
git push origin feature/branch-name
- Open a Pull Request (PR) with:
- Clear description of changes
- Screenshots (if applicable)
This project is licensed under the MIT License β see the LICENSE file for details.
- β Integration with SQL/NoSQL database
- β Blockchain-based vote recording
- β Multi-factor authentication (OTP/Email)
- β Support for large-scale elections with load balancing
- β Deployment on cloud platforms (AWS/Heroku/DigitalOcean)
- Developed as part of CSE Dept, CIT Mandya (2024β25)
- Open for contributions via GirlScript Summer of Code (GSSoC) 2025
- Inspired by the need for transparent, digital elections