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

CLI Feature: Project scaffolding #31

Open
srinjoyc opened this issue Sep 15, 2021 · 11 comments
Open

CLI Feature: Project scaffolding #31

srinjoyc opened this issue Sep 15, 2021 · 11 comments
Assignees
Labels
Local Development Tools Tier 3 Small task, spanning 1 milestone, generally can be completed with limited domain knowledge.

Comments

@srinjoyc
Copy link
Contributor

srinjoyc commented Sep 15, 2021

👋   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.example file with emulator defaults
  • Provide a default .gitignore

Milestone Requirements

  1. 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

Judging Criteria

Resources

@srinjoyc srinjoyc added Tier 2 Medium task, spanning 2-3 milestones requiring a moderate level of domain knowledge. Local Development Tools labels Sep 15, 2021
@srinjoyc srinjoyc added Tier 3 Small task, spanning 1 milestone, generally can be completed with limited domain knowledge. and removed Tier 2 Medium task, spanning 2-3 milestones requiring a moderate level of domain knowledge. labels Sep 15, 2021
@psiemens psiemens changed the title CLI Feature: Project Scaffolding CLI Feature: Project scaffolding Sep 15, 2021
@10thfloor
Copy link
Contributor

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!
🚀

@eburnette
Copy link
Contributor

The example scaffold link in the OP is broken.

@psiemens
Copy link
Contributor

psiemens commented Oct 3, 2021

@eburnette Thanks, it should work now

@flyinglimao
Copy link

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

@psiemens
Copy link
Contributor

psiemens commented Oct 8, 2021

Sure thing @flyinglimao, that works!

@10thfloor
Copy link
Contributor

@flyinglimao How is the project going so far?

@flyinglimao
Copy link

Working on it but I think it's a bit hard for me to finish it this week

@flyinglimao
Copy link

flyinglimao commented Oct 24, 2021

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)

@kimcodeashian
Copy link

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.

@flyinglimao
Copy link

Team Members Information:

@kimcodeashian
Copy link

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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Local Development Tools Tier 3 Small task, spanning 1 milestone, generally can be completed with limited domain knowledge.
Projects
None yet
Development

No branches or pull requests

6 participants