The frontend does not include a client by default. It must be generated from the OpenAPI specification which in turn must be generated from the current state of the FastAPI application. After that you can safely run the Vite server or build the entire Vue project.
In development mode, the server is configured to the address and port of the backend server.
## Design
At the current stage, the PDM package manager is used, since it is the only one that copes well with the concept of a monorepository. At the output, two Python packages should be built - materia (backend server) and materia-frontend (which wraps a built version of the NPM package materia-frontend-vue). Documentation (optional) and the frontend are served through the backend server.
The target platform of the project is NixOS. This also indirectly affects the approach to choosing tools for developing the current project and the support priority. And only secondly, packaging components for registries such as pypi and others. Support for the rest is a matter of time.
## Build
All build steps are wrapped in PDM pre-build scripts, so in a typical case you only need PDM and NodeJS.
- materia:
```sh
nix develop
pdm build --skip ":all"
```
- materia with documentation:
```sh
nix develop
pdm install --prod --no-default --group docs
pdm build
```
- materia-frontend:
```sh
nix develop
pdm install --prod
cd workspaces/frontend
pdm build
```
## License
**materia** is licensed under the terms of the [MIT License](LICENSE).