thryec/nft-marketplace

Final Project Feedback

Opened this issue · 0 comments

Hi Hui Yi Tan – I am Kuldeep, a mentor who is assisting with the grading. Congratulations, your Final Project passed! We'll be approving it on the course itself in a week or two, but here's your feedback in the meanwhile:

Frontend Comments:

  • All features work fine. UI is fine too. It can be improved with a better header that shows user details or highlights the page on which we are.
  • Rinkeby Testnet
  • Vercel has been used for deployment which is a good choice. Github pages can be used for simple MVP deployment.

Testing comments:

  • Excellent job on structuring the test cases. Describe has been used for combining test cases. All possible scenarios are done too.
  • Unit testing for both of the contract methods. Suggest you think about inter-contract execution when using marketplaces such as Opensea for your project. This suggestion is just to make you explore more in this.
  • Test cases are not simple for sure but not complicated too. This was good unit testing.

Contract Comments:

  • Awesome work on Smart Contracts. Good usecase of openzeppelin's contracts and libraries.
  • Contract uses Reentrancy guard to tackle reentrancy attacks. Access control has also been used . Using low level calls and checking for failure makes contract secure too.
  • Inter-Contract Execution and Access control has been used. Seems like marketplace contract can use state-packing and short-circuit rules for better optimization.
  • ERC1155 is the highlight of the contract. Having an understanding how it works can help design awesome NFT games or fractionlisation of NFTs. Suggest you check ERC3664 also. It's one step further and more interesting.

Overall:

  • IPFS has been used here for storing the Images/metadata regarding the NFTs being minted/sold/bought. Infura endpoint has been used and suggest to explore pinata, nftStorage tool too.
  • Connect wallet doesn't work properly. It only appears on gallery page. Please show user's address and connect/disconnect button in the header.
  • Smart Contract work is very good. Some improvement can be done on UI/UX. Encourage you to experiment more with NFTs or NFT tools and participate in hackathons to explore more.
  • Overall an awesome project. Great work on Smart Contracts and testing. UI can be improved but good try over there too. Explore more into blockchain and keep working on awesome ideas. I will suggest you to lookout for hackathons or existing protocols to keep going with your learning process.

Hope you enjoyed the learning journey so far and can continue building on this.