Skip to content

CLI Feature: Project scaffolding #31

@srinjoyc

Description

@srinjoyc

👋   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

Metadata

Metadata

Assignees

Labels

Local Development ToolsTier 3Small task, spanning 1 milestone, generally can be completed with limited domain knowledge.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions