Decentralized Voting System
ई-matadan is a decentralized voting system that leverages blockchain technology to ensure secure, transparent, and tamper-proof voting processes. It provides a seamless platform for voters to cast their votes in a decentralized manner, ensuring the integrity and anonymity of each vote.
-
Decentralized Architecture: Ensures transparency and security using blockchain.
-
Voter Authentication: Secure voter login with Google authentication and JWT tokens.
-
Anonymity: Preserves voter privacy by anonymizing votes.
-
Tamper-Proof Records: Immutable vote records using blockchain.
-
Cross-Platform Compatibility: Designed to work seamlessly across devices.
-
Frontend: React.js
-
Backend:
-
Spring Boot: Handles authentication.
-
Django: Manages voting data and operations.
-
-
Blockchain: Used for recording and verifying votes.
-
Authentication: Google Login with JWT.
ematadan/
├── backend/ # Contains Django project for data management
├── frontend/ # Contains React project for user interface
└── blockchain/ # Contains blockchain-related scripts and smart contracts
-
Clone the Repository:
git clone https://github.com/<username>/ematadan.git cd ematadan -
Backend Setup (Django):
cd backend python -m venv env source env/bin/activate # Use `env\\Scripts\\activate` on Windows pip install -r requirements.txt python manage.py migrate python manage.py runserver -
Frontend Setup (React):
cd ../frontend npm install npm start -
Blockchain Setup:
-
Install Truffle:
npm install -g truffle -
Navigate to the blockchain folder and deploy smart contracts:
cd ../blockchain truffle compile truffle migrate
-
-
Spring Boot Setup:
-
Open the Spring Boot project in your preferred IDE (e.g., IntelliJ or Eclipse).
-
Run the application.
-
-
Environment Variables: Create a
.envfile in the required directories with the necessary environment variables (e.g., API keys, database credentials).
-
Access the frontend application at
http://localhost:3000. -
Log in using Google authentication.
-
Cast your vote securely.
-
Verify your vote on the blockchain.
Contributions are welcome! Please follow these steps:
-
Fork the repository.
-
Create a new branch for your feature or bugfix.
-
Commit your changes and push them to your fork.
-
Submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
-
NCIT College
-
Hackathon team 0xCdeRz