1
Fork 0
mirror of https://github.com/Steffo99/sophon.git synced 2024-12-22 14:54:22 +00:00

📔 Write more documentation

This commit is contained in:
Steffo 2021-11-01 19:50:22 +01:00
parent 6cd63b3122
commit 72a1f25fba
26 changed files with 312 additions and 24 deletions

1
docs/.gitattributes vendored Normal file
View file

@ -0,0 +1 @@
*.mp4 filter=lfs diff=lfs merge=lfs -text

View file

@ -1,34 +1,19 @@
Il progetto in breve Il progetto in breve
==================== ********************
*Sophon* è una applicazione web realizzata nel 2021 da Stefano Pigozzi per conto del **dipartimento di Informatica** dell'**Università di Modena e Reggio Emilia**. *Sophon* è una applicazione web realizzata nel 2021 da Stefano Pigozzi per conto del `dipartimento di Informatica`_ dell'`Università di Modena e Reggio Emilia`_.
.. TODO: Rileggere la frase seguente. Sophon permette ai suoi utenti di effettuare in sicurezza attività di ricerca collaborativa da remoto, sfruttando le macchine dell'istituzione di loro appartenenza per l'elaborazione dei dati.
Sophon permette ai suoi utenti di **effettuare in sicurezza attività di ricerca collaborativa da remoto, sfruttando le macchine dell'istituzione di appartenenza per l'elaborazione dei dati**.
.. _dipartimento di Informatica: https://www.fim.unimore.it/
.. _Università di Modena e Reggio Emilia: https://www.unimore.it/
Screenshots Screenshots
----------- -----------
.. image:: instance_select.png .. image:: instance_select.png
.. image:: user_select.png .. image:: user_select.png
.. image:: notebook_select.png .. image:: notebook_select.png
.. image:: mode_select.png .. image:: mode_select.png
.. image:: inside_the_lab.png .. image:: inside_the_lab.png
.. image:: admin_page.png .. image:: admin_page.png
Licenza
-------
Sophon è rilasciato sotto la `GNU Affero General Public License 3`_ (o successiva).
Il testo completo della licenza è disponibile all'interno del file ``LICENSE.txt`` allegato al codice sorgente del software.
.. _GNU Affero General Public License 3: https://www.gnu.org/licenses/agpl-3.0.html

View file

