AlbertaOS
.txt
LEGGIMI
.pdf
CV.pdf
Magazzino.app

Magazzino in produzione · Polidoro Group

Inventario per un'azienda di abbigliamento. Polidoro Group non voleva più sbagliare le giacenze, e voleva vedere a colpo d'occhio cosa era disponibile e cosa andava riordinato. Da qui la richiesta: un sistema veloce, sempre a disposizione in magazzino e semplice da usare, che tenesse traccia delle operazioni. Il tracciamento c'era fin dalla prima richiesta, ed è il dettaglio che dice qual era il problema vero: serviva sapere chi aveva mosso cosa, e quando.

Ho tenuto solo quello che serviva e ho lasciato fuori tutto il resto. Niente prezzi e niente foto degli articoli, perché è un magazzino di giacenze e non di vendita. Niente cloud, perché il magazzino è un capannone con una rete locale. Nessun hardware da comprare: gli operatori usano i telefoni che hanno già in tasca, e la stampante laser c'era già. Ogni cosa lasciata fuori è una cosa in meno da configurare e da spiegare a chi lavora in magazzino.

rivisitazione · scansiona l'etichetta per movimentare la giacenza
CD0881-GIBL-3XL
felpa · giallo/blu · 3XL
giacenza: 12 pz · scaffale B-04

Il giro di un capo

Quando arriva la merce l'articolo si crea da desktop: marchio, codice originale, modello, colore, taglia, giacenza iniziale, soglia minima e posizione a scaffale. Il codice interno invece non si scrive, lo genera il sistema mettendo insieme codice originale, colore e taglia, e viene fuori CD0881-GIBL-3XL. Un magazziniere che digita a mano una stringa così prima o poi sbaglia, quindi non deve digitarla nessuno.

Le etichette si accumulano in una coda di stampa che vive nel database, non nella sessione del browser: chiudendo l'app la coda resta, e non si svuota da sola dopo il download, così se un foglio esce storto si ristampa senza rifare il lavoro. Il PDF viene generato con 24 etichette per foglio A4, da 70 per 37 millimetri. Ogni etichetta ha il suo QR, quattro righe di testo e una banda colorata che replica il colore del capo, per riconoscerlo senza leggere.

Il QR non contiene il codice interno, ma un indirizzo con un identificativo stabile dell'articolo. Se domani quel codice cambia, le etichette già stampate e attaccate continuano a funzionare.

Poi l'operatore apre la fotocamera del telefono, inquadra il QR, tocca il banner che compare e si ritrova sulla scheda dell'articolo: più uno, meno uno, oppure una quantità con una nota. Cinque o sei secondi in tutto.

Lo scanner che ho tolto

Uno scanner QR dentro l'app l'avevo sviluppato, e poi l'ho rimosso. Per usare la fotocamera dentro il browser serve HTTPS, e su una rete locale questo significa certificati da installare a mano sul telefono di ogni operatore, oppure un dominio dedicato, oppure mettere le mani nel DNS del cliente. Ho valutato tutte e tre le strade e le ho scartate: troppo lavoro di partenza per una funzione che per giunta era più lenta, dieci o quindici secondi contro cinque. La fotocamera del telefono non ha niente da configurare. Il codice dello scanner e i suoi test li ho cancellati, non lasciati lì spenti.

Quando due operatori toccano lo stesso articolo

Ogni movimento è un delta, mai un valore assoluto: nessuno scrive che adesso ce ne sono nove, si scrive meno uno. Due operatori che scaricano un pezzo a testa producono due movimenti distinti, tutti e due nel registro, con chi, quando, da quale dispositivo, e la giacenza risultante fotografata in quel momento. Ogni movimento è anche una transazione sola: o si aggiornano insieme la giacenza e il registro, o non si muove niente. La giacenza non può scendere sotto zero, e uno scarico più grande della giacenza viene rifiutato con un messaggio in italiano invece che con un numero negativo.

Il database è in modalità WAL, quindi chi legge non blocca chi scrive: mentre un operatore registra un movimento, la dashboard del titolare e gli altri telefoni continuano a leggere. L'evento in tempo reale parte dopo che la scrittura è confermata, così nessun dispositivo vede comparire un movimento che poi non esiste.

Dove gira e chi lo usa

Due ruoli. Il titolare lavora dal PC dell'ufficio, che è anche il server: apre l'app con un doppio click e vede una finestra senza barra degli indirizzi, quindi non incontra mai un indirizzo tecnico. Da lì fa tutto, articoli, colori, stampa delle etichette, utenti, dashboard. Gli operatori entrano solo dal telefono con nome utente e PIN numerico, sessione da trenta giorni, e possono fare una cosa sola: aprire la scheda di un articolo e cambiarne la giacenza.

Tutto resta sulla rete aziendale: niente esposizione su internet, niente VPN, niente cloud. Il sistema risponde quando il PC dell'ufficio è acceso, cioè negli orari in cui in azienda si lavora, ed è una scelta dichiarata al cliente prima di partire, non un limite scoperto dopo. L'installazione su quel PC richiede tre o quattro minuti da una chiavetta, con uno script ripetibile, e ogni sera alle 19:00 parte un backup automatico che tiene trenta giorni di copie.

Primo commit il 29 aprile 2026, in produzione l'8 giugno. Da allora non è rimasto fermo: è arrivata la correzione in blocco di un codice originale sbagliato, con la rigenerazione a cascata dei codici interni, e le ottimizzazioni sugli aggiornamenti in tempo reale.

502test automatici
<1ssync tra dispositivi
24etichette per foglio A4
python 3.11fastapihtmxsqlitereportlabpwa