Skip to content

9. Gamificando la plataforma

Arturo Lopez edited this page Apr 8, 2026 · 4 revisions

Hotel Pokémon — La Narrativa del Curso

La gamificación con Pokémon no es decoración. Tiene un propósito pedagógico concreto:

  1. Hace memorable lo abstracto. "Lt. Surge exige JWT para proteger el hotel" se recuerda mejor que "Fase 2: Autenticación y Autorización".
  2. Reduce la fricción de aprender. Los problemas técnicos tienen contexto emocional — no son requerimientos abstractos, son amenazas concretas con nombre (Team Rocket intentó robar credenciales).
  3. Crea hitos de progreso tangibles. Cada Gimnasio es una insignia ganada.

El tema es Pokémon, pero la arquitectura y los problemas son los mismos que encontrarías en cualquier proyecto profesional real.


El Dominio: Por Qué un Hotel

Un sistema hotelero tiene exactamente la complejidad correcta para aprender backend serio:

  • Entidades con relaciones reales: Usuarios, Habitaciones, Reservas, Servicios, Pokémons. Hay @ManyToOne, @OneToMany, con atributos propios.
  • Lógica de negocio no trivial: no se puede reservar una habitación ocupada, las fechas no pueden solaparse, el precio total se calcula con reglas.
  • Múltiples roles: un TRAINER (huésped) no puede ver reservas ajenas. Un GYM_LEADER (staff) puede cambiar estado de habitaciones. El PROFESOR_OAK (admin) tiene acceso total.
  • Necesidad de observabilidad: cuando algo falla en la reserva del cliente #1847, el equipo de soporte necesita saber exactamente qué pasó y cuándo.

Roles del Sistema

Rol Equivalente real Permisos
TRAINER Huésped / cliente Ver y gestionar sus propias reservas
GYM_LEADER Staff del hotel Gestionar habitaciones y reservas de otros
PROFESOR_OAK Administrador Acceso total al sistema

5 Funcionalidades Clave

  1. Pokédex del desarrollador: mapa de progreso del curso, insignias ganadas por gimnasio.
  2. Hotel Pokémon de Ciudad Paleta: core del sistema — habitaciones, reservas, check-in/checkout.
  3. Amenities como coleccionables: sistema de servicios adicionales con lógica de desbloqueo.
  4. Tour Discovery: sistema de gimnasios como gamificación del aprendizaje.
  5. Leaderboard social: ranking de viajeros basado en actividad y reseñas.

Integración con PokéAPI

Se integra la PokéAPI (gratuita) para:

  • Asociar Pokémon compañeros a los entrenadores huéspedes.
  • Tipos de habitación temáticos (FIRE, WATER, GRASS).
  • Sugerencias de amenities según el tipo de Pokémon del huésped.

Esto también sirve como ejercicio real de integración con APIs de terceros, manejo de errores de red y caching de respuestas externas.


Ideas para Profundizar (Sprint Avanzado)

Sistema de misiones con @Scheduled

"Reserva 1 noche en una habitación tipo PLANTA → gana 50 puntos"

Aprendizaje: programación de tareas, validación de misiones como regla de negocio.

AI-Powered Travel Coach

Endpoint /api/coach que sugiere itinerarios según preferencias del entrenador.

Aprendizaje: integración con APIs de IA (OpenAI o similar), diseño de prompts como lógica de negocio.

Integración con wearables (simulada)

Datos de actividad física para sugerir tours ("Has caminado 10,000 pasos → desbloqueas el Tour de Senderismo de Celadon").

Aprendizaje: integración con APIs OAuth2 de terceros, datos simulados para prototipar lógica real.


Por Qué Estas Ideas Funcionan en el Mundo Real

  • Gamificación = Engagement: plataformas con gamificación tienen mayor retención de usuarios.
  • Personalización = Valor: los sistemas que adaptan su respuesta al contexto del usuario resuelven problemas más complejos.
  • APIs de terceros = Realidad: ningún sistema vive aislado; aprender a integrar y manejar fallos de dependencias externas es una habilidad esencial.

El objetivo no es implementar todo esto en el curso — es aprender a pensar más allá del CRUD y ver las posibilidades que tiene un sistema bien diseñado.

Clone this wiki locally