# Help Desk — Sistema Multi-Tenant de Gestión de Incidencias Sistema web modular para gestión de tickets de soporte técnico, atención al cliente y administración multi-tenant (SaaS), construido sobre Node.js, Express 5 y MariaDB. --- ## 🎯 ¿Qué resuelve? Centraliza la recepción, triaje, asignación y resolución de solicitudes de soporte técnico dentro de las organizaciones del ecosistema Telcotronics. Permite que múltiples empresas o departamentos gestionen sus tickets de forma completamente aislada a través de una arquitectura SaaS integrada. --- ## 👥 Roles de Usuario y Capacidades | Rol | Dashboard / Acceso | Capacidades Principales | |---|---|---| | **Superadmin** | `/saas/companies` | Alta de empresas, activación/suspensión de tenants y control de cuotas | | **Admin** | `/admin/dashboard` | Gestión de agentes y clientes, CRUD de departamentos y configuración del tenant | | **Agente** | `/agent/dashboard` | Bandeja de tickets, cambio de estado (`abierto`, `en_progreso`, `cerrado`), asignación y respuestas | | **Cliente** | `/client/dashboard` | Apertura de tickets con prioridad y departamento, consulta de historial y respuestas | --- ## 🛠️ Stack Tecnológico - **Backend:** Node.js 18+ con Express 5.2. - **Vistas:** EJS con partials modulares. - **Base de Datos:** MariaDB / MySQL vía conector nativo `mysql2/promise`. - **Autenticación:** Sesiones del lado del servidor con `express-session` y contraseñas cifradas con `bcryptjs`. - **Frontend:** Bootstrap 5.3 + Font Awesome 6 (vía CDN) y CSS/JS personalizados. --- ## 📋 Requisitos Previos - Node.js versión 18 o superior. - MariaDB 10.x / MySQL 8.x con acceso a crear bases de datos y tablas. --- ## 🚀 Instalación y Puesta en Marcha ### 1. Clonar e instalar dependencias ```bash git clone help_desk cd help_desk npm install ``` ### 2. Configurar variables de entorno Crea un archivo `.env` en la raíz basándote en la plantilla: ```ini PORT=3008 DB_HOST=192.168.10.149 DB_USER=helpdesk DB_PASSWORD=tu_password_segura DB_NAME=help_desk SESSION_SECRET=tu_secreto_de_sesion JWT_SECRET=tu_jwt_secret ``` ### 3. Inicializar y migrar la Base de Datos Ejecuta el script de configuración automática para crear la base de datos, tablas, relaciones y datos semilla (empresa demo y usuarios iniciales): ```bash node config/setup.js ``` ### 4. Iniciar la Aplicación ```bash # Modo producción npm start # Modo desarrollo node app.js ``` Acceso en navegador: `http://localhost:3008` --- ## 🔑 Credenciales por Defecto (Seed) | Rol | Correo Electrónico | Contraseña | |---|---|---| | **Superadmin** | `super@helpdesk.com` | `123456` | | **Admin** | `admin@helpdesk.com` | `123456` | | **Agente** | `agent@helpdesk.com` | `123456` | | **Cliente** | `client@helpdesk.com` | `123456` | --- ## 📁 Documentación para Agentes e Infraestructura - **Punto de Entrada de Agentes:** [agents.md](file:///home/pablinux/Projects/Node/help_desk/agents.md) - **Documentación Interna del Proyecto:** Carpeta [.agente/](file:///home/pablinux/Projects/Node/help_desk/.agente/) - **Inventario Global del Ecosistema:** [.agente/infraestructura.md](file:///home/pablinux/Projects/Node/help_desk/.agente/infraestructura.md) - **Identidad del Agente:** [id_agente.md](file:///home/pablinux/Projects/Node/help_desk/id_agente.md)