Portfolio banking platform built with Test-Driven Development (TDD), Turborepo, Angular, Spring Boot, PostgreSQL, Redis and local observability.
This project is developed using TDD (Test-Driven Development) throughout the entire stack:
- Every feature begins with a failing test (Red)
- Only the minimum code to make the test pass is written (Green)
- Code is refactored with tests as a safety net (Refactor)
This discipline applies to backend domain logic (JUnit 5), frontend components (Vitest + Angular Testing Utilities), API integration tests (Spring Boot Test + Testcontainers), and end-to-end flows (Playwright).
apps/
web/ Angular application
services/
auth-service/ Spring Boot canary service
accounts-service/ Spring Boot scaffold
transactions-service/ Spring Boot scaffold
insights-service/ Spring Boot scaffold
packages/
contracts/ Shared API contracts
shared-utils/ Shared workspace utilities
infra/
compose/ Docker Compose stack
monitoring/ Prometheus configuration
- Install workspace dependencies:
npm install- Start infrastructure:
npm run infra:up- Run the auth service:
cd services/auth-service
JAVA_HOME=/home/daniel/.sdkman/candidates/java/21.0.5-amzn mvn spring-boot:run- Run the Angular app:
cd apps/web
npm run devnpm run lintnpm run typechecknpm run test
- The Angular app proxies
/apirequests tohttp://localhost:8080. - Prometheus runs on
http://localhost:9090. - Grafana runs on
http://localhost:3001.