/BlockChainVoting

A blockchain based E-voting system

Primary LanguageJavaScriptMIT LicenseMIT

BlockChainVoting

A blockchain-based E-voting system, created as the final year project of Shri Bhagubhai Mafatlal Polytechnic. Teammates include me, Sayyam Gada and Charmee Mehta.

The application is MIT-Licensed.

Build Setup

# install dependencies
npm install

# serve with hot reload at localhost:3000
npm start

Create your own .env file and the file should contain:

EMAIL=YOUR_EMAIL_ID
PASSWORD=YOUR_PASSWORD_FOR_EMAIL_ID

Install MetaMask extension (https://metamask.io/download.html) and make sure to have some Ether to test the application locally. Ether can be fetched from Rinkeby Faucet (https://faucet.rinkeby.io)

Note:

  • Make sure to install Node.js v11.14.0 to make sure the app runs fine. Testing for other node versions is yet to be done.
  • MongoDB must be working in background on localhost:27017
Please star the repo if it helped you in any way!

Tech Stack:

  • Solidity/Web3 (for writing/connecting the Blockchain contract)
  • Next.js & Semantic UI React (front-end)
  • MongoDB/ExpressJS/Node.js (back-end)
  • IPFS (file storage for images)

Screenshots of the app:

Homepage of the application:

Company registers/logs in:

Company creates an election if not created:

Dashboard on successful election creation:

List of candidates for the election (here, you can add candidates):

Candidate has been notified on the mail:

List of voters for the election (here, you can add voters):

Voters have been sent their secure usernames and passwords on the mail:

Voter login page:

Successful voting scenario:

Unsuccessful voting scenario:

Notification to each candidate and voter for the winner of candidates: