Sistema de gestión para negocio real
Negocio Ferretero
El Problema del Negocio
Sistema web para gestionar ventas, inventario, compras y despachos en una ferretería, diseñado para centralizar la operación y reducir procesos manuales.
[ Aquí irá tu video demo de 30s para Negocio Ferretero ]
Decisiones Técnicas y Arquitectura
PostgreSQL con índices compuestos en movimientos de inventario
El modelo de inventario multisede requiere consultas que filtran por sede, producto y rango de fechas simultáneamente. Un índice simple no cubre los tres campos. Diseñé índices compuestos (sede_id, producto_id, fecha_movimiento) que redujeron el tiempo de consulta de ~400ms a ~18ms en el dataset de producción.
JWT stateless vs sesiones en base de datos
Elegí JWT stateless con refresh tokens de larga duración almacenados en tabla dedicada. Permite escalar horizontalmente sin compartir estado de sesión entre instancias, y el refresh token en BD permite revocar sesiones individualmente cuando un empleado deja la empresa.
Multi-stage Docker build para imagen de producción
La imagen final pesa 95MB en lugar de 680MB usando multi-stage: etapa de build con Maven completo, etapa final con JRE Alpine solamente. Reduce tiempo de pull en cada deploy y superficie de ataque en producción.