Transformer le studio en pad collaboratif
🕹️ À tester ici : https://deploy-preview-276--publicodes-website.netlify.app/studio
- [x] 1er partage temps réel du code via P2P
- [x] affichage des utilisateurs connectés
- [x] mise en ligne d'une base de données via un serveur scalingo + BDD mongo (pour le stocker indéfiniment; le P2P est souvent bloqué)
- [ ] plein de tests et améliorations d'UI à faire
- [ ] par exemple, changer le nom de la salle -> nouveau doc où l'on copie le contenu de l'ancien
- [ ] expérience de dev : stabilité de la vue présentation pendant la rédaction.
- [ ] améliorations à faire sur un vrai cas d'usage
- [x] avoir des réponses sur la question de la sécurité / fiabilité de la base de données / disclaimer sur ce qui y est stocké
- [ ] Actuellement utilise laem/publicodes-live-server, mettre ça chez betagouv ?
- [x] ajouter une couche yjs-indexeddb pour stocker les modifs en local en attendant une connexion ?
- [ ] c'est fait, mais à tester en réel
- [ ] quid de la rétrocompatibilité avec les anciennes URLs ? En cas de pb de base de données, c'est un fallback toujours intéressant ?
Pour ce faire, je reprends les ingrédients de nosgestesclimat.fr/groupe : yjs, mongo.
bonus
- [ ] exposition d'un JSON de publicodes sur une url style /json/[monjson], pour utilisation style API
Je crois qu'il suffit d'ajouter une route /get, via l'ajout d'express par exemple, d'accéder à la BDD et d'envoyer le fichier en JSON à une URL autre, style /data/xxx
- [ ] pouvoir montrer la vue édition, la vue présentation, ou les deux, à coder dans un searchParam
- [ ] meta données de partage ? Donner un titre, une image, injectés en og:, pour faire vivre la page comme une vraie page Web partageable joliment
une base de données via un serveur scalingo + BDD mongo
Le besoin ici c'est bien un stockage clé/valeur ? Peut-être plus simple à déployer et maintenir via cloudflare kv ?
Le besoin ici c'est bien un stockage clé/valeur ? Peut-être plus simple à déployer et maintenir via cloudflare kv ?
Bonne suggestion ! L'avantage de scalingo est d'être en France :) On a déjà testé le déploiement de base mongo, c'est très simple également. Mais j'investigerai cloudflare kv.
MAJ sur l'avancement de cette PR : j'ai pas trop le temps en ce moment, mais j'y compte bien :)
:up: j'avance sur ma PR pour un pad publicodes, https://github.com/betagouv/publicodes/pull/276 Ça marchotte, mais je me trouve assez limité par l'environnement Docausorus... Par exemple, j'ai besoin de définir des classes CSS dynamiques (pour colorer les curseurs), et plus généralement je retrouve pas la liberté d'itération de styled-components. Ou d'intégrer un gestionnaire de query params.
Du coup je pense partir sur une app React distincte de publicodes/website :)
Comme prévu, j'ai repris le dev ici https://publicodes.vercel.app
C'est une expérimentation avec Next-13.
Ce framework n'est pas trivial, mais je le trouve très intéressant pour autant.
https://github.com/laem/publicodes-live-studio
À réintégrer ici peut-être quand ce sera mûr.
Je ferme, et continue le développement de la v2 ici https://github.com/laem/publicodes-live-studio/issues/2 :)
MAJ sur ce sujet : je n'ai pas actuellement de projet qui justifie l'investissement de temps de mon côté dans cette fonctionnalité. Toujours partant pour la faire avancer, je continue de penser que ça pourrait être un super usage, mais il faut le justifier dans le budget d'un produit.