- This project aims at implementing a voting system based on Blockchain technology.
- It is a secure, transparent and decentralized way of voting.
- It converts ballots into transactions and securely mines blocks out of them.
- The advantage of a blockchain based voting system include the ability to vote from any place and prevent any tampering of votes.
- Python 3.11.x
- Django Web Framework 4.2.1
- Bootstrap 4
- DB SQLite 3
- HTML5
Z-vote Production Server On Docker (click image)
# Install Git First // (Else You Can Download And Upload to Your Local Server) $ git clone https://github.com/akkupy/Z-Vote.git # Open Git Cloned File $ cd Z-Vote # Config Virtual Env (Skip is already Done.) $ virtualenv -p /usr/bin/python3 venv $ . ./venv/bin/activate # Install All Requirements. $ pip(3) install -r requirements.txt # Run makemigrations and migrate command. $ python(3) manage.py makemigrations poll $ python(3) manage.py migrate # Create a Superuser. $ python(3) manage.py createsuperuser # Create a .env file(See Below for more details.) # Start Server $ python(3) manage.py runserver 0.0.0.0:80 # Head over to http://127.0.0.1/ to see the website. # Head over to http://127.0.0.1/admin to add the voterlists in 'Voter lists' table and the candidates in the 'Candidates' table. # Set the Voting Time in 'Vote auths' table(Create only one object and add the start and end time of voting). # Now the project is ready for Voting!
- Go to API NINJA and signup to obtain the api key for passphrase generation.
- Create an Account on TWILIO and Buy a Phone Number to use the OTP Service.
Fill the .env file with the obtained values.
[+] Create a .env file in the root directory for the api tokens
[-] API_NINJA_API = ''
[-] TWILIO_ACCOUNT_SID = ''
[-] TWILIO_AUTH_TOKEN = ''
[-] TWILIO_PHONE_NUMBER = ''
API_NINJA_API = '/ghjf53spoG657vghjygdr0qw==uRVWERV'
TWILIO_ACCOUNT_SID = 'AA3w5fgdrfawd3459faedw4349a3b'
TWILIO_AUTH_TOKEN = 'awd18f3ccac7329thfsf43fd4drgx1'
TWILIO_PHONE_NUMBER = '+134656544'
This is a Free Software: You can use, study share and improve it at your will. Specifically you can redistribute and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.