This project is a web application for building dodo-app. It can be thought of as WYSIWYG editor for generating JSON configuration conforming to back/dodo-app.jsonschema JSON schema, which describes the infrastructure environment dodo-app requires. It sends generated dodo-app project configuration to external API for deployment. Read back/dodo-app.jsonschema to understand the structure of the configuration. It is a monorepo consisting of three main components:
config/: Contains shared libraries and types used across the front and back packages. Config is Typescript equivalent of the dodo-app.jsonschema.front/: Implements the React-based user interface. This is what the user interacts with to build their dodo-app configuration. It's main component is Canvas where the same dodo-app configuration is presented to the user as a graph, where each node represents different parts of the dodo-app configuration and connections between them represets component dependencies. For each node there is a specific node details React component implementation, which lets users configure the component. front/ is responsible for validating project configuration, converting graph representation into dodo-app configuration and sending (via back/) generated configuration to external API for deployment.back/: Implements the backend service. It's main responsibilities are:front/ end application.All three components can be built using npm run build command. As both front/ and back/ depend on config/, make sure to build config/ first.
Before committing changes make sure to run npm run lint and npm run format and fix all the issues.