@ -0,0 +1,227 @@
I concetti
**********
Istanza
=======
Un'*istanza* rappresenta un'**installazione di Sophon** effettuata su un server di un'istituzione di ricerca, come ad esempio un'Università.
Ogni istanza è **fisicamente e logicamente separata** dalle altre; istanze diverse **non condividono alcun dato** tra loro.
.. image:: instances_diagram.png
:width: 400
URL dell'istanza
----------------
Ciascuna istanza è accessibile tramite **uno specifico URL**, deciso dall'amministratore di sistema al momento dell'installazione.
.. image:: instances_urls.png
:width: 400
Istanze nell'interfaccia web
----------------------------
L'interfaccia web di Sophon permette di **selezionare l'istanza** che si desidera usare inserendo il corrispondente URL.
.. image:: instance_select.png
Personalizzazione dell'istanza
------------------------------
Nel pannello di amministrazione di un'istanza Sophon è possibile personalizzare alcuni dettagli dell'istanza, quali:
- il **nome** dell'istanza, che verrà visualizzato come titolo dell'interfaccia web;
.. image:: instance_title.png
- la **descrizione** dell'istanza in `Markdown`_, visualizzata all'interno del riquadro "A proposito dell'istanza";
.. image:: instance_description.png
- il **tema colori** dell'istanza, applicato all'interfaccia web una volta che l'istanza è stata selezionata.
.. image:: instance_theme_sophon.png
:width: 240
.. image:: instance_theme_royalblue.png
:width: 240
.. image:: instance_theme_amber.png
:width: 240
.. image:: instance_theme_paper.png
:width: 240
.. image:: instance_theme_hacker.png
:width: 240
.. _Markdown: https://it.wikipedia.org/wiki/Markdown
Utente
======
Un *utente* è una entità che interagisce con una specifica istanza Sophon: ad esempio, un utente potrebbe essere una persona fisica, oppure potrebbe essere un software di automazione che si interfaccia con Sophon.
Livelli di accesso
------------------
Un utente può avere uno dei seguenti livelli di accesso:
.. glossary::
Superutente
Utente con accesso completo a ogni singola risorsa sull'istanza Sophon, tipicamente riservato per l'amministratore di sistema; deve effettuare l'accesso all'istanza con le proprie credenziali.
Utente
Utente con permessi limitati alle risorse che ha creato o a cui è stato fornito accesso; deve effettuare l'accesso all'istanza con le proprie credenziali.
Ospite
Utente che può visualizzare alcuni contenuti dell'istanza Sophon ma non può interagirci.
Creazione di nuovi utenti
-------------------------
In una istanza Sophon, la registrazione autonoma non è possibile: ciò permetterebbe agli utenti creati di accedere a dati riservati al personale di ricerca.
Nuovi utenti possono essere creati esclusivamente da un :term:`superutente` nel pannello di amministrazione dell'istanza.
.. image:: user_creation.png
Utenti nell'interfaccia web
---------------------------
L'interfaccia web di Sophon permette di **selezionare la tipologia di utente** con la quale si intende utilizzare il servizio.
.. image:: user_select.png
Gruppo di ricerca
=================
Un *gruppo di ricerca* rappresenta un insieme di :term:`utenti` che collaborano su uno o più progetti.
.. image:: groups_diagram.png
:width: 400
Membri dei gruppi
-----------------
Gli :term:`utenti` dell'istanza possono diventare *membri* dei gruppi di ricerca, con una delle seguenti modalità selezionate nelle impostazioni del gruppo:
- se il gruppo è *aperto*, allora qualsiasi utente può diventarne membro semplicemente **facendo richiesta** attraverso l'interfaccia web;
.. image:: join_request.png
- se il gruppo è in *modalità manuale*, allora nessun utente potrà richiedere di unirsi, e i membri saranno **selezionati manualmente** dal creatore del gruppo.
.. image:: join_manual.png
Nell'interfaccia web, i gruppi aperti sono marcati con l'icona di un **globo 🌐**, mentre i gruppi in modalità manuale sono marcati con l'icona di una **busta ✉️**.
.. image:: group_icons.png
In qualsiasi momento, i membri di un gruppo possono **lasciarlo** facendo richiesta attraverso l'interfaccia web.
Creazione di nuovi gruppi
-------------------------
Qualsiasi :term:`utente` può **creare** gruppi di ricerca dall'interfaccia web.
.. image:: group_creation.png
Modifica di gruppi
------------------
Il creatore di un gruppo di ricerca è l'unico :term:`utente` che può cambiarne **nome**, **descrizione**, **membri** e **modalità di accesso**.
Lo *slug*, l'identificatore univoco del gruppo, non è modificabile successivamente alla creazione, dato che è utilizzato all'interno degli URL.
Eliminazione di gruppi
----------------------
Il creatore di un gruppo è l'unico utente in grado di **cancellare** il gruppo che ha creato.
.. warning::
L'eliminazione di un gruppo è un'operazione distruttiva non reversibile!
.. note::
Se si è i creatori di un gruppo, e si vuole trasferire il gruppo ad un altro utente, sarà necessario fare richiesta ad un :term:`superutente` di cambiare il proprietario del gruppo all'interno del pannello di amministrazione.
.. seealso::
:ref:`Conferma di eliminazione`
Progetto di ricerca
===================
Un *progetto di ricerca* rappresenta una **collezione di materiali** relativa a un singolo argomento mantenuta da un :ref:`gruppo di ricerca`.
.. image:: projects_diagram.png
:width: 400
Creazione di nuovi progetti
---------------------------
Qualsiasi *membro* di un :ref:`gruppo di ricerca` può creare nuovi progetti.
Modifica di progetti
--------------------
Qualsiasi *membro* di un :ref:`gruppo di ricerca` può modificare **nome**, **descrizione** dei progetti al suo interno.
Solo il *creatore del gruppo* può modificarne la **visibilità**, o **trasferire il progetto ad un altro gruppo**.
Lo *slug*, l'identificatore univoco del progetto, non è modificabile successivamente alla creazione, dato che è utilizzato all'interno degli URL.
Eliminazione di progetti
------------------------
Il **creatore del gruppo** al quale appartiene il progetto è l'unico utente in grado di eliminarlo.
.. warning::
L'eliminazione di un progetto è un'operazione distruttiva non reversibile!
.. seealso::
:ref:`Conferma di eliminazione`
Visibilità dei progetti
-----------------------
I progetti hanno tre diverse impostazioni di visibilità che regolano chi può visualizzarne i contenuti:
.. glossary::
Progetto privato
Il progetto è visibile solo ai membri del gruppo a cui appartiene il progetto.
Progetto interno
Il progetto è visibile solo agli :term:`utenti` dell'istanza, e non agli :term:`ospiti`.
Progetto pubblico
Il progetto è visibile a tutti.
I progetti privati sono marcati con l'icona di un **luchetto chiuso 🔒**, i progetti interni con l'icona di un **università 🏦** e i progetti pubblici con l'icona di un **globo 🌐**.
Notebook
========
.. TODO: Do this.

