← Volver al blog

🚀 El día que dejé de 'practicar' y empecé a programar de verdad

Proyecto final del bootcamp UpgradeHub: arquitectura real, deploy real, errores reales (sí, borré el repo) y una API completa funcionando en producción.

Proyecto Final · UpgradeFood · De estudiante a desarrolladora

Hay un momento en todo bootcamp en el que se acaban las excusas.

Ya no vale el “es solo un ejercicio” o el “esto no es real”.
Llega el Proyecto Final y, de repente, estás construyendo algo que tiene que funcionar. En serio. Con base de datos real. Con deploy. Con usuarios. Con errores de verdad.

Así nació UpgradeFood.

Una aplicación full-stack para gestión de reservas en restaurante con autenticación, roles, paneles diferenciados y confirmaciones por email.

Y no, no fue un paseo tranquilo.


🧠 Lo que hay debajo (spoiler: muchas cosas)

Esta vez no era solo un frontend bonito.
Monté una arquitectura completa donde cada pieza tenía que hablar con la otra sin romperse:

Frontend: Angular
Backend: FastAPI (Python)
Base de datos: MySQL en Railway
Imágenes: Cloudinary
Emails: Resend
Deploy frontend: Firebase Hosting
Deploy backend: Railway

🔗 Proyecto en vivo

👉 Aplicación desplegada:
https://upgradefood.web.app/

🔗 Código fuente

👉 Backend (FastAPI + MySQL + JWT):
https://github.com/LauMontironi/UpgradeHub_final_project_Backend

👉 Frontend (Angular):
https://github.com/LauMontironi/UpgradeHub_final_project_Frontend


💥 El día que borré el repositorio del backend

Sí. Pasó.

Con el backend funcionando en Railway.
Base de datos conectada.
Frontend hablando con la API.
Emails saliendo.

Y borré el repositorio de GitHub.

Ese silencio… es real.

Ahí entendí algo importante:

Git no es una formalidad. Es tu red de seguridad.

Por suerte lo tenía en local. Railway seguía funcionando porque el deploy ya estaba hecho. Pude reconectar el remoto, restaurar la estructura y volver a subirlo todo.

No fue bonito.
Pero fue el momento donde dejé de sentirme “estudiante” y empecé a sentirme desarrolladora.


🛠️ Las veces que rompí todo (y por qué fue necesario)

He tenido:

Y cada vez aprendí algo.

Porque el proyecto final no es sobre escribir código bonito.
Es sobre resolver problemas reales bajo presión.


🔐 Funcionalidades que sí funcionan (y funcionan bien)

Autenticación real con JWT

Gestión completa de reservas

Panel de usuario

Panel admin

Arquitectura separada y limpia


🎓 Lo que realmente aprendí

El proyecto final no te enseña solo a programar.

Te enseña:

He pasado de hacer ejercicios sueltos a conectar un frontend desplegado en Firebase con un backend en Railway, usando una base de datos en la nube y servicios externos de email.

Eso ya no es “práctica”.

Eso es desarrollo real.


💬 Conclusión

No necesitas saberlo todo para construir algo grande.

Necesitas:

Hoy no siento que estoy “aprendiendo a programar”.

Estoy programando.

Y aunque haya borrado repositorios, roto deploys y peleado con CORS…

Aquí sigo. Construyendo.