Skip to content

jerydam/BallotBridge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ballot Bridge Overview Web App / Demo Video

File

BallotBridge is a tool designed to make voting easy, secure, and fair by using blockchain technology. Imagine it as a digital system where elections can be held without the need for a central authority, ensuring that everything is transparent and tamper-proof.

What Does BallotBridge Do?

  1. Creating Elections: File

    • Anyone in charge of an election can set up a new one, giving it a name, add candidates, description, and specific dates for when voting starts and ends.
  2. Registering Voters: File

    • Before voting, people need to sign up as voters. To ensure security, they verify their identity with a special code sent to them.
  3. Casting Votes: File

    • Once registered, voters can choose their preferred candidate during the election period.
  4. Automatic Election End:

    • The system automatically ends the election at the set time and announces the winner based on the votes.
  5. Accessing Election Information:

    • Anyone can check the details of the election, like what it's about, who the candidates are, and who won. Only the creator of an election has administartive rights over it, but until voting starts. After voting starts, even the creator of an election has no administrative rights over it. This is to ensure fairness in the voting process.

How Does It Work?

Connect Wallet File Note that you can't use the platform without connecting wallet. To connect wallet, go to the Web App. For desktop, click on the "Connect Wallet" button on the upper right of the screen and choose your login method either with wallet or email. If you don't have a wallet installed already, the wallet connect window has links to download a wallet of your choice on your device's browser (Brave browser, Google Chrome, Opera browser, or Yandex browser all work fine). On mobile, simply download your desired EVM-compatible wallet and use its inbuilt browser to connect to BallotBridge. Connect your wallet by clicking on the "Connect wallet" button on the upper right of the screen. Ensure to change network to Lisk Sepolia test network from the wallet connect window. The display on the screen will change after connecting (typically, it shows your ETH balance and a substring of your connected wallet address).

  1. Setting Up the Election: File

    • The election organizer starts by creating an election on the platform. This involves setting a title, description, addition of candidates, and timeline and time duration etc.
  2. Voter Sign-Up:

    • People who want to vote sign up through the platform. They receive a one-time password (OTP) to confirm their identity.
  3. Voting Process:

    • When the election is live, registered voters can log in and cast their vote for their chosen candidate.
  4. Election End and Results:

    • Once the election time is up, the system automatically closes the voting, counts the votes, and announces the winner without anyone needing to intervene.
  5. Checking the Election:

    • Throughout the process, anyone can view information about the election, including the candidates and the final results.

Why Is It Important?

BallotBridge makes voting fair and transparent by eliminating the chance of cheating. Since everything is recorded on the blockchain, it’s secure and unchangeable, giving everyone confidence in the results. It’s a modern solution for organizing elections, ensuring that every vote is counted and that the process is clear and trustworthy.

BallotBridge uses a mix of blockchain and web development tools to create a decentralized application. Here’s a breakdown of the technologies used:

Smart Contract Tools:

  • Solidity: The programming language used to write the smart contracts that run on the blockchain.
  • Foundry: A development tool used to test, deploy, and interact with smart contracts.

Front-End and Integration Tools:

  • Web3Modal: Provides a simple SDK for users to connect their crypto wallets.
  • Ethers.js: A JavaScript library to interact with the blockchain and execute transactions.
  • Lisk Testnet Token Tracker: Tracks tokens/transactions on the Lisk testnet, used for testing purposes.
  • Filebase AWS IPFS SDK: An SDK tool to store files on a decentralized storage network using IPFS (InterPlanetary File System).
  • Next.js: A React-based framework used to build the user interface of the application.
  • Node.js: A backend JavaScript runtime environment used for server-side operations.
  • JavaScript: The primary language for front-end functionality and interaction.
  • Tailwind CSS: A CSS framework to design the front-end in a responsive and flexible way.
  • Twilo API: An API using for phone number verification

Note: In subsequent upgrades of the product and overall user experience, ZK technology will be integrated. The Twilio SMS API and NIN API will as well be implemented properly to ensure more strict fairness in the voting process.

Deployment Link:

smartcontract

Web app

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors