10 decisiones y fuentes - lfnavarroj1/sport-app-platform GitHub Wiki
Decisiones, fuentes y alcance
Fuentes de verdad
| Información | Fuente operativa |
|---|---|
| Backlog, sprint, estado y responsables | GitHub Projects |
| Código y pruebas | repositorio propietario del componente |
| Versión de componente | archivo de versión, tag y release del componente |
| Composición entregada | manifiesto y tag de sport-app-platform |
| Evidencia de calidad | GitHub Actions y reportes identificados |
| Arquitectura objetivo y decisiones | documentos de arquitectura/ y ADR aceptados |
| Explicación para interesados | esta wiki |
Los documentos académicos de entrada y la arquitectura detallada conservan la historia de las decisiones. Cuando una decisión posterior contradice una entrega anterior, prevalece el ADR aceptado más reciente.
Decisiones vigentes
| ADR | Decisión resumida | Estado |
|---|---|---|
| ADR-001 | Microservicios por dominio | Aceptada |
| ADR-002 | CQRS selectivo | Aceptada con reservas |
| ADR-003 | Persistencia PostgreSQL por servicio | Aceptada |
| ADR-004 | Mensajería con Pub/Sub | Aceptada con reservas |
| ADR-005 | GKE, Cloud Run y Cloud SQL | Aceptada |
| ADR-006 | BFF independiente para web y móvil | Aceptada |
| ADR-007 | Adaptador para Strava | Aceptada con reservas |
| ADR-008 | Descubrimiento mediante Kubernetes | Aceptada |
| ADR-009 | Hash y JWT centralizados | Aceptada con reservas |
| ADR-012 | Angular, Android MVVM e internacionalización | Aceptada |
| ADR-013 | FastAPI como framework backend | Aceptada |
| ADR-014 | Locust y k6 para rendimiento | Aceptada |
| ADR-015 | Outbox y proyector de usuarios | Aceptada |
| ADR-016 | Publicador y proyector por dominio CQRS | Aceptada |
| ADR-017 | Infraestructura local y GCP | Propuesta para ratificación |
| ADR-018 | Kubernetes local con Docker Desktop | Aceptada |
| ADR-019 | GitHub Actions para CI/CD | Propuesta para ratificación |
| ADR-020 | Repositorio integrador y versiones independientes | Aceptada; repositorio, submódulos, Wiki y Project creados; manifiesto de release pendiente |
| ADR-021 | Terraform centralizado en sport-app-platform | Aceptada; modificada por ADR-022 |
| ADR-022 | Desarrollo local en Kubernetes kubeadm de Docker Desktop y producción en GCP | Aceptada; ambiente local verificado |
| ADR-023 | Una instancia PostgreSQL con bases y usuarios por dominio | Aceptada |
| ADR-024 | Plan gratuito automático para deportistas y autorización por capacidades | Aceptada; backend integrado por PR #7 y #8; adopción web/plataforma pendiente |
| ADR-025 | Inicio y navegación diferenciados por tipo de usuario | Aceptada; backend y navegación web integrados; capacidades web y móvil pendientes |
Flujo Git acordado
Los cuatro repositorios usan main como rama principal, equivalente a Master en el diagrama histórico, y develop como rama de integración. Cada HU se desarrolla en feature/HUxxx-*; cada sprint aceptado pasa por release/vX.Y.Z; un hotfix parte de main y se reintegra tanto en main como en develop.
Alcance mínimo
El MVP debe demostrar, como mínimo:
- registro y gestión básica de usuarios;
- plan gratuito automático para nuevos deportistas y cambio explícito de plan;
- catálogo completo de planes y capacidades precargado por migraciones versionadas, sin CRUD administrativo;
- inicios y menús separados para deportista, organizador y profesional; los planes solo modifican la navegación del deportista;
- habilitación coherente de capacidades por plan en web, móvil y backend;
- creación, publicación y consulta de servicios;
- plan de entrenamiento y calendario;
- inicio y finalización de una práctica móvil;
- integración entre clientes, BFF y servicios;
- backend y persistencia desplegados en la nube;
- atributos de calidad medidos con evidencia;
- versiones reproducibles de componentes y plataforma.
Una capacidad se reporta como cumplida únicamente cuando tiene recorrido vertical, criterios aceptados, pruebas aplicables, versión identificada y evidencia enlazada.
Organización de repositorios
sport-app-backend, sport-app-frontend y sport-app-movil conservan versiones independientes. sport-app-platform los incorpora como submódulos, centraliza Terraform y fija una combinación compatible por sprint mediante un manifiesto de release.
La Wiki comunica el proyecto, el README orienta el uso del repositorio y GitHub Projects administra el trabajo. Ninguno reemplaza las fuentes ejecutables de código, CI y artefactos.