WHY WE NEED BERLIN CITY VOTING SYSTEM
The inspiration came by thinking how many countless and untapped use areas exist for Blockchain. Thinking how to integrate blockchain well into our lives has brought us with this idea to manage municipal issues with blockchain.
WHAT IS BERLIN CITY VOTING SYSTEM
The system is comprised of a user facing webpage and a powerful smart contract at the backend. Users, in this voting system are actual people living in a specific city and who vote for city management related topics. The voting system assists Municipality Institution by providing data on what the voters prioritize. The Municipality in return can make better planning and also respond the urgent petitions more effectively. Being built on the blockchain, people can make proposals and vote on them on 7/24 basis in a transparent, immutable and efficient way.
HOW SYSTEM WORKS
The voting system is powered by a comprehensive smart contract called "Voting.sol". The contract contains an "Administrator"(owner) logic to help the well-functioning of the system. The contract is deployed on Fantom Network for affordable, reliable, safe and fast transactions. People of the city can become a member of the Voting System by transferring as little as 1 FTM to the system. Later, any member can make proposals and can vote on main proposal. The Administrator will have the exclusive buttons to make sure the system functions smoothly. He/she will set the main proposal by calling a specific function. The function will be powered by the CHAINLINK Random Number VRF so that proposals will have equal footing to become the main proposal. All proposals will have an index number and any proposal index number matching with the Random Number provided by Chainlink will become the Main Proposal. Random Number provided by the Chainlink will be processed to obtain a smaller number. In contract case, this is arbitrarily set to numbers between 0-9 (including 0 and 9) on the assumption that there will not be more than 10 proposals waiting at the same time.
To get the Random Number, the Administrator will click on 4 buttons in an orderly manner. These 4 buttons will call functions on our second contract which is called "VRFv2Consumer.sol". This contract is built on the standards of Chainlink and is registered to Chainlink Subscription page.
Each Main Proposal will have a certain time range for voting. In contract case, this is arbitrarily set to 20 mins. After voting period ends, the Administrator will close the voting session. The Main Proposal with 60% yes vote will pass and will be sent to the Municipality for execution. All passed, rejected, waiting and main proposals are easily displayable on the voting system website. Users can also query previous voting results in details.
Users who wish to leave can easily leave membership. The 1 FTM paid to the contract will not be returned to the user as it corresponds relatively to a small value in USD/EUR.
The Administrator will have the exclusive functions to remove people exploiting the system. The Contract contains further functional logic and to see all the contract you are welcomed to take a look at the contract at this address: link
CHALLENGES
The project frontend is prepared with React.js and therefore required us to create a multitude of components. At the end, we had a very dynamic, responsive and modern website. Creating the Voting contract was also challenging as there are many functions and variables interconnected with each other. Our efforts bore fruit, the contract and the website successfully finalized.
ACCOMPLISHMENTS
The Voting contract is very comprehensive, and we paid attention to many details to make user experience as good as possible. The contract is empowered by Chainlink VRF for random numbers and functions are written with an advanced syntax. We are also very proud of the website we created, as we created it by ourselves from CSS to all components.
LESSONS LEARNT
The concept of our project is unique, and it makes us happy to see it can hold potential to turn into a real system. The successful implementation of the contract and website encouraged us to continue to try to use the blockchain technology for different areas of our life to improve living standards of humanity.
NEXT FOR BERLIN CITY VOTING SYSTEM
We are planning to introduce this concept to different municipalities to create an innovative use area for the blockchain. For this purpose, we plan to meet with municipalities of many cities to talk about the project. We aim no profit from the system, as each voting system will be unique and will belong to a different municipality. The success of our project in Chainlink Hackathon will let us to understand the true potential of the project and continue further to use blockchain in different areas of our life.
Built With
- chainlink
- css
- ethers
- github
- hardhat
- javascript
- netlify
- react
- solidity
Log in or sign up for Devpost to join the conversation.