Le problème à résoudre
Beaucoup de petits commerces n'ont pas une connexion internet fiable en permanence — et un logiciel de caisse qui s'arrête de fonctionner parce que le wifi coupe, ce n'est pas acceptable un jour de rush. L'objectif de départ était simple à énoncer et plus exigeant à tenir : caisse, stock, achats, clients et rapports doivent marcher entièrement hors ligne, sur un PC unique, tout en restant capables de s'étendre à plusieurs postes en réseau local sans réécrire l'architecture.
Les choix d'architecture
Le logiciel est une application Electron qui embarque son propre serveur Node.js/Express et une base SQLite locale. Ce choix vient directement de la contrainte hors-ligne : Electron permet de livrer un installateur Windows autonome sans dépendance à installer côté client, et SQLite évite d'avoir un serveur de base de données à faire tourner en plus. Le PC qui héberge l'application devient de fait un petit serveur local : les autres postes du magasin s'y connectent simplement via un navigateur, sur le réseau local, sans configuration réseau compliquée à faire pour le client.
Chaque licence est verrouillée à la machine sur laquelle elle est activée, pour éviter qu'une seule licence vendue ne circule sur plusieurs commerces différents.
Une démo publique, sans toucher aux vraies données
Pour qu'un client potentiel puisse tester l'interface sans risque, la démo visible sur ce portfolio n'est pas une capture d'écran ni une maquette : c'est la vraie application, mais lancée sur une instance isolée avec ses propres données d'exemple. Un visiteur peut cliquer partout, ajouter des produits, faire une vente test — rien de tout ça ne touche jamais les données réelles d'un commerce. Comme l'application n'est pas conçue pour être en lecture seule, cette instance de démo se réinitialise automatiquement toutes les quelques heures pour rester propre pour le prochain visiteur.
Ce que je referais différemment
Livrer un logiciel qui tourne bien hors ligne est une chose ; le déployer et le maintenir à distance en est une autre. Le mode multi-poste en réseau local répond bien au besoin d'un seul magasin, mais un client avec plusieurs points de vente distants demanderait une synchronisation entre sites — quelque chose que je conçois maintenant dès le départ plutôt que d'ajouter après coup, même quand le premier client n'en a pas besoin.
Un besoin similaire ?
Ce logiciel peut être adapté à d'autres types de commerce, ou vous pouvez me parler d'un projet différent avec des contraintes proches (hors-ligne, multi-poste, licence par machine).
Voir le projet et la démo