π 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:
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:
git clone https://username:your_personal_access_token@github.com/username/RP-Flowcontrol.gitThis 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:
mvn -T 5 jib:dockerBuild -Djib.dockerClient.executable=$(which podman) --offlineWindows:
mvn -T 5C package jib:dockerBuildRunning docker compose: β
Linux:
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: β
# ~/.config/containers/containers.conf
[network]
default_rootless_network_cmd = "slirp4netns":::
Windows:
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:
pnpm installTo run the client:
pnpm run devMake 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