Cómo desarrollé PoliCourt


Si algo he aprendido durante el ciclo de FP Desarrollo de Aplicaciones Web (DAW) es que la mejor forma de aprender es construyendo proyectos reales. Como trabajo final de ciclo, decidí desarrollar una aplicación web llamada PoliCourt, un sistema de gestión de polideportivos que permite a los usuarios reservar pistas, gestionar horarios y llevar un control de sus actividades deportivas.

¿Por qué complicarme la vida?

Cuando llegó el momento de elegir qué hacer para el proyecto, tenía dos opciones. Ir a lo seguro con una aplicación sencilla para cumplir el expediente, o salir de mi zona de confort para aprender de verdad. Elegí la segunda. Quería que PoliCourt fuera un reflejo de lo que me espera en el mundo laboral real, así que decidí diseñar una arquitectura basada en microservicios en lugar del clásico monolito.

Separé el sistema en tres bloques independientes utilizando Spring Boot para el servicio Core, NestJS para la comunicación asíncrona y FastAPI para el procesamiento de datos. Para la interfaz visual aposté por React, Tailwind CSS y Shadcn/UI, buscando un diseño oscuro y limpio que a mí, como usuario, me apeteciera usar todos los días.

Pero una cosa es dibujar diagramas bonitos en un papel y otra muy diferente es sentarte solo frente al editor de código y que funcione cuando no tienes ni la más menor idea de cómo hacer que todo eso funcione junto.

Programar mientras la vida sigue

Si tuviera que destacar el mayor reto de PoliCourt, no sería configurar la pasarela de pagos de Stripe ni pelearme con la lógica de las reservas. El verdadero desafío fue humano.

Desarrollar un ecosistema con tantas tecnologías mientras hacía las prácticas en empresa (FCT) fue una auténtica prueba de resistencia. Hubo momentos de frustración, fines de semana enteros dedicados a programar. Aprendí por las malas el verdadero significado de priorizar. Hay veces donde toca asumir que no puedes llegar a todo a la vez, y que es mejor tener una funcionalidad pequeña que funcione de manera impecable antes de intentar abarcar todo el mapa.

Lo que de verdad me llevo

Al final, más allá de la entrega o de la nota del ciclo, lo que más valoro es el cambio de mentalidad. Empecé el proyecto siendo un estudiante que unía piezas siguiendo explicaciones de mis profesores y lo he terminado sintiéndome capaz de estructurar, dockerizar y desplegar una arquitectura compleja desde cero.

Ver cómo el backend de Spring Boot procesa de forma segura un pago con Stripe, mientras en paralelo los microservicios de NestJS se comunican entre si en segundo plano mediante RabbitMQ sin bloquear la aplicación y todo esto fluyendo en tiempo real en un interfaz de React hace que este orgulloso de todo el esfuerzo que he puesto tanto en este proyecto como en el ciclo en general. Al final, aunque el resultado no sea perfecto y muchas veces la gente de fuera de este mundo no valore lo que cuesta levantar un sistema asi. Porque para ellos solo es una interfaz bonita y no lo que hay por dentro, yo me quedo con la satisfaccion de haberlo construido yo mismo, de haber aprendido a base de errores y de haber demostrado que puedo con proyectos ambiciosos cuando me apasiona lo que hago.

PoliCourt no es un producto perfecto, pero es el proyecto donde más me he equivocado y, sobre todo, el que me ha demostrado de lo que soy capaz cuando me apasiona lo que construyo.

Actualmente lo puedes visitar en policourt.idrojone.tech