Hi @TylerWoolcott - This is Amma, one of the mentors on the bootcamp.
First of all, Congratulations! Your Final Project met the requirements set! You should be receiving formal notification soon, if you haven't done so already.
Here is my feedback. I hope you will find it useful.
Frontend comments:
Simple, clutter-free frontend that delivers on key requirements.
Clear, logical layout that displays the essential information the user needs to interact
Detects Metamask
Displays user's account on screen
Would recommend the contract address, and the testnet deployed to, are also displayed to give the user additional contextual information
You prioritised your time correctly but now, with the luxury of more time, next steps on the journey might be to strengthen your frontend skills. Possibly start by making small adjustments to the cosmetics of the front end eg. font size, font style and more use of colours. - definitely not essential though!
Testing comments:
13 passing tests
Impressive set of tests which demonstrate a solid understanding of vulnerabilities.
Very good test coverage covering the breadth of functionality from minting, ownership, approvals and transfers to name a few.
Sound use of the describe()/beforeach() to logically group and control test execution
Modifiers and require() correctly used for validation.
Perhaps, a next step would be to to add more unit tests for failure conditions inline with a Test-Driven Development approach.
Design and Security Comments
Exemplary github repository with great documentation detailing the problem statement and workflow. It also provides very clear instructions for installation and test.
Source code has a logical flow and is very well documented to NatSpec standards
Security and interface measures are enforced with a suite of OpenZeppelin libraries including Ownable, Pausible, ReentrancyGuard and ERC721Enumerable, amongst many others.This demonstrates encouraging knowledge of trusted libraries and functions.
Additionally, the risks of visibility with public functions have been clearly understood and steps have been taken to prevent this.
Aditionally, sensible measures are coded to revert/fallback the transaction where validation fails.
Overall, a very well thought through implementation which demonstrates a deep understanding of the core principles.
One thing that would have been nice to see on your github repository, for bootcamp purposes only, is the functionality you planned to include next. Having said that, this is in no way a criticism!
Overall:
Really great project!
It was evident throughout that design decisions were carefully considered.
Reasoned development approach taken to implement a simple frontend and allow greatest effort to be spent delivering key functionalities.
The screencast was much longer than expected BUT I watched and was thoroughly impressed with the detail shared! This project demonstrates an impressive journey through the bootcamp where the essential skills are showcased!
As a next step, to build on the skills you have acquired, you may want to join some Hackathons.
I hope you will continue on this journey show great aptitude and promise!
Hi Amma, thanks so much for your detailed feedback! It's very helpful and I'm looking to implement some of your suggestions in a new dApp I'm building based on the project. Thanks again!
Hi @TylerWoolcott - This is Amma, one of the mentors on the bootcamp.
First of all, Congratulations! Your Final Project met the requirements set! You should be receiving formal notification soon, if you haven't done so already.
Here is my feedback. I hope you will find it useful.
Frontend comments:
Testing comments:
Design and Security Comments
Overall:
I hope you will continue on this journey show great aptitude and promise!
I hope you enjoyed the course!