CloudVote Web3 Voting System
Secure and transparent decentralized voting application on the Ethereum blockchain.
Share this project:
Project Overview
๐ณ๏ธ CloudVote - Web3 Voting System
CloudVote is a decentralized voting application built on the Ethereum blockchain (Sepolia Testnet). This project ensures a secure, transparent, and immutable voting process, perfect for community decisions or small-scale elections.
It implements Privacy-Preserving Registration where voter names are hashed before being stored on-chain, ensuring that identities are protected while maintaining the integrity of the vote.
โจ Key Features
- Decentralized Infrastructure: No central authority can manipulate the results.
- Privacy-Preserving: Voter names are hashed (Keccak-256) before being stored on-chain.
- Sybil Resistance: Only registered hashes can cast a vote, and each hash can only vote once.
- Real-time Blockchain Updates: Results are fetched directly from the smart contract.
- Modern UI: Clean and intuitive interface for seamless voting.
๐ธ Preview
๐ Installation & Setup
- Clone the repository
git clone <repository-url>
cd web3-voting
- Install Dependencies
npm install
-
Configure Environment Update
hardhat.config.jswith your Sepolia provider URL and Private Key. -
Generate Voter Hashes Add names to
voters.csv, then run:
npm run hash
- Deploy the Smart Contract
npm run deploy
- Connect Frontend
Copy the deployed contract address into
frontend/index.html.
๐ Project Structure
web3-voting/
โโโ contracts/ # Solidity smart contracts
โโโ frontend/ # Web interface (HTML/JS/CSS)
โโโ scripts/ # Deployment and helper scripts
โโโ voters.csv # List of registered voter names
โโโ voterHashes.json # Generated hashes for the blockchain
โโโ ...config files
๐งช Testing
Open the application in a Web3-compatible browser (like MetaMask) or use the developer tools to simulate different environments. Ensure you are connected to the correct network where the contract is deployed.