- server : https://server-app-psi.vercel.app/
- frontend : https://minor-project-two-wheat.vercel.app/
This Voting DApp is a decentralized application built on Ethereum blockchain that provides a secure, transparent, and tamper-proof electronic voting system. The application implements a token-based voting mechanism where only token holders are eligible to participate in the voting process, ensuring legitimate participation.
The project utilizes three main smart contracts deployed on the Ethereum network:
-
ERC20 Token Contract:
0x0Ad2Cde68846d3EEd59DEDEeb5556a2209c69134- Standard ERC20 token implementation
- Serves as the governance token for the voting system
-
Voting Contract:
0xd677f1D5c612eDDD0Cffe6223ef0cD09CeBA1039- Manages the entire election process
- Handles voter and candidate registration
- Controls voting period and vote counting
- Enforces token-based access control for voting
-
Token Marketplace Contract:
0x6028ef583d67d95bb97F02eD5E83D1e1a6DeDB48- Provides a platform for buying and selling governance tokens
- Implements dynamic pricing based on supply and demand
- Ensures fair distribution of voting rights
- Only addresses with governance tokens can participate in the voting process
- Ensures only legitimate stakeholders can influence election outcomes
- Prevents vote manipulation and unauthorized access
- Users can register as voters by providing personal information
- Registration data is securely stored on the blockchain
- Each voter is assigned a unique ID to track participation
- Supports registration of multiple candidates
- Each candidate can represent different parties or platforms
- Candidate information is transparently stored on-chain
- Role-based access control with admin and election commissioner roles
- Admins can set voting periods, control voting status, and announce results
- Prevents unauthorized manipulation of the voting process
- Decentralized marketplace for buying and selling governance tokens
- Dynamic pricing based on market demand
- Ensures fair distribution of voting rights
- Automatic counting of votes
- Transparent and verifiable results
- Instant announcement of election outcomes
The project implements a token-based governance model where:
-
Voting Rights:
- Only token holders can participate in voting
- One token equals access to voting (not multiple votes)
- Tokens represent stakeholder status in the ecosystem
-
Token Distribution:
- Initial token allocation to founding members/organization
- Additional tokens available through the marketplace
- Dynamic pricing ensures market-driven distribution
-
Revenue Streams:
- Transaction fees from token trades in the marketplace
- Premium features for organizations hosting elections
- Customization services for specialized voting requirements
-
Sustainability:
- Transaction fees support ongoing development and infrastructure costs
- Token value tied to platform adoption and utility
- Community governance for future platform development
- React.js with Vite for a fast, modern UI
- Ethers.js for blockchain interactions
- TailwindCSS for responsive design
- Web3 wallet integration (MetaMask)
- Node.js server for handling off-chain operations
- IPFS integration for decentralized storage
- Pinata for IPFS pinning services
- Ethereum network for smart contract deployment
- Solidity for smart contract development
- OpenZeppelin libraries for secure contract implementations
- Connect your Ethereum wallet to the application
- Purchase governance tokens from the marketplace
- Register as a voter with your personal information
- During an active election, cast your vote for your preferred candidate
- View election results after voting ends
- Deploy the contracts or use existing deployment
- Set up the election parameters (start time, end time)
- Manage voter and candidate registrations
- Start and monitor the voting process
- Announce results when voting concludes
- Visit the Token Marketplace section
- Connect your Ethereum wallet
- Buy tokens using ETH or sell tokens to receive ETH
- Monitor token prices which fluctuate based on market demand
- Multi-chain support for greater accessibility
- Enhanced privacy features using zero-knowledge proofs
- Integration with decentralized identity solutions
- Mobile application for easier voting access
- Delegation of voting rights for representative voting models
Contributions to this project are welcome. Please feel free to submit issues and pull requests to help improve the platform.
This project is licensed under the MIT License.