Table of Contents

CHARTA

Descrizione

Charta è un’applicazione web per la gestione di documenti digitali.

Sarà utilizzata sia da Galileo che da aziende clienti che la richiedono come servizio di archiviazione.

Deve essere utilizzata da operatori, che caricano i documenti e li taggano, e da utenti visualizzatori, che leggono e scaricano i documenti.

Il caricamento di un documento avviene tramite queste fasi:

  1. Scan
  2. Tag
  3. Control
  4. Publish

Queste fasi sono effettuate in ordine da diversi operatori in diversi momenti.

Dopo ogni fase il documento cambia stato e resta in attesa di essere gestito da un operatore nella fase successiva

1. Fase di scan

Un operatore scannerizza i vari file che compongono un documento digitale (che viene creato in questo momento), sceglie il nome del documento, il realm di appartenenza e la classe del documento.

Il realm è il dominio al quale appartiene il documento. In genere ogni azienda cliente corrisponde a un realm.

La classe del documento è la tipologia, ad esempio contratto, cedolino, fattura ecc.

2. Fase di tag

Un operatore tagga il documento, compilando dei campi predisposti che variano a seconda della classe del documento.

Se ad esempio il documento è un cedolino dell'azienda X, l'interfaccia fornirà all'operatore l'insieme di campi da compilare previsti per i cedolini dell'azienda X.

I valori che l'operatore dovrà inserire all'interno di questi campi sono informazioni già contenute all'interno dei file scansionati, e questa fase serve a renderli digitali per permettere agli utenti finali di fare ricerche filtrando sulla base del valore dei tag.

Bisogna inoltre implementare un sistema di OCR o comunque un intelligenza artificiale che assista l'operatore compilando i campi in modo automatico leggendo i file scansionati.

In questa fase l'operatore deve avere da un lato la preview del documento, con pagina scorribile, e dall'altro lato i campi dei tag dentro cui inserire i valori.

3. Fase di control

Un operatore controlla i tag di un documento e verifica se combaciano con i valori del vero documento, che l'operatore può vedere tramite una preview.

L'operatore deve poter segnalare i tag che non sono stati compilati correttamente e rimandare il documento alla fase precedente, oppure correggere personalmente i tag sbagliati e mandare il documento alla fase successiva.

4. Fase di publish

Un operatore decide di approvare la pubblicazione di un documento o di mandarla alla fase precedente.

Decide anche chi potrà visualizzare il documento una volta pubblicato.

Visualizzazione

Gli utenti possono visualizzare e scaricare i documenti all'interno di una pagina che mostra i documenti in ordine inverso di caricamento e un sistema di ricerca, in grado di filtrare i documenti per categoria (è un tag) e valore dei tag o nome del documento.

Gli utenti possono vedere solo i documenti su cui hanno accesso di lettura. Se l'utente è l'owner del documento, può sempre vederlo, altrimenti deve essere membro di un gruppo con permesso read o admin su quella categoria di documenti

Ruoli

Ogni operatore appartiene a dei gruppi. Ogni gruppo avrà dei ruoli su delle categorie di documenti di quel realm

Un operatore quindi potrebbe avere un ruolo in un realm e un ruolo diverso in un altro realm.

Ad esempio: un operatore può scannerizzare e taggare documenti per l'azienda X e può pubblicare documenti per l'azienda Y.

Analisi dei permessi e dei gruppi

PROBLEMA: Esistono due tipi di permessi

Soluzione 2

Un utente appartiene a più ACL e più GROUP


Definizione di ACL e GROUP:

La ACL fornisce ai propri membri l'accesso di lettura sui singoli documenti ad esso associati

Il GROUP fornisce ai propri membri un ruolo su tutti i documenti appartenenti ai realm e alle classi ad esso associate

Il ruolo può essere scan, tag, correct, publish, read, all (comprende tutti i precedenti ruoli)


Differenza:

Con i group, oltre ai ruoli di scan, tag, ecc, esiste il ruolo read, che può dare ad alcuni utenti speciali (non solo agli operatori interni) i permessi di lettura a tutti i documenti di un certo realm, o di una certa classe all'interno di un realm

Con le ACL, un operatore che carica un documento può scegliere i permessi di lettura che avrà il singolo documento una volta pubblicato, associandolo a delle liste che non hanno niente a che vedere con le suddivisioni operative o gli utenti speciali


Soluzione 3 (scelta)

Un utente appartiene a più GROUP


Tutti i documenti hanno una categoria più una chiamata “default” su cui un gruppo può avere dei permessi

Al momento il ruolo admin è riferito solo alla categoria default, che comprende tutti i documenti di quel realm

Esempi di permessi

Un documento è leggibile da:

Un documento è scannerizzabile da:

Schema del db proposto

Spiegazione:

Un documento è un oggetto composto da:

Ogni categoria di documento ha diversi tag da riempire (es. cedolino chiede il numero fiscale, contratto chiede data di scadenza), essi acquisiranno dei valori solo quando verranno associati a un documento

Ogni categoria appartiene a un realm, poiché diversi realm possono avere diverse definizioni della struttura di un cedolino o di un contratto

Gli utenti (user) appartengono a:

I ruoli (role) possono essere:

Utilizzo dell'applicazione

Di seguito verrano descritte le varie fasi nei dettagli concentrandosi sull'utilizzo da parte degli utenti.

NOTA IMPORTANTE: Le interfacce utente vanno disegnate tenendo conto delle abilità degli utenti. Per esempio, le fasi di TAG che avvengono all'interno di Galileo saranno probabilmente svolte da operatori con disabilità, occorre quindi semplificare le operazioni, in particolare l'input (bottoni molto grandi ecc.)

