Turni : le planning des équipes qui se remplit tout seul, dans le respect des repos, des pauses et des contrats

Appli de planning des équipes pour petites entreprises, avec la démo d'un bar fictif : le gérant indique qui est là et combien de personnes il faut, Turni prépare la semaine en respectant repos, pauses et contrats, et explique ce qu'il ne peut pas couvrir. Les salariés voient leurs services sur leur téléphone et demandent congés et échanges. Le calcul tourne dans le navigateur. Essai sans compte.

**Turni** (« services », « roulements » en italien) est une appli de planning des équipes pour une petite entreprise (un bar, une pharmacie, un magasin, un Ehpad), et ici on l'essaie sur **un bar qui n'existe pas** : le Caffè Clessidra, avec quinze salariés fictifs. Le gérant indique qui travaille et combien de personnes il faut, demi-heure par demi-heure ; Turni propose la semaine, le gérant l'ajuste et la publie, et les salariés la voient sur leur téléphone.

**Ce qu'elle fait**

- **La semaine générée** : d'abord elle couvre tout ce qui peut l'être sans enfreindre de règle, puis elle répartit équitablement week-ends et fermetures, suit les préférences et garde des horaires réguliers. - **Les règles du travail** : les 11 heures de repos entre deux services, le repos hebdomadaire, la pause au-delà de 6 heures, la moyenne de 48 heures, les plages des temps partiels, chacune avec son article (décrets législatifs italiens 66/2003 et 81/2015) ; ce qui change d'une convention collective à l'autre se trouve dans un profil. À la main, on corrige en faisant glisser, et pendant le glissement l'appli dit ce qui serait enfreint. - **Les explications** : mardi soir, il manque une personne en cuisine, et Turni dit pourquoi, personne par personne, en italien : « Nessuno può coprirla: Simone è in permesso dalle 14; Luca è in ferie; Sara non è disponibile il martedì sera; Paolo ha il riposo fisso il martedì… » (personne ne peut le couvrir : Simone est absent à partir de 14 h, Luca est en congé, Sara n'est pas disponible le mardi soir, Paolo a son repos fixe le mardi…). Turni ne dit qu'on ne peut le couvrir sans enfreindre une règle que lorsque le solveur l'a démontré. - **L'appli des salariés** : une PWA avec ses propres services, même hors connexion, les demandes de congés et les échanges avec les collègues, les notifications et l'agenda du téléphone, relié par une adresse secrète et révocable. On y entre avec une invitation, sans e-mail ni mot de passe.

**L'essai sans compte** : depuis la page de présentation, on entre dans le tableau de bord comme gérant, ou dans l'appli comme salariée. Le serveur envoie une copie des données fictives, sa logique tourne dans le navigateur et les modifications y restent : personne d'autre ne les voit.

**Le plus difficile**, c'est le calcul. HiGHS, le solveur d'optimisation, occupe plus de 100 Mo pendant qu'il travaille, et sur mon serveur Turni en a 150 en tout : il est donc compilé en WebAssembly et tourne dans le navigateur de celui qui génère la semaine, dans un Web Worker. Sur mon PC, il démontre en moins de deux secondes que le trou du mardi soir ne peut pas être comblé.

Vue 3 et TypeScript, Fastify et MongoDB ; chaque modification passe par 368 tests automatiques et arrive sur le serveur par une GitHub Action.

Conception, développement full-stack et mise en ligne · 2026

Vue.js, Fastify, MongoDB, HiGHS, WebAssembly

Voir le site

Andrea Coppetta