PERSONAL Proyecto Personal

The Monarca Barber · ERP

ROLE → Full Stack Developer

Full operating system for a barbershop: POS with manager confirmation flow, immutable cash register log, inventory with auto-deduction on sale confirmation, per-barber commissions with personal view, CSV-exportable reports, and public booking without an ERP account. 81 integration tests against a real DB. Deployed on Vercel with serverless PostgreSQL (Neon).

React 18Node.jsExpressPostgreSQLViteTailwind CSS v4JWTRechartsNeonVercel
EVENT / CONTEXT: Proyecto Personal
METRICS / IMPACT: 81 tests de integración · 6 módulos · 3 roles · deploy en Vercel
DATE: 2025

Problema

Una barbería chica funciona a punta de papel y WhatsApp: las ventas no quedan registradas, la caja se cuadra de memoria, las citas se agendan por teléfono y nadie sabe con certeza qué barbero genera más ni cuánto se le debe en comisiones. Sin datos, cada decisión es un cálculo a ojo.

Solución

Un sistema operativo completo para el día a día de la barbería. El barbero registra una venta en tres clics y un encargado la confirma antes de que afecte la caja; la caja chica lleva un historial inmutable que se arquea al cierre; el inventario descuenta stock solo y avisa cuando algo baja del mínimo; cada barbero ve sus propios cortes y su comisión estimada; y los clientes reservan desde una página pública sin necesidad de cuenta, con la disponibilidad protegida a nivel de base de datos para que no se crucen dos citas en el mismo horario.

Mi rol

Full stack, de punta a punta: el frontend en React, la API en Node.js + Express y el modelo de datos en PostgreSQL. Tomé las decisiones de arquitectura que sostienen el sistema —autenticación JWT sin estado con validación de rol en cada endpoint, un historial de caja que ningún rol puede borrar ni editar por auditoría, y el mismo código de Express corriendo local y como función serverless en Vercel.

Resultado

Desplegado en Vercel sobre PostgreSQL serverless, con 81 tests de integración que corren contra una base de datos real en vez de mocks, para que lo que pasa en las pruebas sea lo que pasa en producción. El aprendizaje: en un negocio real, la confianza en los números importa más que las features —por eso la caja es inmutable y los tests no mienten.