Fase di scan

Accesso

L'operatore fa login selezionando in alcuni casi il realm, accede alla pagina di Primo Accesso se entra per la prima volta altrimenti entra nella sezione “Home”


Scannerizzazione e upload

All'operatore si presenterà una schermata interattiva in cui può decidere se:

La scansione deve bypassare il sistema operativo ed essere più intuitiva possibile e un unico click dovrebbe scansionare e fare l'upload del file.

Potrebbero essere aggiunte anche alcune impostazioni di scannerizzazione da selezionare che vengono salvate.

Possibile implementazione: un documento “draft” viene creato in questo momento, e i file caricati si legano al documento draft. Se l'utente abbandona l'applicazione e ritorna, deve essere caricata l'ultima draft creata, da cui l'operatore può riprendere


Gestione delle pagine

Dopo ogni scansione la pagina scansionata appare come piccola preview in un'area che contiene tutte le pagine scansionate. Queste pagine devono poter essere cancellate, riordinate e rinominate singolarmente. Ogni pagina deve poter essere aperta individualmente con una preview più grande per essere ispezionata.

Attenzione

In genere ogni file scansionato rappresenta una pagina di un documento. L'operatore però può trascinare i file anche manualmente, ma in questo caso potrebbe trascinare un file composto da più pagine, che va gestito in modo diverso da come gestiamo un file scansionato di una singola pagina. Si potrebbe ad esempio dividere (lato server) il file composto da più pagine in più file di una singola pagina.


Creazione del documento

Vicino all'area con la preview delle pagine ci devono essere tre campi compilabili dall'operatore:

Dato che ogni documento avrà un owner e delle ACL, va deciso in quale fase queste informazioni vanno inserite.

L'owner ad esempio potrebbe essere un campo riempibile nella fase di scan, ma facoltativo, mentre le ACL potrebbero essere decise nella fase di publish.

Fase di tag

Accesso

L'operatore fa il login ed entra nella sezione “Tag” dal menù laterale.

Selezione del documento

Gli si presenta una pagina con una lista di realm (tutti i realm su cui l'operatore ha ruolo di tag).

Ogni realm è affiancato da una freccetta che serve per espandere la sezione.

Cliccandoci verranno mostrate sotto al realm tutte le class su cui l'operatore ha ruolo di tag all'interno del realm.

Ogni realm e ogni class sono affiancati da un numero che indica la quantità di documenti ancora da taggare presenti in coda all'interno del realm/class.

Cliccando il realm o la class verrà visualizzata la lista di tutti i documenti all'interno di quel realm/class, con indicato il nome, la data di creazione e altre informazioni.

Cliccando su un documento verrà aperta la schermata di tag.

Da ogni schermata deve essere possibile tornare indietro alla schermata precedente

Schermata di tag

Cliccando su un documento si aprirà una schermata divisa in due parti.

Sulla sinistra verrà visualizzata la preview del documento, in cui è possibile scorrere, sfogliare le pagine e fare zoom.

Sulla destra ci saranno i tag, ovvero dei campi di input che devono essere riempiti dall'operatore.

I valori da inserire all'interno dei tag sono semplicemente dei dati contenuti nello stesso documento e visualizzabili nella preview.

Il compito dell'operatore sarà quindi di leggere il documento, trovare i dati e inserirli nei campi.

Ogni class di documenti prevede uno specifico insieme di tag che devono essere riempiti, quindi l'operatore dovrà vedere solamente i tag appartenenti alla class del documento che sta taggando.

Validazione

Ogni tag deve avere delle regole per validare i valori inseriti.

Ci sono due tipi di regole di validazione:

Automazione

Per semplificare il lavoro dell'operatore, si dovrà creare un'intelligenza artificiale o un sistema di OCR che legga il documento e inserisca i valori all'interno dei campi. Questa elaborazione può essere fatta da un processo che gira in parallelo, anche a partire dalla fase di scan.

Quando l'operatore aprirà il documento in fase di tag per la prima volta, visualizzerà i campi con dei valori estratti da questo software, che l'operatore potrà modificare come vuole.

Si potrebbe anche implementare un sistema di suggerimenti dei valori dei campi:

Quando l'operatore clicca su un campo, compaiono diversi valori suggeriti che l'operatore può selezionare.

Questi valori potrebbero essere calcolati sulla base dei valori di altri campi o sulla base di valori inseriti in passato.

Esempio: Inserendo nome e cognome il sistema mi suggerisce un codice fiscale che è stato già associato a quel nome e cognome in passato.

Completamento

Una volta finito di inserire i tag, l'operatore clicca su un pulsante per chiudere la fase di tag su quel documento e farlo avanzare allo stato di check. La schermata si chiuderà e ritornerà sulla selezione del documento.

Visualizzazione

Ogni documento deve poter essere visibile dal proprio owner e dagli utenti appartenenti ai groups con READ (o ADMIN) role sul realm e sulla categoria a cui appartiene il documento

Quando un utente va nella schermata di visualizzazione, vedrà i documenti inseriti di recente nel sistema e potrà effettuare ricerche per trovare i documenti.

I documenti devono avere una thumbnail, un nome, un'indicazione del size

Da questa pagina si potrà selezionare un documento ed entrare nella relativa pagina che permetterà di visualizzare le preview dei file di quel documento, i suoi tag e di poterli scaricare

utente normale che consulta namespace:charta:mock2.png

utente operatore che inserisce namespace:charta:mock3.png

Casi particolari (e non) di utenti