Description

This project submission is focused on laying down the foundation for a web3 social media dapp focused on facilitating DAOs and discourses on the platform. Inspired by the Agoras of ancient Greece, we seek to create a platform that will aid in the quest for community through providing infrastructure for functional community engagement and interaction. P.s. not all github links are included in the Github Repository or Link to Source section, here are the repos: https://github.com/azaek/lfgl-agora-frontend, https://github.com/azaek/lfg-dao-contract, https://github.com/azaek/lfg-agora-backend

Agora Square  showcase

How it's made

In our project we extended the lens profile with the ability to create a DAO. Using the OpenZeppelin Governor, makes it possible for the profile owner to start proposals and the follower can vote on them. For the voting process we needed to adjust the GovernorContract, that it accepts the NFTFollower Token as voting power. Therefore we use the functions „getPowerByBlockNumber“ and „delegate“ of the FollowNFT contract. Creating a DAO connected with the lens profile is super easy. We developed a DAOFactory to deploy the OpenZeppelin Governor and connect it with the NFTFollower Contract of the lens profile. The backend uses graphql and MongoDB to map the DAO's and members' details. The way everything is structured is every DAO is a lens profile and every member of the DAO is a follower. Whenever a DAO is created it mints a lens profile and a lens post, we use this post as a pointer post for the forum post. So when anyone posts a publication of the forum it is posted as a lens's comment which is itself a publication by this way we enable paid to post on the forum in the future. The rest of the DAO functions are implemented on OpenZeppelin Governor Contract and we created some custom abstract contract that uses lensNFT token instead of ERC20Votes and combined that with the standard Governor contract. P.s. not all github links are included in the Github Repository or Link to Source section, here are the repos: https://github.com/azaek/lfgl-agora-frontend, https://github.com/azaek/lfg-dao-contract, https://github.com/azaek/lfg-agora-backend