View file

@ -0,0 +1,11 @@
Dettagli implementativi dell'interfaccia web
********************************************
Conferma di eliminazione
========================
Per impedire eliminazioni accidentali di risorse, è presente nell'interfaccia web un meccanismo di conferma che richiede all'utente di ripremere il tasto di eliminazione trascorsi 3 secondi dalla prima richiesta.
.. raw:: html
<p><video controls src="../_static/group_delete_confirm.mp4"></video></p>

BIN
docs/source/1_user/admin_login.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
docs/source/1_user/group_creation.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
docs/source/1_user/group_icons.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
docs/source/1_user/groups_diagram.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
docs/source/1_user/instance_description.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
docs/source/1_user/instance_theme_amber.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
docs/source/1_user/instance_theme_hacker.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
docs/source/1_user/instance_theme_paper.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
docs/source/1_user/instance_theme_royalblue.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
docs/source/1_user/instance_theme_sophon.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
docs/source/1_user/instance_title.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
docs/source/1_user/instances_diagram.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
docs/source/1_user/instances_urls.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
docs/source/1_user/join_manual.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
docs/source/1_user/join_request.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
docs/source/1_user/projects_diagram.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
docs/source/1_user/user_creation.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
docs/source/1_user/user_select.png (Stored with Git LFS)

Binary file not shown.

BIN
docs/source/_static/group_delete_confirm.mp4 (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -57,7 +57,7 @@ nitpicky = True
html_theme = 'sphinx_rtd_theme' html_theme = 'sphinx_rtd_theme'
html_theme_options = { html_theme_options = {
"style_nav_header_background": "#3B7097" "style_nav_header_background": "#051836"
} }
# Add any paths that contain custom static files (such as style sheets) here, # Add any paths that contain custom static files (such as style sheets) here,

View file

@ -11,7 +11,7 @@ Contenuti
:caption: Manuale utente :caption: Manuale utente
1_user/1_about 1_user/1_about
1_user/2_usage 1_user/2_concepts
.. toctree:: .. toctree::
@ -36,3 +36,13 @@ Collegamenti
* :ref:`genindex` * :ref:`genindex`
* :ref:`modindex` * :ref:`modindex`
* :ref:`search` * :ref:`search`
Licenza
-------
Sophon è rilasciato sotto la `GNU Affero General Public License 3`_ (o successiva).
Il testo completo della licenza è disponibile all'interno del file ``LICENSE.txt`` allegato al codice sorgente del software.
.. _GNU Affero General Public License 3: https://www.gnu.org/licenses/agpl-3.0.html