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:
parent
6cd63b3122
commit
72a1f25fba
26 changed files with 312 additions and 24 deletions
1
docs/.gitattributes
vendored
Normal file
1
docs/.gitattributes
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
|
@ -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
|
|
227
docs/source/1_user/2_concepts.rst
Normal file
227
docs/source/1_user/2_concepts.rst
Normal 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.
|
11
docs/source/1_user/3_extras.rst
Normal file
11
docs/source/1_user/3_extras.rst
Normal 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
BIN
docs/source/_static/group_delete_confirm.mp4
(Stored with Git LFS)
Normal file
Binary file not shown.
|
@ -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,
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue