~/diego-viscarra
$ man vehicle-inspection.md
~/proyectos/vehicle-inspection/case-study.md
Fleet Management / Gatehouse PWA / Multi-Tenant RLS
Full Stack Engineer & Database Architect

Vehicle Inspection CM — Control de Flota

Plataforma enterprise para inspección de flota, odómetro antifraude y control en garitas multi-país con SQL Server RLS.

CLIENTEGrupo ConstruMarket (Panamá, Guatemala, El Salvador, Nicaragua)
TIEMPO2025 — En Producción
ESTADODesplegado en producción regional multi-sucursal
// Métricas & Invariantes Clave
4 Países
Operación multi-tenant
Aislamiento estricto forzado en el motor de base de datos mediante RLS
Cero ORM
Consultas parametrizadas
Driver crudo mssql con transacciones atómicas por request vía AsyncLocalStorage
Anti-Fraude
Odómetro validado
Detección de inconsistencias de kilometraje con justificación obligatoria
Alto Contraste
Kiosco para vigilantes
UI diseñada para tabletas expuestas a luz solar directa en garitas de acceso
$cat pantallas_clave.preview
[5 PANTALLAS DOCUMENTADAS]
flota ~ GET /guard
Alto ContrasteGET /guard
Terminal de Garita / Dashboard de Guardia
Clic para pantalla completa ⤢

Interfaz táctil de alto contraste diseñada para tabletas bajo luz solar directa, selector ágil de placa y flujo de entrada/salida.

⚠Aviso: Los datos, cifras y registros mostrados son ficticios y corresponden a pruebas simuladas (mock data); no pertenecen a la empresa ni exponen información real.
// Contexto de Negocio & El Reto Real

En una multinacional con cientos de camiones y camionetas operando en 4 países, el control en garitas con bitácoras de papel provocaba pérdidas por daños no reportados, fraude en kilometraje de combustible y herramientas de seguridad extraviadas.

⚠Colisiones y daños no reportados

Las camionetas volvían con golpes y ningún conductor se hacía responsable, cargando el costo de reparación a la empresa.

⚠Fraude de odómetro y combustible

Lecturas manuales erróneas o alteradas intencionalmente para desviar vales de combustible.

⚠Extravío de herramientas de seguridad

Pérdida continua de extintores, conos, gatas y llaves de cruz que no se inspeccionaban con agilidad en el cambio de turno.

⚠Aislamiento de datos regional

Cada país y sucursal requería operar sus listas de chequeo de manera independiente sin ver datos de otras subsidiarias.

// Decisiones de Arquitectura e Ingeniería

Stream Puro de Eventos de Inspección

Event-Stream

En lugar de sesiones abiertas que quedan abandonadas, cada inspección es un evento atómico inmutable que dispara acciones de mantenimiento.

  • ›Flujo táctil de 30 segundos optimizado para guardias de seguridad.
  • ›Cualquier daño marcado genera instantáneamente un ticket de 'Problema Abierto' para el taller mecánico.
  • ›Auditoría inmutable de quién inspeccionó, fecha exacta y fotos de evidencia.

SQL Server Row-Level Security (RLS) Nativo

Cero ORM & Máxima Seguridad

La seguridad multi-inquilino no se delega a la capa de aplicación, sino que vive en las funciones de predicado de SQL Server.

  • ›Asignación de tenant en cada conexión usando `SESSION_CONTEXT()`.
  • ›Consultas parametrizadas a mano para latencias de milisegundos sin sobrecarga de ORM.
  • ›Políticas de acceso en cascada: Global → País → Sucursal.
// Desglose del Catálogo de Pantallas
01.Terminal de Garita / Dashboard de Guardia

Interfaz táctil de alto contraste diseñada para tabletas bajo luz solar directa, selector ágil de placa y flujo de entrada/salida.

GET /guard[01-garita-kiosco.png]
02.Formulario de Inspección Vehicular & Daños SVG

Selector interactivo SVG de daños en carrocería, validación secuencial de odómetro y captura obligatoria de evidencia fotográfica.

POST /guard/inspeccion[02-inspeccion-svg.png]
03.Dashboard Consolidado de Flota & Gasto

Visión consolidada de flota: disponibilidad, cobertura de inspección, gasto mensual por país y control de combustible.

GET /ops/dashboard[03-dashboard-flota.png]
04.Gestor de Daños y Problemas Abiertos

Centro de triage de averías reportadas en garita con clasificación por severidad (Crítico, Moderado, Leve) y seguimiento con taller.

GET /ops/issues[04-gestor-problemas.png]
05.Matriz de Configuración Jerárquica & RLS

Editor de checklists dinámicos por tipo de vehículo (Volqueta, Pick-up, Grúa) y asignación de políticas de seguridad por país.

GET /ops/settings[05-configuracion-rls.png]
// Ficha Técnica Completa
BACKEND
• Node.js 20
• Express
• TypeScript 5.4
• Driver crudo mssql (Cero ORM)
• AsyncLocalStorage
FRONTEND
• React 18
• Vite
• React Router 7
• Tailwind CSS
• shadcn/ui
• Lucide Icons
BASE DE DATOS
• Microsoft SQL Server
• Row-Level Security (RLS) nativa
• Consultas parametrizadas