rohanreddy888 / Scientia-DAO

This is our repo for the Polygon BUIDL IT Hackathon

Home Page:https://scientiadao.vercel.app/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Welcome to Scientia DAO

scientia_dao_logo

What is our main idea?

Scientia DAO is the first DAO Community for Scientists & Researchers.

Researchers from around the world can become a DAO member and share their researches, studies and a lot more!

We want to create a decentralized and community-driven world of scientists and researchers without third-party elements.


Which features does Scientia DAO offer?

Scientia DAO offers a variety of features:

  • enter a community full of researchers and scientists
  • publish your researches and studies
  • apply for grants for your projects
  • earn special community- and publishing-NFTs
  • participate as a non-DAO member
  • donate grants to researchers and scientists

How did we manage the project?

In order to come up with this idea, Dhruv Agarwal, Kushagra Sarathe, Aditya Gupta and Nils Giebing have sat together and brainstormed. The direction was clear - Medicine and/or science.

After the second session we came up with the idea of this project and its name - Scientia DAO. Scientia is latin and means 'knowledge’. Knowledge in sciences.

We have set up a GitHub repository and began planning using Notion. First we wrote the smart contracts to come up with the logic behind the DAO. Soon we needed some first visualizations in order to keep going creating more ideas, logic and the dependend components.

We met up via various online meeting tools to discuss, collaborate and even learn from one another!


How can someone join the DAO?

In order for someone to join the DAO, he/she has to click the "Join DAO"-Button on our homepage. A register form will appear where you can paste your name, bio, field of research and maybe even previous researches. After pasting your information, hit the "Submit Proposal"-button to start the joining-proposal.

The first 50 people can join the DAO directly after paying the inital deposit of 0.05 Ether. After the 50 first members, members can only join after being voted by te other DAO members into the DAO.


Technologies used in Scientia DAO

We have used several technologies to build this decentralized autonomous organization:

Polygon

All of our smart contracts are deployed on the Polygon Mumbai Testnet and so our infrastructure and interactions run on Polygon. Total 5 of them are there , that manages all the backend code including DAO , Voting, grants, Researches and members. Interaction with the contracts is done with help of wagmi.js and ethers.js. We intend to launch the platform on Polygon Main chain after feedback and presentation. Testing is done well for all the contracts , to ensure they are secured and working properly.

IPFS/Web3.storage

All Data storage and querying is done via IPFS with help of Web3.storage SDKs and docs on the website. Web3.Storage is used for storing all sort of Data including user profile, grants request and researches on IPFS, done with the help of the SDK provided and stored in JSON format. The querying of the data is done with CID Gateway links and then rendered in Frontend. The CIDs are stored in contract to avoid data tampering. We take the input of the data from the user , pack it in JSON file and then upload the files IPFS via web3.storage. IPFS is also used to store our NFTs metadata compatible for ERC721 .

Website is currently up and working on the provided links of vercel and Spheron , can be tested according to the docs provided on the website. Also Backend Flow is added in the presentation.

Video Explanation

Refer these components for more info : StoreMembers, StoreResearch, StoreRequests, StoreContent

Chainlink

Chainlink Keepers are being used to end the voting for members entry request and grants request. Created 2 Time based trigger upkeeps for Members Contract and Grants Contract. These upkeeps runs once in 2 days and close all the open requests if so available in the contract . This is done in order to remove all discrepancies related to one person control. Docs were referred extensively for getting more info about keepers and the contracts are made chainlink keepers compatible too. The keepers are runnig as follows and they check all the open voterequest and close them,if the voting peroid is over.

Video Explanation

Spheron

We use Spheron to finally deploy our decentralized autonomous organization on IPFS (decentralized storage) so in order to make out platform fully decentralized and compatible with web3.


Smart Contracts

All of our smart contracts are written in Solidity. You can find them under /backend/contracts.

They have currently been published on Polygon Mumbai Testnet due to testing and presentational reasons.

In the smart contracts themselves you can find dev comments and explanations.


ContributorNFT.sol - manages the contributor NFT and status

DAOFunds.sol - manages the funds of the DAO

DAOMember.sol - manages the proccess of some joining the DAO

Grants.sol - manages the proposal for someone apply for grants

MemberNFT.sol - manages the member NFT and status

VotingOnProposal.sol - manages the votings on proposals in general

Whitelist.sol - manages the inital whitelist before the DAO only accepts new mebers through votings


NFTs

At the current state Scientia DAO offers two different NFTs. A member NFT and a contributor NFT. You can find the NFT data under /backend/constant.

NFT Collection Links live on Polygon Mumbai Net :


Frontend

For the UI and design we have used Next.js to setup our project easily and build/design it with the help of JavaScript, React and HTML/CSS.

All the frontend code is available under /frontend.


Frontend folders in our project:

constants - important file with different constants to call in other programs

pages - all of our different frontend webpages

public - public files like images etc.

src - assets like images and single components of the different webpages

styles - CSS styling files


Other important files:

.env - important API-keys for deployment

.gitignore - lets GitHub ignore several files like sensible data

next.config.js - configuration of Next.js


Backend

In our backend folder you can find everything that’s working behind the scenes of Scientia DAO!


Backend folders in our project:

constant - NFT (meta-)data

contracts - Solidity Smart Contracts

scripts - deployment scripts for the Smart Contracts


Other important files:

.gitignore - lets GitHub ignore several files like sensible data

README.md - Smart Contract Addresses

hardhat.config.js - HardHat configuration file


Wallet Connection

You can connect your wallet with the help of RainbowKit. It gives better control and UX than web3modal.

Look at the docs of RainbowKit on how to use it: https://www.rainbowkit.com/docs/introduction


Founders

Dhruv Agarwal

dhruv_agarwal

Fullstack Developer

Loves writing smart contracts and building fun projects.


Nils Giebing

nils_giebing

Backend Developer

Loves to travel and contribute to communities.


Kushagra Sarathe

kushagra_sarathe

Frontend Developer

Experience in bug bounty hunting. Learning to code these days.


Aditya Gupta

aditya_gupta

Backend Developer

Loves writing Smart contracts


About

This is our repo for the Polygon BUIDL IT Hackathon

https://scientiadao.vercel.app/


Languages

Language:JavaScript 67.9%Language:CSS 17.4%Language:Solidity 14.6%Language:Shell 0.2%