Live Demo: https://kenkaboshcodes.github.io/celo-nft-marketplace/
Welcome to NFT Collection, a web application enable user to create their own NFTs, also list NFTs into the marketplace to sell, update price, remove from the marketplace. This project was built as part of a coding challenge and serves as a showcase for my coding abilities.
- Create new NFT collections and tokens
- Customize the metadata of the tokens (name, description, image, etc.)
- View your own tokens and collections, as well as those of other users
- Buy and sell tokens on the marketplace, with CELO as the currency
- Update and remove their own tokens from the marketplace
- Connect to a wallet (e.g., MetaMask) to interact with the Ethereum network
This web aplication uses the following tech stack:
- Solidity - A programming language for Ethereum smart contracts.
- React - A JavaScript library for building user interfaces.
- use-Contractkit - A frontend library for interacting with the Celo blockchain.
- Hardhat - A tool for writing and deploying smart contracts.
- Bootstrap - A CSS framework that provides responsive, mobile-first layouts.
- Install a wallet:
- Create a wallet.
- Go to https://celo.org/developers/faucet and get tokens for the alfajores testnet.
- Switch to the alfajores testnet in the CeloExtensionWallet.
- Connect yor wallet to the app. Now you are in Collection section.
- Create an NFT (fill out all informations: name, description, etc...).
- Create a second account in your extension wallet and send them cUSD tokens.
- List NFT: move into Marketplace section, click on the sell button, enter token id and price (token id of the NFT you own).
- Buy NFT with secondary account.
- Check if balance of first account increased.
- Add another NFT, list into the marketplace.
- Update the price of an NFT that you own.
- Remove an product you own from the marketplace.
To run the application locally, follow these steps:
- Clone the repository to your local machine using:
git clone https://github.com/kenkaboshcodes/celo-nft-marketplace.git
- Move into folder:
cd celo-nft-marketplace
- Install:
npm install
oryarn install
- Start:
npm start
- Open the application in your web browser at
http://localhost:3000
- Fork this repository
- Create a new branch for your changes: git checkout -b my-feature-branch
- Make your changes and commit them: git commit -m "Add my feature"
- Push your changes to your fork: git push origin my-feature-branch
- Open a pull request to this repository with a description of your changes
Please make sure that your code follows the Solidity Style Guide and the React Style Guide. You can add tests for any new features or changes, also please make the front-end more friendly. I welcome any contributions or feedback on this project!
- The smart contract were not tested carefully (nft-test.js file).
- The front-end with bootstrap framwork is quite unfriendly.
- And there are some warnings and errors that I don't know how to fit: