Back to projects

Mundial 2026

Full stack web application that recreates the 2026 Football World Cup. The Angular frontend consumes a NestJS backend that acts as a BFF (Backend For Frontend) over a data API with SQLite. It was a team project in which each member developed a feature.

Angular NestJS TypeScript RxJS

My role

My contribution was the Match Details feature, which lists and displays every match of the simulated World Cup with filtering by tournament stage. The feature is built on a layered architecture that separates the frontend (Angular) from the BFF (NestJS) and the data API, and includes both the backend endpoint and the interface component.

Key features

Impact

By applying the BFF pattern, the frontend receives data already processed and ready to render: all the logic for building the scoreline, goal and card summaries, and filtering by stage lives in the backend, which keeps the Angular component simple and focused on presentation. Input validation and centralized error mapping guarantee consistent responses even when the data API doesn't have a simulated tournament yet, offering the user a clear and complete view of the World Cup journey.

Technologies

Technology Use / Implementation
Angular Match screen component: filters by stage, cards and UI state handling.
NestJS BFF endpoint (controller + service) that consumes and transforms the data from the World Cup API.
TypeScript End-to-end static typing (DTOs and match interfaces).
RxJS Asynchronous handling of the HTTP calls in Angular.
class-validator + class-transformer Validation and normalization of the endpoint's query params.
SQLite + TypeORM Persistence of the tournament data in the data API consumed by the BFF.
Swagger / OpenAPI Documentation of the BFF endpoint.