Introduction
Thanks for your interest in our project. Contributions are always welcome!
We are committed to fostering a welcoming, respectful, and harassment-free environment. Be kind!
If you have questions, ideas or want to report a bug, feel free to open an issue. Or go ahead and open a pull request to contribute code. In order to reduce the burden on our maintainers, please make sure that your code respects the acceptance criteria for pull requests.
Info
The "Developer Documentation" focuses on the development of the Collaboration Manager itself. If you want to use our API to automate tasks, refer to the API documentation instead.
Setup of a Local Development Environment
In addition to the local k3d deployment, we have a local development environment. This environment includes automatic reloading of the frontend and backend, providing direct feedback instead of long build iterations.
In any case, start with the local k3d deployment. The k3d cluster is required for the development environment.
Requirements
Backend Configuration
The backend uses various configuration settings. You can find them in the
backend/config
directory. A config.yaml
with default values will be
generated the first time you run the application.
Hint: If you already have the local k3d deployment running, then no configuration values need to be adjusted.
Getting Started
To get started, run the following command in the root of the repository for the initial setup (only required once):
(cd backend && make install)
(cd frontend && npm i)
(cd docs && make install)
Then, run the following command to start the dev environment:
make dev
If everything went well, the frontend and backend should be running now:
Spawn and Access Sessions in the Cluster
You can also spawn sessions in the development environment, but it requires a running local k3d deployment.
Sessions are secured with pre-authentication. If you use the same private key in the cluster and locally, the token issued in the development environment will also be accepted in the development k3d cluster. To synchronize the keys, run the following command:
make synchronize-rsa-keys
General Notes
REST APIs
We use REST APIs for the communication between frontend and backend. Please follow the RESTful web API design best practises.
Git
The commit messages have to follow the Conventional Commits specification.
In general, we use pre-commit hooks to enforce coding standards. To set up the pre-commit hooks, please run the following commands:
pip install -U pip pre-commit
pre-commit install