Aplicación web full stack que recrea el Mundial de Fútbol 2026. El frontend en Angular consume un backend NestJS que actúa como BFF (Backend For Frontend) sobre una API de datos con SQLite. Fue un trabajo grupal en el que cada integrante desarrolló una feature.
Mi aporte fue la feature de Detalles de Partidos, que lista y muestra todos los partidos del Mundial simulado con filtrado por etapa del torneo. La feature se apoya en una arquitectura en capas que separa el frontend (Angular) del BFF (NestJS) y de la API de datos, e incluye tanto el endpoint del backend como el componente de la interfaz.
Aplicando el patrón BFF, el frontend recibe los datos ya procesados y listos para renderizar: toda la lógica de armado del marcador, resúmenes de goles y tarjetas, y el filtrado por etapa vive en el backend, lo que mantiene el componente Angular simple y enfocado en la presentación. La validación de la entrada y el mapeo centralizado de errores garantizan respuestas consistentes incluso cuando la API de datos no tiene todavía un torneo simulado, ofreciendo al usuario una vista clara y completa del recorrido del Mundial.
| Tecnología | Uso / Implementación |
|---|---|
| Angular | Componente de la pantalla de partidos: filtros por etapa, tarjetas y manejo de estados de la UI. |
| NestJS | Endpoint del BFF (controlador + servicio) que consume y transforma los datos de la API del Mundial. |
| TypeScript | Tipado estático de extremo a extremo (DTOs e interfaces de partido). |
| RxJS | Manejo asíncrono de las llamadas HTTP en Angular. |
| class-validator + class-transformer | Validación y normalización de los query params del endpoint. |
| SQLite + TypeORM | Persistencia de los datos del torneo en la API de datos que consume el BFF. |
| Swagger / OpenAPI | Documentación del endpoint del BFF. |