Athena — europeLogin/setup.md

Local Development Setup — Europe Login

Prerequisites

| Tool | Version | Install | |------|---------|---------| | Java | 17 | brew install temurin@17 | | Maven | via wrapper | — (use ./mvnw) | | Node.js | 20 LTS | brew install node@20 | | Docker Desktop | latest | https://www.docker.com/products/docker-desktop/ | | PostgreSQL client | any | brew install postgresql |

Node 25 (odd) works but is not LTS — use Node 20 for production parity.

1. Start infrastructure

cd /Users/sarkout/projects/prive/europeLogin

# Postgres + Redis only (no app containers)
docker-compose -f docker-compose.local.yml up -d

# Verify
docker ps   # europe-login-db, europe-login-redis should be healthy

Default local credentials (see docker-compose.local.yml):

  • Postgres: europelogin / europelogin123 on port 5434, database europelogindb
  • Redis: password redis123 on port 6380

2. Backend

cd backend

# Run (Flyway migrations run automatically)
./mvnw spring-boot:run

# Or build + run jar
./mvnw clean package -DskipTests
java -jar target/europe-login-backend-*.jar

Swagger UI: http://localhost:8091/swagger-ui.html Health check: http://localhost:8091/actuator/health

Key env vars (defaults in application.yml)

| Variable | Default | Purpose | |----------|---------|---------| | DB_HOST | localhost | Postgres host | | DB_PORT | 5434 | Postgres port | | DB_PASSWORD | europelogin123 | Postgres password | | REDIS_HOST | localhost | Redis host | | REDIS_PORT | 6380 | Redis port | | REDIS_PASSWORD | redis123 | Redis password | | JWT_SECRET | (insecure default) | JWT signing key — change in prod | | BSN_ENCRYPTION_KEY | (insecure default) | AES-256 key — must be 32 chars | | KVK_VALIDATION_ENABLED | true | Set false for dev/test | | PSD2_ENABLED | true | Set false to skip bank step | | PSD2_SECRET_ID | — | GoCardless secret ID | | PSD2_SECRET_KEY | — | GoCardless secret key |

3. Frontend

cd frontend/europe-login-portal

npm install
npm start   # → http://localhost:4301

The Angular dev server proxies /api/* to http://localhost:8091 via proxy.conf.json.

4. Running tests

Backend

cd backend

# All tests (unit + Cucumber BDD)
./mvnw test

# Skip tests (build only)
./mvnw clean package -DskipTests

Tests use H2 in-memory database (no Postgres needed) and a mock Redis (TestRedisConfig). KvK validation is disabled via europe-login.kvk.validation-enabled: false in application-test.yml.

Frontend

cd frontend/europe-login-portal

# Unit tests (Karma/Jasmine, headless Chrome)
npm run test:ci

# Lint
npm run lint

# Build
npm run build

Frontend E2E (Selenium + Cucumber)

Requires both backend and frontend running:

# Terminal 1: backend
cd backend && ./mvnw spring-boot:run

# Terminal 2: frontend
cd frontend/europe-login-portal && npm start

# Terminal 3: E2E
cd frontend/europe-login-portal && npm run e2e

5. Database access

# Connect via psql
psql -h localhost -p 5434 -U europelogin -d europelogindb

# Or via docker exec
docker exec -it europe-login-db psql -U europelogin europelogindb

6. Redis access

docker exec -it europe-login-redis redis-cli -a redis123

7. Common issues

| Problem | Fix | |---------|-----| | Error: could not find '@angular/build:application' | npm install in frontend/europe-login-portal | | Backend fails to start: Unable to acquire JDBC Connection | Check docker-compose up is running | | JWT Illegal base64 character '-' | The JWT secret must be base64-encoded (no raw strings with hyphens) | | KvK validation fails | Set KVK_VALIDATION_ENABLED=false or provide a real KVK_API_KEY | | Tests fail with Redis errors | Tests use mock Redis — ensure @Import(TestRedisConfig.class) is on CucumberSpringConfiguration |

Reacties

Nog geen reacties