TicketFlow es una plataforma Full-Stack de gestión de incidentes y mesa de ayuda (Help Desk) diseñada para optimizar la comunicación y resolución de problemas entre clientes, técnicos y administradores. El sistema cuenta con un chat unificado en tiempo real y un panel de control inteligente adaptado al rol de cada usuario.
## 🚀 Características Clave
- 🔐 Autenticación y Roles: Inicio de sesión y registro unificados en una sola interfaz limpia mediante JWT (JSON Web Tokens) y encriptación de contraseñas con Bcryptjs. Soporte para tres perfiles de usuario: Cliente, Técnico y Administrador.
- 📊 Dashboard Inteligente NoSQL: Métricas reactivas automatizadas que leen directo de MongoDB. Los administradores auditan el sistema global, mientras que los clientes y técnicos visualizan únicamente sus métricas y contadores personales de manera privada.
- 💼 Panel de Administración: Interfaz exclusiva para que el Administrador gestione usuarios, reasigne roles (Cliente/Técnico/Admin) y delegue operadores a cada incidente mediante selectores dinámicos.
- 💬 Chat en Tiempo Real (WebSockets): Canales de comunicación bidireccional completamente aislados mediante el concepto de salas virtuales (Rooms), permitiendo soporte instantáneo entre el cliente y el personal técnico sin necesidad de recargar la pantalla.
- 🎨 Diseño Moderno e Interactivo: Interfaz de usuario prolija, estilizada y adaptativa utilizando CSS3 puro (Flexbox y CSS Grid), incluyendo efectos visuales flotantes y badges de colores dinámicos para los estados y prioridades.
- React.js (Vite) - Librería principal para la interfaz de usuario.
- React Router Dom - Gestión de navegación y protección de rutas privadas por rol.
- Axios - Cliente HTTP para el consumo de la API REST.
- Socket.io-client - Conexión persistente WebSockets del lado del navegador.
- React Icons & CSS3 puro
- Node.js & Express.js - Entorno y framework para el desarrollo de la API REST.
- Socket.io - Servidor WebSocket para la gestión de salas virtuales por Ticket.
- JWT & Bcryptjs - Seguridad, firma de sesiones y hashing de contraseñas.
- Mongoose - ODM para modelado estructurado de datos NoSQL y cruce de datos relacionales mediante
.populate().
- MongoDB - Base de datos NoSQL orientada a documentos (formato JSON), ideal para la flexibilidad de los historiales de comentarios e incidentes.