📔 Close the glossary
BIN
docs/build/doctrees/code/database/index.doctree
vendored
Normal file
BIN
docs/build/doctrees/development/goals.doctree
vendored
BIN
docs/build/doctrees/environment.pickle
vendored
BIN
docs/build/doctrees/guide/updating.doctree
vendored
Normal file
BIN
docs/build/html/_downloads/0a034db869a28558a2be85af6a9d75cf/1-retrospective.pdf
vendored
Normal file
BIN
docs/build/html/_downloads/2ef8733545ae04f32e2402496e5203a3/sprint-0_retrospective.pdf
vendored
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
Durante questo sprint non sono state ristimate le US in quanto non sono emerse al termine dello sprint0 valutazioni che lo rendessero necessario, di conseguenza non sono state neanche rivalutate le priorità.
|
||||||
|
Come product Owner ho individuato come criterio di accettazione l'esito positivo dei test, anche per il fatto che i test sono presenti in ogni US.
|
||||||
|
Durante lo sviluppo di questo primo sprint sono ovviamente emerse delle issue che sono state tracciate su taiga.
|
||||||
|
Una di queste, la #101 "L'API non è interamente REST" ha portato ad un refactoring di una parte del codice del backend, del frontend e naturalmente anche delle procedure di test, che erano già state abbozzate. La modifica comunque si è rilevata essere necessaria per rispondere appieno alle struttura tipica dei metodi REST.
|
||||||
|
Altre issue sono state inserite ma possono essere sistemate nello sprint successivo in quanto non influiscono sul funzionamento atteso in questo primo sprint.
|
||||||
|
|
||||||
|
Un leggero ritardo sullo sviluppo del frontend non consente di chiudere alcune US, che verranno chiuse e testate nel prossimo sprint.
|
BIN
docs/build/html/_downloads/cdcbddcd4e1d71369a74a1fabb8399d8/N.E.S.T_Swagger.pdf
vendored
Normal file
BIN
docs/build/html/_downloads/d417ae167a3d99b54bd37ef26407aa0d/sonarqube.pdf
vendored
Normal file
BIN
docs/build/html/_downloads/d7da8958e80992420c2b0eef73947059/RetrospectiveSprint2.pdf
vendored
Normal file
16
docs/build/html/_downloads/d8c4da33d05b63a3cd53bacae9c0a087/ValutazioneSMDebitoTecnico.md
vendored
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
# Valutazione ScrumMaster debito tecnico
|
||||||
|
|
||||||
|
>La valutazione del debito tecnico effettuata da SonarQube è
|
||||||
|
>relativa principalmente al backend, poiché l’analisi del progetto
|
||||||
|
>sarebbe stata troppo dispendiosa a causa dell’elevato numero di
|
||||||
|
>file presente nella cartella /frontend.
|
||||||
|
|
||||||
|
>Per quanto riguarda il backend invece il debito tecnico riscontrato
|
||||||
|
> è minore del 5% come si può verificare dal grado A attestato da
|
||||||
|
>SonarQube.
|
||||||
|
|
||||||
|
>Un punto chiave nell’implementazione ha permesso al team [**N.E.S.T.**]
|
||||||
|
>di diminuire il debito tecnico, questo è avvenuto grazie
|
||||||
|
>all’adozione del modello architetturale REST che ha migliorato
|
||||||
|
>esponenzialmente il tempo di risposta delle richieste e la
|
||||||
|
>leggibilità del codice.
|
BIN
docs/build/html/_downloads/d8e10120028bfd129b2cd34bea08128f/0-result.pdf
vendored
Normal file
BIN
docs/build/html/_images/Backlog1.PNG
vendored
Normal file
After Width: | Height: | Size: 677 KiB |
BIN
docs/build/html/_images/Backlog2.PNG
vendored
Normal file
After Width: | Height: | Size: 396 KiB |
BIN
docs/build/html/_images/Backlog3.PNG
vendored
Normal file
After Width: | Height: | Size: 538 KiB |
BIN
docs/build/html/_images/Backlog3.png
vendored
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
docs/build/html/_images/Backlog4.PNG
vendored
Normal file
After Width: | Height: | Size: 394 KiB |
BIN
docs/build/html/_images/Backlog5.PNG
vendored
Normal file
After Width: | Height: | Size: 449 KiB |
BIN
docs/build/html/_images/BacklogSprint1.png
vendored
Normal file
After Width: | Height: | Size: 438 KiB |
BIN
docs/build/html/_images/Burndown1.png
vendored
Normal file
After Width: | Height: | Size: 68 KiB |
BIN
docs/build/html/_images/Burndown2.png
vendored
Normal file
After Width: | Height: | Size: 74 KiB |
BIN
docs/build/html/_images/Burndown3.png
vendored
Normal file
After Width: | Height: | Size: 75 KiB |
BIN
docs/build/html/_images/Burndown4.png
vendored
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
docs/build/html/_images/CasiUso1.PNG
vendored
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
docs/build/html/_images/CasiUso2.PNG
vendored
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
docs/build/html/_images/CasiUso3.PNG
vendored
Normal file
After Width: | Height: | Size: 73 KiB |
BIN
docs/build/html/_images/CasiUso4.PNG
vendored
Normal file
After Width: | Height: | Size: 127 KiB |
BIN
docs/build/html/_images/CasiUso5.PNG
vendored
Normal file
After Width: | Height: | Size: 79 KiB |
BIN
docs/build/html/_images/CasiUso6.PNG
vendored
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
docs/build/html/_images/Chart1.png
vendored
Normal file
After Width: | Height: | Size: 68 KiB |
BIN
docs/build/html/_images/Chart2.png
vendored
Normal file
After Width: | Height: | Size: 74 KiB |
BIN
docs/build/html/_images/Chart3.png
vendored
Normal file
After Width: | Height: | Size: 75 KiB |
BIN
docs/build/html/_images/Sprint1Task.png
vendored
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
docs/build/html/_images/Sprint2Task.png
vendored
Normal file
After Width: | Height: | Size: 52 KiB |
BIN
docs/build/html/_images/Task3.png
vendored
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
docs/build/html/_images/Utenti.png
vendored
Normal file
After Width: | Height: | Size: 4.1 KiB |
265
docs/build/html/_sources/code/database/index.rst.txt
vendored
Normal file
|
@ -0,0 +1,265 @@
|
||||||
|
Struttura del database
|
||||||
|
======================
|
||||||
|
|
||||||
|
.. class:: Alert
|
||||||
|
|
||||||
|
Un alert è un allarme impostato da un utente che si "attiva" quando un numero di tweet che rispetta certe condizioni
|
||||||
|
(poste in and oppure or) supera una certa soglia, indicata dall'utente.
|
||||||
|
|
||||||
|
Ogni volta che l'alert si attiva, viene creata una "notifica", ovvero una entry nella tabella Notifications.
|
||||||
|
Questo permette di tenere conto del numero di volte in cui l'alert viene triggerato.
|
||||||
|
|
||||||
|
Gli alert sono legati al repository di appartenenza, e quando uno di essi viene allertato viene inviata una mail
|
||||||
|
all'admin e pubblicato un tweet sull'account Twitter usato per le analisi.
|
||||||
|
|
||||||
|
La tabella alert contiene le seguenti colonne:
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
:stub-columns: 1
|
||||||
|
:align: left
|
||||||
|
|
||||||
|
* -
|
||||||
|
- Definizioni
|
||||||
|
* - id (INTEGER, PK)
|
||||||
|
- l'identificativo dell'alert
|
||||||
|
* - name (VARCHAR, NOT NULL)
|
||||||
|
- il nome dell'alert
|
||||||
|
* - limit (INTEGER, NOT NULL)
|
||||||
|
- il numero di tweet che innescano l'alert
|
||||||
|
* - window_size (INTEGER, NOT NULL)
|
||||||
|
- numero di ore in cui il limit può venire superato
|
||||||
|
* - evaluation_mode (ENUM/SMALLINT, NOT NULL)
|
||||||
|
- può essere posto a all_or oppure all_not
|
||||||
|
* - repository_id (INTEGER, FK, NOT NULL)
|
||||||
|
-
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. class:: Authorization
|
||||||
|
|
||||||
|
Una autorizzazione è un'entità che rappresenta il permesso, concesso dal creatore del repository ad un altro utente,
|
||||||
|
di ispezionare il contenuto di un repo e di eseguire analisi su di esso.
|
||||||
|
|
||||||
|
La tabella authorization contiene le seguenti colonne:
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
:stub-columns: 1
|
||||||
|
:align: left
|
||||||
|
|
||||||
|
* -
|
||||||
|
- Definizioni
|
||||||
|
* - rid (INTEGER, PK, FK)
|
||||||
|
- id del repository
|
||||||
|
* - email (VARCHAR, PK, FK)
|
||||||
|
- email dell'utente
|
||||||
|
|
||||||
|
.. class:: Composed
|
||||||
|
|
||||||
|
Composed è una tabella le cui righe indicano l'appartenenza di un Tweet ad un certo repository.
|
||||||
|
|
||||||
|
La tabella Composed contiene le seguenti colonne:
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
:stub-columns: 1
|
||||||
|
:align: left
|
||||||
|
|
||||||
|
* -
|
||||||
|
- Definizioni
|
||||||
|
* - rid (INTEGER, PK, FK)
|
||||||
|
- id del repository
|
||||||
|
* - snowflake (VARCHAR, PK, FK)
|
||||||
|
- id del tweet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. class:: Condition
|
||||||
|
|
||||||
|
Una condizione è un elemento che viene usato da repository e alert per cercare e classificare i tweet.
|
||||||
|
|
||||||
|
Le condizioni possono essere di diversi tipi:
|
||||||
|
|
||||||
|
- **hashtag**: valore ``0``, richiede che il tweet contenga un dato hashtag
|
||||||
|
|
||||||
|
- **time**: valore ``2``, richiede che il tweet sia stato pubblicato prima o dopo una certa data
|
||||||
|
|
||||||
|
- **coordinates**: valore ``3``, richiede che il tweet sia stato pubblicato entro un certo raggio da delle
|
||||||
|
coordinate
|
||||||
|
|
||||||
|
- **user**: valore ``5``, richiede che il tweet sia stato pubblicato da un dato utente
|
||||||
|
|
||||||
|
La tabella condition contiene le seguenti colonne:
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
:stub-columns: 1
|
||||||
|
:align: left
|
||||||
|
|
||||||
|
* -
|
||||||
|
- Definizioni
|
||||||
|
* - id (INTEGER, PK)
|
||||||
|
- id della condition
|
||||||
|
* - type (ENUM/SMALLINT, NOT NULL)
|
||||||
|
- tipo del contenuto
|
||||||
|
* - content (VARCHAR, NOT NULL)
|
||||||
|
- contenuto della condition
|
||||||
|
* - repository_id (INTEGER, FK, NOT NULL)
|
||||||
|
-
|
||||||
|
|
||||||
|
|
||||||
|
.. class:: Contains
|
||||||
|
|
||||||
|
Contains è una tabella le cui righe indicano la presenza di una certa condition rispetto ad un certo tweet.
|
||||||
|
|
||||||
|
La tabella contains contiene le seguenti colonne:
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
:stub-columns: 1
|
||||||
|
:align: left
|
||||||
|
|
||||||
|
* -
|
||||||
|
- Definizioni
|
||||||
|
* - cid (INTEGER, PK, FK)
|
||||||
|
- id della condition
|
||||||
|
* - snowflake (VARCHAR, PK, FK)
|
||||||
|
- id del tweet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. class:: MadeOf
|
||||||
|
|
||||||
|
MadeOf è una tabella le cui righe indicano il legame tra un alert e una certa condition.
|
||||||
|
|
||||||
|
La tabella madeof contiene le seguenti colonne:
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
:stub-columns: 1
|
||||||
|
:align: left
|
||||||
|
|
||||||
|
* -
|
||||||
|
- Definizioni
|
||||||
|
* - aid (INTEGER, PK, FK)
|
||||||
|
- id dell'alert
|
||||||
|
* - cid (INTEGER, PK, FK)
|
||||||
|
- id della condition
|
||||||
|
|
||||||
|
|
||||||
|
.. class:: Notification
|
||||||
|
|
||||||
|
Una notification è un'entità che consente di tenere traccia del momento in cui un certo alert si è attivato
|
||||||
|
per l'ultima volta.
|
||||||
|
|
||||||
|
La tabella notification contiene le seguenti colonne:
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
:stub-columns: 1
|
||||||
|
:align: left
|
||||||
|
|
||||||
|
* -
|
||||||
|
- Definizioni
|
||||||
|
* - id (INTEGER, PK)
|
||||||
|
- id della notifica
|
||||||
|
* - ora (TIMESTAMP, NOT NULL)
|
||||||
|
- timestamp di attivazione
|
||||||
|
* - alert_id (INTEGER, FK, NOT NULL)
|
||||||
|
-
|
||||||
|
|
||||||
|
|
||||||
|
.. class:: Repository
|
||||||
|
|
||||||
|
Un repository è un "contenitore" di tweet, a cui sono legati alert, autorizzazioni di lettura e condizioni.
|
||||||
|
|
||||||
|
Le condizioni possono essere messe in and oppure or, inoltre un repository può venire archiviato prima divenire
|
||||||
|
eliminato. Quando un repository non è archiviato, questo viene riempito di tweet su base oraria, cosa che non
|
||||||
|
accade se viene archiviato.
|
||||||
|
|
||||||
|
La tabella repository contiene le seguenti colonne:
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
:stub-columns: 1
|
||||||
|
:align: left
|
||||||
|
|
||||||
|
* -
|
||||||
|
- Definizioni
|
||||||
|
* - id (INTEGER, PK)
|
||||||
|
- id del repository
|
||||||
|
* - name (VARCHAR, NOT NULL)
|
||||||
|
- nome del repository
|
||||||
|
* - start (TIMESTAMP)
|
||||||
|
- timestamp di partenza del repository
|
||||||
|
* - end (TIMESTAMP)
|
||||||
|
- timestamp di chiusura del repository
|
||||||
|
* - is_active (BOOLEAN, NOT NULL)
|
||||||
|
- flag per segnalare se il repo è aperto o meno
|
||||||
|
* - evaluation_mode (ENUM/SMALLINT, NOT NULL)
|
||||||
|
- può essere posto a all_or oppure all_not
|
||||||
|
* - owner_id (VARCHAR, FK, NOT NULL)
|
||||||
|
- email del proprietario
|
||||||
|
* - is_deleted (BOOLEAN, NOT NULL)
|
||||||
|
- flag per segnalare se l'oggetto è eliminato o meno
|
||||||
|
|
||||||
|
|
||||||
|
.. class:: Tweet
|
||||||
|
|
||||||
|
Un tweet è un'entità che viene raccolta dal componente crawler, e quando viene inserita nella base di dati viene
|
||||||
|
legata ad un repository e alle condition che contiene. Un tweet contiene informazioni relativamente a chi l'ha
|
||||||
|
creato, eventuali immagini, il tempo di creazione, il tempo di inserimento nel db e l'opzionale posizione legata
|
||||||
|
al tweet.
|
||||||
|
|
||||||
|
La tabella tweet contiene le seguenti colonne:
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
:stub-columns: 1
|
||||||
|
:align: left
|
||||||
|
|
||||||
|
* -
|
||||||
|
- Definizioni
|
||||||
|
* - snowflake (VARCHAR, PK)
|
||||||
|
- id univoco del tweet
|
||||||
|
* - content (VARCHAR)
|
||||||
|
- contenuto del tweet
|
||||||
|
* - location (VARCHAR)
|
||||||
|
- stringa contenente informazioni sulla posizione
|
||||||
|
* - place (VARCHAR)
|
||||||
|
- riservato per sviluppi futuri
|
||||||
|
* - poster (VARCHAR)
|
||||||
|
- informazioni sull'utente che ha creato il tweet
|
||||||
|
* - insert_time (TIMESTAMP, NOT NULL)
|
||||||
|
- timestamp dell'inserimento del tweet
|
||||||
|
* - image_url (VARCHAR)
|
||||||
|
- link alle immagini, se presenti
|
||||||
|
* - post_time (TIMESTAMP)
|
||||||
|
- timestamp relativo all'invio del tweet
|
||||||
|
|
||||||
|
|
||||||
|
.. class:: User
|
||||||
|
|
||||||
|
Uno user è l'utilizzatore della piattaforma.
|
||||||
|
|
||||||
|
E' presente di default un utente admin, il quale può creare nuovi utenti.
|
||||||
|
|
||||||
|
La tabella user contiene le seguenti colonne:
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
:stub-columns: 1
|
||||||
|
:align: left
|
||||||
|
|
||||||
|
* -
|
||||||
|
- Definizioni
|
||||||
|
* - email (VARCHAR, PK)
|
||||||
|
- email dell'utente
|
||||||
|
* - username (VARCHAR, NOT NULL)
|
||||||
|
- username dell'utente
|
||||||
|
* - password (BYTEARRAY, NOT NULL)
|
||||||
|
- sale della password, codificata usando l'algoritmo bcrypt
|
||||||
|
* - isAdmin (BOOLEAN, NOT NULL)
|
||||||
|
- true se l'utente è admin
|
|
@ -58,10 +58,6 @@ Utente
|
||||||
regolari.
|
regolari.
|
||||||
|
|
||||||
|
|
||||||
.. todo::
|
|
||||||
Estendere il glossario qualora vengano incontrati altri termini.
|
|
||||||
|
|
||||||
|
|
||||||
Macro-funzionalità
|
Macro-funzionalità
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
|
|
20
docs/build/html/_sources/guide/updating.rst.txt
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
Aggiornamento
|
||||||
|
=============
|
||||||
|
|
||||||
|
Per scaricare gli aggiornamenti di N.E.S.T. si esegua il seguente comando nella directory del codice sorgente:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
nest:g2-progetto$ git pull
|
||||||
|
|
||||||
|
In seguito, si riavviino tutti i servizi di N.E.S.T.:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
root:~# systemctl restart nest-frontend nest-backend nest-crawler nest-crawler.timer
|
||||||
|
|
||||||
|
Si verifichi infine il corretto avvio di tutti i servizi:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
root:~# systemctl status nest-frontend nest-backend nest-crawler nest-crawler.timer
|
7
docs/build/html/_static/custom.css
vendored
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
dl > dd > dl {
|
||||||
|
margin-bottom: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
li > dl {
|
||||||
|
margin-bottom: 24px !important;
|
||||||
|
}
|
579
docs/build/html/code/database/index.html
vendored
Normal file
|
@ -0,0 +1,579 @@
|
||||||
|
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html class="writer-html5" lang="it" >
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
|
||||||
|
<title>Struttura del database — N.E.S.T. 0.1.0 documentazione</title>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
|
||||||
|
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
||||||
|
<link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="../../_static/js/html5shiv.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
|
||||||
|
<script src="../../_static/jquery.js"></script>
|
||||||
|
<script src="../../_static/underscore.js"></script>
|
||||||
|
<script src="../../_static/doctools.js"></script>
|
||||||
|
<script src="../../_static/translations.js"></script>
|
||||||
|
|
||||||
|
<script type="text/javascript" src="../../_static/js/theme.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="index" title="Indice" href="../../genindex.html" />
|
||||||
|
<link rel="search" title="Cerca" href="../../search.html" />
|
||||||
|
<link rel="next" title="nest_backend - Web API in Python" href="../backend/index.html" />
|
||||||
|
<link rel="prev" title="Meta-documentazione" href="../meta/index.html" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="wy-body-for-nav">
|
||||||
|
|
||||||
|
|
||||||
|
<div class="wy-grid-for-nav">
|
||||||
|
|
||||||
|
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||||
|
<div class="wy-side-scroll">
|
||||||
|
<div class="wy-side-nav-search" style="background: #3B7097" >
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a href="../../index.html" class="icon icon-home"> N.E.S.T.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div role="search">
|
||||||
|
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
|
||||||
|
<input type="text" name="q" placeholder="Search docs" />
|
||||||
|
<input type="hidden" name="check_keywords" value="yes" />
|
||||||
|
<input type="hidden" name="area" value="default" />
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p class="caption"><span class="caption-text">Manuale utente</span></p>
|
||||||
|
<ul>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../guide/about.html">Il progetto in breve</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../guide/installation.html">Installazione</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../guide/updating.html">Aggiornamento</a></li>
|
||||||
|
</ul>
|
||||||
|
<p class="caption"><span class="caption-text">Relazione sul progetto</span></p>
|
||||||
|
<ul>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../development/goals.html">Introduzione</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../development/process.html">Processo di sviluppo</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../development/tools.html">Strumenti utilizzati</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../development/sprint0/index.html">Sprint 0: 04 Apr - 18 Apr</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../development/sprint1/index.html">Sprint 1: 19 Apr - 02 Mag</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../development/sprint2/index.html">Sprint 2: 03 Mag - 16 Mag</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../development/sprint3/index.html">Sprint 3: 17 Mag - 30 Mag</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../development/artifacts.html">Artefatti</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../development/conclusions.html">Conclusioni</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../development/suggestions.html">Suggerimenti relativi al corso</a></li>
|
||||||
|
</ul>
|
||||||
|
<p class="caption"><span class="caption-text">Documentazione tecnica</span></p>
|
||||||
|
<ul class="current">
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../meta/index.html">Meta-documentazione</a></li>
|
||||||
|
<li class="toctree-l1 current"><a class="current reference internal" href="#">Struttura del database</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../backend/index.html"><code class="docutils literal notranslate"><span class="pre">nest_backend</span></code> - Web API in Python</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../crawler/index.html"><code class="docutils literal notranslate"><span class="pre">nest_crawler</span></code> - Crawler in Python</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../frontend/index.html"><code class="docutils literal notranslate"><span class="pre">nest_frontend</span></code> - Interfaccia utente in React</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="wy-nav-top" aria-label="top navigation">
|
||||||
|
|
||||||
|
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||||
|
<a href="../../index.html">N.E.S.T.</a>
|
||||||
|
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="wy-nav-content">
|
||||||
|
|
||||||
|
<div class="rst-content">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div role="navigation" aria-label="breadcrumbs navigation">
|
||||||
|
|
||||||
|
<ul class="wy-breadcrumbs">
|
||||||
|
|
||||||
|
<li><a href="../../index.html" class="icon icon-home"></a> »</li>
|
||||||
|
|
||||||
|
<li>Struttura del database</li>
|
||||||
|
|
||||||
|
|
||||||
|
<li class="wy-breadcrumbs-aside">
|
||||||
|
|
||||||
|
|
||||||
|
<a href="../../_sources/code/database/index.rst.txt" rel="nofollow"> View page source</a>
|
||||||
|
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<hr/>
|
||||||
|
</div>
|
||||||
|
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||||
|
<div itemprop="articleBody">
|
||||||
|
|
||||||
|
<div class="section" id="struttura-del-database">
|
||||||
|
<h1>Struttura del database<a class="headerlink" href="#struttura-del-database" title="Link a questa intestazione">¶</a></h1>
|
||||||
|
<dl class="py class">
|
||||||
|
<dt id="Alert">
|
||||||
|
<em class="property"><span class="pre">class</span> </em><code class="sig-name descname"><span class="pre">Alert</span></code><a class="headerlink" href="#Alert" title="Link a questa definizione">¶</a></dt>
|
||||||
|
<dd><p>Un alert è un allarme impostato da un utente che si «attiva» quando un numero di tweet che rispetta certe condizioni
|
||||||
|
(poste in and oppure or) supera una certa soglia, indicata dall’utente.</p>
|
||||||
|
<p>Ogni volta che l’alert si attiva, viene creata una «notifica», ovvero una entry nella tabella Notifications.
|
||||||
|
Questo permette di tenere conto del numero di volte in cui l’alert viene triggerato.</p>
|
||||||
|
<p>Gli alert sono legati al repository di appartenenza, e quando uno di essi viene allertato viene inviata una mail
|
||||||
|
all’admin e pubblicato un tweet sull’account Twitter usato per le analisi.</p>
|
||||||
|
<p>La tabella alert contiene le seguenti colonne:</p>
|
||||||
|
<table class="docutils align-left">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 50%" />
|
||||||
|
<col style="width: 50%" />
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr class="row-odd"><th class="head stub"></th>
|
||||||
|
<th class="head"><p>Definizioni</p></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="row-even"><th class="stub"><p>id (INTEGER, PK)</p></th>
|
||||||
|
<td><p>l’identificativo dell’alert</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-odd"><th class="stub"><p>name (VARCHAR, NOT NULL)</p></th>
|
||||||
|
<td><p>il nome dell’alert</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-even"><th class="stub"><p>limit (INTEGER, NOT NULL)</p></th>
|
||||||
|
<td><p>il numero di tweet che innescano l’alert</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-odd"><th class="stub"><p>window_size (INTEGER, NOT NULL)</p></th>
|
||||||
|
<td><p>numero di ore in cui il limit può venire superato</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-even"><th class="stub"><p>evaluation_mode (ENUM/SMALLINT, NOT NULL)</p></th>
|
||||||
|
<td><p>può essere posto a all_or oppure all_not</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-odd"><th class="stub"><p>repository_id (INTEGER, FK, NOT NULL)</p></th>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</dd></dl>
|
||||||
|
|
||||||
|
<dl class="py class">
|
||||||
|
<dt id="Authorization">
|
||||||
|
<em class="property"><span class="pre">class</span> </em><code class="sig-name descname"><span class="pre">Authorization</span></code><a class="headerlink" href="#Authorization" title="Link a questa definizione">¶</a></dt>
|
||||||
|
<dd><p>Una autorizzazione è un’entità che rappresenta il permesso, concesso dal creatore del repository ad un altro utente,
|
||||||
|
di ispezionare il contenuto di un repo e di eseguire analisi su di esso.</p>
|
||||||
|
<p>La tabella authorization contiene le seguenti colonne:</p>
|
||||||
|
<table class="docutils align-left">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 50%" />
|
||||||
|
<col style="width: 50%" />
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr class="row-odd"><th class="head stub"></th>
|
||||||
|
<th class="head"><p>Definizioni</p></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="row-even"><th class="stub"><p>rid (INTEGER, PK, FK)</p></th>
|
||||||
|
<td><p>id del repository</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-odd"><th class="stub"><p>email (VARCHAR, PK, FK)</p></th>
|
||||||
|
<td><p>email dell’utente</p></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</dd></dl>
|
||||||
|
|
||||||
|
<dl class="py class">
|
||||||
|
<dt id="Composed">
|
||||||
|
<em class="property"><span class="pre">class</span> </em><code class="sig-name descname"><span class="pre">Composed</span></code><a class="headerlink" href="#Composed" title="Link a questa definizione">¶</a></dt>
|
||||||
|
<dd><p>Composed è una tabella le cui righe indicano l’appartenenza di un Tweet ad un certo repository.</p>
|
||||||
|
<p>La tabella Composed contiene le seguenti colonne:</p>
|
||||||
|
<table class="docutils align-left">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 50%" />
|
||||||
|
<col style="width: 50%" />
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr class="row-odd"><th class="head stub"></th>
|
||||||
|
<th class="head"><p>Definizioni</p></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="row-even"><th class="stub"><p>rid (INTEGER, PK, FK)</p></th>
|
||||||
|
<td><p>id del repository</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-odd"><th class="stub"><p>snowflake (VARCHAR, PK, FK)</p></th>
|
||||||
|
<td><p>id del tweet</p></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</dd></dl>
|
||||||
|
|
||||||
|
<dl class="py class">
|
||||||
|
<dt id="Condition">
|
||||||
|
<em class="property"><span class="pre">class</span> </em><code class="sig-name descname"><span class="pre">Condition</span></code><a class="headerlink" href="#Condition" title="Link a questa definizione">¶</a></dt>
|
||||||
|
<dd><p>Una condizione è un elemento che viene usato da repository e alert per cercare e classificare i tweet.</p>
|
||||||
|
<p>Le condizioni possono essere di diversi tipi:</p>
|
||||||
|
<ul class="simple">
|
||||||
|
<li><p><strong>hashtag</strong>: valore <code class="docutils literal notranslate"><span class="pre">0</span></code>, richiede che il tweet contenga un dato hashtag</p></li>
|
||||||
|
<li><p><strong>time</strong>: valore <code class="docutils literal notranslate"><span class="pre">2</span></code>, richiede che il tweet sia stato pubblicato prima o dopo una certa data</p></li>
|
||||||
|
<li><p><strong>coordinates</strong>: valore <code class="docutils literal notranslate"><span class="pre">3</span></code>, richiede che il tweet sia stato pubblicato entro un certo raggio da delle
|
||||||
|
coordinate</p></li>
|
||||||
|
<li><p><strong>user</strong>: valore <code class="docutils literal notranslate"><span class="pre">5</span></code>, richiede che il tweet sia stato pubblicato da un dato utente</p></li>
|
||||||
|
</ul>
|
||||||
|
<p>La tabella condition contiene le seguenti colonne:</p>
|
||||||
|
<table class="docutils align-left">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 50%" />
|
||||||
|
<col style="width: 50%" />
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr class="row-odd"><th class="head stub"></th>
|
||||||
|
<th class="head"><p>Definizioni</p></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="row-even"><th class="stub"><p>id (INTEGER, PK)</p></th>
|
||||||
|
<td><p>id della condition</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-odd"><th class="stub"><p>type (ENUM/SMALLINT, NOT NULL)</p></th>
|
||||||
|
<td><p>tipo del contenuto</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-even"><th class="stub"><p>content (VARCHAR, NOT NULL)</p></th>
|
||||||
|
<td><p>contenuto della condition</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-odd"><th class="stub"><p>repository_id (INTEGER, FK, NOT NULL)</p></th>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</dd></dl>
|
||||||
|
|
||||||
|
<dl class="py class">
|
||||||
|
<dt id="Contains">
|
||||||
|
<em class="property"><span class="pre">class</span> </em><code class="sig-name descname"><span class="pre">Contains</span></code><a class="headerlink" href="#Contains" title="Link a questa definizione">¶</a></dt>
|
||||||
|
<dd><p>Contains è una tabella le cui righe indicano la presenza di una certa condition rispetto ad un certo tweet.</p>
|
||||||
|
<p>La tabella contains contiene le seguenti colonne:</p>
|
||||||
|
<table class="docutils align-left">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 50%" />
|
||||||
|
<col style="width: 50%" />
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr class="row-odd"><th class="head stub"></th>
|
||||||
|
<th class="head"><p>Definizioni</p></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="row-even"><th class="stub"><p>cid (INTEGER, PK, FK)</p></th>
|
||||||
|
<td><p>id della condition</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-odd"><th class="stub"><p>snowflake (VARCHAR, PK, FK)</p></th>
|
||||||
|
<td><p>id del tweet</p></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</dd></dl>
|
||||||
|
|
||||||
|
<dl class="py class">
|
||||||
|
<dt id="MadeOf">
|
||||||
|
<em class="property"><span class="pre">class</span> </em><code class="sig-name descname"><span class="pre">MadeOf</span></code><a class="headerlink" href="#MadeOf" title="Link a questa definizione">¶</a></dt>
|
||||||
|
<dd><p>MadeOf è una tabella le cui righe indicano il legame tra un alert e una certa condition.</p>
|
||||||
|
<p>La tabella madeof contiene le seguenti colonne:</p>
|
||||||
|
<table class="docutils align-left">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 50%" />
|
||||||
|
<col style="width: 50%" />
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr class="row-odd"><th class="head stub"></th>
|
||||||
|
<th class="head"><p>Definizioni</p></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="row-even"><th class="stub"><p>aid (INTEGER, PK, FK)</p></th>
|
||||||
|
<td><p>id dell’alert</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-odd"><th class="stub"><p>cid (INTEGER, PK, FK)</p></th>
|
||||||
|
<td><p>id della condition</p></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</dd></dl>
|
||||||
|
|
||||||
|
<dl class="py class">
|
||||||
|
<dt id="Notification">
|
||||||
|
<em class="property"><span class="pre">class</span> </em><code class="sig-name descname"><span class="pre">Notification</span></code><a class="headerlink" href="#Notification" title="Link a questa definizione">¶</a></dt>
|
||||||
|
<dd><p>Una notification è un’entità che consente di tenere traccia del momento in cui un certo alert si è attivato
|
||||||
|
per l’ultima volta.</p>
|
||||||
|
<p>La tabella notification contiene le seguenti colonne:</p>
|
||||||
|
<table class="docutils align-left">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 50%" />
|
||||||
|
<col style="width: 50%" />
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr class="row-odd"><th class="head stub"></th>
|
||||||
|
<th class="head"><p>Definizioni</p></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="row-even"><th class="stub"><p>id (INTEGER, PK)</p></th>
|
||||||
|
<td><p>id della notifica</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-odd"><th class="stub"><p>ora (TIMESTAMP, NOT NULL)</p></th>
|
||||||
|
<td><p>timestamp di attivazione</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-even"><th class="stub"><p>alert_id (INTEGER, FK, NOT NULL)</p></th>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</dd></dl>
|
||||||
|
|
||||||
|
<dl class="py class">
|
||||||
|
<dt id="Repository">
|
||||||
|
<em class="property"><span class="pre">class</span> </em><code class="sig-name descname"><span class="pre">Repository</span></code><a class="headerlink" href="#Repository" title="Link a questa definizione">¶</a></dt>
|
||||||
|
<dd><p>Un repository è un «contenitore» di tweet, a cui sono legati alert, autorizzazioni di lettura e condizioni.</p>
|
||||||
|
<p>Le condizioni possono essere messe in and oppure or, inoltre un repository può venire archiviato prima divenire
|
||||||
|
eliminato. Quando un repository non è archiviato, questo viene riempito di tweet su base oraria, cosa che non
|
||||||
|
accade se viene archiviato.</p>
|
||||||
|
<p>La tabella repository contiene le seguenti colonne:</p>
|
||||||
|
<table class="docutils align-left">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 50%" />
|
||||||
|
<col style="width: 50%" />
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr class="row-odd"><th class="head stub"></th>
|
||||||
|
<th class="head"><p>Definizioni</p></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="row-even"><th class="stub"><p>id (INTEGER, PK)</p></th>
|
||||||
|
<td><p>id del repository</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-odd"><th class="stub"><p>name (VARCHAR, NOT NULL)</p></th>
|
||||||
|
<td><p>nome del repository</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-even"><th class="stub"><p>start (TIMESTAMP)</p></th>
|
||||||
|
<td><p>timestamp di partenza del repository</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-odd"><th class="stub"><p>end (TIMESTAMP)</p></th>
|
||||||
|
<td><p>timestamp di chiusura del repository</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-even"><th class="stub"><p>is_active (BOOLEAN, NOT NULL)</p></th>
|
||||||
|
<td><p>flag per segnalare se il repo è aperto o meno</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-odd"><th class="stub"><p>evaluation_mode (ENUM/SMALLINT, NOT NULL)</p></th>
|
||||||
|
<td><p>può essere posto a all_or oppure all_not</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-even"><th class="stub"><p>owner_id (VARCHAR, FK, NOT NULL)</p></th>
|
||||||
|
<td><p>email del proprietario</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-odd"><th class="stub"><p>is_deleted (BOOLEAN, NOT NULL)</p></th>
|
||||||
|
<td><p>flag per segnalare se l’oggetto è eliminato o meno</p></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</dd></dl>
|
||||||
|
|
||||||
|
<dl class="py class">
|
||||||
|
<dt id="Tweet">
|
||||||
|
<em class="property"><span class="pre">class</span> </em><code class="sig-name descname"><span class="pre">Tweet</span></code><a class="headerlink" href="#Tweet" title="Link a questa definizione">¶</a></dt>
|
||||||
|
<dd><p>Un tweet è un’entità che viene raccolta dal componente crawler, e quando viene inserita nella base di dati viene
|
||||||
|
legata ad un repository e alle condition che contiene. Un tweet contiene informazioni relativamente a chi l’ha
|
||||||
|
creato, eventuali immagini, il tempo di creazione, il tempo di inserimento nel db e l’opzionale posizione legata
|
||||||
|
al tweet.</p>
|
||||||
|
<p>La tabella tweet contiene le seguenti colonne:</p>
|
||||||
|
<table class="docutils align-left">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 50%" />
|
||||||
|
<col style="width: 50%" />
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr class="row-odd"><th class="head stub"></th>
|
||||||
|
<th class="head"><p>Definizioni</p></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="row-even"><th class="stub"><p>snowflake (VARCHAR, PK)</p></th>
|
||||||
|
<td><p>id univoco del tweet</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-odd"><th class="stub"><p>content (VARCHAR)</p></th>
|
||||||
|
<td><p>contenuto del tweet</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-even"><th class="stub"><p>location (VARCHAR)</p></th>
|
||||||
|
<td><p>stringa contenente informazioni sulla posizione</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-odd"><th class="stub"><p>place (VARCHAR)</p></th>
|
||||||
|
<td><p>riservato per sviluppi futuri</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-even"><th class="stub"><p>poster (VARCHAR)</p></th>
|
||||||
|
<td><p>informazioni sull’utente che ha creato il tweet</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-odd"><th class="stub"><p>insert_time (TIMESTAMP, NOT NULL)</p></th>
|
||||||
|
<td><p>timestamp dell’inserimento del tweet</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-even"><th class="stub"><p>image_url (VARCHAR)</p></th>
|
||||||
|
<td><p>link alle immagini, se presenti</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-odd"><th class="stub"><p>post_time (TIMESTAMP)</p></th>
|
||||||
|
<td><p>timestamp relativo all’invio del tweet</p></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</dd></dl>
|
||||||
|
|
||||||
|
<dl class="py class">
|
||||||
|
<dt id="User">
|
||||||
|
<em class="property"><span class="pre">class</span> </em><code class="sig-name descname"><span class="pre">User</span></code><a class="headerlink" href="#User" title="Link a questa definizione">¶</a></dt>
|
||||||
|
<dd><p>Uno user è l’utilizzatore della piattaforma.</p>
|
||||||
|
<p>E” presente di default un utente admin, il quale può creare nuovi utenti.</p>
|
||||||
|
<p>La tabella user contiene le seguenti colonne:</p>
|
||||||
|
<table class="docutils align-left">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 50%" />
|
||||||
|
<col style="width: 50%" />
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr class="row-odd"><th class="head stub"></th>
|
||||||
|
<th class="head"><p>Definizioni</p></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="row-even"><th class="stub"><p>email (VARCHAR, PK)</p></th>
|
||||||
|
<td><p>email dell’utente</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-odd"><th class="stub"><p>username (VARCHAR, NOT NULL)</p></th>
|
||||||
|
<td><p>username dell’utente</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-even"><th class="stub"><p>password (BYTEARRAY, NOT NULL)</p></th>
|
||||||
|
<td><p>sale della password, codificata usando l’algoritmo bcrypt</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-odd"><th class="stub"><p>isAdmin (BOOLEAN, NOT NULL)</p></th>
|
||||||
|
<td><p>true se l’utente è admin</p></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<footer>
|
||||||
|
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
|
||||||
|
<a href="../backend/index.html" class="btn btn-neutral float-right" title="nest_backend - Web API in Python" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||||
|
<a href="../meta/index.html" class="btn btn-neutral float-left" title="Meta-documentazione" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr/>
|
||||||
|
|
||||||
|
<div role="contentinfo">
|
||||||
|
<p>
|
||||||
|
© Copyright 2021, Gruppo 2.
|
||||||
|
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
||||||
|
|
||||||
|
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
||||||
|
|
||||||
|
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
jQuery(function () {
|
||||||
|
SphinxRtdTheme.Navigation.enable(true);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
4
docs/build/html/development/goals.html
vendored
|
@ -231,10 +231,6 @@ regolari.</p>
|
||||||
</dl>
|
</dl>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<div class="admonition-todo admonition" id="id1">
|
|
||||||
<p class="admonition-title">Da fare</p>
|
|
||||||
<p>Estendere il glossario qualora vengano incontrati altri termini.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="macro-funzionalita">
|
<div class="section" id="macro-funzionalita">
|
||||||
<h2>Macro-funzionalità<a class="headerlink" href="#macro-funzionalita" title="Link a questa intestazione">¶</a></h2>
|
<h2>Macro-funzionalità<a class="headerlink" href="#macro-funzionalita" title="Link a questa intestazione">¶</a></h2>
|
||||||
|
|
246
docs/build/html/guide/updating.html
vendored
Normal file
|
@ -0,0 +1,246 @@
|
||||||
|
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html class="writer-html5" lang="it" >
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
|
||||||
|
<title>Aggiornamento — N.E.S.T. 0.1.0 documentazione</title>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
|
||||||
|
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||||
|
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="../_static/js/html5shiv.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
|
||||||
|
<script src="../_static/jquery.js"></script>
|
||||||
|
<script src="../_static/underscore.js"></script>
|
||||||
|
<script src="../_static/doctools.js"></script>
|
||||||
|
<script src="../_static/translations.js"></script>
|
||||||
|
|
||||||
|
<script type="text/javascript" src="../_static/js/theme.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="index" title="Indice" href="../genindex.html" />
|
||||||
|
<link rel="search" title="Cerca" href="../search.html" />
|
||||||
|
<link rel="next" title="Introduzione" href="../development/goals.html" />
|
||||||
|
<link rel="prev" title="Installazione" href="installation.html" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="wy-body-for-nav">
|
||||||
|
|
||||||
|
|
||||||
|
<div class="wy-grid-for-nav">
|
||||||
|
|
||||||
|
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||||
|
<div class="wy-side-scroll">
|
||||||
|
<div class="wy-side-nav-search" style="background: #3B7097" >
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a href="../index.html" class="icon icon-home"> N.E.S.T.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div role="search">
|
||||||
|
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
||||||
|
<input type="text" name="q" placeholder="Search docs" />
|
||||||
|
<input type="hidden" name="check_keywords" value="yes" />
|
||||||
|
<input type="hidden" name="area" value="default" />
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p class="caption"><span class="caption-text">Manuale utente</span></p>
|
||||||
|
<ul class="current">
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="about.html">Il progetto in breve</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installazione</a></li>
|
||||||
|
<li class="toctree-l1 current"><a class="current reference internal" href="#">Aggiornamento</a></li>
|
||||||
|
</ul>
|
||||||
|
<p class="caption"><span class="caption-text">Relazione sul progetto</span></p>
|
||||||
|
<ul>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../development/goals.html">Introduzione</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../development/process.html">Processo di sviluppo</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../development/tools.html">Strumenti utilizzati</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../development/sprint0/index.html">Sprint 0: 04 Apr - 18 Apr</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../development/sprint1/index.html">Sprint 1: 19 Apr - 02 Mag</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../development/sprint2/index.html">Sprint 2: 03 Mag - 16 Mag</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../development/sprint3/index.html">Sprint 3: 17 Mag - 30 Mag</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../development/artifacts.html">Artefatti</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../development/conclusions.html">Conclusioni</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../development/suggestions.html">Suggerimenti relativi al corso</a></li>
|
||||||
|
</ul>
|
||||||
|
<p class="caption"><span class="caption-text">Documentazione tecnica</span></p>
|
||||||
|
<ul>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../code/meta/index.html">Meta-documentazione</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../code/database/index.html">Struttura del database</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../code/backend/index.html"><code class="docutils literal notranslate"><span class="pre">nest_backend</span></code> - Web API in Python</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../code/crawler/index.html"><code class="docutils literal notranslate"><span class="pre">nest_crawler</span></code> - Crawler in Python</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../code/frontend/index.html"><code class="docutils literal notranslate"><span class="pre">nest_frontend</span></code> - Interfaccia utente in React</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="wy-nav-top" aria-label="top navigation">
|
||||||
|
|
||||||
|
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||||
|
<a href="../index.html">N.E.S.T.</a>
|
||||||
|
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="wy-nav-content">
|
||||||
|
|
||||||
|
<div class="rst-content">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div role="navigation" aria-label="breadcrumbs navigation">
|
||||||
|
|
||||||
|
<ul class="wy-breadcrumbs">
|
||||||
|
|
||||||
|
<li><a href="../index.html" class="icon icon-home"></a> »</li>
|
||||||
|
|
||||||
|
<li>Aggiornamento</li>
|
||||||
|
|
||||||
|
|
||||||
|
<li class="wy-breadcrumbs-aside">
|
||||||
|
|
||||||
|
|
||||||
|
<a href="../_sources/guide/updating.rst.txt" rel="nofollow"> View page source</a>
|
||||||
|
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<hr/>
|
||||||
|
</div>
|
||||||
|
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||||
|
<div itemprop="articleBody">
|
||||||
|
|
||||||
|
<div class="section" id="aggiornamento">
|
||||||
|
<h1>Aggiornamento<a class="headerlink" href="#aggiornamento" title="Link a questa intestazione">¶</a></h1>
|
||||||
|
<p>Per scaricare gli aggiornamenti di N.E.S.T. si esegua il seguente comando nella directory del codice sorgente:</p>
|
||||||
|
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">nest:g2-progetto$ </span>git pull
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>In seguito, si riavviino tutti i servizi di N.E.S.T.:</p>
|
||||||
|
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">root:~# </span>systemctl restart nest-frontend nest-backend nest-crawler nest-crawler.timer
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>Si verifichi infine il corretto avvio di tutti i servizi:</p>
|
||||||
|
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">root:~# </span>systemctl status nest-frontend nest-backend nest-crawler nest-crawler.timer
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<footer>
|
||||||
|
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
|
||||||
|
<a href="../development/goals.html" class="btn btn-neutral float-right" title="Introduzione" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||||
|
<a href="installation.html" class="btn btn-neutral float-left" title="Installazione" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr/>
|
||||||
|
|
||||||
|
<div role="contentinfo">
|
||||||
|
<p>
|
||||||
|
© Copyright 2021, Gruppo 2.
|
||||||
|
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
||||||
|
|
||||||
|
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
||||||
|
|
||||||
|
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
jQuery(function () {
|
||||||
|
SphinxRtdTheme.Navigation.enable(true);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
5
docs/build/html/index.html
vendored
|
@ -324,11 +324,6 @@
|
||||||
<p class="todo-source">(L'<a class="reference internal" href="development/artifacts.html#id2"><em>riga originale</em></a> si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/development/artifacts.rst, linea 12.)</p>
|
<p class="todo-source">(L'<a class="reference internal" href="development/artifacts.html#id2"><em>riga originale</em></a> si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/development/artifacts.rst, linea 12.)</p>
|
||||||
<div class="admonition-todo admonition">
|
<div class="admonition-todo admonition">
|
||||||
<p class="admonition-title">Da fare</p>
|
<p class="admonition-title">Da fare</p>
|
||||||
<p>Estendere il glossario qualora vengano incontrati altri termini.</p>
|
|
||||||
</div>
|
|
||||||
<p class="todo-source">(L'<a class="reference internal" href="development/goals.html#id1"><em>riga originale</em></a> si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/development/goals.rst, linea 61.)</p>
|
|
||||||
<div class="admonition-todo admonition">
|
|
||||||
<p class="admonition-title">Da fare</p>
|
|
||||||
<p>Compilare il registro attività dello sprint 3.</p>
|
<p>Compilare il registro attività dello sprint 3.</p>
|
||||||
</div>
|
</div>
|
||||||
<p class="todo-source">(L'<a class="reference internal" href="development/sprint3/index.html#id1"><em>riga originale</em></a> si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/development/sprint3/index.rst, linea 74.)</p>
|
<p class="todo-source">(L'<a class="reference internal" href="development/sprint3/index.html#id1"><em>riga originale</em></a> si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/development/sprint3/index.rst, linea 74.)</p>
|
||||||
|
|
2
docs/build/html/searchindex.js
vendored
|
@ -58,10 +58,6 @@ Utente
|
||||||
regolari.
|
regolari.
|
||||||
|
|
||||||
|
|
||||||
.. todo::
|
|
||||||
Estendere il glossario qualora vengano incontrati altri termini.
|
|
||||||
|
|
||||||
|
|
||||||
Macro-funzionalità
|
Macro-funzionalità
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
|
|