/NFT-Marketplace-DApp

CS 48001: Special Topics in CS: Blockchain: Security and Applications Course project implemented by Cavit Cakir, Kaya Kapagan, Gorkem Kose, Gokberk Yar

Primary LanguageJavaScriptMIT LicenseMIT

NFT Marketplace for Ethereum Blockchain

NFT Suits is a game centered around collectible unique items that are used to create one-of-a-kind avatars where the uniqueness is guaranteed by ERC721 protocol. No items can bereplicated, taken away, or destroyed, since the proof of ownerships are stored on Ethereum blockchain. In order to see the items and interact with the marketplace, user has to installMetaMask extension to her/his browser. Then, by connecting his/her wallet; the user can buy, bid on, offer items for auction and sell the items via the marketplace. As tree requiredand complementary pieces are purchased and worn, an avatar is created and displayed to the community.

README Contents

  1. Authors
  2. Tech Stack
  3. Deliverables
  4. Features
  5. How to Run Docker
  6. Screenshots
  7. Support and Feedback

Authors

Tech Stack

Client: React, Recoil, Material UI

Contract: Solidity

Dev Tools: Ganache, Truffle, Remix, Docker

Static Smart Contract Analysis: Securify 2.0, Slither

Testing: Mocha

Deliverables

Features

Within profile page, a user can

  • Set a username
  • Withdraw her/his balance
  • Create an avatar with the items that (s)he owns by wearing
  • Save the item and display it in the avatars page
  • List his/her items with certain filtering options
  • See his/her statistics

Within the item page, a user can

  • Sell her/his item for a fixed price
  • Cancel sale for his/her item
  • Buy an item
  • Create an auction for his/her item
  • Cancel an auction for his/her item
  • Accept the highest bid
  • Bid on an item
  • Withdraw his/her bid
  • Wear his/her item under some condition
  • Unwear his/her item under some condition
  • List all of the items with certain filtering options

How to Run Docker

    ## in project directory, i.e. cd project
    docker-compose -f docker-compose.dev.yml up

Running Tests

To run tests, run the following command

  ## make sure ganache is running
  cd truffle
  truffle test

Screenshots

Landing Page

Market Place

Item Page Example 1

Item Page Example 2

Profile Page

Avatars Page

Support and Feedback

Feel free to create an issue to discuss more.