A secure, transparent, and decentralized voting application built on the Ethereum blockchain. This project ensures election integrity using smart contracts and Merkle tree verification.
- Decentralized Voting: All votes are recorded on the Ethereum blockchain, ensuring they are immutable and transparent.
- Secure Authentication: Uses Merkle Proofs for voter whitelisting and WebAuthn for secure device access.
- Real-Time Analytics: Live visualization of election results using interactive Bar and Pie charts.
- Admin Dashboard: comprehensive tools for election commissioners to create elections, add candidates, and manage timelines.
- Voter Privacy: Ensures one-person-one-vote while maintaining voter anonymity.
- Vote Verification: Voters can verify their vote was counted using a unique transaction hash/QR code.
- Blockchain: Solidity (Smart Contracts), Hardhat
- Frontend: React.js, Vite, Tailwind CSS
- Interaction: Ethers.js
- Visualization: Recharts
- Security: OpenZeppelin (MerkleProof)
- Node.js (v14+)
- MetaMask Wallet Extension
-
Clone the repository
git clone https://github.com/Manisbisht/Online-Voting-through-blockchain.git cd voting2.0 -
Install Dependencies
# Install root/backend dependencies npm install # Install frontend dependencies cd frontend npm install
-
Start Local Blockchain
# Open a new terminal cd contracts npx hardhat node
-
Deploy Smart Contract
# In 'contracts' folder npx hardhat run scripts/deploy.js --network localhost -
Run the Application
# In 'frontend' folder npm run dev



