-
Check Out 🚀 NFT Minting Dapp ⚠ Mint your NFT to participate in the DAO ⚠
-
Collect your Rinkeby-Eth from this faucet
- Users need to mint the NFT from this NFT Minting Dapp.
- Only Crypto Dev NFT Holders will be able to create proposals and vote.
- Proposals are created using EIP 1167 minimal proxies.
- NFT Holders can create proposals by specifying the parameters required to make a purchase from the NFT Marketplace.
- On creation of a proposal, proposal factory contract sends Ether to the newly created proposal contract.
10 minutes
is the voting period for the proposal. Only the NFT Holders are allowed to vote.- After the voting period, the proposal can be executed by the Crypto Dev NFT Holders.
- If
YayVotes > NayVotes
, then proposal is executed ⏩ NFT is purchased from the NFT Marketplace using the Ether in the proposal contract. - If
YayVotes < NayVotes
, then proposal is not executed ⏩ Ether in the proposal contract is sent to the proposal factory contract.
my-app
⏩ Contains the Next.js Frontend of this applicationDAO-Contract/contracts
⏩ Contains all the Solditiy smart contracts deployed in the Rinkeby Test Network.DAO-Contract/test
⏩ Contains Tests for the smart contract
- Clone this repository
git clone https://github.com/ShivaShanmuganathan/fullstack-dao-dapp
- Frontend - goto the frontend folder, install dependencies, and run the app. Visit localhost:3000
cd my-app
npm install
npm run dev
- Backend - goto to the backend folder, install dependencies, compile and test the smart contract
cd DAO-Contract
npm install
npx hardhat compile
npx hardhat test
Create a .env
file in the DAO-Contract folder and fill it up with the below instructions
// Go to https://www.alchemyapi.io, sign up, create
// a new App in its dashboard and select the network as Rinkeby, and replace "add-the-alchemy-key-url-here" with its key url
ALCHEMY_API_KEY_URL="YOUR-RINKEBY-ALCHEMY-KEY"
// Replace this private key with your RINKEBY account private key
// To export your private key from Metamask, open Metamask and
// go to Account Details > Export Private Key
// Be aware of NEVER putting real Ether into testing accounts
RINKEBY_PRIVATE_KEY="YOUR-PRIVATE-KEY"