Aller au contenu
Emblème du Collectif des Travailleurs du Feu de Camp

Présenté par Le Collectif des Travailleurs du Feu de Camp

Logo du SentierLe Sentier
EN

Le Sentier, côté technique

Comment on se connecte, comment les données entrent, et ce qui ressort.

Se connecter

L'app est native, pas une page web

Le Sentier tourne sur Android et sur ordinateur (Tauri). Il n'y a pas de version navigateur : chaque appel de données passe par la couche native, qui détient le certificat client. On ne se connecte donc pas depuis un site — on installe l'app.

S'inscrire — sur invitation pendant le pilote

Le pilote est fermé : c'est nous qui ouvrons les comptes. Une fois invité, voici le parcours dans l'app.

  1. Vous entrez votre courriel.
  2. Un code à six chiffres vous arrive. Il vit dix minutes.
  3. Vous remplissez le formulaire : identifiant, mot de passe, compagnie, zone, province, langue.
  4. L'app attend que votre compte soit monté, puis vous entrez.

Se connecter ensuite

L'écran de connexion de l'app
Se connecter

Identifiant et mot de passe. Le mot de passe n'est pas rangé chez nous dans une table d'utilisateurs : c'est HashiCorp Vault qui le détient et qui le vérifie. Nous n'en gardons ni copie ni empreinte.

Quatre couches

CoucheCe qu'elle prouve
mTLSque l'appareil qui parle est bien l'app
Vaultque la personne connaît son mot de passe
Redisque la session est encore ouverte
OPAque ce rôle a le droit de faire cet appel-là
Faire entrer ses données

Trois portes d'entrée

Votre caisse, branchée

Pour Clover, vous autorisez la connexion une fois dans votre navigateur, et le serveur va chercher vos ventes toutes les 45 secondes. Une connexion par zone. L'inventaire ne bouge qu'au paiement de la commande.

Square, Toast et Lightspeed sont à la feuille de route. Le vocabulaire interne est déjà indépendant du fournisseur.

Votre caisse, par fichier

Si votre caisse ne se branche pas, la connexion « Fichier » fait le même travail : aucun jeton, aucune autorisation, vous déposez un CSV ou un Excel. Réimporter le même fichier ne compte rien deux fois.

Première ligne : les noms de colonnes. Obligatoires : date, item, quantite, montant. Facultatives : commande, nom, prix_unitaire, paiement, devise. La date s'écrit AAAA-MM-JJ, l'heure est optionnelle. Les rangées d'une même commande se regroupent.

commande;date;item;nom;quantite;prix_unitaire;montant;paiement C1;2026-09-01;TARTE;Tarte aux pommes;2;12,50;25,00;carte

Vos reçus, en photo

Vous photographiez le reçu. Il est lu, et une ligne vous est proposée par article reconnu — que vous corrigez. Ensuite, deux gestes : appliquer le reçu (les quantités entrent en stock et les tâches d'achat se ferment), ou le rattacher à un achat déjà scellé, ce qui corrige les estimations, la valeur du stock et le coût des lots.

Faire sortir ses données

Ce qui ressort, et ce qui ne ressort pas

  • Vers votre caisse — votre catalogue et vos prix, sur geste explicite. Rien ne part tout seul.
  • En PDF — vos soumissions et vos factures. La facture est scellée au moment de l'envoi : son numéro et son contenu ne bougent plus.

Ce qui n'existe pas encore, et autant le dire : il n'y a pas d'export CSV ou Excel général de vos données. L'export est ciblé. Si vous en avez besoin, dites-le-nous — c'est le genre de chose qu'on ajoute.

Sous le capot

Pour les curieux

Tout est écrit en Rust, du navigateur au serveur : Leptos et Tauri côté client, actix-web côté serveur. Les données vivent dans un triplestore RDF (Apache Jena) séparé en deux graphes — les identités d'un côté, les données d'affaires de l'autre — et les quantités et l'argent dans TigerBeetle.

Chaque geste devient un événement, écrit une seule fois, par un seul écrivain, avec un identifiant qui rend le rejeu inoffensif. Une coupure de courant en plein milieu ne laisse pas de moitié de transaction.

Le parti pris le plus inhabituel : l'ontologie OWL est la source de vérité, et le code Rust en est une projection. Le vocabulaire du métier est décrit une fois, formellement, et le reste en découle.