A brief description of what this project does and who it's for
Security of digital voting is a big concern, and this can affect the integrity of the democratic process. Voter fraud has also been an issue in the democractic process most importantly wher digital voting has been used whereby non-authenticated users are still permitted to vote, or the digital tool is being manipulated. This in general and more have put a dent on the democratic process.
- Eliminate voter fraud
- secure and decentralised voting system
- Anonymity and Integrity
This project consist of 3 part(ReactJs, NodeJs/ExpressJs, Solidty/Truffle) which must run simultenously
Install these prerequisites:
- NPM: https://nodejs.org
- Truffle: https://github.com/trufflesuite/truffle
- Ganache: http://truffleframework.com/ganache/
- MongoDB Compass: https://www.mongodb.com/products/compass
Clone this project git clone https://github.com/deluxscript/digivote.git
Clone the backend folder in another directory git clone https://github.com/deluxscript/digiVoteBackend.git
Open and install MongoDB Compass, Copy the mongoURI string in the root folder /digiVoteBackend/config/default.json
to the new connection field so visualize all data coming in
Run npm start
to start the backend server on port 8080
Install all dependenciies
$ cd digivote
$ npm install
Open the install Genache GUI, the GUI comes with 10 addresses with 100ETH balance each
On the terminal from /digivote
directory, run the following command to deploy the smart contract
$ truffle migrate --reset
This must be done at every attempt Genache is restarted
Create .env
file in the root folder to store two ethereum address using the below variable
REACT_APP_DIGIVOTE_ELECTORAL_BODY_ADDRESS= {ANY ADRESS FROM GENACHE ACOUNT}
REACT_APP_DIGIVOTE_VOTER_ADDRESS= {ANY ADRESS FROM GENACHE ACOUNT excluding the one used above}
Start the application npm start
on port 3000, visit browser at http://localhost:3000