Our Shopping List : liste de courses partagée et libre
-
TL;DR; Par manque d’alternative à la solution privative de référence, j’ai initié un projet de liste de courses partagée en technos web, auto-hébergeable et utilisable facilement sur mobile : https://github.com/nanawel/our-shopping-list
L’introduction nécessaire
Nal,
J’utilise depuis déjà pas mal de de temps Bring pour gérer ma liste de courses avec ma moitié. Quoi de plus classique me direz-vous, c’est quand même la solution la plus évidente pour des utilisateurs d’Android.
Oui mais voilà, Bring c’était bien au début, quand ça faisait une chose une seule et que ça la faisait bien , mais ça c’était au début. L’application légère et efficace a depuis laissé place à un truc lourd, plutôt lent, à la synchro capricieuse, qui pousse des notifications inutiles et qui demande des permissions… surprenantes (position GPS ?).
Bref, c’est devenu une appli Android mature quoi. (troll inside ah bien tiens non pas tant que ça)
Puis un jour de colère - et de motivation - j’ai décidé de chercher un équivalent auto-hébergeable parce que bon, une liste de courses partagée, c’est un besoin tellement commun et simple qu’on doit en trouver par cagettes entières (tu l’as ?).
Ha ha. Non.
Des listes de courses oui. Libres, mobile-friendly et collaboratives, pas trouvé.
Donc je me suis dit “Oh ben tiens t’as qu’à la faire toi qui cherchais un projet support pour faire une autre techno que PHP pour changer”. Ah oui, bonne idée, puis on peut pas dire que le modèle de données soit d’une complexité affolante, on frise le hello world.
Donc, mon objectif était de créer une appli PWA, collaborative, simple et efficace pour gérer nos listes de courses.
Les technos
J’ai choisi pour ça de sortir de ma zone de confort (non sans mal) et d’opter pour un backend en NodeJS avec persistance dans du MongoDB. Pour le front j’ai jeté mon dévolu sur un socle VueJS (après avoir comparé les niveaux de hype des différentes technos similaires), auquel j’ai été finalement obligé d’ajouter Vuetify, Vuex, Vue-Router, Vuex ORM et son plugin Agios.
Et 2-3 autres trucs. Oui moi aussi j’ai été un peu choqué mais c’est comme ça, si on veut pas réinventer la roue, faut accepter d’avoir 200 Mo de dépendances.
Le résultat est désormais suffisamment stable et complet pour être utilisable en auto-hébergement, pour un usage privé seulement puisqu’une instance ne gère actuellement qu’un ensemble unique de listes, partagée par tous les utilisateurs de celle-ci (ce qui correspond bien à l’utilisation pas un foyer donc).
C’est où ?
Le dépôt Githubcrosoft est là : https://github.com/nanawel/our-shopping-list
Les quelques features suivantes sont en place, ou au moins sont initiées :
- Gestion de plusieurs listes indépendantes
- Synchro temps-réel entre les clients connectés
- Gestion des états sur les items (coché/non coché)
- Recherche/filtrage des items en cours de frappe
- Swipe pour cocher ou décocher facilement les items
- Support PWA de base (permettant quand même d’ajouter l’instance sur l’écran d’accueil pour accès facilité)
Vas-y montre
Et à quoi ça ressemble me direz-vous ? À une interface Material minimale, répondrai-je.
Mobile
Desktop
Dans ma wishlist j’ai déjà les features suivantes :
- i18n
- Gestion de comptes avec authentification (notamment pour permettre plusieurs jeux de listes, avec partages fins, etc.)
- Mode hors-ligne avec synchro différée (ce qui doit être possible avec un mode PWA complet)
mais pour le moment je dois encore me remettre mentalement de tant de JS (haha).
Pour installer le bouzin, vous avez un docker-compose.yml proposé et il vous suffira ensuite d’ouvrir le port 8080 ou de déclarer le container dans votre reverse-proxy préféré. Attention, comme cela utilise des WebSockets, il faut prévoir une petite configuration supplémentaire (voir README).
Bien entendu, les idées et (surtout) les contributions sont les bienvenues pour améliorer cette base.
Liens
- Le projet sur Github : https://github.com/nanawel/our-shopping-list
- L’image sur Docker Hub : https://hub.docker.com/r/nanawel/our-shopping-list
Télécharger ce contenu au format EPUB
Commentaires : voir le flux Atom ouvrir dans le navigateur
https://linuxfr.org/users/nanawel/journaux/our-shopping-list-liste-de-courses-partagee-et-libre
Sauf mention contraire, le site est placé sous double licence Creative Commons BY-SA et GNU Free Documentation License propulsé par NodeBB