Skip to main content

Mode hors-ligne

Stockaj Kiosk est conçu pour fonctionner même en l'absence de connexion réseau. Les opérations d'écriture (emprunts et retours) sont automatiquement mises en file d'attente et synchronisées dès que la connexion est rétablie.

Comment ça marche

Enregistrement local

Lorsqu'une opération échoue (erreur réseau, timeout serveur, etc.), elle est automatiquement enregistrée dans une base SQLite locale sur la machine. L'utilisateur voit l'écran de confirmation comme si l'opération avait réussi — aucune action supplémentaire n'est requise.

Synchronisation automatique

Le kiosk vérifie l'état de la file d'attente toutes les 5 secondes. Quand la connexion est rétablie :

  1. Les opérations en attente sont envoyées une par une, de la plus ancienne à la plus récente
  2. Chaque opération réussie est supprimée de la file
  3. En cas d'échec, l'opération est réessayée plus tard

Politique de retry

Chaque opération en file d'attente dispose de 3 tentatives maximum :

TentativeRésultat
1ère à 3èmeRéessayée lors du prochain cycle de synchronisation
Après 3 échecsMarquée comme échouée (ne sera plus réessayée automatiquement)

Indicateur de connexion

L'indicateur de connexion est affiché en permanence en bas à gauche de l'écran, sur toutes les pages (cockpit, configuration, mode kiosk).

IndicateurSignification
🟢 En ligneConnexion active, aucune opération en attente
🟡 N opération(s) en attenteConnexion active, mais des opérations sont en cours de synchronisation
🔴 Hors ligneAucune connexion au serveur
Screenshots à ajouter

En ligne

screenshot-status-online.png — Pastille verte « En ligne »

Opérations en attente

screenshot-status-pending.png — Pastille jaune avec opérations en attente

Hors ligne

screenshot-status-offline.png — Pastille rouge « Hors ligne »

Heartbeat

Le kiosk envoie un ping au serveur toutes les 30 secondes pour vérifier la connectivité. Ce mécanisme permet de détecter rapidement les coupures réseau et les reconnexions.

Limitations connues

caution
  • Les recherches (bénévoles, articles) nécessitent une connexion active — elles ne sont pas mises en cache
  • Les scans de QR codes nécessitent une connexion pour identifier l'article
  • Seules les opérations d'écriture (créer un emprunt, valider un retour) sont mises en file d'attente

Données stockées localement

La file d'attente hors-ligne stocke les informations suivantes pour chaque opération :

DonnéeDescription
URLEndpoint API cible
MéthodePOST (emprunt) ou PATCH (retour)
DonnéesCorps de la requête (identifiants, quantités, notes)
HorodatageDate et heure de l'opération
Compteur de tentativesNombre de tentatives déjà effectuées
Statutpending, retrying, ou failed

Ces données sont stockées dans un fichier SQLite local (offline_queue.db) et sont supprimées après synchronisation réussie.