Strumenti di digitalizzazione desktop e web

Strumenti di digitalizzazione desktop e web

Applicazioni desktop e web per chi digitalizza fondi di biblioteca e archivio.

Il problema

Un ente che digitalizza fondi di biblioteca e archivio lavora con file pesanti, scansioni TIFF e DNG, e con metadati da compilare e validare. Fare tutto a mano, un file alla volta, rallenta il lavoro e lascia spazio a errori.

Servivano strumenti che l'operatore potesse usare sul proprio computer, anche con file molto grandi.

Immagine di repertorio per il progetto «Strumenti di digitalizzazione desktop e web»: non mostra il progetto.

Cosa ho costruito

  1. 01

    Editor e validatore di metadati MAG

    Si compilano i metadati e l'applicazione controlla che rispettino lo standard.

  2. 02

    Ritaglio e raddrizzamento

    Uno strumento che ritaglia e raddrizza le scansioni TIFF e DNG, con elaborazione delle immagini.

  3. 03

    Guscio desktop con Tauri

    Un'applicazione desktop con guscio Tauri (Rust) e interfaccia Vue. Il guscio avvia in locale un backend FastAPI e lo tiene sotto controllo.

  4. 04

    Utility Electron

    Un'utility Electron per elaborare le immagini sul computer.

  5. 05

    L'operatore rivede tutto

    Ogni risultato automatico passa dall'occhio di una persona prima di essere accettato.

L'applicazione desktop e il server centrale

L'editor MAG e gli altri moduli girano sul computer dell'operatore, dentro un'applicazione Tauri. Un server centrale, che chiamo hub, tiene le licenze e le versioni, distribuisce gli aggiornamenti e raccoglie i resoconti di ciò che succede nelle installazioni. Gli archivi di lavoro restano sul computer dell'operatore.

Come è fatta

  1. 01

    Applicazione desktop

    Il guscio Tauri, scritto in Rust, apre la finestra con l'interfaccia Vue e avvia in locale il backend Python (FastAPI, impacchettato con PyInstaller). Ogni modulo ha la sua interfaccia e il suo backend.

  2. 02

    Hub centrale

    Un'applicazione FastAPI in Docker, dietro nginx, con un pannello di amministrazione in Vue. Gestisce utenti, licenze, moduli e versioni.

  3. 03

    Licenze

    La licenza è un token firmato con RS256. L'applicazione lo verifica con la sola chiave pubblica, quindi anche senza rete, e la licenza decide quali moduli l'utente vede.

  4. 04

    Moduli e versioni

    I moduli si scaricano dall'hub e hanno versioni indipendenti: si può correggere un modulo senza rilasciare di nuovo tutta l'applicazione. L'hub importa le nuove versioni dai rilasci su GitHub.

  5. 05

    Aggiornamenti

    L'applicazione chiede all'hub un manifesto firmato e ne controlla la firma con la chiave pubblica incorporata. Poi scarica l'installer, lo esegue e si riavvia. Manifesto e file sono accessibili solo con una licenza valida.

Cosa l'hub vede dal campo

  1. 01

    Eventi di lavoro

    Ogni installazione invia all'hub, a intervalli regolari, gli eventi del lavoro svolto. Nel pannello, l'amministratore li filtra per utente, per tipo e per periodo e li vede su una linea del tempo giornaliera.

  2. 02

    Errori e arresti anomali

    Quando il programma si chiude male, all'avvio successivo segnala l'arresto precedente: un panic del guscio Rust o una chiusura non pulita, oppure la morte del backend. Gli errori dell'interfaccia e quelli del backend portano lo stesso identificativo di esecuzione, così sono lo stesso incidente.

  3. 03

    Segnalazioni dell'operatore

    L'operatore può scrivere cosa non va, con una schermata allegata, e lasciare una valutazione da una a cinque stelle. L'amministratore chiude le segnalazioni dal pannello. Le segnalazioni non vengono cancellate dalla pulizia periodica.

  4. 04

    Registri completi

    Se serve, l'applicazione carica sull'hub i propri file di log in un archivio compresso, che l'amministratore può scaricare.

  5. 05

    Osservazione dal vivo

    Uno sviluppatore autorizzato può chiedere di vedere in diretta la finestra di un operatore, ma solo quella finestra e solo per un tempo limitato. La funzione è disattivata se il server non la abilita esplicitamente.

  • Il mio ruolo

    Sviluppatore in ETT. Ho lavorato su interfaccia, backend ed elaborazione delle immagini, nell'ambito di Scripta, la linea di ETT per la digitalizzazione. Il cliente non è nominato.

  • Tecnologie

    Python · FastAPI · Vue 3 · Tauri (Rust) · Electron · OpenCV · Docker · nginx

Qui ho imparato Tauri ed Electron e quando conviene usare l'uno o l'altro. Con file pesanti il lavoro principale è non bloccare l'interfaccia e dare all'operatore un'anteprima affidabile di ciò che sta per accettare.

Cosa ho imparato

Un fondo da digitalizzare

Dimmi che materiale hai e con quali strumenti lavori oggi.

Scrivimi

Foto di repertorio: scansione di un libro, Skot, licenza CC BY-SA 4.0 (Wikimedia Commons). Non mostra il progetto.