Voting DAO
Github Repository
https://github.com/tuncpolat/voting-dao-dappStack
Next.js
Solidity
Introduction
This project was developed as part of my coursework in "Smart Contracts and Decentralized Blockchain Applications" at the University of Basel. Tasked with creating a practical blockchain application, I chose to focus on a voting mechanism, fully aware of the intricacies and challenges, such as vulnerability to Sybil attacks, associated with implementing voting systems on the blockchain. This project serves as a conceptual exploration into decentralized autonomous organizations (DAO) for voting. Additionally, in a seminar during the same course, I authored a paper titled "Analysis of Voting Mechanisms in Decentralized Autonomous Organizations", which delves deeper into these mechanisms, offering a critical evaluation of their functionalities and limitations in a DAO context.
Tech Stack
- Blockchain Platform: Ethereum
- Smart Contract Language: Solidity
- Token Standard: ERC-20
- Web Development: Next.js for building the marketplace
- Blockchain Development Tools: Web3.js library and Truffle Suite
- Deployment: Ropsten testnet
Functionality
- Proposal Creation: Users can create voting proposals, specifying the title, description, eligible voters, and voting duration.
- Tokenized Voting Rights: The system uses ERC20 tokens to represent voting rights.
- Dynamic Voting System: Eligible voters can vote on proposals within the specified timeframe, with votes represented as token transactions.
- Additional Voting Rights: The proposal manager can grant voting rights to additional participants.
- Result Determination: The system automatically determines the outcome of the vote based on token counts and marks the proposal as completed.
The code is available on Github.