Operaciones 2.0
La segunda versión de los dashboards: los ocho en una sola aplicación, con cuentas,
grupos y permisos por dashboard. Cada persona entra con su usuario y ve solo lo que su grupo
tiene autorizado; los datos se piden con su sesión, no a webhooks abiertos.
Mi rolDiseño, desarrollo y operación
Lo usanOperaciones, finanzas y dirección
Fuentes16, detrás de un webhook con sesión
EstadoEn construcción, a la par de la versión 1
Para qué existe
La primera versión eran ocho archivos HTML independientes, cada uno con su copia de
las reglas, su propia forma de filtrar y sus webhooks abiertos. Funcionaba, pero cada
corrección había que portarla a mano a varios dashboards, y no había forma
de decidir quién ve qué.
- Una sola app con barra lateral: Job Status, Cierre de embarques, Business Unit,
CVBAT, Conciliación de pagos NetSuite→CargoWise, KPIs, la pantalla del piso y
Previo en origen. Aparte, una página con el estado de cada fuente de datos.
- Documentos de facturas. Cruza cada factura de CargoWise con sus archivos en Drive,
muestra qué falta y por qué, y permite ligar a su factura un documento que
llegó sin folio.
- Contactos de clientes. Dentro de CVBAT: a quién le llegan las facturas de
cada cliente y de qué clientes falta ese dato.
- Cuentas y permisos. Acceso con contraseña, invitaciones por correo, grupos
con dashboards autorizados y un panel de Admin con historial de cada cambio.
- Cada persona acomoda su panel. Las tarjetas de cada página se pueden mover
y cambiar de tamaño, y el arreglo se guarda en su cuenta.
- Las reglas viven una sola vez y cada dashboard las importa, en lugar de copiarlas.
- Se actualiza sola. Revisa cada dos minutos la hora de cada tabla, baja solo lo que
cambió y avisa en la barra si una fuente lleva demasiado sin datos nuevos.
Mientras se construye, convive con la versión 1: cada arreglo de datos que se hace en
la vieja se porta a la nueva, y los usuarios no notan el cambio hasta que esté lista.
De dónde salen los datos
01CargoWise · NetSuitereportes programados
02WatchersVM · Python
03MySQL RDShistórico
04n8nsesión · permiso · fuente
05Navegadorcaché local
Un solo webhook recibe qué fuente se pide y el token de la sesión,
revisa que el grupo de la persona tenga permiso para algún dashboard que use esa fuente
y solo entonces pide los datos. Las cuentas externas reciben los embarques sin montos.
El navegador guarda lo último que bajó: la app abre al instante con eso y
refresca atrás. Si una descarga llega con muchas menos filas que la anterior, no se
acepta hasta que la siguiente lo confirme.
Decisiones de construcción
- Pruebas de paridad. Cada regla portada se compara contra la versión 1 con
datos reales: embarque por embarque, la nueva tiene que dar exactamente lo mismo.
- Diseño antes que código. Cada pantalla se aprobó primero en
un lienzo de diseño, con datos reales; nada se programó sin ese visto bueno.
- Color solo como señal. Tinta en distintas opacidades para todo, y color
únicamente cuando algo está mal, cerca o bien. Sigue el tema del sistema.
- Todo vive en el link. Filtros, pestaña y vista se comparten copiando la
dirección.
- Nunca se suman monedas. Las dos empresas facturan en USD y MXN; cada cifra va en
su moneda.
Qué es distinto en esta demo
Es el mismo archivo que corre en producción, con la capa de datos sustituida por un
generador. Las reglas y los cálculos son los reales.
- La sesión entra sola como admin, para que se vean todos los dashboards y el panel
de Admin. Lo que se cambie ahí (permisos, grupos, notas, el arreglo del panel) dura hasta recargar.
- Personas, clientes, montos y folios son ficticios.
- Exportar a Excel está desactivado en la demo.
- Los enlaces a Drive no abren archivos: aquí los documentos son de ejemplo.
TypeScriptVitePruebas automatizadasn8n
MySQL · AWS RDSPythonAirtable