SOIA

Portal multi-tenant para agencias aduanales: seguimiento de pedimentos y sus eventos en un solo lugar.

Cliente
Producto propio de Vertex Core. No es un despliegue en cliente.
Tipo
Portal web multi-tenant
Estado
MVP
Rol de Vertex
Diseño y desarrollo del producto

El reto

En una agencia aduanal el seguimiento de un pedimento vive repartido entre correo, hojas de cálculo y portales externos. El cliente de la agencia no tiene dónde consultar el estatus, así que termina llamando por teléfono, y alguien tiene que interrumpir su trabajo para contestar.

Qué construimos

  • Portal multi-tenant donde cada agencia ve únicamente su información, con aislamiento por identificador de inquilino.
  • Seguimiento de pedimentos con la línea de eventos de cada uno.
  • Adaptador degradable que integra SOIA como una fuente de datos más: si la fuente externa falla, el portal sigue operando.
  • Autenticación con roles, de modo que cada perfil ve y hace solo lo que le corresponde.

Alcance técnico

Next.js 15 con App Router y server actions, React 19 y Tailwind CSS 4. La sesión se maneja con Auth.js v5 mediante JWT que transporta el inquilino y el rol. Persistencia con Prisma 6 sobre PostgreSQL 16 y pruebas unitarias con Vitest.

Esquema: tres agencias entran al mismo portal y cada una alcanza únicamente sus propios pedimentos Agencia A Agencia B Agencia C Un solo portal La sesión lleva el inquilino y el rol Pedimentos A Pedimentos B Pedimentos C Ninguna sesión alcanza los datos de otra agencia
Todas las agencias usan la misma aplicación, pero la sesión carga el identificador de inquilino y el rol, así que cada consulta queda acotada a los datos de quien la hace.
Esquema: el adaptador consulta la fuente externa y, si no responde, el portal sigue operando con los datos ya sincronizados Portal Adaptador Fuente externa Datos ya sincronizados Ruta normal: consulta a la fuente Si la fuente falla: sigue con lo ya sincronizado
La fuente externa es una integración más, no el corazón del sistema. Si deja de responder, el portal no se cae: sigue mostrando lo último que alcanzó a sincronizar.

Stack técnico

  • TypeScript
  • Next.js
  • React
  • Tailwind CSS
  • Auth.js
  • Prisma
  • PostgreSQL
  • Vitest
  • Docker

¿Tiene una operación parecida?

Si su empresa enfrenta un problema similar, cuéntenos. La primera conversación es para entender su operación, no para venderle nada.

Agendar una reunión