Gestion de flotte

Accueil · Documentation · Fonctionnalités

Fonctionnalités

Passation de véhicule (QR)

Chaîne de garde à double scan : le chauffeur entrant ouvre l'état des lieux en scannant le QR du véhicule, le sortant libère, l'affectation est transférée.

Chaque véhicule possède un jeton de passation (fleet_vehicles.handover_token) qui donne l'adresse publique collée sous forme de QR code sur le véhicule:

https://flotte.kobehtrack.ci/passation/<jeton>

Le chauffeur scanne ce QR avec l'appareil photo de son téléphone (ou depuis l'application KOBEH-TRACK): la page de passation s'ouvre dans le navigateur, sans installation.

Déroulé

Étape Qui Effet
1. Scan + état des lieux chauffeur entrant photo du QR, kilométrage, niveau de carburant, remarques → la passation passe en open; le titulaire sortant et les gestionnaires sont prévenus par e-mail
2. Scan + remise chauffeur sortant (titulaire) confirme la remise (remarques facultatives) → confirmed
3. Transfert automatique l'affectation exclusive du véhicule passe au chauffeur entrant (fleet_assignments)
4. Sans réponse automatique à l'échéance (HANDOVER_TTL_MIN, 120 min par défaut) la passation est libérée automatiquement avec la mention correspondante
5. Contrôle gestionnaire peut forcer la remise ou annuler la demande depuis la fiche du véhicule (« 📱 Passation (QR) »)

Croisement téléphone / traceur

Le téléphone qui scanne transmet sa position; le serveur la compare au dernier point du traceur du véhicule (HANDOVER_NEAR_M, 300 m par défaut):

  • dans le rayon → mention « sur place (x m du traceur) »;
  • au-delà → mention « à distance (x km) » et la remise exige un gestionnaire (le titulaire ne peut pas confirmer à distance);
  • position indisponible (GPS refusé) → « position non vérifiée », la remise reste possible.

Modèle de données

db/handover_v1.sql: colonne handover_token (unique) sur fleet_vehicles et table fleet_handovers (statut open|confirmed|cancelled|expired, titulaire sortant, entrant, état des lieux, distance de scan, échéance, validation gestionnaire).

L'échéance est appliquée à la lecture (libererEcheues): chaque appel d'API de passation clôture les passations échues et transfère l'affectation.

API

GET  /api/fleet/handover/scan/:jeton        fiche véhicule + passations en cours (chauffeurs inclus)
POST /api/fleet/handover/scan/:jeton/open   ouvrir une passation (état des lieux)
POST /api/fleet/handover/:id/release        libérer le véhicule (titulaire ou gestionnaire)
POST /api/fleet/handover/:id/cancel         annuler (auteur ou gestionnaire)
GET  /api/fleet/handover/vehicle/:id        QR du véhicule + passations en cours (gestion)
GET  /api/fleet/handover/pending            toutes les passations en cours (gestion)

Le routeur de passation est monté avant celui du parc: les profils « terrain » (chauffeur/employé) y ont accès, alors qu'ils n'ont pas accès aux écrans de gestion.

Réglages

Variable Défaut Rôle
HANDOVER_TTL_MIN 120 délai avant libération automatique (minutes)
HANDOVER_NEAR_M 300 tolérance téléphone ↔ traceur (mètres)
PUBLIC_FLOTTE_URL (ou NEXT_PUBLIC_FLOTTE_URL) https://flotte.kobehtrack.ci adresse portée par le QR

Notifications

  • handover_request — envoyé au titulaire sortant et aux gestionnaires à l'ouverture;
  • handover_done — envoyé au chauffeur entrant et aux gestionnaires à la confirmation (catégorie de préférences handover).

Tests de bout en bout

# sur l'hôte de développement (pile docker locale)
python3 scripts/tests/handover-e2e.py         # QR, double scan, chaîne de garde, transfert, auto-libération, notifications
python3 scripts/tests/handover-proximite.py   # proximité téléphone/traceur: refus à distance, validation gestionnaire
python3 scripts/tests/chauffeurs-docs.py      # documents chauffeur (permis synchronisé) et rattachement de compte

Les scripts créent leurs comptes/chauffeurs de test puis nettoient derrière eux (comptes, chauffeurs, passations, notifications, affectations restaurées).

Vérification en production

scripts/tests/handover-prod.py déroule la totalité du parcours sur la production (HTTPS, cookies, notifications) avec un véhicule et des comptes de test créés puis supprimés: QR généré, titulaire initial, ouverture par l'entrant, remise par le sortant, transfert de l'affectation, notifications, nettoyage complet.

ssh root@51.75.203.223
cd /opt/traccar-platform && python3 scripts/tests/handover-prod.py    # 18/18

À exécuter sur le serveur (l'accès base de données passe par docker exec).


← Toutes la documentation · Ouvrir la plateforme