[Feature] Mode hors-ligne complet — IndexedDB pour les données utilisateur #32
Labels
No labels
P0-critical
P1-high
P2-medium
P3-low
UX
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
performance
question
security
tech-debt
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
SlopVibe-org/nutri-food#32
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problème
Le Service Worker (
sw.js) cache les assets statiques, mais les données utilisateur (sélections, tracking, liste d'épicerie) ne sont pas mises en cache. Les requêtes API sontnetwork-onlypar design.Si l'utilisateur perd connexion (en magasin, dans le métro), il ne peut plus :
Solution
Étape 1 — Cache de lecture (offline read)
Utiliser IndexedDB pour stocker les dernières données fetchées :
/api/foods→ cache à vie (change rarement)/api/tracking/*→ cache synchronisé au login/api/selections/*→ cache synchronisé au loginÉtape 2 — Write en attente (offline write)
Quand offline, stocker les modifications dans IndexedDB et les synchroniser au retour de connexion via
SyncManager(Background Sync API).Étape 3 — UI indicative
Librairies suggérées
idb(2KB, wrapper propre)Sévérité
P2 — Cas d'usage réel (épicerie = lieu sans bonne connexion).