Ddarek.dev
Volver al inicioVer Código Fuente ↗

Sistema de gestión para negocio real

Negocio Ferretero

Java 17Spring BootTypescriptAndroidPostgreSQLDockerAWS EC2

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.