Agenda · Architecture
Un agenda qui continue de marcher quand le réseau lâche.
Une application web installable qui garde une copie locale de vos tâches et rejoue les changements au retour du réseau. Elle partage le compte et la base de Carnet sans toucher à ses tables.
- React · TypeScript
- PWA
- Hors ligne
- Supabase
- Postgres + règles par ligne
- Netlify
Le schéma
-
01 — Client
Application web installable
Elle tourne sur téléphone ou sur ordinateur et continue de marcher sans réseau. Chaque changement est appliqué à l'écran puis écrit sur l'appareil. Une file d'attente le renvoie dans l'ordre au retour du réseau.
Dialogue avec le backend (04) grâce à un jeton à 2 facteurs.
-
02 — Code
GitHub
Un dépôt privé séparé de celui de Carnet. Chaque envoi lance les tests et les vérifications de sécurité.
Prépare la mise en ligne sur Netlify (03).
-
03 — Hébergement
Netlify
Un second site publié seulement sur demande. Les en-têtes de sécurité limitent les connexions au seul projet Supabase de Carnet.
Sert les pages à l'application (01).
-
04 — Backend · Supabase de Carnet
Compte partagé et tâches
Agenda utilise le même projet Supabase que Carnet. Le compte et le code à 2 facteurs sont les mêmes. Une liste blanche décide qui a accès. Les tâches, les sous-tâches et les réglages vivent dans des tables ajoutées sans toucher à celles de Carnet. Les migrations sont écrites dans le dépôt de Carnet.
Reçoit les changements de l'application (01) et sert la même base que Carnet (05).
-
05 — Application voisine
Carnet
Carnet partage le projet Supabase, les comptes et les règles d'accès. Son dépôt et son site restent distincts.
Utilise le même backend (04).
-
06 — Prévu
Pas encore en ligne
La lecture des échéances de Carnet, l'import d'invitations .ics, les notifications push ainsi que les récurrences et habitudes ne sont pas encore livrés. Les montants de Carnet ne seront jamais gardés sur l'appareil.
Viendrait lire les échéances de Carnet (05) sans les écrire sur l'appareil.
Version actuelle d'Agenda en production. Les éléments en pointillés ne sont pas encore livrés.
01
Hors ligne par conception
Chaque modification est appliquée à l'écran puis écrite sur l'appareil. Elle est ensuite envoyée dans l'ordre. L'application ne remplace jamais la liste locale par celle du serveur tant que la file n'est pas vide.
02
Un projet pour deux applications
Agenda partage le compte et la base de Carnet. Cela garde le même code à 2 facteurs et reste dans un budget de 0 €. Ses tables sont ajoutées sans modifier celles de Carnet.
03
Accès par liste blanche
Le compte doit figurer sur une liste gérée depuis le tableau de bord Supabase. Le navigateur ne peut pas s'y ajouter. Chaque personne ne voit que ses propres tâches.
04
Ce qui est prévu
Pas encore en ligne : la lecture des échéances de Carnet, l'import d'invitations .ics et les notifications. Les montants de Carnet ne seront jamais gardés sur l'appareil.