5.9 KiB
5.9 KiB
Memoria Técnica del Proyecto — Help Desk
Fecha de inicio
16 de Mayo, 2026
Stack Tecnológico
- Runtime / Backend: Node.js 20+ con Express 5.2.
- Motor de Vistas: EJS 5 con partials modulares.
- Base de Datos: MariaDB 10.11 / MySQL (
mysql2/promise) en CT 114 (192.168.10.149:3306). - Autenticación y Sesiones:
express-session,cookie-parser,bcryptjs. - Integraciones de Identidad: SIGMA WebControl API, Google Identity Services (GIS), Facebook OAuth.
- Frontend / UI: Bootstrap 5.3 + Font Awesome 6 (CDN) + Estilos custom (
public/css/style.css). - Middlewares y Utilidades:
morgan,connect-flash,express-fileupload,qrcode. - Integración FSM: API REST externa contra
tareas.telcotronics.com(CT 132192.168.10.160:3000). - Auditoría de Errores: Integración con API-SIGMA-WEBCONTROL (
192.168.10.149:3005).
Decisiones de Arquitectura
-
MariaDB Relacional vs NoSQL:
- Se utiliza MariaDB en CT 114 (
192.168.10.149:3306), garantizando integridad referencial estricta, llaves foráneas y consistencia transaccional multi-tenant.
- Se utiliza MariaDB en CT 114 (
-
express-session vs JWT:
- Se utiliza
express-sessioncon almacenamiento de sesión del lado del servidor para el portal web renderizado con EJS, facilitando el manejo de mensajes flash (connect-flash) y redirecciones seguras.jsonwebtokenpermanece reservado para APIs REST.
- Se utiliza
-
Arquitectura Multi-tenant SaaS:
- La tabla maestra
companiesgobierna el aislamiento lógico. Todas las entidades operativas (users,departments,tickets,ticket_visitas,herramientas,herramientas_sets,tecnico_herramientas_asignaciones) incorporan la clave foráneacompany_id. - Soporte para cuotas máximas de usuarios y tickets por plan (
free,pro,enterprise).
- La tabla maestra
-
4 Roles de Usuario con Control Granular (
middleware/auth.js):superadmin: Acceso a/saas/companiespara gestión global de organizaciones.admin: Administración de agentes, clientes, departamentos, inventario de herramientas y configuraciones de la empresa.agent: Bandeja operativa de tickets, triaje, respuestas, despacho de visitas técnicas FSM y asignación de herramientas.client: Apertura y seguimiento de incidencias propias.
-
Estrategia Multicanal de Autenticación & Mascota Bot:
- Los clientes del ecosistema validan sus credenciales contra SIGMA WebControl (
api.siax-system.net) con aprovisionamiento transparente en MariaDB. - Los nuevos clientes pueden autenticar mediante Google Identity Services (GIS) y Facebook Login.
- El personal técnico (
superadmin,admin,agent) utiliza la consola local MariaDB protegida porbcryptjs. - Mascota oficial del Bot de Soporte (
/img/bot-soporte.svg,/img/bot-soporte.png) integrada en la interfaz de login.
- Los clientes del ecosistema validan sus credenciales contra SIGMA WebControl (
-
Módulo FSM — Despacho y Trazabilidad de Campo:
- Integrado bidireccionalmente con
tareas.telcotronics.com(CT 132192.168.10.160:3000). - Sincronización en vivo de nómina de técnicos, despacho con checklist, dirección y coordenadas GPS.
- Mini-Timeline de 4 hitos operativos en el ticket: Programada ➔ Check-in GPS en sitio ➔ Avance de checklist con fotos ➔ Cierre con firma digital del cliente.
- Automatización de estados y mensajes en el hilo del ticket al programar o completar la visita.
- Integrado bidireccionalmente con
-
Módulo de Inventario de Herramientas, Sets y Manifiesto QR:
- Inventario físico multi-tenant de herramientas individuales (
herramientas) con código, serie, marca, modelo, estado (disponible,en_uso,en_reparacion,baja) y fotografía. - Agrupación en Sets / Kits de Herramientas (
herramientas_setsyherramientas_set_items) para maletines de trabajo (fusión de fibra, redes de cobre, kits de cuadrilla). - Asignación de custodia a técnicos (
tecnico_herramientas_asignaciones) en dos modalidades: dotación fija de bodega o vinculada a un ticket de visita técnica FSM. - Subida y almacenamiento seguro de imágenes (
config/uploader.js) para evidencias de herramientas, maletines, estado de entrega y estado de devolución. - Generación de códigos QR e impresión térmica adhesiva (
/admin/herramientas/sets/:id/etiqueta) optimizada a 95mm vía@media print. - Manifiesto móvil web responsivo (
/qr/set/:tokeny/qr/asignacion/:token) con badge de custodia en vivo (EN BODEGA vs EN CUSTODIA) y checklist interactivo para auditoría de maletines en terreno o almacén. - Endpoint externo M2M
/api/external/herramientas/setsprotegido por API Key.
- Inventario físico multi-tenant de herramientas individuales (
-
Despliegue a Producción y Orquestación con SIAX Monitor:
- Servidor: CT 132
192.168.10.160(server-webapps), puerto 3008. - Dominio público:
https://soporte.sigmac.appmediante proxy reverso en CT 109 (192.168.10.109:443). - Administrado por la unidad systemd
siax-app-HELPDESK.servicey supervisado por SIAX Monitor (:8080). - Despliegue atómico automatizado vía
./desplegar.sh. - Registrado oficialmente en el MCP de Infraestructura como Servicio ID 35.
- Servidor: CT 132
Esquema de Base de Datos (10 Tablas Activas)
companies: Gestión de tenants SaaS y cuotas.users: Usuarios del sistema con soporte multicanal (provider,provider_id,rol,company_id).departments: Áreas o departamentos de soporte técnico.tickets: Tickets de soporte con aislamiento por empresa, prioridad y estado.ticket_respuestas: Mensajes, notas y respuestas del hilo del ticket.ticket_visitas: Visitas técnicas y tareas de campo FSM con timeline enhistorial_json.herramientas: Catálogo de herramientas individuales con código, serie, estado yfoto_url.herramientas_sets: Kits o maletines de herramientas con código,foto_urlyqr_token.herramientas_set_items: Relación Many-to-Many entre sets y herramientas con cantidad requerida.tecnico_herramientas_asignaciones: Registro de custodia a técnicos con estado (activa,devuelta), fotos de entrega/devolución yqr_token.