Repository navigation
Development Setup
| Requirement | Version |
|---|---|
| JDK | 25+ |
| Maven | 3.9+ (or use included mvnw wrapper) |
| Docker | Optional, for local/production deployment |
gh CLI |
For GitHub PR workflow |
| Playwright Chromium | For team card generation and E2E tests |
Team card generation and E2E tests require a local Chromium browser managed by Playwright.
./mvnw exec:java -Dexec.mainClass=com.microsoft.playwright.CLI -Dexec.args="install chromium"The Chromium binary is downloaded to the platform-specific cache:
| Platform | Cache Location |
|---|---|
| macOS | ~/Library/Caches/ms-playwright/ |
| Linux | ~/.cache/ms-playwright/ |
| Windows | %LOCALAPPDATA%\ms-playwright\ |
On Linux (Debian/Ubuntu), Chromium requires native shared libraries. Install them via Playwright or manually:
# Via Playwright (recommended — installs exactly what's needed)
./mvnw exec:java -Dexec.mainClass=com.microsoft.playwright.CLI -Dexec.args="install-deps chromium"
# Or manually (Debian/Ubuntu)
sudo apt-get install -y libnss3 libatk-bridge2.0-0 libdrm2 libxkbcommon0 \
libgbm1 libpango-1.0-0 libcairo2 libasound2t64 libxshmfence1macOS and Windows include these libraries natively — no extra setup needed.
The Dockerfile installs Chromium automatically during the image build. No manual setup required.
./mvnw spring-boot:run -Dspring-boot.run.profiles=devStarts on http://localhost:9090 with an empty H2 database.
./mvnw spring-boot:run -Dspring-boot.run.profiles=dev,demoSame as dev, but auto-imports all GT7 cars and tracks (with images) at startup for manual testing.
./mvnw spring-boot:run -Dspring-boot.run.profiles=localRequires a running MariaDB instance on localhost. Starts on port 9091.
docker compose up --build -d # Start
docker compose down # StopStarts on http://localhost:8080 with MariaDB on port 3307.
./mvnw verifyRuns all unit tests, integration tests, and verification checks.
-
Default branch:
master -
Feature branches:
feature/<short-description> -
Fix branches:
fix/<short-description> - Always branch from
master
-
Create a feature branch:
git switch -c feature/my-feature master
-
Implement changes, then run tests:
./mvnw verify
-
Commit with a descriptive German commit message:
git add <files> git commit -m "Beschreibung der Aenderung"
-
Push and create a PR:
git push -u origin feature/my-feature gh pr create --assignee jegr78
-
After CI passes, merge with squash:
gh pr merge --squash
-
Clean up:
git switch master && git pull && git branch -d feature/my-feature
After creating a PR, verify the CI build:
gh run list --branch feature/my-feature
gh run view <run-id>
gh run view --log-failed # If CI failsPRs must have a green CI build before merging.
When adding a new feature, update all relevant documentation:
- CLAUDE.md -- Project instructions for AI-assisted development
- README.md -- User-facing project overview
- Wiki -- Detailed documentation pages (this wiki)