Skip to main content

Substrate startkit GUI

Project Description πŸ“„β€‹

Please provide the following:

  • A brief description of the project.

The idea is to create a GUI where users can quickly select the runtime pallets, enter their genesis configurations, and satisfy their dependencies without forking the template repository and writing any RUST code. The application would add/remove the necessary files and set configurations and dependencies in the codebase behind the scene. In the end, the user will generate a code base with all the components.

The GUI should have the following features:

  • Select (drag&drop) pallets
  • Add/Remove pallets from codebase
  • Generate good-enough default configs or enter custom configuration
  • Change pallet dependencies
  • On submit - create Github repo with commit (user enter Github creds)
  • Indicate connected pallets that to go with each other
  • Prevent users from building blockchains that won't compile
  • Pre Built solution for common patterns
  • Tooltips with explanations and links to documentation

We are considering going with a drag&drop solution. Of course, our design team will come up with the most consistent UX flow during the first phase of the project.

  • An indication of why this project is good for the ecosystem.

It would make life easier for everyone who wants to kick off their Substrate blockchain and would lower the entry barrier for both experimentation and development with Substrate. Also, the application will have a clear educational purpose for beginners to understand the power of runtime pallets and all the features that you can get just by adding them to your blockchain.

Team πŸ‘₯​

The UX/UI of the app will be an essential part. So let me share with you some of our previous work on dribbble -https://dribbble.com/mvpworkshop.

Development Roadmap πŸ”©β€‹

  • Total Estimated Duration: 2 months
  • Full-time equivalent (FTE): 2.5
  • Total Costs: 3 BTC

Milestone 1​

  • Estimated Duration: 1 month
  • FTE: 3
  • Costs: 1.5 BTC
NumberDeliverableSpecification
1.Design components for GUIVisual design of application components (in invision)
2.Design UX flowsCreate a UX that is pleasant to work with
3.BackendpostgresSQL database, node.js project setup
4.GUI web applicationSet React app project structure
5.Documentation & specificationExplore all the runtime pallets intentions and define their relations in the project documantation
6.Github OAUTH2 IntegrationIntegrate Github OAUTH so users can login and later deploy codebase on their account

Milestone 2​

  • Estimated Duration: 1 month
  • FTE: 2
  • Costs: 1.5 BTC
NumberDeliverableSpecification
1.GUI web applicationReact app components
2.Github IntegrationIntegrate Github library so the user could generate a initial commit with the code base on his account
3.BackendAPI's for handling the code base structure and setting configuration and dependencies with and corresponding tests
4.Demo videoVideo showcasing how to use the app
5.DocumentationDescribe functionalities and instructions on compiling and running the app, including a feature list and written tutorial.
6.Continuous Integration environmentPipeline that build the web applications
7.Automated testsfor the whole app

Deliverables will be dockerized.

Long term plans and the target users of such an application​

The target users would definitely be beginners and even people that wanna play a bit and not really start a production-ready blockchain. Experienced blockchain devs beginning to build a project with Substrate are probably familiar with how to start, and whoever has to deep dive into the code so they are not the ones that will benefit the most. We didn't consider the possibility of online chain running in this phase of the project, but it could be an option for some future version. Looking long term, this GUI would be the place for everyone to quickly get informed on runtime pallets so it should be periodically updated with new information. So the primary purpose is educational but also promotional. We added in the deliverables features focused on education such as:

  • Tooltips/popups with an explanation of every pallet
  • Links to the substrate docs
  • Video tutorial on how to use the app
  • Documentation with a feature list and written tutorial