This project is a milestone based crowdfunding platform where teams can propose a set of incremental milestones for funding and incrementally acquire credibility from users to be able to access bigger funds.
Users can choose to fund a project. Once a project proposal gathers enough funds, the fraction of the funds corresponding to the first milestone is released. When work is done, the team can submit the milestone along with proposals for a new roadmap. Then the users that funded the project vote to continue on one of the proposed roadmaps or to terminate the funding and redistribute the remaining funds among users proportionally to initial contribution.
We started using Miro to try to really understand "What is a DAO". Once we had that we threw some Ideas and a crowfunding platform seemed interesting.
We explore the different problems that currently exist about traditional crowdfunding, what today a decentralized platform could improve the experience.
We found that there are currently existing proposals for crypto crowdfunding platforms, even so we found that we can contribute to democratizing the process of obtaining collective funds. Where the investor has the possibility of strengthening the milestones of the project roadmap to increase the rate of achievement and satisfaction of both parties, promoting co-creation and decentralized collaboration for crowdfunding platforms.
After brainstorming we arrive at an interesting mechanism. Then we started development: Smart Contact backend in Solidity with Brownie as a framework (An openzeppelin erc1155 contract with extra functionallity), did some UI mocks in figma and started the frontend with react and ethers.js (which unfortunately didn't get to finish). For storing metadata about projects we used IPFS, but as projects evolved we didn't want to store their history on-chain, so we created a subGraph for that. Then to facilitate work in the UI, we used unlock to only show the voting option to people with the voting token. Finally we added an extra option of financing using superfluid streams, where a user streams a token to the contract and the contract streams a voting/stake token to them.