Skip to main content

Getting Started

Prerequisites

To run this project locally, you must have the following installed:

(Note: You do not need Java, Python, or Node.js installed on your host machine to run the application via Docker Compose — everything runs inside the containers. You do need Python (for pre-commit) and Node.js (for the client's own lint/test/build) for the workflows further down this page.)

Build

cd infra
docker-compose up --build

Pre-commit Hooks

This repository uses pre-commit to run automated checks (linting, formatting, YAML validation, etc.) before every commit. Set it up once after cloning:

pip install pre-commit
pre-commit install

After this, hooks run automatically on git commit. To run all hooks against the entire codebase manually:

pre-commit run --all-files

Local Build and Test Commands per Component

Run all commands from the repository root unless noted otherwise.

Spring Alerts

cd services/spring-alerts
./gradlew :app:clean :app:test :app:build
./gradlew :app:bootRun

Spring Ingestion

cd services/spring-ingestion
./gradlew :app:clean :app:test :app:build
./gradlew :app:bootRun

Spring Logbook

cd services/spring-logbook
./gradlew :app:clean :app:test :app:build
./gradlew :app:bootRun

Client

cd client
npm ci
npm run lint
npm run test -- --run
npm run build
npm run dev

CI-Oriented One-Shot Test Commands

Use these for non-watch runs in CI:

# Spring services — cd into each service directory first, e.g.:
cd services/spring-alerts && ./gradlew :app:test

# Client
cd client && npm run test -- --run