CLI Feature: Project scaffolding
π Β If you are interested in working on this issue, please check out the Getting Started guide on HackerEarth!
Description (Problem Statement)
Currently, there are no local tools that support scaffolding a Flow project.
For newcomers to Flow, having a suggested folder structure, as well as boilerplate configuration will save them time while experimenting or kicking off their next project.
This issue proposes a lightweight scaffolding system to be built into the Flow CLI, enabling users to quickly generate a Flow project structure based on current best practices - example scaffold.
Experience Required
- Familiarity with Go
- Familiarity with the Flow CLI
- Familiarity with frontend development, JavaScript and the Flow Client Library (FCL)
Minimum Feature Set (Acceptance Criteria)
The command should:
- Provide a pre-configured flow.json and FCL configuration to connect to the emulator and FCL development wallet.
- Provide pre-stubbed Cadence tests and JavaScript integration tests (using flow-js-testing)
- Allow users to select their preferred UI framework (or none).
- Currently, only React and Vue are supported by FCL
- Provide a
.env.examplefile with emulator defaults - Provide a default
.gitignore
Milestone Requirements
- Build and implement the basic infrastructure:
- Set up GitHub repository for example projects (mix and match stacks)
- Provide issue templates for users to submit their own example project
- Generate a default React project based on Kitty Items folder layout and commit to example repo
- Propose CLI command name, flags, and other UX details for the next milestone.
- Clone the example project from the CLI using a new built-in command and interactive command line UI similar to Create Nuxt App
Software Requirements
Maintainability
- The tools or libraries used to construct the solution should be well vetted and well maintained
- Code should be written in a way where it's easily extensible to new functionality and semantic enough for open-source developers to contribute to.
Testing
- All core logic should have unit tests.
- E2E tests for each feature implemented.
Other Requirements
Documentation
- The following pieces of documentation needs to be completed alongside the code for a successful submission:
- A quick walkthrough guide for this feature with screenshot examples.
Code standards or guidelines
- Follow the general contribution guidelines.
Judging Criteria
- For all projects, technical & high-level judging criteria apply.
Resources
Hello there. Mackenzie here. ππΌββοΈ I'm part of the Developer Experience team at Flow. Glad you're checking out this issue. I can help answer any questions you might have about what you see here, and if you decide to take this on, I'll be your primary point of contact for you or your team.
Please add your comments/questions here, or find me on the Flow Discord (mack)
Happy hacking! π
The example scaffold link in the OP is broken.
@eburnette Thanks, it should work now
Hi @10thfloor , I'm interested in it. HackerEarth Team: flyinglimao I'm working solo but may have another member later, can I update this comment then? I'm planing to finish this before 10/23
Sure thing @flyinglimao, that works!
@flyinglimao How is the project going so far?
Working on it but I think it's a bit hard for me to finish it this week
Hi @10thfloor, I finished the feature (repo) but have some problems with writing tests. I found the most tests were written for flow networks (accounts, blocks...). Is it proper that move codes into a service? If not, how can I write the test for the feature? May I have some hints or advice? Thanks!
(edit: I saw some PR add test in internal/<folder>/<file>_test.go, I will work on this way first.)
(edit 2: still not come up with an idea on writing test, gonna submit first)
Good day @flyinglimao!
Thanks so much for all your hardwork & participation. In order to finalize winners & prepare for prize payout, we'll need the following actions from your end.
Please provide the following information byΒ Nov 17, 2021, (in this GH Issue is fine):
1. Team Information
- Team Members Information - Github Username + Email Contact + Percentage of prize allocation (total should = 100%)
- All mentioned members MUST react to the post with a π which will act as confirmation that the information is correct, or a π to indicate that the information is not correct.
- We will be reaching out via e-mail
πIMPORTANT: We will only proceed with prize payouts once all members have confirmed with π on the post.
2. Video Demo (optional)
- Please provide a 5-minute video demo to be featured & showcased in the FLIP Fest Closing Ceremonies
- Link format & Downloadable (eg. Google Drive, Vimeo)
- Content Format (Problem Statement, your work / how you solved it, final outcome)
We will be hosting Closing Ceremonies on November 23rd, 8AM PT where we'll having closing remarks from Dete & will be announcing the winners! I'll share the details here before Nov 17.
Hey folks,
We've received and reviewed over 82 submissions! What an amazing community on Flow! To commemorate all the hard work done, we have finalized winners and will be announcing them during our Closing Ceremony on Nov 23rd, 8AM PT. Be sure to join us - there may be some attendance prizes & a keynote from our CTO, Dete π!
RSVP here so you don't miss out! See you then!