Code Monkey home page Code Monkey logo

apna_chunav's Introduction

Decentralized Blockchain-based Voting System

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.

Overview of the App

  • 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.

Structure of the Project

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.

Tech Stack

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.

Model Deployment

  1. Clone the repository.
bashCopy code
git clone https://github.com/sukhendu2002/decentralizedVotingUsingBlockchain.git
  1. Install the dependencies.
npm install
cd server 
npm install 
cd ..
cd client
npm install
cd ..

  1. Start the local blockchain network using Ganache or any other Ethereum-compatible blockchain.
  2. 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

Demo Screenshots

Landing Page

Screenshot 2023-03-21 094304

Add a new candidate

1677394929645

Initialize Voting

1677394973442

Voter Registration page

1677395069893

Verification page from the Admin side

1677395387524

Voting page

1677395441904

Result Page

1677395513220

Conclusion

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.