
Autor
El proyecto
Universo Agustino es una web para estudiantes de la UNSA donde puedes encontrar y vender apuntes, practicar balotarios y comprar o vender objetos entre compañeros. Los pagos pasan por el equipo, que verifica cada comprobante antes de entregar el producto. Está en producción en universoagustino.site.
Cómo lo construyeron
Separamos el proyecto en tres partes: la web (React, Vite, Tailwind), la API (Node.js, Express, Prisma sobre PostgreSQL) y un paquete compartido con las validaciones y reglas de negocio, para que front y back nunca se contradigan. Cada funcionalidad empezó como una especificación numerada, con su lista de criterios y la evidencia de que se cumplió. Ningún cambio se publicaba sin pasar tipos, linter y pruebas automáticas, en local y en GitHub Actions. La web está en Vercel, la API en Render, la base de datos en Neon y los archivos en Cloudflare R2.
Retos superados
El más grande fue cambiar el modelo de pagos con el proyecto ya en uso. Al principio el comprador le pagaba directo al vendedor y no ganábamos nada; luego pasamos a que el equipo cobre, verifique el comprobante, entregue el producto y le pague al vendedor descontando una comisión. Eso obligó a rediseñar pedidos, liquidaciones, reembolsos y notificaciones sin romper lo que ya funcionaba. También peleamos con la sesión entre dos dominios (web y API separados), que obligó a configurar con cuidado las cookies y la protección CSRF. Y con la accesibilidad: revisamos cada pantalla con herramientas automáticas en móvil y escritorio hasta dejarlas sin errores.
Lo que aprendieron
Que el dinero es lo más delicado de una plataforma: cada estado de un pedido tiene que estar controlado y cada movimiento tiene que poder rastrearse. Y que escribir primero qué se va a construir, y probarlo antes de publicarlo, ahorra más tiempo del que cuesta.
Qué harían diferente
Definiríamos el modelo de negocio desde el inicio, en vez de cambiarlo a mitad del camino. Pondríamos pruebas en el navegador desde la primera pantalla y no al final. Y validaríamos antes con estudiantes reales qué necesitan, en lugar de suponerlo.