06 — Panel web (RR.HH. /
Administración)
Esqueleto en web/ (React + Vite + TypeScript + MapLibre
GL).
Funcionalidad prevista
- Login (JWT) con roles:
superadmin /
admin / manager.
- Dashboard: asistencias de hoy, empleados activos,
alertas pendientes.
- Mapa de geocercas: visualización de sitios
(
sites.geom + radio) y últimos check-ins (pins con estado
inside/outside) sobre OpenStreetMap (MapLibre GL).
- Gestión: empresas, empleados (perfil site/remote,
asignación de sitios), turnos, geocercas.
- Alertas: bandeja de
alerts
(mock_location, root_jailbreak, missing_checkout,
outside_geofence).
- Reportes: horas ordinarias/extra (doble/triple),
retardos, pausas NOM-037, export CSV.
- Reconciliación Odoo: estado de
odoo_sync.
Stack
- React 18 + Vite + TypeScript.
maplibre-gl + react-map-gl (o
maplibre-gl directo) con tiles de OSM.
@tanstack/react-query para datos;
axios/fetch contra la API.
Endpoints consumidos
/api/v1/auth/login, /api/v1/attendance/*,
/api/v1/reports/*, /api/v1/sites,
/api/v1/employees, /api/v1/alerts,
/api/v1/odoo-sync.
Seguridad
- Solo usuarios con rol admin/manager acceden; el panel no expone
claves ni datos biométricos.
- Mismas reglas de CORS/JWT que la app móvil.