E - Voting Created Using Django
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.
Features:
- 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
A. Admin Users Can
- 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
B. Voters Can
- Register
- Login
- Verify with OTP (This can be overwritten in
settings.py
file) - Votes for their favourite candidates
- View candidates they voted for
๐ธ ScreenShots Database Design
Admin | Voter |
---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
------- ------ ------ ------ |
![]() |
------- ------ ------ ------ |
![]() |
------- ------ ------ ------ |
![]() |
------- ------ ------ ------ |
Support Developer
- Add a Star ๐ to this ๐ Repository
- Follow on Twitter/Github
Passport/Images
Images are from Unsplash
Pre-Requisites:
-
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
Installation
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
For Sponsor or Projects Enquiry
- Email - jobowonubi@gmail.com
- LinkedIn - jobic10
- Twitter - jobic10
How the system works
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)
How do voters get 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
Can OTP verification be bypassed ?
Yeah, sure.
Open settings.py
and toggle SEND_OTP
to False
Then, wait till server restarts
Open to contribution ?
Yeah. Pull requests are welcomed.
Having any issue using this ?
Please, let us know. Open up an issue.