Doolta
FR · EN Nous écrire

Doolta

Moontill

Voir le site →

D'une architecture technique à un logiciel métier réellement exploité : caisse PWA offline-first, du code jusqu'au commerce qui l'utilise chaque jour.

Moontill

Détails du projet

  • Problème réelUn commerce indépendant a besoin d’une caisse fiable sur tablette Android, adaptée à son propre flux de vente (recherche produit, panier, encaissement, décrément du stock, ticket imprimé), pas d’une caisse générique surchargée de fonctions inutiles.
  • ContraintesFonctionner en mode déconnecté, sans application native ni framework SPA : tampon de mutations en attente, service worker, synchronisation en arrière-plan. Rester lisible et utilisable debout, au comptoir, sur un catalogue de plusieurs centaines de produits et de nombreuses ventes par jour.
  • Choix structurantsBinaire Go auto-suffisant unique : migrations, assets statiques et templates embarqués, aucun ORM (SQL brut). Rendu côté serveur avec le standard de la bibliothèque, sans étape de build front. Chaque écriture client passe par un registre de mutations versionnées, un gestionnaire par type et version de mutation, exécuté dans sa propre transaction, ce qui rend la synchronisation hors-ligne rejouable et sûre.
  • Preuve aujourd'huiEn production réelle, derrière un reverse-proxy, avec déploiement et retour arrière outillés, sauvegarde et restauration documentées, et runbook opérateur. Utilisé au quotidien par un commerce indépendant pour ses ventes réelles, pas comme démonstrateur.
  • Offre associéeConception et réalisation d’un logiciel métier robuste, du problème au déploiement. S’appuie sur l’offre Architecture Go / Cloud-Native.

Sortir de l’outil pour développeurs

La plupart des projets personnels s’arrêtent au prototype. Moontill va jusqu’au bout : authentification, stockage, synchronisation hors-ligne, interface utilisateur, déploiement et exploitation réelle, pour un commerce qui l’utilise chaque jour pour encaisser ses ventes.

Offline-first sans complexité inutile

Pas d’application native, pas de framework JavaScript côté client : un service worker, un tampon de mutations en attente et une synchronisation en arrière-plan suffisent à rendre la caisse utilisable sans connexion, puis à réconcilier proprement les ventes une fois la connexion revenue. Chaque écriture cliente est versionnée et rejouée dans sa propre transaction, ce qui rend la synchronisation prévisible même en cas de coupure au milieu d’une vente.

Un seul binaire, du poste de développement à la production

Migrations, assets et templates sont embarqués dans le binaire. Le déploiement se fait par une commande unique vers un environnement de production réel, avec retour arrière possible, sauvegarde régulière et documentation opérateur pour la personne qui exploite la caisse au quotidien.

Ce projet démontre une capacité que les audits et les diagnostics seuls ne montrent pas : vivre concrètement les arbitrages d’une mise en production, de l’authentification au support, pas seulement les recommander.