Exploitation
Interface terrain
Les techniciens utilisent l’interface web adaptative Failsafe depuis leur téléphone, leur tablette ou leur ordinateur. Aucun SDK Expo n’est requis pour se connecter ou réaliser une intervention.
Connexion sécurisée
Le technicien se connecte avec son compte Failsafe. La session est vérifiée par Better Auth côté serveur. L’application ne crée pas de jeton local pour simuler une connexion.
Si la session expire ou est révoquée, l’utilisateur doit se reconnecter avant d’accéder aux données métier.
Pièces et photos
Les réservations et consommations de pièces sont confirmées directement par le serveur afin de préserver le stock. Elles restent bloquées sans connexion tant que la protection contre un double rejeu n’est pas validée.
Les photos JPEG, PNG et WebP sont contrôlées avant d’être stockées et rattachées à l’intervention. Le stockage de production doit disposer de la variable serveur BLOB_READ_WRITE_TOKEN.
Choix de l’organisation
Avec une seule organisation, elle devient automatiquement active. Avec plusieurs organisations, l’utilisateur doit choisir celle dans laquelle il souhaite travailler.
Le serveur vérifie l’appartenance et les permissions à chaque opération. Changer d’organisation vide les données mises en cache afin d’éviter de mélanger deux environnements de travail.
Itinéraire vers le site
Depuis la fiche mission, toucher l’adresse lance la navigation. Android ouvre l’application GPS par défaut de l’appareil (ou son sélecteur si aucune n’est définie). Sur iPhone, iOS ne permet pas de connaître l’app par défaut : l’application propose donc les apps de navigation réellement installées — Plans, Google Maps ou Waze — et l’adresse du site n’est transmise qu’au choix du technicien.
Sans application détectée, l’itinéraire s’ouvre dans le navigateur sur Apple Plans. Le retour dans Failsafe s’effectue avec le geste ou le bouton retour du téléphone : la fiche mission reste ouverte en arrière-plan.
Statut de service et pause
La pilule en haut de Journée affiche le statut de service en permanence — Non démarré, En service ou En pause — et si la position est partagée avec le bureau. Un appui ouvre les commandes : Commencer ma journée, Prendre une pause, Reprendre, Terminer ma journée.
La pause et la fin de journée arrêtent immédiatement le partage de position ; la reprise exige toujours une action explicite du technicien, jamais de réactivation automatique ou à distance. Chaque changement est consigné et visible par le bureau.
Démarrage, suspension et annulation
Depuis la fiche mission, Démarrer l’intervention passe le bon de travail en cours d’exécution ; le serveur revérifie l’affectation et le statut à chaque action. En cours d’intervention, Suspendre consigne un motif et une suite prévue dans l’historique du bon — sans le clôturer — et Reprendre lève la suspension.
Un intervenant ne peut mener qu'une seule intervention à la fois. Démarrer ou reprendre une mission alors qu'une autre est réellement en cours est refusé : l'application indique le bon bloquant et invite à le terminer ou à le suspendre d'abord — la suspension avec motif (attente de pièce, client absent, etc.) est le seul contournement, et elle reste tracée.
Si le bureau annule l’intervention, la fiche affiche une alerte bloquante : aucune action d’exécution n’est plus proposée et les données déjà saisies sont conservées côté serveur.
Rapport d'intervention
Pendant l'exécution, Rédiger le rapport sur la fiche mission ouvre la saisie, avec les mêmes champs et les mêmes étapes que l'écran d'exécution du bureau et du portail technicien : un bloc par équipement (Diagnostic, Travaux réalisés, État final parmi six choix, observations, mesures, actions de suivi si l'état est non conforme, puis Équipement validé). Les étapes suivantes — temps, pièces, photos, signatures et clôture — sont des lignes distinctes de la fiche, dans le même ordre que sur le bureau. Le serveur refuse un envoi incomplet.
Enregistrer le brouillon conserve le rapport sur le serveur sans le clore ; il peut être repris et complété tant que l'intervention est en cours. Finaliser ma saisie demande au serveur de vérifier les champs obligatoires puis marque la fin de la saisie terrain — le rapport reste un brouillon consultable par le bureau, qui seul peut le publier. Une fois publié, le rapport est verrouillé et s'affiche en lecture seule.
État de disponibilité
Le parcours terrain est fourni par l’application web. Les checklists, pièces, photos, signatures et notifications doivent être validées dans le navigateur avec un compte technicien avant chaque livraison ; le fonctionnement hors ligne n’est pas annoncé comme disponible.
Appareils de confiance et révocation
Chaque connexion depuis l’application mobile enregistre l’appareil utilisé comme « appareil de confiance », rattaché au compte et à l’organisation active. Ce registre sert à couper l’accès en cas de téléphone perdu, volé ou remplacé : il est distinct de l’enregistrement des notifications, qui ne concerne que la réception des alertes. Chaque appareil déclare son nom, son modèle, la version de son système, la version de l’application et une référence courte d’installation — de quoi distinguer deux téléphones identiques lors d’une révocation.
Depuis l’application, l’onglet Plus ouvre l’écran Mes appareils : chaque appareil affiche son nom, sa plateforme, sa dernière activité et son statut. L’utilisateur peut y révoquer un de ses appareils après confirmation.
Côté gestion, un administrateur ouvre la fiche du technicien dans Techniciens : la carte Appareils mobiles liste les appareils du compte et propose la révocation avec motif facultatif.
La révocation prend effet immédiatement : les sessions ouvertes sur l’appareil sont fermées et l’installation concernée ne peut plus créer de nouvelle session, quelle que soit l’organisation. Chaque enregistrement et chaque révocation est tracé dans le journal d’audit.
Notifications d’affectation
Après autorisation de l’utilisateur, un téléphone réel peut être rattaché au compte et à l’organisation active. Une nouvelle affectation ouvre uniquement l’intervention indiquée par le serveur.
Le terminal est désactivé lors de la déconnexion. Un token révoqué par la plateforme de notification est également désactivé côté serveur.