Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revamp "CryptoPizza" template #246

Closed
5 of 7 tasks
samajammin opened this issue Jun 2, 2020 · 0 comments
Closed
5 of 7 tasks

Revamp "CryptoPizza" template #246

samajammin opened this issue Jun 2, 2020 · 0 comments
Assignees

Comments

@samajammin
Copy link
Collaborator

samajammin commented Jun 2, 2020

Summary

Revamp this template, primarily the README, based on feedback from our recent dev survey.

Most of the feedback from #234 & #241 also applies to this template.

  • This template should explain how to manage collectibles in Ethereum. Instead of providing any explanation on what a collectible is, how to manage it, or how the interface works, the README goes line by line on the Solidity code, in a way particularly difficult to follow.
    • Add intro to collectibles & NFTs, explain how they can be used. There are no links to what a collectible is, or to the 721 standard itself
    • Update the README to explain how the app is architected at a high level
    • Update the README to remove the contract code walkthrough in the README
  • The template only imports the interface from OpenZeppelin and reimplements the entire standard - instead of reusing the OpenZeppelin implementation.
    • It arbitrarily mixes methods from the standard (like transferFrom), app-specific ones (createRandomPizza, which incorrectly indicates the value is random whereas it's just a hash, which can lead to security vulnerabilities in other contexts), and app-specific replacements of methods in the standard (getPizzasByOwner instead of the 721Enumerable extension).
    • Update the template to reuse the existing standard implementation, and focus on how to leverage the standard for a specific use-case, and how app-specific operations like create or eat are implemented by common operations like mint or burn. If there is a goal to teach how to implement a standard, it should be moved to the ERC20 example, which is much more reasonable to code (721 is particularly tricky!).
  • Add reference to the 721 standard as a "Next step" to explore
  • Break down the JS file. The code is in a single js file which is larger than previous ones, and it conflates blockchain and UI responsibilities, making it difficult to find what one's looking for.

Motivation

After digging into app usage:

  • ~50% of total sessions are < 10 seconds
  • ~50% of visitors create a project
  • ~20% of projects created deploy a contract

The goal here is to improve these metrics, specifically increasing the % of projects that actually deploy a contract.

Describe alternatives you've considered

  • Add onboarding tours of the IDE (e.g. via tooltip popups)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants