Skip to content

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