Sistema
Reemplazar Excel por un sistema auditable, en un rubro donde cada entrega tiene que poder justificarse ante un regulador.
El contexto
Una organización que opera bajo un marco legal estricto: acceso restringido por membresía, trazabilidad obligatoria de cada transacción y límites a la comunicación comercial.
Toda la operación vivía en planillas de Excel repartidas entre cuatro zonas geográficas, con miles de registros históricos acumulados. No había control de sobreventa, ni validación de autorizaciones, ni forma de reconstruir qué se entregó, a quién y contra qué documento.
Lo que construí
- Validación automática antes de cada pedido. Fichas de miembro con documentos de autorización de vigencia variable y cupos mensuales. El sistema valida vigencia y cupo antes de permitir un pedido, con un mecanismo de excepción que queda auditado.
- Pedidos e inventario. Flujo completo de creación, aprobación, preparación, despacho y entrega. Bloqueo de sobreventa a nivel de sistema, control de stock por lote y alertas de umbral.
- Trazabilidad auditable. Cada entrega genera un registro que reconstruye la cadena completa: qué, cuánto, cuándo, contra qué autorización y quién la entregó. Diseñado explícitamente como evidencia ante una revisión regulatoria.
- Etiquetas térmicas de dos capas. Una capa para logística, sin revelar contenido; otra con el detalle, accesible solo al personal autorizado. Una restricción legal resuelta con diseño, no con una advertencia en un manual.
- Migración de 11.000 registros históricos desde texto no estructurado, con un parser propio en Node y reglas de negocio versionadas. Todo conflicto se resolvió por confirmación humana, nunca por inferencia automática.
- Dashboard analítico con reportes en vivo, gráficos en SVG escritos a mano y manejo explícito de huecos en los datos históricos para no falsear tendencias.
- Panel de configuración que permite al equipo comercial ajustar tarifas, precios y umbrales sin tocar código — estrictamente separado de la lógica de reglas, que sí requiere desarrollo.
Tres decisiones que definieron el sistema
- Separar lo que el sistema sabe de lo que expone. Ciertos registros se recalifican deliberadamente al exportarse, por exigencia legal. La verdad interna y la representación externa son cosas distintas y el modelo lo refleja.
- Negarle SQL libre al asistente de IA interno. Habría sido más fácil conectarlo a la base. En vez de eso funciona con un conjunto fijo de consultas parametrizadas que heredan los mismos permisos por rol que la API — para evitar fugas de datos sensibles y cifras no auditables.
- Permisos granulares por rol — operación, inventario, despacho, finanzas, lectura, administración — con revocación instantánea de sesiones activas.
Rol:
Diseño de producto, arquitectura y desarrollo full-stackStack:
PostgreSQL, Prisma, Node, ReactInfraestructura:
Hetzner, Vercel, n8nAlcance:
Migración de 11.000 registrosPeríodo:
2025–2026Tags :
Date :
1 September 2026