- Voter registration with admin authentication
- Secure vote casting with cryptographic hashing
- Real-time block mining and chain validation
- Interactive blockchain explorer
- Live election results dashboard
- Double-voting prevention
- Tamper-proof audit trail
- Frontend: React, Bootstrap, Chart.js
- Backend: Python, Flask, WebSockets, Node.js (Express.js)
- Database: MySQL
- Blockchain: Custom Python implementation
- Tools: GitHub, Postman, VS Code, Figma
- Python 3.8+
- Node.js 14+
- npm or yarn
- MySQL Server (local or cloud)
This project now uses MySQL for persistent storage of all elections, voters, votes, and blockchain data.
- Log in to MySQL as root:
mysql -u root -p - Create a database and user for the project using the main user credentials:
CREATE DATABASE voting_system; CREATE USER 'project'@'localhost' IDENTIFIED BY 'mohit'; GRANT ALL PRIVILEGES ON voting_system.* TO 'project'@'localhost'; FLUSH PRIVILEGES;
- The backend will automatically create all required tables on first run.
After completing the MySQL setup steps above, you can start the entire project (backend servers and frontend) with a single click:
- Double-click the
start_all.batfile in the project root. - This will automatically:
- Set up the Python virtual environment (if needed)
- Install backend dependencies
- Start the backend Flask server and WebSocket server
- Install frontend dependencies and start the React app
You will see new command windows open for each server. The app will be available at http://localhost:3000.
- Navigate to the backend directory:
cd backend - Create a virtual environment:
python -m venv venv - Activate the virtual environment:
- Windows:
venv\Scripts\activate - macOS/Linux:
source venv/bin/activate
- Windows:
- Install dependencies:
pip install -r requirements.txt - Run the DB initialization script (creates tables):
python init_db.py - Run the Flask server:
python app.py - In a new terminal, run the WebSocket server:
python ws_server.py
- Navigate to the frontend directory:
cd frontend-new - Install dependencies:
npm install - Start the development server:
npm start
- Access the application at
http://localhost:3000 - Register voters using the Admin tab (admin key: admin123)
- Cast votes using the Vote tab
- View results on the Dashboard
- Explore the blockchain using the Blockchain Explorer
- Voter identity anonymization through cryptographic hashing
- Double-voting prevention mechanisms
- Blockchain tampering detection
- Immutable audit trail
- Neel Pandey : 24BCE10303
- Yash Tripathi : 24BCE10603
- Mohit Bankar : 24BCE11104
- Arsh Bakshi : 24BCE10568
- Ayush Man Singh Bhadauria : 24BCE10404
https://drive.google.com/file/d/1d5lqRXHv21fDVzBlNIyYTXGmgYYpAoJ1/view?usp=sharing
Dr. Nilesh Kunhare
Dr.Gaurav Soni
Dr.Ravi VermaThis project is for educational purposes. emo
