6029085d1c82da50d423a3d52daf721a00f1326c
- TimeEntryRepositoryTest (@DataJpaTest): inserts entries across two weeks, asserts date-range query returns only the correct slice - ReportServiceTest (@ExtendWith(MockitoExtension)): mocks repository, covers weekly aggregation, parseIsoWeekToMonday returning a Monday, and monthly breach detection (both time and cost thresholds) - TimeEntryEndToEndTest (@SpringBootTest + MockMvc): POST a 90-min entry, GET /api/reports/weekly, assert weekTotalMinutes=90 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
App
React 19 + Spring Boot 3.4 web app backed by PostgreSQL 17.
Quick start
Requires a full JDK (not just JRE) for Maven compilation.
mise installbelow handles this. Without mise:sudo apt install openjdk-21-jdk.
# 1. Pin toolchain — installs Java 21 JDK, Node 22, Maven, lefthook, gitleaks
mise install
# 2. Install deps and git hooks (or run the four commands manually)
mise run setup
# 3. Start the database
docker compose up -d
Open two terminals:
# Backend → http://localhost:8080
mvn -f backend/pom.xml spring-boot:run
# Frontend → http://localhost:5173 (proxies /api → :8080)
cd frontend && npm run dev
Verify everything
mise run check # format-check + lint + test (both stacks)
Without mise:
mvn -f backend/pom.xml spotless:check -q
cd frontend && npx biome check src
mvn -f backend/pom.xml test -q
cd frontend && npx vitest run
Environment
.env.example documents all env vars. mise run setup copies it to .env automatically on first run.
Description
Languages
TypeScript
57.7%
Java
41.2%
Dockerfile
0.8%
HTML
0.3%