Turni: il piano dei turni di lavoro che si compila da solo, rispettando riposi, pause e contratti

App per i turni di lavoro di una piccola attività, con la demo di un bar inventato: il titolare scrive chi c'è e quanta gente serve, Turni prepara la settimana rispettando riposi, pause e contratti e spiega in italiano quello che non riesce a coprire. I dipendenti vedono i turni sul telefono e chiedono ferie e scambi. Il calcolo gira nel browser. Si prova senza account.

**Turni** è un'app per i turni di lavoro di una piccola attività (un bar, una farmacia, un negozio, una RSA), e qui la si prova su **un bar che non esiste**: il Caffè Clessidra, con quindici persone inventate. Il titolare scrive chi lavora e quante persone servono, mezz'ora per mezz'ora; Turni propone la settimana, il titolare la sistema e la pubblica, e i dipendenti la vedono sul telefono.

**Che cosa fa**

- **La settimana generata**: prima copre tutto quello che si può senza rompere una regola, poi divide con equità fine settimana e chiusure, segue le preferenze e tiene gli orari regolari. - **Le regole del lavoro**: le 11 ore di riposo fra due turni, il riposo settimanale, la pausa oltre le 6 ore, la media delle 48 ore, le fasce dei part-time, ognuna con il suo articolo (D.Lgs. 66/2003 e 81/2015); quello che cambia da un contratto collettivo all'altro sta in un profilo. A mano si corregge trascinando, e mentre si trascina l'app dice che cosa si romperebbe. - **Le spiegazioni**: martedì sera in cucina manca una persona, e Turni dice perché, persona per persona: «Nessuno può coprirla: Simone è in permesso dalle 14; Luca è in ferie; Sara non è disponibile il martedì sera; Paolo ha il riposo fisso il martedì…». Che non si può coprire senza rompere una regola, Turni lo scrive solo quando il risolutore l'ha dimostrato. - **L'app dei dipendenti**: una PWA con i propri turni anche senza rete, le richieste di ferie e gli scambi con i colleghi, le notifiche e il calendario del telefono, collegato con un indirizzo segreto che si può revocare. Si entra con un invito, senza email e senza password.

**La prova senza account**: dalla presentazione si entra nel pannello come titolare, o nell'app come una dipendente. Il server manda una copia dei dati inventati, la sua logica gira nel browser e le modifiche restano lì: non le vede nessun altro.

**La parte difficile** è il calcolo. HiGHS, il risolutore di ottimizzazione, mentre lavora occupa più di 100 MB, e sul mio server Turni ne ha 150 in tutto: per questo è compilato in WebAssembly e gira nel browser di chi genera la settimana, in un Web Worker. Sul mio PC dimostra in meno di due secondi che il buco di martedì sera non si può chiudere.

Vue 3 e TypeScript, Fastify e MongoDB; ogni modifica passa da 368 prove automatiche e arriva sul server con una GitHub Action.

Progettazione, sviluppo full-stack e pubblicazione · 2026

Vue.js, Fastify, MongoDB, HiGHS, WebAssembly

Vedi il sito

Andrea Coppetta