Skip to content

🏁 Getting started ​

This page takes you through the steps needed to start up the Flowcontrol system in development mode and start developing.

πŸš€ Install/Setup ​

Git clone ​

To clone a repository from GitHub using a login token, you'll first need to generate a personal access token on GitHub. This token will act as your password when performing Git operations over HTTPS. Here's how you can get started:

Create a Personal Access Token: ​

  • Log in to your GitHub account.
  • Navigate to your account settings, then to 'Developer Settings'.
  • Under 'Personal access tokens', choose 'Generate new token'.
  • Name your token, set the desired permissions, and then generate it.
Clone the Repository: ​
  • With the token created, use the following command format to clone a repository:
bash
git clone https://username:personal_access_token@github.com/username/repository.git
  • Replace username with your GitHub username, personal_access_token with the token you created, and repository with 'RP-Flowcontrol'.

Example:

bash
git clone https://username:your_personal_access_token@github.com/username/RP-Flowcontrol.git

This command will clone the repository to your local machine.

Treat your personal access token like a password. Keep it secure and do not share it.

🚒 Docker ​

To run the command below, you need to install docker. If your database doesn't load or seed, please remove the already existing docker-volumes directory in the RP-Flowcontrol root directory.

To run all the services, run one of the following docker commands:

Build images for docker ​

From the root directory of the project run the following command: The image build can be done asynchronously by running the following command:

Linux:

bash
mvn -T 5 jib:dockerBuild -Djib.dockerClient.executable=$(which podman) --offline

Windows:

bash
mvn -T 5C package jib:dockerBuild

Running docker compose: ​

Linux:

bash
podman compose -f docker-compose-development-postgres.yml up --build -d

::: when using fedora

Fedora Networking for Podman Users ​

When running this project on Fedora Linux using Podman in rootless mode, you may encounter networking issues β€” especially when containers try to access the local network or other LAN devices.

To resolve this, we recommend setting a custom network configuration that explicitly uses slirp4netns, which is a virtual networking backend designed for unprivileged containers.


πŸ› οΈ How to Configure Podman Networking ​

Podman uses a virtual network driver called slirp4netns by default for rootless containers. However, on some systems, especially after custom setups or upgrades, this default may not be explicitly set β€” or worse, might fall back to an unsupported option.

To fix this:

βœ… Add the following to your Podman config: ​
ini
# ~/.config/containers/containers.conf
[network]
default_rootless_network_cmd = "slirp4netns"

:::

Windows:

bash
docker compose -f docker-compose-development-postgres.yml up --build -d

🌍 Client (Docker development mode) ​

The docker compose for development doesn’t include the client on start-up. This needs to be run separately by running the following command in the client directory:

First, ensure you have pnpm installed. Installation guide for pnpm.

If the installation in the FE fails, try to remove the node_modules directory in the FE directory and re-run:

bash
pnpm install

To run the client:

bash
pnpm run dev

Make sure that port 8080 is free for usage. After that, start the client with the command above. The client will be available on port 8080.

🩺 Advised IDE ​

We use IntelliJ IDEA as our main IDE. You can download it here. Some recommended plugins are:

  • Atom material icons
  • Github Copilot
  • Conventional Commit
  • GitToolBox
  • Grazie Pro
  • Markdown Editor
  • PlantUML integration
  • Rainbow Brackets
  • SonarLint (If your pc can handle it)

🚧 Known bugs ​

Attention

At this moment, the system faces some issues that haven’t yet been solved. These issues don’t break the system, but they make development less user-friendly. There's no priority on fixing these issues.

  • When debugging a module, make sure you disable this module in your docker desktop manager before running debug in IntelliJ. (Application is scalable, resulting in unexpected behaviour when debugging/load balancing is enabled).
  • Make sure your Line separator is set to LF in IntelliJ for the database .init files. Otherwise, the database container will not be able to start