Visitar URL original
GitHub - fixfon/nft-mint-and-auction-app · GitHub
Skip to content

Repository files navigation

Patika | Akbank Web 3 Practium Final Case

Demo video on YouTube

Note: This is only a demo. The contract is deployed on the Goerli test network. Therefore, you can mint and create auctions only on the testnet.

Feature Tab

Feature Description
Mint NFT Mint NFT with a unique name and description.
Create Auction Create an auction for your NFT.
Bid Bid on an auction.
Buy Now Buy the NFT with paying full amount.
Refund Withdraw your bid.
End Auction End the auction.
Cancel Auction Cancel your auction before it ends.
Withdraw Funds Withdraw your funds.

NFT Minting & Auction Platform

This project is a NFT minting and auction platform. the PatikaBears NFT collection is for Auctioning and it is mintable by everyone with 0.02ETH. After minting a NFT you can auction your NFTs, or you can bid or buy other auctions. It is a decentralized application that runs on the Ethereum blockchain. It is built with Solidity, NextJS. It is compiled and tested with Hardhat, Ethers, Waffle, and Hardhat toolkits.

Roadmap & Progress

  • 1. Create example NFTs and upload them to IPFS
  • 2. Create a new ERC721 contract and test it.
  • 3. Create Auction contract and test it.
  • 4. Create folder structure for frontend.
  • 5. Create tests for the contracts.
  • 6. Deploy the contracts to the testnet.
  • 7. Interact with the contracts via frontend.
  • 8. Create UI for minting NFTs.
  • 9. Create UI for viewing NFTs.
  • 10. Create UI for auctioning and bidding NFTs.
  • 11. Create UI for viewing auctions and biddings.
  • 12. Fix bugs and fix wagmi query bugs.
  • 13. Re-create all the UI and refactor the code.
  • 14. Add refund, cancel, end auction features.

User Guide

# Clone the repository
git clone https://github.com/fixfon/nft-mint-and-auction-app.git

# Go inside the directory
cd nft-mint-and-auction-app

# Install dependencies
npm install

Put Environment Variables

Create a .env file in the root directory and copy environment variables from .env-example file.

ALCHEMY_GOERLI_ENDPOINT=
DEPLOYER_PRIVATE_KEY=
ALCHEMY_API_KEY=
ETHERSCAN_API_KEY=

How to compile the contracts

You can compile the contracts with the following command:

npx hardhat compile

How to run the tests

After compiling the contracts, you can run the tests with the following command:

npx hardhat test ./test/PatikaBears.ts
npx hardhat test ./test/Auction.ts

How to deploy the contracts

npx hardhat run ./scripts/deploy.ts --network alchemy

How to verify the contracts

npx hardhat verify --network alchemy DEPLOYED_NFT_CONTRACT_ADDRESS
npx hardhat verify --network alchemy DEPLOYED_AUCTION_CONTRACT_ADDRESS "DEPLOYED_NFT_CONTRACT_ADDRESS"

How to run the project

npm run dev

Used Technologies

  • Solidity - Smart Contract Programming Language
  • Hardhat - Ethereum development environment
  • Ethers - Ethereum JavaScript API
  • Waffle - Ethereum smart contract testing framework
  • NextJS - Frontend
  • TailwindCSS - CSS Framework
  • IPFS - File storage
  • Moralis - Backend as a Service for Interacting with Contracts
  • Alchemy - Ethereum Node Provider
  • RainbowKit - for Wallet access and logining
  • Etherscan - for verifying the contracts

Author & Contact

Created by Fixfon for Patika.dev | Akbank Web 3 Practium

Linkedin

Github

Twitter

Discord: fixfon#1111

Releases

Packages

Contributors

Languages