Files
recordalexia/docs/adr/0001-spring-boot-3x.md
Jaume Garriga Maestre 52e559a159 feat: app completa recordaLexia (fases 1-5)
App web familiar de rutinas visuales para niños con TDAH: muestra cada día el
material del cole y las rutinas de tarde, con gamificación por monedas y tienda
de recompensas. Multi-niño y bilingüe ES/CA. Uso doméstico/homelab.

Backend (Spring Boot 3.5 / Java 21 / Gradle):
- Dominio por capas, PostgreSQL + Liquibase, datos semilla.
- API REST con DTOs: /today, toggle con monedas y bonos de bloque/día, monedero,
  tienda/canje, ajustes y CRUD del panel de padres.
- Seguridad ligera por PIN (BCrypt + sesion en memoria), sin Keycloak.
- Tests JUnit: generacion del dia, monedas/bonos con reversion, canje, seguridad.

Frontend (Angular 19, standalone + signals):
- Perfiles, Home (Tablero y Foco), Tienda y panel de padres (5 pestañas).
- Tipografia OpenDyslexic conmutable (accesibilidad), i18n ES/CA, TTS y sonido.
- Tokens de diseño fieles al handoff (paleta, animaciones, monedas voladoras).

Empaquetado:
- Docker multi-stage + docker-compose (PostgreSQL + backend + Nginx).
- Decisiones de arquitectura documentadas en docs/adr.
2026-06-21 10:48:57 +02:00

1.1 KiB

ADR 0001 — Fijar Spring Boot 3.5.x (no Spring Boot 4)

  • Estado: aceptada
  • Fecha: 2026-06-21
  • Fase: 1 (esqueleto)

Contexto

Al generar el backend con Spring Initializr, la versión por defecto ofrecida es Spring Boot 4.1.0 (arrastra Spring Framework 7 y un layout de starters modular nuevo: spring-boot-starter-webmvc, starters de test por módulo).

El contrato del proyecto (CLAUDE.md y prompt director) fija explícitamente Spring Boot 3.x / Java 21.

Decisión

Se fija el backend a Spring Boot 3.5.15 (última 3.x disponible en Initializr), con spring-boot-starter-web, liquibase-core y spring-boot-starter-test.

Motivación

  • Cumplir el stack contratado sin introducir un salto de versión mayor no aprobado.
  • Boot 4 / Spring 7 es muy reciente; el ecosistema y los ejemplos del equipo siguen sobre 3.x.

Consecuencias

  • Cuando se quiera adoptar Boot 4 deberá hacerse mediante un ADR propio que contemple la migración de starters y jakarta.
  • El wrapper de Gradle queda fijado por Initializr; no se requiere Gradle en host.