1. Introducción y Propósito
El presente documento establece los requerimientos funcionales y no funcionales del sistema RutaCC, una plataforma web multi-tenant diseñada para la gestión integral de flotas vehiculares, despachos, conductores y operaciones logísticas para empresas.
El propósito del sistema es centralizar y optimizar las operaciones de despacho o rutas a seguir, permitiendo a las empresas o personas:
- Planificar y ejecutar rutas eficientes
- Gestionar flotas vehiculares y su mantenimiento
- Controlar costos operativos (combustible, mantenciones, fallos)
- Administrar documentos y vencimientos
- Generar reportes e indicadores de gestión
- Operar bajo un modelo SaaS multi-empresa (tenant)
2. Alcance del Proyecto
2.1 Alcance Incluido
- Aplicación web accesible desde navegador
- Modelo de negocio SaaS multi-tenant
- Gestión completa de flota, conductores y despachos
- Sistema de permisos por roles
- Reportes e indicadores de gestión
- Planificador de rutas con optimización
- Alertas automáticas de vencimientos
- Seguimiento GPS en tiempo real (vía app móvil del conductor: OwnTracks o GPSLogger, sin hardware GPS dedicado)
- Asistente virtual con IA (chatbot de ayuda dentro de la app y chatbot de apoyo comercial en páginas públicas, sobre Google Gemini)
- Gestión de usuarios y matriz de permisos por rol, dentro de la propia empresa
2.2 Alcance Excluido (Futuras Versiones)
- Aplicación móvil nativa de RutaCC (hoy el tracking GPS depende de apps de terceros: OwnTracks/GPSLogger)
- Integración con sistemas ERP externos
- Pasarela de pagos integrada
- Inteligencia artificial para optimización predictiva de rutas (el asistente virtual actual conversa y ayuda; no calcula ni predice rutas)
- Backups automáticos de base de datos (no implementados todavía — ver Diseño del Sistema §9.3)
- Autenticación de dos factores (2FA)
3. Requerimientos Funcionales
3.1 Módulo de Autenticación y Seguridad
| ID | Requerimiento | Prioridad |
| RF-001 | El sistema debe permitir el login con email y contraseña | Alta |
| RF-002 | Las contraseñas deben almacenarse cifradas con bcrypt | Alta |
| RF-003 | El sistema debe cerrar sesión tras inactividad | Media |
| RF-004 | El sistema debe validar el rol del usuario en cada operación | Alta |
| RF-005 | El sistema debe permitir logout seguro | Alta |
3.2 Módulo de Gestión de Tenants (Multi-empresa)
| ID | Requerimiento | Prioridad |
| RF-010 | El sistema debe soportar múltiples empresas (tenants) aisladas | Alta |
| RF-011 | Cada tenant debe tener sus propios datos independientes | Alta |
| RF-012 | El sistema debe permitir crear, editar y desactivar tenants | Alta |
| RF-013 | Cada tenant debe tener su configuración independiente | Media |
3.3 Módulo de Gestión de Usuarios
| ID | Requerimiento | Prioridad |
| RF-020 | El sistema debe permitir crear usuarios con roles (Administrador, Usuario, Despachador, Conductor) | Alta |
| RF-021 | El sistema debe permitir asignar permisos por página a cada usuario | Alta |
| RF-022 | El administrador puede activar/desactivar usuarios | Alta |
| RF-023 | Los usuarios solo ven datos de su tenant | Alta |
| RF-024 | El Administrador debe poder definir una matriz de permisos por rol y por página, dentro de su propia empresa | Alta |
3.4 Módulo de Vehículos
| ID | Requerimiento | Prioridad |
| RF-030 | El sistema debe permitir registrar vehículos con patente, marca, modelo, año, color, capacidad, rendimiento | Alta |
| RF-031 | El sistema debe controlar el estado del vehículo (disponible, asignado, en_ruta, en_fallo, mantencion, inactivo) | Alta |
| RF-032 | El sistema debe registrar el kilometraje actual del motor | Alta |
| RF-033 | El sistema debe gestionar documentos del vehículo (SOAP, revisión técnica, seguro, permiso de circulación) | Alta |
| RF-034 | El sistema debe alertar sobre documentos próximos a vencer | Media |
| RF-035 | La patente debe ser única por tenant | Alta |
3.5 Módulo de Conductores
| ID | Requerimiento | Prioridad |
| RF-040 | El sistema debe registrar conductores con RUT, nombre, teléfono, email | Alta |
| RF-041 | El sistema debe gestionar estados del conductor (disponible, asignado, en_ruta, suspendido, licencia_medica, con_permiso, inactivo) | Alta |
| RF-042 | El sistema debe gestionar licencias de conducir con clase y vencimiento | Alta |
| RF-043 | El RUT debe ser único por tenant | Alta |
| RF-044 | El sistema debe alertar vencimiento de licencias | Media |
3.6 Módulo de Bodegas
| ID | Requerimiento | Prioridad |
| RF-050 | El sistema debe registrar bodegas con nombre, dirección y coordenadas geográficas | Alta |
| RF-051 | Las bodegas sirven como punto de origen para los despachos | Alta |
| RF-052 | El sistema debe activar/desactivar bodegas | Media |
3.7 Módulo de Pedidos
| ID | Requerimiento | Prioridad |
| RF-060 | El sistema debe registrar pedidos con cliente, dirección, coordenadas, documento | Alta |
| RF-061 | El sistema debe gestionar estados de pedidos (pendiente, asignado, en ruta, entregado, fallido, planificado) | Alta |
| RF-062 | El sistema debe permitir asignar pedidos a despachos | Alta |
| RF-063 | El sistema debe permitir planificar el orden de entrega | Alta |
| RF-064 | El sistema debe registrar hora estimada y real de entrega | Media |
3.8 Módulo de Despachos
| ID | Requerimiento | Prioridad |
| RF-070 | El sistema debe crear despachos con conductor, vehículo, bodega origen | Alta |
| RF-071 | El sistema debe calcular automáticamente distancia, combustible estimado, costo y duración | Alta |
| RF-072 | El sistema debe gestionar estados del despacho (creada, planificada, en_ruta, en_entrega, finalizada, cancelada) | Alta |
| RF-073 | El sistema debe registrar km de salida y llegada del vehículo | Alta |
| RF-074 | El sistema debe registrar hora real de salida y llegada | Alta |
| RF-075 | El sistema debe generar número de orden único por tenant | Alta |
| RF-076 | El sistema debe permitir asignar múltiples pedidos a un despacho | Alta |
| RF-077 | El sistema debe planificar la ruta óptima de entrega | Media |
3.9 Módulo de Combustible
| ID | Requerimiento | Prioridad |
| RF-080 | El sistema debe registrar cargas de combustible con litros, monto, tipo, lugar | Alta |
| RF-081 | El sistema debe asociar cargas a vehículos y opcionalmente a despachos | Alta |
| RF-082 | El sistema debe registrar kilometraje al momento de la carga | Media |
3.10 Módulo de Mantenciones
| ID | Requerimiento | Prioridad |
| RF-090 | El sistema debe registrar mantenciones preventivas y correctivas | Alta |
| RF-091 | El sistema debe registrar costo, fechas, taller y kilometraje | Alta |
| RF-092 | El sistema debe calcular próxima mantención según kilometraje | Media |
| RF-093 | El sistema debe gestionar estados (planificada, en_proceso, realizada) | Alta |
3.11 Módulo de Fallos
| ID | Requerimiento | Prioridad |
| RF-100 | El sistema debe registrar fallos mecánicos, eléctricos, de neumáticos, carrocería u otros | Alta |
| RF-101 | El sistema debe clasificar fallos por gravedad (Baja, Media, Alta) | Alta |
| RF-102 | El sistema debe gestionar estados del fallo (en_fallo, en_presupuesto, mantencion, terminado) | Alta |
| RF-103 | El sistema debe cambiar el estado del vehículo a 'en_fallo' automáticamente | Media |
3.12 Módulo de Cobros
| ID | Requerimiento | Prioridad |
| RF-110 | El sistema debe registrar otros cobros (TAG, multas, permisos) asociados a patentes | Alta |
| RF-111 | El sistema debe gestionar estados (registrado, pagado, anulado) | Alta |
| RF-112 | El sistema debe registrar fecha de vencimiento y fecha de pago | Alta |
| RF-113 | El sistema debe alertar cobros próximos a vencer | Media |
3.13 Módulo de Reportes
| ID | Requerimiento | Prioridad |
| RF-120 | El sistema debe generar reporte de costos mensual por vehículo | Alta |
| RF-121 | El sistema debe generar reporte de costos por conductor | Media |
| RF-122 | El sistema debe generar dashboard con estadísticas del mes | Alta |
| RF-123 | El sistema debe mostrar alertas de vencimiento de documentos | Alta |
| RF-124 | El sistema debe mostrar cobros pendientes de pago | Media |
3.14 Módulo de Tracking GPS
| ID | Requerimiento | Prioridad |
| RF-130 | El sistema debe autenticar dispositivos móviles del conductor para recibir su posición GPS | Alta |
| RF-131 | El sistema debe mostrar en un mapa la última posición conocida de cada vehículo de la flota | Alta |
| RF-132 | El sistema debe reconstruir el recorrido real de un despacho a partir de las posiciones GPS recibidas | Media |
| RF-133 | El sistema debe permitir actualizar el estado de un pedido desde la app móvil del conductor | Media |
| RF-134 | El tracking no debe depender de hardware GPS dedicado en el vehículo | Alta |
3.15 Módulo de Asistente Virtual (Chatbot IA)
| ID | Requerimiento | Prioridad |
| RF-140 | El sistema debe ofrecer un chat de ayuda dentro de la app, disponible solo para usuarios con sesión iniciada | Alta |
| RF-141 | El chat de ayuda debe responder en base al manual de usuario real del sistema, no información inventada | Alta |
| RF-142 | El sistema debe ofrecer un chat comercial en páginas públicas, sin requerir sesión | Media |
| RF-143 | El chat comercial no debe afirmar certificaciones, precios o funcionalidades no confirmadas | Alta |
| RF-144 | Ambos chats deben limitar la cantidad de mensajes por sesión para controlar costo y abuso | Media |
4. Requerimientos No Funcionales
4.1 Rendimiento
| ID | Requerimiento | Métrica |
| RNF-001 | Tiempo de carga de páginas | < 2 segundos |
| RNF-002 | Tiempo de respuesta de APIs | < 500 ms |
| RNF-003 | Soporte de usuarios concurrentes | 100+ por tenant |
| RNF-004 | Disponibilidad del sistema | 99.5% mensual |
4.2 Seguridad
| ID | Requerimiento | Estándar |
| RNF-010 | Prevención de inyección SQL | OWASP A03:2021 |
| RNF-011 | Prevención de XSS | OWASP A07:2021 |
| RNF-012 | Cifrado de contraseñas | bcrypt (cost 12) |
| RNF-013 | Protección CSRF | Tokens por sesión |
| RNF-014 | Headers de seguridad aplicados a todo el sitio (páginas estáticas y endpoints PHP) | CSP, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy — vía Apache mod_headers |
| RNF-015 | Cumplimiento Ley 21.710 | Protección de datos Chile |
| RNF-016 | Aislamiento multi-tenant | Diseño alineado a ISO/IEC 27001:2022 A.5.15 (no certificado) |
| RNF-017 | Modo de depuración desactivado en producción | DEBUG_MODE depende de APP_ENV=production |
4.3 Usabilidad
| ID | Requerimiento |
| RNF-020 | Interfaz responsiva (desktop, tablet, móvil) |
| RNF-021 | Interfaz en español chileno |
| RNF-022 | Navegación intuitiva con máximo 3 clics para operaciones comunes |
| RNF-023 | Feedback visual en todas las acciones del usuario |
4.4 Compatibilidad
| ID | Requerimiento |
| RNF-030 | Compatible con Chrome, Firefox, Edge, Safari (últimas 2 versiones) |
| RNF-031 | Servidor: PHP 7.4+, PostgreSQL 14+, Apache |
| RNF-032 | Funcional con conexión de 1 Mbps mínimo |
4.5 Mantenibilidad
| ID | Requerimiento |
| RNF-040 | Código documentado y estructurado |
| RNF-041 | Separación de responsabilidades (MVC-like) |
| RNF-042 | Uso de prepared statements en todas las consultas |
| RNF-043 | Logs de errores y auditoría |
5. Perfiles de Usuarios
| Rol | Descripción | Permisos |
| Administrador |
Administrador del tenant (empresa) |
Acceso total: gestión de usuarios, vehículos, conductores, configuración, reportes |
| Usuario |
Operador regular |
Operaciones diarias según permisos asignados (despachos, pedidos, etc.) |
| Despachador |
Encargado de despachos |
Gestión de despachos, asignación de pedidos, planificación de rutas |
| Conductor |
Conductor de vehículo |
Visualización de sus despachos asignados y actualización de estados |
6. Restricciones y Supuestos
6.1 Restricciones
- El sistema requiere conexión a Internet
- Los datos se almacenan en servidores centralizados
- El sistema opera en horario 24/7
- Los datos personales deben cumplir Ley 21.710 de Chile
- El alta de nuevas empresas (tenants) y la asignación de qué módulos tiene habilitados cada una la realiza el equipo de Intelliti como parte de la operación de la plataforma — no es una función de autoservicio del producto
6.2 Supuestos
- Los clientes cuentan con dispositivos con navegador moderno
- Las direcciones ingresadas existen en el mapa
- Los usuarios tienen conocimientos básicos de computación
- La información ingresada es veraz y actualizada
7. Matriz de Prioridades
| Prioridad | Descripción | Módulos |
| Alta - Must Have |
Imprescindibles para el lanzamiento |
Autenticación, Tenants, Usuarios, Vehículos, Conductores, Despachos, Pedidos |
| Media - Should Have |
Importantes para la operación completa |
Combustible, Mantenciones, Fallos, Cobros, Alertas, Tracking GPS |
| Baja - Nice to Have |
Deseables para mejorar la experiencia |
Reportes avanzados, BI, Asistente virtual con IA, Integraciones futuras (ERP, pagos) |
8. Glosario
| Término | Definición |
| Tenant | Empresa o cliente que utiliza el sistema SaaS con sus propios datos aislados |
| Despacho | Operación de entrega que incluye un vehículo, conductor y uno o más pedidos |
| Bodega | Punto de origen desde donde salen los despachos |
| Pedido | Solicitud de entrega a un cliente específico con dirección y documento |
| SaaS | Software as a Service - Modelo de distribución de software por suscripción |
| RUT | Rol Único Tributario - Identificador fiscal chileno |
| SOAP | Seguro Obligatorio de Accidentes Personales - Requerido para vehículos en Chile |
| Tracking | Seguimiento de la posición GPS de un vehículo en tiempo real, reportada por el celular del conductor |
| OwnTracks / GPSLogger | Apps móviles de terceros que envían la posición GPS del conductor a RutaCC, sin necesidad de hardware GPS dedicado en el vehículo |
| Chatbot / Asistente virtual | Widget de chat con IA (Google Gemini) que responde preguntas de uso del sistema (chat.php) o apoya la conversación de venta (chatv.php) |
✅ Aprobación del Documento:
Este documento ha sido revisado y aprobado por el equipo de desarrollo y los stakeholders del proyecto.