Sam-Karanja / E-Poll-1

This is a Simple,secure and transparent voting system. With our lives increasingly shifting online, it’s only logical that voting would transition to a digital platform, too. Common features include single-vote verification, which ensures members don’t inadvertently vote more than once; ballot tracking, which monitors the exact moment a ballot is processed; a secure network to protect the entire process from nominations to tabulation; and secret ballots, which keep ballots private.

Home Page:https://epoll-app.herokuapp.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

E-Poll

Author

Samuel Murigi

Description

  • This is a Simple,secure and transparent voting system. With our lives increasingly shifting online, it’s only logical that voting would transition to a digital platform, too. Common features include single-vote verification, which ensures members don’t inadvertently vote more than once; ballot tracking, which monitors the exact moment a ballot is processed; a secure network to protect the entire process from nominations to tabulation; and secret ballots, which keep ballots private.

image

image

User Story

Voter view

  • Voter can register
  • Voter can login
  • Voter can see available candidates on the voter dashboard
  • Voter can vote his/her candidate of choice
  • Voter can submit and view their ballot/voting history

Admin view

  • Admin can Register and Login.
  • Admin can add a position and a candidate.
  • Admin can see the ballots and followup on the voting

Behavior Driven Development

Input Behaviour Output
Voter Login Input the email and password Redirect you to the voterDashboard
Admin login Input the email and password Redirect you to the AdminDashboard
Voter can vote select the candidates of their choice cast/submit the vote
Admin can add candidate and position filling a form The blog post will be deleted and not appear on the page
Admin can see the voting process gets instant results Ballot is casted
Voter can only vote once voter can view their ballot Voter can logout

Technologies Used

  • Python
  • Django
  • PostgreSQL
  • SQLAlchemy
  • HTML5
  • CSS3
  • Javascript
  • Bootstrap

Requirements

  • This program requires python3.+ installed, a guide on how to install python on various platforms can be found here

  • Once python is installed, install the folowing external libraries provided in the requirements.txt file using pip

  • Example:

    • pip install django

    Installation and Set-up

To view the app, open the live site link provided below on the README. Here is a run through of how to set up the application:

  • Step 1 : Clone this repository using `git clone https://github.com/Sam-Karanja/E-Poll.git, or downloading a ZIP file of the code.
  • Step 2 : The repository, if downloaded as a .zip file will need to be extracted to your preferred location and opened
  • Step 3 : Go to the project root directory and install the virtualenv library using pip an afterwards create a virtual environment. Run the following commands respectively:
    • pip install virtualenv
    • virtualenv venv
    • source venv/bin/activate
      • Note that you can exit the virtual environment by running the command deactivate
  • Step 4 : Go to config.py and set the SQLALCHEMY_DATABASE_URI to your own, you may use Postgres or any other SQL databse client.
  • Step 5 : Download the all dependencies in the requirements.txt using pip install -r requirements.txt
    • Create a file in your root directory called .env and store a generated SECRET key like so export SECRET_KEY="<your-key>"
    • On the same file write down the command python3 manage.py server *
    • Open your preferred browser and view the app by opening the link http://127.0.0.1:8000/ or run the command python3 manage.py runserver.

Contacts

karanjasam210@gmail.com

live link

License

About

This is a Simple,secure and transparent voting system. With our lives increasingly shifting online, it’s only logical that voting would transition to a digital platform, too. Common features include single-vote verification, which ensures members don’t inadvertently vote more than once; ballot tracking, which monitors the exact moment a ballot is processed; a secure network to protect the entire process from nominations to tabulation; and secret ballots, which keep ballots private.

https://epoll-app.herokuapp.com/

License:MIT License


Languages

Language:CSS 49.8%Language:JavaScript 27.8%Language:HTML 13.2%Language:Python 9.0%Language:Shell 0.2%Language:Procfile 0.0%