This E - Voting System Was Developed With Django(Python Framework). Feel free to make changes based on your requirements.
If you like this project, then ADD a STAR ⭐️ to this project 👆
This Voting System web application built using Django can serve as the automated voting system for organizations and/or institutions. The system works like the common election manual system of voting whereas the system must be populated by the list of the positions, candidates, and voters. The E-voting system can help a certain organization or school to minimize the voting time duration because aside providing the voters an online platform to vote, the system will automatically count the votes for each candidate. The system has 2 sides of the user interface which are the administrator and voters side. The admin user is in charge to populate and manage the data of the system and the voter side which is where the voters will choose their candidate and submit their votes.
- Vote preview
- Multiple votes
- Result tally via Horizontal Bar Chart
- Print voting results in PDF
- Changeable order of positions to show in the ballot
- CRUD voters
- CRUD candidates
- CRUD positions
- Plugins
- AdminLTE Template
- See Overall Summary Charts of Votes
- Reset Votes
- Manage Voters (CRUD)
- Manage Candidates (CRUD)
- Manage Positions (CRUD)
- Change Ballot Style (Ballot Position)
- Update/Change Ballot Title
- Register
- Login
- Verify with OTP (This can be overwritten in
settings.py
file) - Votes for their favourite candidates
- View candidates they voted for
Admin | Voter |
---|---|
------- ------ ------ ------ | |
------- ------ ------ ------ | |
------- ------ ------ ------ | |
------- ------ ------ ------ |
- Add a Star 🌟 to this 👆 Repository
- Follow on Twitter/Github
Images are from Unsplash
-
Install Git Version Control [ https://git-scm.com/ ]
-
Install Python Latest Version [ https://www.python.org/downloads/ ]
-
Install Pip (Package Manager) [ https://pip.pypa.io/en/stable/installing/ ]
Alternative to Pip is Homebrew
1. Create a Folder where you want to save the project
2. Create a Virtual Environment and Activate
Install Virtual Environment First
$ pip install virtualenv
Create Virtual Environment
For Windows
$ python -m venv venv
For Mac
$ python3 -m venv venv
For Linux
$ virtualenv .
Activate Virtual Environment
For Windows
$ source venv/scripts/activate
For Mac
$ source venv/bin/activate
For Linux
$ source bin/activate
3. Clone this project
$ git clone https://github.com/jobic10/e-voting-with-django.git
Then, Enter the project
$ cd e-voting-with-django
4. Install Requirements from 'requirements.txt'
$ pip3 install -r requirements.txt
5. Run migrations and migrate
python manage.py makemigrations
python manage.py migrate
6. Now Run Server
Command for PC:
$ python manage.py runserver
Command for Mac:
$ python3 manage.py runserver
Command for Linux:
$ python3 manage.py runserver
7. Login Credentials
Create Super User (HOD) Command for PC:
$ python manage.py createsuperuser
Command for Mac:
$ python3 manage.py createsuperuser
Command for Linux:
$ python3 manage.py createsuperuser
Then Add Email and Password
or Use Default Credentials
For HOD /SuperAdmin Email: admin@admin.com Password: admin
For Staff Email: staff@staff.com Password: staff
For Student Email: student@student.com Password: student
- Email - jobowonubi@gmail.com
- LinkedIn - jobic10
- Twitter - jobic10
Administrator is required to have created candidates. Before creating candidates, the admin must have created positions After doing this, the voters can vote (provided that they are registered and verified)
OTP is sent to voter's phone. In a case of OTP delivery error, voter can request for OTP again. The OTP is sent via an SMS gateway. Voters can request for OTP for a maximum of three times. Same OTP is sent to voters
Yeah, sure.
Open settings.py
and toggle SEND_OTP
to False
Then, wait till server restarts
Yeah. Pull requests are welcomed.
Please, let us know. Open up an issue.