Development
General Workflow
The project is built and developed with make.
To build and start the server in debug mode run make dev. This builds everything necessessary and runs the backend binary. By default the server runs on 0.0.0.0:3000.
For frontend javascript development make js can be used while the server is running.
Checks / Tests
The whole project can be checked with make check.
For just the frontend checks biome ci can be used. This is enough if working on the frontend and much faster than running all backend checks.
Currently tests are only used for the backend, and are run with make test.
Layout
Backend (src/, tests/, build.rs)
src/:
api.rs/api/: contains all api related functionsconfig.rs: contains the config definition and code to load the configentity.rs/entity/: contains the definition and code for all componentserror.rs: internal and external error definitionlib.rs: core library exposing definitions and functionsmain.rs: binary entry point, containing the server and apimoney.rs: definition for different money typesstorage.rs/storage/: code for the storage backend
tests/: contains all backend tests
build.rs: dynamically integrates git hash for debug builds
Frontend (frontend/, assets/, biome.json)
frontend/: contains all frontend code as it is served assets/: contains all assets used in the frontend
biome.json: config file for biome
Docs (docs/)
docs/:
book.toml: mdbook configurationsrc/: markdown source code of the documentationtheme/: custom theme/favicon declaration for mdbookmdbook-oasma: mdbook preprocessor to integrate API.mdAPI.md: from openapi.json generated API documentation
Contrib (contrib/)
Contains standalone useful scripts for development or deployment.
contrib/:
migrate.py: migrate from a strichliste instance to strichrliste \release.sh: script used to get the repo ready for a release