Inspiration

Today Voting Systems are not transparent and difficult to trust the result, whether it could be a government election or some small election. There's always a negative feeling if the candidate loses (ex: Faulty Machine, Change in Centralized DataBase, etc.). There is another problem of location if the voters are out of station or for some reason can't travel to the voting place. So to solve these issues: of transparency, trust, etc: A Voting Machine that runs on BlockChain can be introduced : BlockChain voting just not produces a transparent result but also encourages voters to participate.

What it does

EVM(Ethereum Voting Machine) is a Blockchain Voting Website:

  • ELection Chief verify the voters to make them eligible to vote.
  • Election chief can also add candidates.
  • Verified voters can vote for the candidate they want to vote for. Voters cannot vote twice or change their vote.
  • Any account can check the result and the total voters, voters absent, and total candidates.

How we built it

I have used Solidity to build the Smart Contract. Used Remix IDE to check all the functionality is working as I don't know how to write tests on the hardhat. Hardhat framework to Compile and deploy the smart Contract. Nextjs for the front end . ethers js ** library to create the connection between the contract and the web. **web3modal to connect the metamask wallet. polygon Mumbai testnet used as Polygon testnet to test Javascript HTML CSS ** Google Search Engine, StackOverFlow, Github, Vercel, Metamask**

==================================================================

Demo

Voting.sol

  • Click the Own button to make account Chief: Imgur

  • Chief can add candidate Imgur

  • Cheif can verify voters Imgur

  • Voters can vote Imgur

  • See Result Imgur

*I have added extra 2 candidates because of the demo and video.

Challenges we ran into

  • Connecting smart contract and the front end.
  • Some unreasonable errors were solved on restarting or redeploying

Accomplishments that we're proud of

What we learned

What's next for Ethereum Voting Machine

  • Dynamically add the candidates in the table instead of the hardcoded table
  • Timer to start and the election
  • voter can request to chief instead of copy paste the account address

Built With

Share this project:

Updates