Polling app with a simple, intuitive UX that also takes care of the complexities like privacy, integrity and security behind the scenes.
- Python : >=3.5
- Chrome : >=68 (for running functional tests)
- virtualenv : *
- MySQL Server : >=8.0.13
virtualenv -p python3 votingsource voting/bin/activateclone https://github.com/tameeshB/e-Voting.gitcd e-Votingnano .env;source .env# and edit with mysql and webmail credentials.pip install -r REQUIREMENTS.txtpython manage.py makemigrationspython manage.py migratepython manage.py loaddata templateMigrationData.jsonpython manage.py runserver
- Replace necessary global variables in the
polls/globals.pyfile. Make sure to set a random secret key insecretHashandclientKeyto desired password for the init console at/init. - Create an admin user with the credentials:
source .env;python manage.py createsuperuserand enter desired credentials. - Login with the generated credentials at
http://localhost/admin. - Use the "Token Dashboard" to generate one-time login tokens to hand out to voters.
- Use the "Poll Control Panel" to control the poll status: Start/Stop the Poll. Count and Publish/Unpublish the results.
- Before the poll starts, all computers that will be used by the voters must be initialized by visiting
/initthe client-key to be used here is the one in thepolls/globals.py.
wget https://chromedriver.storage.googleapis.com/2.43/chromedriver_linux64.zip# linuxunzip chromedriver_linux64.zipsudo chmod +x chromedriverexport webdriver_chrome=$PWD/chromedriverexport PATH=$PATH:$PWD/chromedriverpython manage.py runserver &# run server in background if not already startedpython manage.py test tests/# run the testskill %1# stop server running in background
- Eliminating manual ballot system.
- Counting of ballots is a long and laborious process.
- Wastage of paper.
- Any simple app made for this purpose might have privacy, security and integrity issues.


