Saltar al contenido
Todos los proyectos

Proyecto

Pokemon Team Builder

Aplicación Angular para construir equipos competitivos de Pokémon, con cálculo de estadísticas en vivo, análisis de cobertura de tipos y una Pokédex completa.

  • Angular 21
  • TypeScript
  • Signals
  • Tailwind CSS 4
  • PrimeNG

Contexto

Montar un equipo competitivo de Pokémon implica cruzar muchos datos: estadísticas base, naturalezas, objetos, movimientos y la cobertura de tipos del conjunto. Quería una herramienta que hiciera ese cálculo al instante, sin salir de la pagina, y que permitiera guardar los equipos en una cuenta.

Arquitectura

SPA en Angular 21 con componentes standalone y Signals para el estado del constructor de equipos: cada cambio de naturaleza, EV u objeto recalcula las estadísticas de forma derivada, sin suscripciones manuales.

La interfaz combina Tailwind CSS 4 para la maquetación con PrimeNG para los componentes complejos como tablas y selectores. Consume la API propia con sesión JWT y rutas protegidas.

Decisiones

El análisis de cobertura de tipos se calcula en el cliente a partir del catálogo cacheado, en lugar de pedirlo al servidor: la respuesta es inmediata y la API se mantiene simple.

Qué haría distinto

Recortaría el alcance. Quise cubrir toda la superficie de la API en solitario y con plazo: Pokédex completa, constructor de equipos, equipos públicos y privados, panel de administración y perfil. Salió, pero a costa de construir el módulo de equipos dos veces y abandonando features para una implementación más tardía.

Generaría el cliente HTTP a partir de la especificación OpenAPI de la API en lugar de mantener a mano los endpoints y los tipos: cada cambio en el backend suponía volver a escribirlos en el frontend.