This is a decentralized blockchain-based voting system built on Ethereum smart contracts. The system uses web3.js for verifying the KYC of the user using face matching. All the photos and documents are stored on IPFS, and Twilio is used to send confirmation messages.
- The app is a secure and transparent way of conducting elections.
- Ethereum smart contracts are used for vote counting and verification.
- This app has mainly two sides one is admin side one is normal voter side.
- The system ensures that only registered users can cast their votes.
- Each user can cast only one vote to prevent fraud.
- KYC verification is done using face matching to ensure that only eligible users can participate in the elections.
- All the photos and documents related to KYC verification are stored on IPFS to ensure that they cannot be tampered with.
- Twilio is used to send confirmation messages to the users after they cast their votes, adding an additional layer of security.
The project consists of two main components: the smart contract and the front-end application. The smart contract is responsible for vote counting and verification. The front-end application is responsible for user authentication, KYC verification, and vote casting.
This project has two sides one is the admin side one is the normal voter side, only the admin side has the ability to verify the add candidate, and verify voter.
The project uses Truffle for compiling and deploying the smart contract. Ganache or any other Ethereum-compatible blockchain can be used for running the local blockchain network.
The front-end application uses web3.js for interacting with the smart contract. The application is built using React. The application uses the face matching API for KYC verification. The photos and documents related to KYC verification are stored on IPFS.
The tech stack used in the decentralized blockchain-based voting system is as follows:
- Ethereum: Ethereum is used to build the smart contracts that handle the vote counting and verification.
- Web3.js: Web3.js is used to interact with the smart contracts from the front-end application.
- React: React is used to build the front-end application.
- IPFS: IPFS is used to store the photos and documents related to KYC verification.
- Twilio: Twilio is used to send confirmation messages to the users after they cast their votes.
- Face Matching API: Face Matching API is used for KYC verification.
- Truffle: Truffle is used to compile and deploy the smart contracts to the local blockchain network.
- Ganache: Ganache is used as the local blockchain network for testing the smart contracts.
- Clone the repository.
bashCopy codegit clone https://github.com/sukhendu2002/decentralizedVotingUsingBlockchain.git
- Install the dependencies.
npm install
cd server
npm install
cd ..
cd client
npm install
cd ..
- Start the local blockchain network using Ganache or any other Ethereum-compatible blockchain.
- Compile and deploy the smart contract to the local blockchain network.
truffle migrate --reset --netwok mumbai
cd server
npm start
open a new terminal
cd client
npm start
The decentralized blockchain-based voting system is a secure and transparent way of conducting elections. The system ensures that only eligible users can participate in the elections and that each user can cast only one vote. The use of face matching for KYC verification and IPFS for storing photos and documents ensures that the system is secure and tamper-proof. The integration of Twilio for sending confirmation messages adds an additional layer of security. The system can be used for conducting elections at various levels, including local, national, and international.