Skip to content

Ethereum blockchain web application for open voting scenarios (built using Solidity/Truffle/React.JS)

Notifications You must be signed in to change notification settings

DragomirAndrei19/BlockChainVotingApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BlockChainVotingApp

Ethereum blockchain web application for open voting scenarios (built using Solidity/Truffle/React.JS)

===== Ethereum BlockChain web application for transparent/open voting scenarios (with some degree of optional privacy) =====

  • Ethereum key pair based authentication
  • Node.JS/Javascript & React.JS frontend
  • Smart Contract based backed (using Solidity language)
  • Uses Truffle JS & MetaMask for interaction

Required: Node.JS, Ganache (to emulate a local blockchain)

image

Capabiltiies:

General Use-Case UML Diagram image

  • Unique vote is enforced
  • Encrypted voter authentication data using xsalsa20-poly1305 image
  • Role-based authorization (two roles - voter and election administrator)
  • Manual approval of the voters
  • Distributed data storage (specific to BlockChain)
  • Uses homomorphic encryption (Paillier) to hide the vote count
  • All the roles are constrained to follow the mutually estabilished rules of the smart contract
  • Backend and frontend validation of the form received data

How to run:

  1. Install node modules
  2. Start Ganache (CLI or GUI)
  3. truffle migrate --reset (to do migration & contract compilation)
  4. npm run start (to run the frontend side of the web app)

Screenshots

a) Home Page image

b) Pending requests page image

c) Page with the list of candidates image

d) Register Candidates page image

e) Approval prompt image

f) Administrator panel image

About

Ethereum blockchain web application for open voting scenarios (built using Solidity/Truffle/React.JS)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published