eVoting system using the Ethereum blockchain
Group: 10
Project code: SC5
Tech Stack | |
---|---|
Front-end | HTML, Bootstrap |
Back-end | Flask, web3.py |
Blockchain | Ethereum (Sepolia) |
API | Infura |
Wallet | MetaMask |
- File details
- How to start the application
- How to get the private key
- Project requirements
- Project report
- Contributors
- Meeting log
- Demo
Filename | Details |
---|---|
candidates.csv | Automatically get inserted into the candidate table in the database with a fresh start |
admin.json | Set the admin username, password, and wallet address. The contract address gets automatically added after deployment. Automatically get inserted into the database with a fresh start |
ABI.json | The ABI file gets automatically written after deployment |
- Add the list of candidates
- Set admin credentials Add your wallet address
"wallet": "YOUR_WALLET_ADDRESS"
Add email ID and App password here: dapp/credentials.py
SENDER_EMAIL = "example@domain.com"
PASSWORD = "nx2189n&gs76"
To disable email service. OTP will be available in the terminal.
EMAIL_SERVICE = False
Add Infura
API
WEB3_PROVIDER_URL = "https://sepolia.infura.io/v3/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
The directory should be inside sc5-evoting-g10
suvam@KD-304A:~/Projects/sc5-evoting-g10$
Create
virtualenv .venv
Activate
. .venv/bin/activate
Install dependencies from requirements.txt
pip install -r requirements.txt
It will prompt for the private key. Input will be hidden
.
python deploy.py
- It will create
ABI.json
file - Add the contract address in
admin.json
- Export app name
export FLASK_APP=dapp
- Set debugging mode
export FLASK_DEBUG=1
- Start app
For localhost
flask run
For LAN
flask run --host=0.0.0.0
- Login as Admin and set election start and end time before voting. Otherwise it will fail to cast vote.
- Publish the vote from the Admin panel to make the voting result available public.
- Goto MetaMask
- Three dot menu (top right side)
- Select
Account details
Export private key
- Type your MetaMask
password
- Chandra Sekhar Kondeti - chandrask22@iitk.ac.in
- Hrishav Raj - hrishavr22@iitk.ac.in
- Suvam Basak - suvambasak22@iitk.ac.in
- Major Navneet Sharma - navneets22@iitk.ac.in