This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| projects:charta:analisi [2022/07/14 11:09] – [Utilizzo dell'applicazione] daniel | projects:charta:analisi [2022/10/28 10:43] (current) – rmontresor | ||
|---|---|---|---|
| Line 54: | Line 54: | ||
| === Visualizzazione === | === Visualizzazione === | ||
| - | Gli utenti possono visualizzare e scaricare i documenti all' | + | Gli utenti possono visualizzare e scaricare i documenti all' |
| - | Gli utenti possono vedere solo i documenti su cui hanno accesso di lettura. Se l' | + | Gli utenti possono vedere solo i documenti su cui hanno accesso di lettura. Se l' |
| === Ruoli === | === Ruoli === | ||
| - | Ogni operatore appartiene a dei gruppi | + | Ogni operatore appartiene a dei gruppi. Ogni gruppo |
| Un operatore quindi potrebbe avere un ruolo in un realm e un ruolo diverso in un altro 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' | Ad esempio: un operatore può scannerizzare e taggare documenti per l' | ||
| - | |||
| - | Deve quindi essere possibile fare login, selezionare un realm e poi eventualmente fare lo switch a un differente realm, senza dovere fare login nuovamente. | ||
| Line 75: | Line 73: | ||
| **PROBLEMA: | **PROBLEMA: | ||
| Esistono due tipi di permessi | Esistono due tipi di permessi | ||
| - | * Permessi di tipo operativo, che vogliamo associare a cose generali come i realm e le classi | + | * Permessi di tipo operativo, che vogliamo associare a cose generali come i realm e le categorie |
| * Permessi di visibilità sui singoli documenti | * Permessi di visibilità sui singoli documenti | ||
| - | ==== Soluzione 1 (SCARTATA)==== | ||
| - | |||
| - | Un utente appartiene a più gruppi | ||
| - | |||
| - | Un gruppo ha certi permessi di tipo operativo (es. può scannerizzare i file all' | ||
| - | e certi permessi di visibilità sui singoli file (es. un operatore vuole che un documento sia visibile da tutti i dipendenti dell' | ||
| - | |||
| - | **Problema: | ||
| - | In base a cosa vengono creati i gruppi? | ||
| - | |||
| - | In base ai permessi operativi? | ||
| - | La maggior parte degli utenti non ha permessi operativi. | ||
| - | |||
| - | In base ai permessi di visibilità? | ||
| - | I permessi di visibilità in genere si danno ai gruppi di lavoro, ad esempio i dipendenti di un settore, o il gruppo dei manager ecc. | ||
| - | |||
| - | Ma queste divisioni non c' | ||
| ==== Soluzione 2 ==== | ==== Soluzione 2 ==== | ||
| Line 118: | Line 99: | ||
| * I **group** vengono associati ai realm e alle classi | * I **group** vengono associati ai realm e alle classi | ||
| - | |||
| 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' | 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' | ||
| 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 | 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 | ||
| + | |||
| + | ---- | ||
| + | |||
| + | * Le **categories** vengono associate ai singoli documenti | ||
| + | |||
| + | * I **group** vengono associati ai realm | ||
| + | |||
| + | * Il **role** può essere upload, tag, correct, publish, read, admin (comprende tutti i precedenti ruoli) | ||
| + | |||
| + | * Una tabella **GroupRoleCategory** assegna ad ogni gruppo di utenti dei ruoli su una categoria di documenti (esempio: il ruolo read su tutti i cedolini) | ||
| + | |||
| + | Tutti i documenti hanno una categoria più una chiamata " | ||
| + | |||
| + | Al momento il ruolo admin è riferito solo alla categoria default, che comprende tutti i documenti di quel realm | ||
| + | |||
| ==== Esempi di permessi ==== | ==== Esempi di permessi ==== | ||
| Line 128: | Line 129: | ||
| Un documento è leggibile da: | Un documento è leggibile da: | ||
| * Utente owner del documento | * Utente owner del documento | ||
| - | | + | * Utenti membri di un supergroup con ruolo " |
| - | | + | |
| Un documento è scannerizzabile da: | Un documento è scannerizzabile da: | ||
| - | * Utenti membri di un supergroup con ruolo "scan" | + | * Utenti membri di un supergroup con ruolo "upload" |
| - | **Esempi della tabella dei role** | ||
| - | |||
| - | < | ||
| - | Superg | ||
| - | s1 SCAN 2 ALL | ||
| - | s2 TAG | ||
| - | s2 CORRECT 3 | ||
| - | s3 ALL | ||
| - | s4 READ 2 ALL | ||
| - | </ | ||
| - | |||
| - | nell' | ||
| ==== Schema del db proposto ==== | ==== Schema del db proposto ==== | ||
| - | {{ : | + | {{ : |
| Spiegazione: | Spiegazione: | ||
| Line 155: | Line 143: | ||
| * Un certo numero di **file** | * Un certo numero di **file** | ||
| * Un insieme di **tag** a cui vengono attribuiti dei valori | * Un insieme di **tag** a cui vengono attribuiti dei valori | ||
| - | * Una **class** (tipologia, ad es. cedolino, contratto, ecc.) | + | * Una **categoria** (tipologia, ad es. cedolino, contratto, ecc.) + la categoria default che comprende tutti i documenti di un realm |
| - | >Ogni class 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 |
| - | >Ogni classe | + | Ogni categoria |
| Gli utenti (**user**) appartengono a: | Gli utenti (**user**) appartengono a: | ||
| - | * **acl**, che ne determinano | + | * **group**, i quali determinano il ruolo sopra ai realm e sulle categoria |
| - | * **group**, che ne determinano il ruolo sopra ai realm e sulle class all' | + | |
| I ruoli (**role**) possono essere: | I ruoli (**role**) possono essere: | ||
| - | * SCAN, o UPLOAD: l' | + | * SCAN, o UPLOAD: l' |
| * TAG: l' | * TAG: l' | ||
| * CORRECT: l' | * CORRECT: l' | ||
| Line 176: | Line 163: | ||
| Di seguito verrano descritte le varie fasi nei dettagli concentrandosi sull' | Di seguito verrano descritte le varie fasi nei dettagli concentrandosi sull' | ||
| - | **NOTA IMPORTANTE**: | + | **NOTA IMPORTANTE**: |
| - | + | ||
| - | Esempio: Le fasi di TAG che avvengono all' | + | |
| ==== Fase di scan ==== | ==== Fase di scan ==== | ||
| === Accesso === | === Accesso === | ||
| - | L' | + | L' |
| ---- | ---- | ||
| Line 206: | Line 191: | ||
| **Attenzione** | **Attenzione** | ||
| + | |||
| In genere ogni file scansionato rappresenta una pagina di un documento. | In genere ogni file scansionato rappresenta una pagina di un documento. | ||
| L' | L' | ||
| - | Si potrebbe ad esempio dividere (lato server) il file composto da più pagine in più file di una singola pagina. | + | Si potrebbe ad esempio |
| ---- | ---- | ||
| Line 214: | Line 200: | ||
| === Creazione del documento === | === Creazione del documento === | ||
| - | Vicino all' | + | Vicino all' |
| * **Nome** del documento: è un nome generico che è slegato dal nome delle singole pagine. Si può decidere se far si che sia univoco o no (il documento viene comunque identificato dall' | * **Nome** del documento: è un nome generico che è slegato dal nome delle singole pagine. Si può decidere se far si che sia univoco o no (il documento viene comunque identificato dall' | ||
| Line 223: | Line 209: | ||
| L' | L' | ||
| + | |||
| + | ==== Fase di tag ==== | ||
| + | |||
| + | === Accesso === | ||
| + | |||
| + | L' | ||
| + | |||
| + | === Selezione del documento === | ||
| + | |||
| + | Gli si presenta una pagina con una **lista di realm** (tutti i realm su cui l' | ||
| + | |||
| + | Ogni realm è affiancato da una freccetta che serve per espandere la sezione. | ||
| + | |||
| + | Cliccandoci verranno mostrate sotto al realm **tutte le class** su cui l' | ||
| + | |||
| + | Ogni realm e ogni class sono affiancati da un numero che indica la **quantità** di documenti ancora da taggare presenti in coda all' | ||
| + | |||
| + | Cliccando il realm o la class verrà visualizzata la lista di **tutti i documenti** all' | ||
| + | |||
| + | 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' | ||
| + | |||
| + | I valori da inserire all' | ||
| + | |||
| + | Il compito dell' | ||
| + | |||
| + | Ogni class di documenti prevede uno specifico insieme di tag che devono essere riempiti, quindi l' | ||
| + | |||
| + | === Validazione === | ||
| + | |||
| + | Ogni tag deve avere delle regole per **validare** i valori inseriti. | ||
| + | |||
| + | Ci sono due tipi di regole di validazione: | ||
| + | |||
| + | * Regole sul **singolo campo**: il valore del tag deve rispettare un certo formato (si pensi alle targhe, alle mail o ai codici fiscali). Queste regole possono essere implementate come stringhe **regex** salvate nel database, in una colonna apposita nella tabella dei tag. | ||
| + | * Regole che si riferiscono ad **altri campi**: il valore del tag deve essere coerente con il valore dato ad **altri tag**. Ad esempio, la data di scadenza deve essere " | ||
| + | |||
| + | === Automazione === | ||
| + | |||
| + | Per semplificare il lavoro dell' | ||
| + | |||
| + | Quando l' | ||
| + | |||
| + | Si potrebbe anche implementare un sistema di **suggerimenti** dei valori dei campi: | ||
| + | |||
| + | Quando l' | ||
| + | |||
| + | Questi valori potrebbero essere calcolati sulla base dei valori di altri campi o sulla base di valori inseriti in passato. | ||
| + | |||
| + | **Esempio**: | ||
| + | |||
| + | === Completamento === | ||
| + | |||
| + | Una volta finito di inserire i tag, l' | ||
| + | |||
| + | ==== 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, | ||
| + | |||
| + | I documenti devono avere una thumbnail, un nome, un' | ||
| + | |||
| + | 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 | ||
| + | {{drawio> | ||
| + | |||
| + | utente operatore che inserisce | ||
| + | {{drawio> | ||
| + | |||
| + | |||
| + | ==== Casi particolari (e non) di utenti ==== | ||
| + | * operatori (personale Galileo che scannerizza/ | ||
| + | * su più realm | ||
| + | * più operazioni | ||
| + | * dipendenti serit (vedono solo i loro documenti) | ||
| + | * sindacalista serit (possono uploadare solo un tipo di documento) | ||
| + | * dipendenti serit (vedono solo una classe di documento) | ||
| + | * dirigenti serit (vede tutto nel real serit e __creano nuovi utenti del realm__) | ||
| + | * dirigenti galileo (vedono tutto di tutti i real e honno abilitate tutte le operazioni) | ||
| + | |||