Ficha tecnica de proyecto
NodeFichajeRemoto
Sistema local de gestión de fichajes para flota VTC (≈140 conductores)
📱 Worker de WhatsApp (procesamiento automático)
El worker escucha mensajes entrantes con el formato FICHAJE VTC y realiza:
- Extracción por Regex (ubicación, conductor, acción).
- Registro en PostgreSQL con deduplicación por ID de mensaje.
- Recuperación de mensajes recientes tras reinicios.
- Confirmación automática al conductor.
- Sesión persistente con LocalAuth.
- Manejo robusto de errores (try/catch global).
Acciones soportadas
- INICIO
- FIN
- DESCANSO
- REPOSTAJE
- LIMPIEZA
🛡️ Custodia automática de reportes (PDF/XLSX)
Cumple RDL 8/2019:
- Detecta archivos cuyo nombre contiene “reporte”.
- Descarga, calcula SHA‑256, deduplica y archiva por: /reportes/{conductorId}/{año}/{mes}/
- Registra metadatos en DB.
- Volumen persistente con retención mínima de 4 años.
- Acceso de solo lectura desde el frontend.
🔔 Alertas automáticas
Anomalías de jornada
- Detecta conductores con INICIO sin FIN al cierre del día.
- Envía aviso por WhatsApp al admin.
- Hora configurable vía variables de entorno.
Horas extra (opt‑in)
- Detecta jornadas que superan límites diarios/semanales.
- Envía alerta automática al admin.
Descanso mínimo (opt‑in)
- Comprueba descanso entre FIN → siguiente INICIO.
- Avisa si es inferior al umbral legal.
🖥️ Panel CRM web
Acceso restringido a IPs internas + JWT HttpOnly.
Módulos principales
- Dashboard: KPIs, fichajes recientes, refresco cada 10 s.
- Fichajes: filtros avanzados + exportación CSV.
- Conductores: estado de jornada en tiempo real.
- RRHH > Horas: cálculo de horas, jornadas abiertas, horas extra.
- RRHH > Reportes: descarga directa de PDFs/XLSX custodiados.
- Comunicaciones > Anuncios: CRUD con prioridades.
- Admin > Usuarios: gestión de cuentas CRM.
Push Web
- Suscripción vía Service Worker.
- Envío automático al crear anuncios IMPORTANTE o URGENTE.
- El worker notifica por WhatsApp anuncios urgentes no leídos.
🧪 Pruebas y CI/CD
Incluye scripts PowerShell para:
- Smoke test del stack.
- Test de integración API + DB.
- Limpieza de base de datos.
- Backup/restore con SHA‑256.
- Auditoría de seguridad.
- Simulacro completo de recuperación.
CI/CD en GitHub Actions con:
- Unit tests (frontend + worker).
- Auditoría de dependencias.
- Arranque Docker + smoke test.
- Gate estricto en main.
Descripcion tecnica
NodeFichajeRemoto es un sistema completo de fichaje laboral para flotas VTC, diseñado para operar sin depender de proveedores externos, con custodia legal de documentos, alertas automáticas, panel CRM privado y un worker de WhatsApp que procesa fichajes en tiempo real. El objetivo es garantizar cumplimiento del RDL 8/2019, reducir errores humanos y ofrecer un control operativo fiable para administradores y gestores.
Arquitectura
Arquitectura híbrida: Frontend: Next.js 15 (App Router) + Tailwind + API Routes Backend / Worker: Node.js + whatsapp-web.js Base de datos: PostgreSQL 18 (timezone Europe/Madrid) ORM: Prisma 7.8.0 Infraestructura: Docker + Docker Compose Custodia documental: Volumen persistente Docker (4 años mínimo) Push Web: Service Worker + VAPID
Timeline tecnico
-
2026-04
Inicio de arquitectura
-
2026-04
MVP funcional
-
2026-05
Paso a producción
-
2026-05
Módulo RRHH completo
-
2026-05
Push Web + alertas urgentes