Merge remote-tracking branch 'origin/main'
BIN
docs/build/doctrees/code/backend/index.doctree
vendored
BIN
docs/build/doctrees/code/crawler/index.doctree
vendored
BIN
docs/build/doctrees/development/goals.doctree
vendored
BIN
docs/build/doctrees/development/log.doctree
vendored
BIN
docs/build/doctrees/development/tools.doctree
vendored
BIN
docs/build/doctrees/environment.pickle
vendored
BIN
docs/build/doctrees/index.doctree
vendored
|
@ -32,6 +32,8 @@
|
|||
``.routes`` - Percorsi API
|
||||
--------------------------
|
||||
|
||||
.. automodule:: nest_backend.database.routes
|
||||
:imported-members:
|
||||
.. note::
|
||||
|
||||
La documentazione dei percorsi API è gestita da Swagger UI, disponibile a ``/docs`` una volta che il webserver
|
||||
del backend è avviato.
|
||||
|
||||
|
|
|
@ -2,3 +2,4 @@
|
|||
====================================
|
||||
|
||||
.. automodule:: nest_crawler
|
||||
:imported-members:
|
||||
|
|
142
docs/build/html/_sources/development/goals.rst.txt
vendored
|
@ -1,30 +1,152 @@
|
|||
Obiettivo del progetto
|
||||
======================
|
||||
Introduzione
|
||||
============
|
||||
|
||||
.. todo::
|
||||
Lasciamo il tempo al futuro?
|
||||
|
||||
Scrivere l'obiettivo generale del progetto.
|
||||
Obiettivo
|
||||
---------
|
||||
|
||||
L'obiettivo del progetto è la creazione di un software per fornire l'aggregazione e l'analisi di `Tweet`_, in modo da
|
||||
rilevare eventi *macroscopici*, *locali* o più semplicemente filtrarli in base a delle *keyword*.
|
||||
|
||||
Il prodotto sarà utilizzato dal cliente e da un piccolo gruppo di suoi dipendenti per effettuare ricerche statistiche.
|
||||
|
||||
Il software andrà ad integrarsi direttamente con `Twitter`_, da cui verranno raccolti dati e su cui verranno pubblicate
|
||||
allerte su di essi.
|
||||
|
||||
.. _Tweet: https://help.twitter.com/it/using-twitter#tweets
|
||||
.. _Twitter: https://twitter.com/
|
||||
|
||||
|
||||
Scope
|
||||
-----
|
||||
Campo di applicazione
|
||||
---------------------
|
||||
|
||||
Il software trova utilizzo principalmente in **ambito statistico**, essendo il suo scopo quello di raccogliere dati e
|
||||
permettere di analizzarli tramite un'interfaccia grafica.
|
||||
|
||||
|
||||
Caratteristiche degli utenti
|
||||
----------------------------
|
||||
|
||||
Il software potrà essere utilizzato da utenti con una discreta esperienza nell'analisi di dati ma senza particolari
|
||||
conoscenze informatiche.
|
||||
|
||||
Glossario
|
||||
---------
|
||||
|
||||
Repository
|
||||
Raccolta di tweet che soddisfano determinate condizioni.
|
||||
|
||||
Condizione
|
||||
Predicato logico che deve essere soddisfatto da un tweet per essere raccolto in fase di raccolta dati, o per essere
|
||||
contato in fase di allertamento utente.
|
||||
|
||||
Filtro
|
||||
Predicato logico che deve essere soddisfatto da un tweet per essere visualizzato in fase di analisi dati.
|
||||
|
||||
Allarme
|
||||
Notifica inviata all'utente attraverso un mezzo telematico, come email oppure un tweet.
|
||||
|
||||
Utente
|
||||
Utilizzatore del software con un proprio account creato dall'amministratore della piattaforma.
|
||||
|
||||
In particolare, la piattaforma prevederà due tipologie di utenti:
|
||||
|
||||
Utente regolare
|
||||
Potranno eseguire attività di creazione, analisi, condivisione, archiviazione ed eliminazione dei propri repository.
|
||||
|
||||
Utente amministratore
|
||||
Potrà effettuare tutte le attività dell'utente regolare, e in aggiunta potrà creare ed eliminare nuovi utenti
|
||||
regolari.
|
||||
|
||||
|
||||
.. todo::
|
||||
Estendere il glossario qualora vengano incontrati altri termini.
|
||||
|
||||
Scrivere lo scope del progetto.
|
||||
|
||||
Macro-funzionalità
|
||||
------------------
|
||||
|
||||
Il software permetterà di selezionare **condizioni** con cui scegliere quali tweet raccogliere:
|
||||
|
||||
- in base ai loro `hashtag`_
|
||||
- in base al loro autore
|
||||
- in base alla loro `posizione geografica`_ (ove presente)
|
||||
- in base alla loro data di pubblicazione
|
||||
|
||||
Selezionate le condizioni, l'utente potrà creare una **repository**: una cartella in cui verranno raccolti i tweet
|
||||
soddisfacenti le condizioni richieste.
|
||||
|
||||
Una volta raccolti, i tweet di una repository potranno essere **analizzati** in qualsiasi momento: durante l'analisi,
|
||||
saranno mostrate statistiche e grafici relativi ai tweet.
|
||||
|
||||
La raccolta potrà essere interrotta in qualsiasi momento **archiviando** il repository.
|
||||
|
||||
Sarà possibile **condividere** una repository con altri utenti della piattaforma, permettendo loro di analizzarla.
|
||||
|
||||
Infine, l'utente potrà configurare una repository in modo che gli invii una **allerta** qualora vengano raccolti un dato
|
||||
numero di tweet in una certa *finestra temporale*.
|
||||
|
||||
.. _hashtag: https://help.twitter.com/it/using-twitter/how-to-use-hashtags
|
||||
.. _posizione geografica: https://help.twitter.com/en/safety-and-security/tweet-location-settings
|
||||
|
||||
|
||||
Casi d'uso
|
||||
----------
|
||||
|
||||
.. todo::
|
||||
N.E.S.T. prevede tre tipologie di *agenti* ("utenti" UML): **utente**, **amministratore** e **sistema**.
|
||||
|
||||
Scrivere i casi d'uso del progetto.
|
||||
.. image:: Utenti.png
|
||||
|
||||
I principali casi d’uso individuati durante la progettazione di N.E.S.T. sono:
|
||||
|
||||
- La gestione degli utenti da parte di un Amministratore:
|
||||
|
||||
.. image:: CasiUso1.PNG
|
||||
:width: 400
|
||||
|
||||
- La gestione del login da parte di un Utente:
|
||||
|
||||
.. image:: CasiUso2.PNG
|
||||
:width: 400
|
||||
|
||||
- La gestione delle Allerte sia dal punto di vista dell’Utente che del Sistema:
|
||||
|
||||
.. image:: CasiUso3.PNG
|
||||
:width: 800
|
||||
|
||||
- La gestione della raccolta da parte dell'utente:
|
||||
|
||||
.. image:: CasiUso4.PNG
|
||||
:width: 400
|
||||
|
||||
- La gestione di un repository da parte dell'utente:
|
||||
|
||||
.. image:: CasiUso5.PNG
|
||||
:width: 400
|
||||
|
||||
- La visualizzazione di un repository:
|
||||
|
||||
.. image:: CasiUso6.PNG
|
||||
:width: 400
|
||||
|
||||
|
||||
Backlog generale
|
||||
----------------
|
||||
|
||||
.. todo::
|
||||
Si riporta qui di seguito il Backlog definito ad inizio progetto, prima dell’avvio dello sviluppo.
|
||||
Gli elementi dal bordo grigio sono le epiche:
|
||||
|
||||
Elencare qui tutte le user story del backlog, senza specificare lo sprint in cui sono state realizzate.
|
||||
.. note::
|
||||
Alcune user story sono state rimosse in seguito al feedback ricevuto durante il primo sprint!
|
||||
|
||||
.. image:: Backlog1.PNG
|
||||
|
||||
.. image:: Backlog2.PNG
|
||||
|
||||
.. image:: Backlog3.PNG
|
||||
|
||||
.. image:: Backlog4.PNG
|
||||
|
||||
.. image:: Backlog5.PNG
|
||||
|
|
24
docs/build/html/_sources/development/log.rst.txt
vendored
|
@ -1,24 +0,0 @@
|
|||
Registro attività
|
||||
=================
|
||||
|
||||
Questo registro attività delinea le attività effettuate dai membri del team e ne indica la durata.
|
||||
|
||||
.. note::
|
||||
|
||||
Per informazioni più dettagliate sulle attività di sviluppo, si suggerisce di guardare il log dei commit di Git:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
nest:g2-progetto$ git log
|
||||
|
||||
|
||||
|
||||
Sprint 1: 19 Apr - 02 Mag
|
||||
-------------------------
|
||||
|
||||
|
||||
Sprint 2: 03 Mag - 16 Mag
|
||||
-------------------------
|
||||
|
||||
|
||||
|
|
@ -1,11 +1,6 @@
|
|||
Sprint 0: 04 Apr - 18 Apr
|
||||
=========================
|
||||
|
||||
.. todo::
|
||||
|
||||
Inserire informazioni generali sullo sprint, come inizio e fine.
|
||||
|
||||
|
||||
Consegna
|
||||
--------
|
||||
|
||||
|
@ -15,28 +10,28 @@ La seguente documentazione è stata fornita dal cliente durante questo sprint:
|
|||
- :download:`Sprint 0 <0-sprint-requirements.pdf>`
|
||||
|
||||
|
||||
Goal
|
||||
----
|
||||
Definition of Ready
|
||||
-------------------
|
||||
|
||||
.. todo::
|
||||
Il team ha definito lo stato di Ready di una User Story in base ai seguenti criteri:
|
||||
|
||||
Inserire qui lo sprint goal.
|
||||
* La User Story è stata compresa ed accettata da tutti i membri
|
||||
* I tester hanno confermato la possibilità di poterla testare
|
||||
* Il Product Owner ha la visione necessaria per definirne la priorità
|
||||
* Il Team è in grado di stimarla
|
||||
* La User Story è indipendente o dipendente da altre a priorità maggiore
|
||||
|
||||
|
||||
Backlog
|
||||
-------
|
||||
|
||||
.. todo::
|
||||
|
||||
Mostrare qui lo sprint backlog di Taiga.
|
||||
|
||||
|
||||
Definition of done
|
||||
Definition of Done
|
||||
------------------
|
||||
|
||||
.. todo::
|
||||
La definizione di Done è stata concordata da tutto il team con il Product Owner, ed è stata così
|
||||
definita:
|
||||
|
||||
Inserire qui la definition of done dello sprint.
|
||||
* Sviluppo completo della funzionalità richiesta
|
||||
* Definizione e superamento dei test
|
||||
* Bozza della documentazione della funzionalità
|
||||
* Merge dei sorgenti nel branch ``main`` del repository Git
|
||||
|
||||
|
||||
Registro attività
|
||||
|
@ -171,7 +166,7 @@ Chiara Calzolari
|
|||
- Durata
|
||||
- Attività
|
||||
* -
|
||||
-
|
||||
- 12h 30m
|
||||
- Totale
|
||||
|
||||
* - 2021-04-09
|
||||
|
@ -272,9 +267,192 @@ Lorenzo Balugani
|
|||
Risultati della partita di Scrumble
|
||||
-----------------------------------
|
||||
|
||||
.. todo::
|
||||
#. :Goal: Learn
|
||||
:Question: Do team members understand the Scrum roles?
|
||||
:Metric: Knowledge of Scrum roles by questions
|
||||
:Evaluation: :1: no idea of the Scrum roles
|
||||
:5: perfect knowledge of the roles and their jobs
|
||||
:Chiara: 4
|
||||
:Giorgio: 4
|
||||
:Giovanni: 4
|
||||
:Stefano P.: 4
|
||||
:Lorenzo: 5
|
||||
:Stefano G.: 5
|
||||
:Flavia: 4
|
||||
|
||||
Trascrivere qui i risultati della partita di Scrumble.
|
||||
#. :Goal: Learn
|
||||
:Question: Do team members feel they learned the process?
|
||||
:Metric: Opinions from the participants
|
||||
:Evaluation: :1: couldn't repeat the game
|
||||
:5: could play the game as a Scrum Master by himself
|
||||
:Chiara: 3
|
||||
:Giorgio: 3
|
||||
:Giovanni: 4
|
||||
:Stefano P.: 5
|
||||
:Lorenzo: 3
|
||||
:Stefano G.: 3
|
||||
:Flavia: 3
|
||||
|
||||
#. :Goal: Learn
|
||||
:Question: Does everyone keep up with the other players?
|
||||
:Metric: Check during every sprint retrospective if every one is on point
|
||||
:Evaluation: :1: totally lost
|
||||
:5: leads the game driving the other players
|
||||
:Chiara: 3
|
||||
:Giorgio: 4
|
||||
:Giovanni: 4
|
||||
:Stefano P.: 4
|
||||
:Lorenzo: 5
|
||||
:Stefano G.: 5
|
||||
:Flavia: 5
|
||||
|
||||
#. :Goal: Practice
|
||||
:Question: Are the game mechanics linear and repeatable?
|
||||
:Metric: Opinions from the participants
|
||||
:Evaluation: :1: feels the game is unrepeatable
|
||||
:5: feels the game could be played in any situation
|
||||
:Chiara: 1
|
||||
:Giorgio: 2
|
||||
:Giovanni: 1
|
||||
:Stefano P.: 1
|
||||
:Lorenzo: 1
|
||||
:Stefano G.: 2
|
||||
:Flavia: 1
|
||||
|
||||
#. :Goal: Practice
|
||||
:Question: Do team success in completing the game?
|
||||
:Metric: Number of User Stories completed
|
||||
:Evaluation: :1: 0 to 3 stories
|
||||
:2: 4 to 6
|
||||
:3: 7 to 9
|
||||
:4: 10 to 12
|
||||
:5: 13 to 15
|
||||
:Chiara: 5
|
||||
:Giorgio: 5
|
||||
:Giovanni: 5
|
||||
:Stefano P.: 5
|
||||
:Lorenzo: 5
|
||||
:Stefano G.: 5
|
||||
:Flavia: 5
|
||||
|
||||
#. :Goal: Practice
|
||||
:Question: Do team members efficiently estimate during sprint planning?
|
||||
:Metric: Uniformity in evaluating the size and the priority of user stories
|
||||
:Evaluation: :1: abnormal difference from the other players
|
||||
:5: coherent and uniform with the group most of the time
|
||||
:Chiara: 5
|
||||
:Giorgio: 4
|
||||
:Giovanni: 5
|
||||
:Stefano P.: 4
|
||||
:Lorenzo: 5
|
||||
|
||||
#. :Goal: Cooperation
|
||||
:Question: Do team members know each other better?
|
||||
:Metric: Level of players' serenity throughout the game
|
||||
:Evaluation: :1: never speaks with the other players
|
||||
:5: talks friendly to anyone in every situation
|
||||
:Chiara: 4
|
||||
:Giorgio: 5
|
||||
:Giovanni: 5
|
||||
:Stefano P.: 5
|
||||
:Lorenzo: 5
|
||||
:Stefano G.: 5
|
||||
:Flavia: 4
|
||||
|
||||
#. :Goal: Cooperation
|
||||
:Question: Does the game let all players cooperate?
|
||||
:Metric: Contribution of every player during the game
|
||||
:Evaluation: :1: never puts effort in doing something
|
||||
:5: every time is willing to understand what is going on
|
||||
:Chiara: 4
|
||||
:Giorgio: 3
|
||||
:Giovanni: 3
|
||||
:Stefano P.: 2
|
||||
:Lorenzo: 3
|
||||
:Stefano G.: 4
|
||||
:Flavia: 3
|
||||
|
||||
#. :Goal: Cooperation
|
||||
:Question: Do team member consult each other about a topic?
|
||||
:Metric: Sharing of ideas
|
||||
:Evaluation: :1: never asks for an opinion
|
||||
:5: wants to discuss about every topic
|
||||
:Chiara: 5
|
||||
:Giorgio: 5
|
||||
:Giovanni: 5
|
||||
:Stefano P.: 3
|
||||
:Lorenzo: 5
|
||||
:Stefano G.: 4
|
||||
:Flavia: 5
|
||||
|
||||
#. :Goal: Motivation
|
||||
:Question: Do team members encourage collegues in need?
|
||||
:Metric: Players explain something other players don't understand
|
||||
:Evaluation: :1: not involved by the game
|
||||
:5: always makes sure everyone is on point
|
||||
:Chiara: 3
|
||||
:Giorgio: 5
|
||||
:Giovanni: 5
|
||||
:Stefano P.: 4
|
||||
:Lorenzo: 5
|
||||
:Stefano G.: 4
|
||||
:Flavia: 4
|
||||
|
||||
#. :Goal: Motivation
|
||||
:Question: Does PO help the team?
|
||||
:Metric: Quality of PO's advices to get better in the next sprints
|
||||
:Evaluation: :1: poor/absent advices
|
||||
:5: wise and helpful suggestions when is required
|
||||
:Stefano G.: 4
|
||||
|
||||
#. :Goal: Motivation
|
||||
:Question: Does the team come up with good ideas?
|
||||
:Metric: Effectiveness of sprint retrospective
|
||||
:Evaluation: :1: doesn't express opinions during retrospective
|
||||
:5: feels the retrospective fundamental to express opinions
|
||||
:Chiara: 4
|
||||
:Giorgio: 5
|
||||
:Giovanni: 5
|
||||
:Stefano P.: 5
|
||||
:Lorenzo: 5
|
||||
:Stefano G.: 5
|
||||
:Flavia: 5
|
||||
|
||||
#. :Goal: Problem Solving
|
||||
:Question: Do team members behave well when facing a problem?
|
||||
:Metric: Level of the technical debt at the end of the game
|
||||
:Evaluation: On the game board, if the debt pawn is on the lowest stage,the evaluation is 5, for every higher stage it decreases by 1
|
||||
:Chiara: 5
|
||||
:Giorgio: 5
|
||||
:Giovanni: 5
|
||||
:Stefano P.: 5
|
||||
:Lorenzo: 5
|
||||
:Stefano G.: 5
|
||||
:Flavia: 5
|
||||
|
||||
#. :Goal: Problem Solving
|
||||
:Question: Does team organize their tasks properly?
|
||||
:Metric: Average of tasks left at the end of each sprint
|
||||
:Evaluation: :1: 21+ average tasks left
|
||||
:2: 16-20 average tasks left
|
||||
:3: 11-15 average tasks left
|
||||
:4: 6-10 average tasks left
|
||||
:5: 0-5 average tasks left
|
||||
:Chiara: 5
|
||||
:Giorgio: 5
|
||||
:Giovanni: 5
|
||||
:Stefano P.: 5
|
||||
:Lorenzo: 5
|
||||
|
||||
#. :Goal: Problem Solving
|
||||
:Question: Does PO plan efficiently the Sprint Backlog?
|
||||
:Metric: Average of tasks left at the end of each sprint
|
||||
:Evaluation: :1: 21+ average tasks left
|
||||
:2: 16-20 average tasks left
|
||||
:3: 11-15 average tasks left
|
||||
:4: 6-10 average tasks left
|
||||
:5: 0-5 average tasks left
|
||||
:Stefano G.: 5
|
||||
|
||||
|
||||
Statistiche
|
||||
|
@ -286,7 +464,24 @@ Gitinspector
|
|||
Questa statistica è stata generata dal prof. Marcello Missiroli con
|
||||
`Gitinspector`_ al termine dello Sprint.
|
||||
|
||||
- :download:`Sprint 0 <0-stats.html>`
|
||||
- :download:`0-stats.html`
|
||||
|
||||
|
||||
.. _Gitinspector: https://github.com/ejwa/gitinspector
|
||||
|
||||
|
||||
Artefatti
|
||||
---------
|
||||
|
||||
In questo sprint è stato realizzato il seguente documento:
|
||||
|
||||
- :download:`Documento generale dello Sprint 0 <0-result.pdf>`
|
||||
|
||||
|
||||
Sprint review
|
||||
-------------
|
||||
|
||||
Il video di sprint review è disponibile al seguente link:
|
||||
|
||||
- https://drive.google.com/file/d/12worWEcx-uf2UP4_lnEOovHZpvR77MsG/view
|
||||
|
||||
|
|
|
@ -40,8 +40,20 @@ Nello sviluppo di N.E.S.T. sono stati usati i seguenti strumenti software:
|
|||
È accessibile al seguente indirizzo: https://sonarqube.steffo.eu/
|
||||
|
||||
|
||||
`Figma`_
|
||||
|
||||
Applicazione web centralizzata per la creazione collaborativa di interfacce grafiche moderne.
|
||||
|
||||
`Discord`_
|
||||
|
||||
Piattaforma centralizzata di messaggistica istantanea e chiamate vocali utilizzata per la comunicazione sincrona
|
||||
tra i membri del team.
|
||||
|
||||
|
||||
.. _IntelliJ IDEA Ultimate: https://www.jetbrains.com/idea/
|
||||
.. _Git: https://git-scm.com/
|
||||
.. _GitLab: https://about.gitlab.com/
|
||||
.. _Taiga: https://www.taiga.io/
|
||||
.. _SonarQube: https://www.sonarqube.org/
|
||||
.. _Figma: https://www.figma.com/
|
||||
.. _Discord: https://discord.com/
|
||||
|
|
7
docs/build/html/_sources/index.rst.txt
vendored
|
@ -31,11 +31,18 @@ Benvenuto alla documentazione di N.E.S.T.!
|
|||
:caption: Documentazione tecnica
|
||||
|
||||
code/meta/index
|
||||
code/database/index
|
||||
code/backend/index
|
||||
code/crawler/index
|
||||
code/frontend/index
|
||||
|
||||
|
||||
.. toctree::
|
||||
:hidden:
|
||||
|
||||
development/clientinterview
|
||||
|
||||
|
||||
Cose rimaste da fare
|
||||
--------------------
|
||||
|
||||
|
|
18
docs/build/html/code/backend/index.html
vendored
|
@ -13,6 +13,7 @@
|
|||
|
||||
<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" />
|
||||
|
||||
|
||||
|
||||
|
@ -40,7 +41,7 @@
|
|||
<link rel="index" title="Indice" href="../../genindex.html" />
|
||||
<link rel="search" title="Cerca" href="../../search.html" />
|
||||
<link rel="next" title="nest_crawler - Crawler in Python" href="../crawler/index.html" />
|
||||
<link rel="prev" title="Meta-documentazione" href="../meta/index.html" />
|
||||
<link rel="prev" title="Struttura del database" href="../database/index.html" />
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
|
@ -92,7 +93,7 @@
|
|||
</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">Obiettivo del progetto</a></li>
|
||||
<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>
|
||||
|
@ -106,6 +107,7 @@
|
|||
<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"><a class="reference internal" href="../database/index.html">Struttura del database</a></li>
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#"><code class="docutils literal notranslate"><span class="pre">nest_backend</span></code> - Web API in Python</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#module-nest_backend.gestione"><code class="docutils literal notranslate"><span class="pre">.gestione</span></code> - Metodi di utility</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#module-nest_backend.database"><code class="docutils literal notranslate"><span class="pre">.database</span></code> - Database</a><ul>
|
||||
|
@ -598,6 +600,11 @@ for example, any mapped columns or relationships.</p>
|
|||
<code class="sig-name descname"><span class="pre">is_active</span></code><a class="headerlink" href="#nest_backend.database.tables.Repository.is_active" title="Link a questa definizione">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt id="nest_backend.database.tables.Repository.is_deleted">
|
||||
<code class="sig-name descname"><span class="pre">is_deleted</span></code><a class="headerlink" href="#nest_backend.database.tables.Repository.is_deleted" title="Link a questa definizione">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt id="nest_backend.database.tables.Repository.evaluation_mode">
|
||||
<code class="sig-name descname"><span class="pre">evaluation_mode</span></code><a class="headerlink" href="#nest_backend.database.tables.Repository.evaluation_mode" title="Link a questa definizione">¶</a></dt>
|
||||
|
@ -895,6 +902,11 @@ GitLab</a> .</p>
|
|||
</div>
|
||||
<div class="section" id="routes-percorsi-api">
|
||||
<h2><code class="docutils literal notranslate"><span class="pre">.routes</span></code> - Percorsi API<a class="headerlink" href="#routes-percorsi-api" title="Link a questa intestazione">¶</a></h2>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Nota</p>
|
||||
<p>La documentazione dei percorsi API è gestita da Swagger UI, disponibile a <code class="docutils literal notranslate"><span class="pre">/docs</span></code> una volta che il webserver
|
||||
del backend è avviato.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -905,7 +917,7 @@ GitLab</a> .</p>
|
|||
<footer>
|
||||
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
|
||||
<a href="../crawler/index.html" class="btn btn-neutral float-right" title="nest_crawler - Crawler 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>
|
||||
<a href="../database/index.html" class="btn btn-neutral float-left" title="Struttura del database" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
|
39
docs/build/html/code/crawler/index.html
vendored
|
@ -13,6 +13,7 @@
|
|||
|
||||
<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" />
|
||||
|
||||
|
||||
|
||||
|
@ -92,7 +93,7 @@
|
|||
</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">Obiettivo del progetto</a></li>
|
||||
<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>
|
||||
|
@ -106,6 +107,7 @@
|
|||
<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"><a class="reference internal" href="../database/index.html">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 current"><a class="current reference internal" href="#"><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>
|
||||
|
@ -178,6 +180,41 @@
|
|||
|
||||
<div class="section" id="module-nest_crawler">
|
||||
<span id="nest-crawler-crawler-in-python"></span><h1><code class="docutils literal notranslate"><span class="pre">nest_crawler</span></code> - Crawler in Python<a class="headerlink" href="#module-nest_crawler" title="Link a questa intestazione">¶</a></h1>
|
||||
<dl class="py function">
|
||||
<dt id="nest_crawler.associate_condition_tweet">
|
||||
<code class="sig-prename descclassname"><span class="pre">nest_crawler.</span></code><code class="sig-name descname"><span class="pre">associate_condition_tweet</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">conditions_type</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">tweet</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#nest_crawler.associate_condition_tweet" title="Link a questa definizione">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt id="nest_crawler.authenticate">
|
||||
<code class="sig-prename descclassname"><span class="pre">nest_crawler.</span></code><code class="sig-name descname"><span class="pre">authenticate</span></code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#nest_crawler.authenticate" title="Link a questa definizione">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt id="nest_crawler.is_coordinate_inside_bounding_box">
|
||||
<code class="sig-prename descclassname"><span class="pre">nest_crawler.</span></code><code class="sig-name descname"><span class="pre">is_coordinate_inside_bounding_box</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">latitude</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">longitude</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">radius</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">tweet_latitude</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">tweet_longitude</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#nest_crawler.is_coordinate_inside_bounding_box" title="Link a questa definizione">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt id="nest_crawler.is_repo_alert_triggered">
|
||||
<code class="sig-prename descclassname"><span class="pre">nest_crawler.</span></code><code class="sig-name descname"><span class="pre">is_repo_alert_triggered</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">repository_id</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#nest_crawler.is_repo_alert_triggered" title="Link a questa definizione">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt id="nest_crawler.search_repo_conditions">
|
||||
<code class="sig-prename descclassname"><span class="pre">nest_crawler.</span></code><code class="sig-name descname"><span class="pre">search_repo_conditions</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">repository_id</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#nest_crawler.search_repo_conditions" title="Link a questa definizione">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt id="nest_crawler.send_notification_email">
|
||||
<code class="sig-prename descclassname"><span class="pre">nest_crawler.</span></code><code class="sig-name descname"><span class="pre">send_notification_email</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">alert</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#nest_crawler.send_notification_email" title="Link a questa definizione">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt id="nest_crawler.send_notification_tweet">
|
||||
<code class="sig-prename descclassname"><span class="pre">nest_crawler.</span></code><code class="sig-name descname"><span class="pre">send_notification_tweet</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">alert</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#nest_crawler.send_notification_tweet" title="Link a questa definizione">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
|
4
docs/build/html/code/frontend/index.html
vendored
|
@ -13,6 +13,7 @@
|
|||
|
||||
<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" />
|
||||
|
||||
|
||||
|
||||
|
@ -91,7 +92,7 @@
|
|||
</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">Obiettivo del progetto</a></li>
|
||||
<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>
|
||||
|
@ -105,6 +106,7 @@
|
|||
<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"><a class="reference internal" href="../database/index.html">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 current"><a class="current reference internal" href="#"><code class="docutils literal notranslate"><span class="pre">nest_frontend</span></code> - Interfaccia utente in React</a></li>
|
||||
|
|
8
docs/build/html/code/meta/index.html
vendored
|
@ -13,6 +13,7 @@
|
|||
|
||||
<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" />
|
||||
|
||||
|
||||
|
||||
|
@ -39,7 +40,7 @@
|
|||
|
||||
<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="next" title="Struttura del database" href="../database/index.html" />
|
||||
<link rel="prev" title="Suggerimenti relativi al corso" href="../../development/suggestions.html" />
|
||||
</head>
|
||||
|
||||
|
@ -92,7 +93,7 @@
|
|||
</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">Obiettivo del progetto</a></li>
|
||||
<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>
|
||||
|
@ -111,6 +112,7 @@
|
|||
<li class="toctree-l2"><a class="reference internal" href="#compilazione-con-windows-powershell">Compilazione con Windows Powershell</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../database/index.html">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>
|
||||
|
@ -246,7 +248,7 @@ eseguita.</p>
|
|||
</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="../database/index.html" class="btn btn-neutral float-right" title="Struttura del database" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
<a href="../../development/suggestions.html" class="btn btn-neutral float-left" title="Suggerimenti relativi al corso" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
</div>
|
||||
|
||||
|
|
4
docs/build/html/development/artifacts.html
vendored
|
@ -13,6 +13,7 @@
|
|||
|
||||
<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" />
|
||||
|
||||
|
||||
|
||||
|
@ -92,7 +93,7 @@
|
|||
</ul>
|
||||
<p class="caption"><span class="caption-text">Relazione sul progetto</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="goals.html">Obiettivo del progetto</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="goals.html">Introduzione</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="process.html">Processo di sviluppo</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="tools.html">Strumenti utilizzati</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="sprint0/index.html">Sprint 0: 04 Apr - 18 Apr</a></li>
|
||||
|
@ -109,6 +110,7 @@
|
|||
<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>
|
||||
|
|
4
docs/build/html/development/conclusions.html
vendored
|
@ -13,6 +13,7 @@
|
|||
|
||||
<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" />
|
||||
|
||||
|
||||
|
||||
|
@ -92,7 +93,7 @@
|
|||
</ul>
|
||||
<p class="caption"><span class="caption-text">Relazione sul progetto</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="goals.html">Obiettivo del progetto</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="goals.html">Introduzione</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="process.html">Processo di sviluppo</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="tools.html">Strumenti utilizzati</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="sprint0/index.html">Sprint 0: 04 Apr - 18 Apr</a></li>
|
||||
|
@ -106,6 +107,7 @@
|
|||
<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>
|
||||
|
|
123
docs/build/html/development/goals.html
vendored
|
@ -7,12 +7,13 @@
|
|||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
|
||||
<title>Obiettivo del progetto — N.E.S.T. 0.1.0 documentazione</title>
|
||||
<title>Introduzione — 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" />
|
||||
|
||||
|
||||
|
||||
|
@ -92,8 +93,12 @@
|
|||
</ul>
|
||||
<p class="caption"><span class="caption-text">Relazione sul progetto</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Obiettivo del progetto</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#scope">Scope</a></li>
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Introduzione</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#obiettivo">Obiettivo</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#campo-di-applicazione">Campo di applicazione</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#caratteristiche-degli-utenti">Caratteristiche degli utenti</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#glossario">Glossario</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#macro-funzionalita">Macro-funzionalità</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#casi-d-uso">Casi d’uso</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#backlog-generale">Backlog generale</a></li>
|
||||
</ul>
|
||||
|
@ -111,6 +116,7 @@
|
|||
<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>
|
||||
|
@ -162,7 +168,7 @@
|
|||
|
||||
<li><a href="../index.html" class="icon icon-home"></a> »</li>
|
||||
|
||||
<li>Obiettivo del progetto</li>
|
||||
<li>Introduzione</li>
|
||||
|
||||
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
|
@ -181,32 +187,115 @@
|
|||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<div class="section" id="obiettivo-del-progetto">
|
||||
<h1>Obiettivo del progetto<a class="headerlink" href="#obiettivo-del-progetto" title="Link a questa intestazione">¶</a></h1>
|
||||
<div class="section" id="introduzione">
|
||||
<h1>Introduzione<a class="headerlink" href="#introduzione" title="Link a questa intestazione">¶</a></h1>
|
||||
<div class="admonition-todo admonition" id="id1">
|
||||
<p class="admonition-title">Da fare</p>
|
||||
<p>Scrivere l’obiettivo generale del progetto.</p>
|
||||
<p>Lasciamo il tempo al futuro?</p>
|
||||
</div>
|
||||
<div class="section" id="scope">
|
||||
<h2>Scope<a class="headerlink" href="#scope" title="Link a questa intestazione">¶</a></h2>
|
||||
<div class="section" id="obiettivo">
|
||||
<h2>Obiettivo<a class="headerlink" href="#obiettivo" title="Link a questa intestazione">¶</a></h2>
|
||||
<p>L’obiettivo del progetto è la creazione di un software per fornire l’aggregazione e l’analisi di <a class="reference external" href="https://help.twitter.com/it/using-twitter#tweets">Tweet</a>, in modo da
|
||||
rilevare eventi <em>macroscopici</em>, <em>locali</em> o più semplicemente filtrarli in base a delle <em>keyword</em>.</p>
|
||||
<p>Il prodotto sarà utilizzato dal cliente e da un piccolo gruppo di suoi dipendenti per effettuare ricerche statistiche.</p>
|
||||
<p>Il software andrà ad integrarsi direttamente con <a class="reference external" href="https://twitter.com/">Twitter</a>, da cui verranno raccolti dati e su cui verranno pubblicate
|
||||
allerte su di essi.</p>
|
||||
</div>
|
||||
<div class="section" id="campo-di-applicazione">
|
||||
<h2>Campo di applicazione<a class="headerlink" href="#campo-di-applicazione" title="Link a questa intestazione">¶</a></h2>
|
||||
<p>Il software trova utilizzo principalmente in <strong>ambito statistico</strong>, essendo il suo scopo quello di raccogliere dati e
|
||||
permettere di analizzarli tramite un’interfaccia grafica.</p>
|
||||
</div>
|
||||
<div class="section" id="caratteristiche-degli-utenti">
|
||||
<h2>Caratteristiche degli utenti<a class="headerlink" href="#caratteristiche-degli-utenti" title="Link a questa intestazione">¶</a></h2>
|
||||
<p>Il software potrà essere utilizzato da utenti con una discreta esperienza nell’analisi di dati ma senza particolari
|
||||
conoscenze informatiche.</p>
|
||||
</div>
|
||||
<div class="section" id="glossario">
|
||||
<h2>Glossario<a class="headerlink" href="#glossario" title="Link a questa intestazione">¶</a></h2>
|
||||
<dl>
|
||||
<dt>Repository</dt><dd><p>Raccolta di tweet che soddisfano determinate condizioni.</p>
|
||||
</dd>
|
||||
<dt>Condizione</dt><dd><p>Predicato logico che deve essere soddisfatto da un tweet per essere raccolto in fase di raccolta dati, o per essere
|
||||
contato in fase di allertamento utente.</p>
|
||||
</dd>
|
||||
<dt>Filtro</dt><dd><p>Predicato logico che deve essere soddisfatto da un tweet per essere visualizzato in fase di analisi dati.</p>
|
||||
</dd>
|
||||
<dt>Allarme</dt><dd><p>Notifica inviata all’utente attraverso un mezzo telematico, come email oppure un tweet.</p>
|
||||
</dd>
|
||||
<dt>Utente</dt><dd><p>Utilizzatore del software con un proprio account creato dall’amministratore della piattaforma.</p>
|
||||
<p>In particolare, la piattaforma prevederà due tipologie di utenti:</p>
|
||||
<dl class="simple">
|
||||
<dt>Utente regolare</dt><dd><p>Potranno eseguire attività di creazione, analisi, condivisione, archiviazione ed eliminazione dei propri repository.</p>
|
||||
</dd>
|
||||
<dt>Utente amministratore</dt><dd><p>Potrà effettuare tutte le attività dell’utente regolare, e in aggiunta potrà creare ed eliminare nuovi utenti
|
||||
regolari.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
<div class="admonition-todo admonition" id="id2">
|
||||
<p class="admonition-title">Da fare</p>
|
||||
<p>Scrivere lo scope del progetto.</p>
|
||||
<p>Estendere il glossario qualora vengano incontrati altri termini.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="macro-funzionalita">
|
||||
<h2>Macro-funzionalità<a class="headerlink" href="#macro-funzionalita" title="Link a questa intestazione">¶</a></h2>
|
||||
<p>Il software permetterà di selezionare <strong>condizioni</strong> con cui scegliere quali tweet raccogliere:</p>
|
||||
<ul class="simple">
|
||||
<li><p>in base ai loro <a class="reference external" href="https://help.twitter.com/it/using-twitter/how-to-use-hashtags">hashtag</a></p></li>
|
||||
<li><p>in base al loro autore</p></li>
|
||||
<li><p>in base alla loro <a class="reference external" href="https://help.twitter.com/en/safety-and-security/tweet-location-settings">posizione geografica</a> (ove presente)</p></li>
|
||||
<li><p>in base alla loro data di pubblicazione</p></li>
|
||||
</ul>
|
||||
<p>Selezionate le condizioni, l’utente potrà creare una <strong>repository</strong>: una cartella in cui verranno raccolti i tweet
|
||||
soddisfacenti le condizioni richieste.</p>
|
||||
<p>Una volta raccolti, i tweet di una repository potranno essere <strong>analizzati</strong> in qualsiasi momento: durante l’analisi,
|
||||
saranno mostrate statistiche e grafici relativi ai tweet.</p>
|
||||
<p>La raccolta potrà essere interrotta in qualsiasi momento <strong>archiviando</strong> il repository.</p>
|
||||
<p>Sarà possibile <strong>condividere</strong> una repository con altri utenti della piattaforma, permettendo loro di analizzarla.</p>
|
||||
<p>Infine, l’utente potrà configurare una repository in modo che gli invii una <strong>allerta</strong> qualora vengano raccolti un dato
|
||||
numero di tweet in una certa <em>finestra temporale</em>.</p>
|
||||
</div>
|
||||
<div class="section" id="casi-d-uso">
|
||||
<h2>Casi d’uso<a class="headerlink" href="#casi-d-uso" title="Link a questa intestazione">¶</a></h2>
|
||||
<div class="admonition-todo admonition" id="id3">
|
||||
<p class="admonition-title">Da fare</p>
|
||||
<p>Scrivere i casi d’uso del progetto.</p>
|
||||
</div>
|
||||
<p>N.E.S.T. prevede tre tipologie di <em>agenti</em> («utenti» UML): <strong>utente</strong>, <strong>amministratore</strong> e <strong>sistema</strong>.</p>
|
||||
<img alt="../_images/Utenti.png" src="../_images/Utenti.png" />
|
||||
<p>I principali casi d’uso individuati durante la progettazione di N.E.S.T. sono:</p>
|
||||
<ul>
|
||||
<li><p>La gestione degli utenti da parte di un Amministratore:</p>
|
||||
<a class="reference internal image-reference" href="../_images/CasiUso1.PNG"><img alt="../_images/CasiUso1.PNG" src="../_images/CasiUso1.PNG" style="width: 400px;" /></a>
|
||||
</li>
|
||||
<li><p>La gestione del login da parte di un Utente:</p>
|
||||
<a class="reference internal image-reference" href="../_images/CasiUso2.PNG"><img alt="../_images/CasiUso2.PNG" src="../_images/CasiUso2.PNG" style="width: 400px;" /></a>
|
||||
</li>
|
||||
<li><p>La gestione delle Allerte sia dal punto di vista dell’Utente che del Sistema:</p>
|
||||
<a class="reference internal image-reference" href="../_images/CasiUso3.PNG"><img alt="../_images/CasiUso3.PNG" src="../_images/CasiUso3.PNG" style="width: 800px;" /></a>
|
||||
</li>
|
||||
<li><p>La gestione della raccolta da parte dell’utente:</p>
|
||||
<a class="reference internal image-reference" href="../_images/CasiUso4.PNG"><img alt="../_images/CasiUso4.PNG" src="../_images/CasiUso4.PNG" style="width: 400px;" /></a>
|
||||
</li>
|
||||
<li><p>La gestione di un repository da parte dell’utente:</p>
|
||||
<a class="reference internal image-reference" href="../_images/CasiUso5.PNG"><img alt="../_images/CasiUso5.PNG" src="../_images/CasiUso5.PNG" style="width: 400px;" /></a>
|
||||
</li>
|
||||
<li><p>La visualizzazione di un repository:</p>
|
||||
<a class="reference internal image-reference" href="../_images/CasiUso6.PNG"><img alt="../_images/CasiUso6.PNG" src="../_images/CasiUso6.PNG" style="width: 400px;" /></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="backlog-generale">
|
||||
<h2>Backlog generale<a class="headerlink" href="#backlog-generale" title="Link a questa intestazione">¶</a></h2>
|
||||
<div class="admonition-todo admonition" id="id4">
|
||||
<p class="admonition-title">Da fare</p>
|
||||
<p>Elencare qui tutte le user story del backlog, senza specificare lo sprint in cui sono state realizzate.</p>
|
||||
<p>Si riporta qui di seguito il Backlog definito ad inizio progetto, prima dell’avvio dello sviluppo.
|
||||
Gli elementi dal bordo grigio sono le epiche:</p>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Nota</p>
|
||||
<p>Alcune user story sono state rimosse in seguito al feedback ricevuto durante il primo sprint!</p>
|
||||
</div>
|
||||
<img alt="../_images/Backlog1.PNG" src="../_images/Backlog1.PNG" />
|
||||
<img alt="../_images/Backlog2.PNG" src="../_images/Backlog2.PNG" />
|
||||
<img alt="../_images/Backlog3.PNG" src="../_images/Backlog3.PNG" />
|
||||
<img alt="../_images/Backlog4.PNG" src="../_images/Backlog4.PNG" />
|
||||
<img alt="../_images/Backlog5.PNG" src="../_images/Backlog5.PNG" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
239
docs/build/html/development/log.html
vendored
|
@ -1,239 +0,0 @@
|
|||
|
||||
|
||||
<!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>Registro attività — 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" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--[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" />
|
||||
</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>
|
||||
</ul>
|
||||
<p class="caption"><span class="caption-text">Relazione sul progetto</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="goals.html">Obiettivo del progetto</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="process.html">Processo di sviluppo</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="tools.html">Strumenti utilizzati</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="sprint0/index.html">Sprint 0: 04 Apr - 18 Apr</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="sprint1/index.html">Sprint 1: 19 Apr - 02 Mag</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="sprint2/index.html">Sprint 2: 03 Mag - 16 Mag</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="sprint3/index.html">Sprint 3: 17 Mag - 30 Mag</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="artifacts.html">Artefatti</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="conclusions.html">Conclusioni</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="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/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>Registro attività</li>
|
||||
|
||||
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
|
||||
|
||||
<a href="../_sources/development/log.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="registro-attivita">
|
||||
<h1>Registro attività<a class="headerlink" href="#registro-attivita" title="Link a questa intestazione">¶</a></h1>
|
||||
<p>Questo registro attività delinea le attività effettuate dai membri del team e ne indica la durata.</p>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Nota</p>
|
||||
<p>Per informazioni più dettagliate sulle attività di sviluppo, si suggerisce di guardare il log dei commit di Git:</p>
|
||||
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">nest:g2-progetto$ </span>git log
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="sprint-1-19-apr-02-mag">
|
||||
<h2>Sprint 1: 19 Apr - 02 Mag<a class="headerlink" href="#sprint-1-19-apr-02-mag" title="Link a questa intestazione">¶</a></h2>
|
||||
</div>
|
||||
<div class="section" id="sprint-2-03-mag-16-mag">
|
||||
<h2>Sprint 2: 03 Mag - 16 Mag<a class="headerlink" href="#sprint-2-03-mag-16-mag" title="Link a questa intestazione">¶</a></h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<footer>
|
||||
|
||||
<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>
|
8
docs/build/html/development/process.html
vendored
|
@ -13,6 +13,7 @@
|
|||
|
||||
<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" />
|
||||
|
||||
|
||||
|
||||
|
@ -40,7 +41,7 @@
|
|||
<link rel="index" title="Indice" href="../genindex.html" />
|
||||
<link rel="search" title="Cerca" href="../search.html" />
|
||||
<link rel="next" title="Strumenti utilizzati" href="tools.html" />
|
||||
<link rel="prev" title="Obiettivo del progetto" href="goals.html" />
|
||||
<link rel="prev" title="Introduzione" href="goals.html" />
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
|
@ -92,7 +93,7 @@
|
|||
</ul>
|
||||
<p class="caption"><span class="caption-text">Relazione sul progetto</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="goals.html">Obiettivo del progetto</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="goals.html">Introduzione</a></li>
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Processo di sviluppo</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="tools.html">Strumenti utilizzati</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="sprint0/index.html">Sprint 0: 04 Apr - 18 Apr</a></li>
|
||||
|
@ -106,6 +107,7 @@
|
|||
<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>
|
||||
|
@ -196,7 +198,7 @@ retrospettiva finale»</p>
|
|||
<footer>
|
||||
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
|
||||
<a href="tools.html" class="btn btn-neutral float-right" title="Strumenti utilizzati" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
<a href="goals.html" class="btn btn-neutral float-left" title="Obiettivo del progetto" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="goals.html" class="btn btn-neutral float-left" title="Introduzione" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
|
693
docs/build/html/development/sprint0/index.html
vendored
|
@ -13,6 +13,7 @@
|
|||
|
||||
<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" />
|
||||
|
||||
|
||||
|
||||
|
@ -92,14 +93,13 @@
|
|||
</ul>
|
||||
<p class="caption"><span class="caption-text">Relazione sul progetto</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../goals.html">Obiettivo del progetto</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../goals.html">Introduzione</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../process.html">Processo di sviluppo</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../tools.html">Strumenti utilizzati</a></li>
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Sprint 0: 04 Apr - 18 Apr</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#consegna">Consegna</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#goal">Goal</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#backlog">Backlog</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#definition-of-done">Definition of done</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#definition-of-ready">Definition of Ready</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#definition-of-done">Definition of Done</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#registro-attivita">Registro attività</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#riunioni-collettive">Riunioni collettive</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#attivita-individuali">Attività individuali</a><ul>
|
||||
|
@ -119,6 +119,8 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="#gitinspector">Gitinspector</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#artefatti">Artefatti</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#sprint-review">Sprint review</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../sprint1/index.html">Sprint 1: 19 Apr - 02 Mag</a></li>
|
||||
|
@ -131,6 +133,7 @@
|
|||
<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>
|
||||
|
@ -203,10 +206,6 @@
|
|||
|
||||
<div class="section" id="sprint-0-04-apr-18-apr">
|
||||
<h1>Sprint 0: 04 Apr - 18 Apr<a class="headerlink" href="#sprint-0-04-apr-18-apr" title="Link a questa intestazione">¶</a></h1>
|
||||
<div class="admonition-todo admonition" id="id1">
|
||||
<p class="admonition-title">Da fare</p>
|
||||
<p>Inserire informazioni generali sullo sprint, come inizio e fine.</p>
|
||||
</div>
|
||||
<div class="section" id="consegna">
|
||||
<h2>Consegna<a class="headerlink" href="#consegna" title="Link a questa intestazione">¶</a></h2>
|
||||
<p>La seguente documentazione è stata fornita dal cliente durante questo sprint:</p>
|
||||
|
@ -215,26 +214,27 @@
|
|||
<li><p><a class="reference download internal" download="" href="../../_downloads/56a7b936d5f736eeed714f4fad53c4c3/0-sprint-requirements.pdf"><code class="xref download docutils literal notranslate"><span class="pre">Sprint</span> <span class="pre">0</span></code></a></p></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="goal">
|
||||
<h2>Goal<a class="headerlink" href="#goal" title="Link a questa intestazione">¶</a></h2>
|
||||
<div class="admonition-todo admonition" id="id2">
|
||||
<p class="admonition-title">Da fare</p>
|
||||
<p>Inserire qui lo sprint goal.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="backlog">
|
||||
<h2>Backlog<a class="headerlink" href="#backlog" title="Link a questa intestazione">¶</a></h2>
|
||||
<div class="admonition-todo admonition" id="id3">
|
||||
<p class="admonition-title">Da fare</p>
|
||||
<p>Mostrare qui lo sprint backlog di Taiga.</p>
|
||||
</div>
|
||||
<div class="section" id="definition-of-ready">
|
||||
<h2>Definition of Ready<a class="headerlink" href="#definition-of-ready" title="Link a questa intestazione">¶</a></h2>
|
||||
<p>Il team ha definito lo stato di Ready di una User Story in base ai seguenti criteri:</p>
|
||||
<ul class="simple">
|
||||
<li><p>La User Story è stata compresa ed accettata da tutti i membri</p></li>
|
||||
<li><p>I tester hanno confermato la possibilità di poterla testare</p></li>
|
||||
<li><p>Il Product Owner ha la visione necessaria per definirne la priorità</p></li>
|
||||
<li><p>Il Team è in grado di stimarla</p></li>
|
||||
<li><p>La User Story è indipendente o dipendente da altre a priorità maggiore</p></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="definition-of-done">
|
||||
<h2>Definition of done<a class="headerlink" href="#definition-of-done" title="Link a questa intestazione">¶</a></h2>
|
||||
<div class="admonition-todo admonition" id="id4">
|
||||
<p class="admonition-title">Da fare</p>
|
||||
<p>Inserire qui la definition of done dello sprint.</p>
|
||||
</div>
|
||||
<h2>Definition of Done<a class="headerlink" href="#definition-of-done" title="Link a questa intestazione">¶</a></h2>
|
||||
<p>La definizione di Done è stata concordata da tutto il team con il Product Owner, ed è stata così
|
||||
definita:</p>
|
||||
<ul class="simple">
|
||||
<li><p>Sviluppo completo della funzionalità richiesta</p></li>
|
||||
<li><p>Definizione e superamento dei test</p></li>
|
||||
<li><p>Bozza della documentazione della funzionalità</p></li>
|
||||
<li><p>Merge dei sorgenti nel branch <code class="docutils literal notranslate"><span class="pre">main</span></code> del repository Git</p></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="registro-attivita">
|
||||
<h2>Registro attività<a class="headerlink" href="#registro-attivita" title="Link a questa intestazione">¶</a></h2>
|
||||
|
@ -413,7 +413,7 @@
|
|||
<th class="head"><p>Attività</p></th>
|
||||
</tr>
|
||||
<tr class="row-even"><th class="head"></th>
|
||||
<th class="head"></th>
|
||||
<th class="head"><p>12h 30m</p></th>
|
||||
<th class="head"><p>Totale</p></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
@ -540,10 +540,625 @@
|
|||
</div>
|
||||
<div class="section" id="risultati-della-partita-di-scrumble">
|
||||
<h2>Risultati della partita di Scrumble<a class="headerlink" href="#risultati-della-partita-di-scrumble" title="Link a questa intestazione">¶</a></h2>
|
||||
<div class="admonition-todo admonition" id="id5">
|
||||
<p class="admonition-title">Da fare</p>
|
||||
<p>Trascrivere qui i risultati della partita di Scrumble.</p>
|
||||
</div>
|
||||
<ol class="arabic simple">
|
||||
<li><dl class="field-list simple">
|
||||
<dt class="field-odd">Goal</dt>
|
||||
<dd class="field-odd"><p>Learn</p>
|
||||
</dd>
|
||||
<dt class="field-even">Question</dt>
|
||||
<dd class="field-even"><p>Do team members understand the Scrum roles?</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Metric</dt>
|
||||
<dd class="field-odd"><p>Knowledge of Scrum roles by questions</p>
|
||||
</dd>
|
||||
<dt class="field-even">Evaluation</dt>
|
||||
<dd class="field-even"><dl class="field-list simple">
|
||||
<dt class="field-odd">1</dt>
|
||||
<dd class="field-odd"><p>no idea of the Scrum roles</p>
|
||||
</dd>
|
||||
<dt class="field-even">5</dt>
|
||||
<dd class="field-even"><p>perfect knowledge of the roles and their jobs</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dt class="field-odd">Chiara</dt>
|
||||
<dd class="field-odd"><p>4</p>
|
||||
</dd>
|
||||
<dt class="field-even">Giorgio</dt>
|
||||
<dd class="field-even"><p>4</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Giovanni</dt>
|
||||
<dd class="field-odd"><p>4</p>
|
||||
</dd>
|
||||
<dt class="field-even">Stefano P.</dt>
|
||||
<dd class="field-even"><p>4</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Lorenzo</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-even">Stefano G.</dt>
|
||||
<dd class="field-even"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Flavia</dt>
|
||||
<dd class="field-odd"><p>4</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li><dl class="field-list simple">
|
||||
<dt class="field-odd">Goal</dt>
|
||||
<dd class="field-odd"><p>Learn</p>
|
||||
</dd>
|
||||
<dt class="field-even">Question</dt>
|
||||
<dd class="field-even"><p>Do team members feel they learned the process?</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Metric</dt>
|
||||
<dd class="field-odd"><p>Opinions from the participants</p>
|
||||
</dd>
|
||||
<dt class="field-even">Evaluation</dt>
|
||||
<dd class="field-even"><dl class="field-list simple">
|
||||
<dt class="field-odd">1</dt>
|
||||
<dd class="field-odd"><p>couldn’t repeat the game</p>
|
||||
</dd>
|
||||
<dt class="field-even">5</dt>
|
||||
<dd class="field-even"><p>could play the game as a Scrum Master by himself</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dt class="field-odd">Chiara</dt>
|
||||
<dd class="field-odd"><p>3</p>
|
||||
</dd>
|
||||
<dt class="field-even">Giorgio</dt>
|
||||
<dd class="field-even"><p>3</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Giovanni</dt>
|
||||
<dd class="field-odd"><p>4</p>
|
||||
</dd>
|
||||
<dt class="field-even">Stefano P.</dt>
|
||||
<dd class="field-even"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Lorenzo</dt>
|
||||
<dd class="field-odd"><p>3</p>
|
||||
</dd>
|
||||
<dt class="field-even">Stefano G.</dt>
|
||||
<dd class="field-even"><p>3</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Flavia</dt>
|
||||
<dd class="field-odd"><p>3</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li><dl class="field-list simple">
|
||||
<dt class="field-odd">Goal</dt>
|
||||
<dd class="field-odd"><p>Learn</p>
|
||||
</dd>
|
||||
<dt class="field-even">Question</dt>
|
||||
<dd class="field-even"><p>Does everyone keep up with the other players?</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Metric</dt>
|
||||
<dd class="field-odd"><p>Check during every sprint retrospective if every one is on point</p>
|
||||
</dd>
|
||||
<dt class="field-even">Evaluation</dt>
|
||||
<dd class="field-even"><dl class="field-list simple">
|
||||
<dt class="field-odd">1</dt>
|
||||
<dd class="field-odd"><p>totally lost</p>
|
||||
</dd>
|
||||
<dt class="field-even">5</dt>
|
||||
<dd class="field-even"><p>leads the game driving the other players</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dt class="field-odd">Chiara</dt>
|
||||
<dd class="field-odd"><p>3</p>
|
||||
</dd>
|
||||
<dt class="field-even">Giorgio</dt>
|
||||
<dd class="field-even"><p>4</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Giovanni</dt>
|
||||
<dd class="field-odd"><p>4</p>
|
||||
</dd>
|
||||
<dt class="field-even">Stefano P.</dt>
|
||||
<dd class="field-even"><p>4</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Lorenzo</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-even">Stefano G.</dt>
|
||||
<dd class="field-even"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Flavia</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li><dl class="field-list simple">
|
||||
<dt class="field-odd">Goal</dt>
|
||||
<dd class="field-odd"><p>Practice</p>
|
||||
</dd>
|
||||
<dt class="field-even">Question</dt>
|
||||
<dd class="field-even"><p>Are the game mechanics linear and repeatable?</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Metric</dt>
|
||||
<dd class="field-odd"><p>Opinions from the participants</p>
|
||||
</dd>
|
||||
<dt class="field-even">Evaluation</dt>
|
||||
<dd class="field-even"><dl class="field-list simple">
|
||||
<dt class="field-odd">1</dt>
|
||||
<dd class="field-odd"><p>feels the game is unrepeatable</p>
|
||||
</dd>
|
||||
<dt class="field-even">5</dt>
|
||||
<dd class="field-even"><p>feels the game could be played in any situation</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dt class="field-odd">Chiara</dt>
|
||||
<dd class="field-odd"><p>1</p>
|
||||
</dd>
|
||||
<dt class="field-even">Giorgio</dt>
|
||||
<dd class="field-even"><p>2</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Giovanni</dt>
|
||||
<dd class="field-odd"><p>1</p>
|
||||
</dd>
|
||||
<dt class="field-even">Stefano P.</dt>
|
||||
<dd class="field-even"><p>1</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Lorenzo</dt>
|
||||
<dd class="field-odd"><p>1</p>
|
||||
</dd>
|
||||
<dt class="field-even">Stefano G.</dt>
|
||||
<dd class="field-even"><p>2</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Flavia</dt>
|
||||
<dd class="field-odd"><p>1</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li><dl class="field-list simple">
|
||||
<dt class="field-odd">Goal</dt>
|
||||
<dd class="field-odd"><p>Practice</p>
|
||||
</dd>
|
||||
<dt class="field-even">Question</dt>
|
||||
<dd class="field-even"><p>Do team success in completing the game?</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Metric</dt>
|
||||
<dd class="field-odd"><p>Number of User Stories completed</p>
|
||||
</dd>
|
||||
<dt class="field-even">Evaluation</dt>
|
||||
<dd class="field-even"><dl class="field-list simple">
|
||||
<dt class="field-odd">1</dt>
|
||||
<dd class="field-odd"><p>0 to 3 stories</p>
|
||||
</dd>
|
||||
<dt class="field-even">2</dt>
|
||||
<dd class="field-even"><p>4 to 6</p>
|
||||
</dd>
|
||||
<dt class="field-odd">3</dt>
|
||||
<dd class="field-odd"><p>7 to 9</p>
|
||||
</dd>
|
||||
<dt class="field-even">4</dt>
|
||||
<dd class="field-even"><p>10 to 12</p>
|
||||
</dd>
|
||||
<dt class="field-odd">5</dt>
|
||||
<dd class="field-odd"><p>13 to 15</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dt class="field-even">Chiara</dt>
|
||||
<dd class="field-even"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Giorgio</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-even">Giovanni</dt>
|
||||
<dd class="field-even"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Stefano P.</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-even">Lorenzo</dt>
|
||||
<dd class="field-even"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Stefano G.</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-even">Flavia</dt>
|
||||
<dd class="field-even"><p>5</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li><dl class="field-list simple">
|
||||
<dt class="field-odd">Goal</dt>
|
||||
<dd class="field-odd"><p>Practice</p>
|
||||
</dd>
|
||||
<dt class="field-even">Question</dt>
|
||||
<dd class="field-even"><p>Do team members efficiently estimate during sprint planning?</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Metric</dt>
|
||||
<dd class="field-odd"><p>Uniformity in evaluating the size and the priority of user stories</p>
|
||||
</dd>
|
||||
<dt class="field-even">Evaluation</dt>
|
||||
<dd class="field-even"><dl class="field-list simple">
|
||||
<dt class="field-odd">1</dt>
|
||||
<dd class="field-odd"><p>abnormal difference from the other players</p>
|
||||
</dd>
|
||||
<dt class="field-even">5</dt>
|
||||
<dd class="field-even"><p>coherent and uniform with the group most of the time</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dt class="field-odd">Chiara</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-even">Giorgio</dt>
|
||||
<dd class="field-even"><p>4</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Giovanni</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-even">Stefano P.</dt>
|
||||
<dd class="field-even"><p>4</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Lorenzo</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li><dl class="field-list simple">
|
||||
<dt class="field-odd">Goal</dt>
|
||||
<dd class="field-odd"><p>Cooperation</p>
|
||||
</dd>
|
||||
<dt class="field-even">Question</dt>
|
||||
<dd class="field-even"><p>Do team members know each other better?</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Metric</dt>
|
||||
<dd class="field-odd"><p>Level of players” serenity throughout the game</p>
|
||||
</dd>
|
||||
<dt class="field-even">Evaluation</dt>
|
||||
<dd class="field-even"><dl class="field-list simple">
|
||||
<dt class="field-odd">1</dt>
|
||||
<dd class="field-odd"><p>never speaks with the other players</p>
|
||||
</dd>
|
||||
<dt class="field-even">5</dt>
|
||||
<dd class="field-even"><p>talks friendly to anyone in every situation</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dt class="field-odd">Chiara</dt>
|
||||
<dd class="field-odd"><p>4</p>
|
||||
</dd>
|
||||
<dt class="field-even">Giorgio</dt>
|
||||
<dd class="field-even"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Giovanni</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-even">Stefano P.</dt>
|
||||
<dd class="field-even"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Lorenzo</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-even">Stefano G.</dt>
|
||||
<dd class="field-even"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Flavia</dt>
|
||||
<dd class="field-odd"><p>4</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li><dl class="field-list simple">
|
||||
<dt class="field-odd">Goal</dt>
|
||||
<dd class="field-odd"><p>Cooperation</p>
|
||||
</dd>
|
||||
<dt class="field-even">Question</dt>
|
||||
<dd class="field-even"><p>Does the game let all players cooperate?</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Metric</dt>
|
||||
<dd class="field-odd"><p>Contribution of every player during the game</p>
|
||||
</dd>
|
||||
<dt class="field-even">Evaluation</dt>
|
||||
<dd class="field-even"><dl class="field-list simple">
|
||||
<dt class="field-odd">1</dt>
|
||||
<dd class="field-odd"><p>never puts effort in doing something</p>
|
||||
</dd>
|
||||
<dt class="field-even">5</dt>
|
||||
<dd class="field-even"><p>every time is willing to understand what is going on</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dt class="field-odd">Chiara</dt>
|
||||
<dd class="field-odd"><p>4</p>
|
||||
</dd>
|
||||
<dt class="field-even">Giorgio</dt>
|
||||
<dd class="field-even"><p>3</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Giovanni</dt>
|
||||
<dd class="field-odd"><p>3</p>
|
||||
</dd>
|
||||
<dt class="field-even">Stefano P.</dt>
|
||||
<dd class="field-even"><p>2</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Lorenzo</dt>
|
||||
<dd class="field-odd"><p>3</p>
|
||||
</dd>
|
||||
<dt class="field-even">Stefano G.</dt>
|
||||
<dd class="field-even"><p>4</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Flavia</dt>
|
||||
<dd class="field-odd"><p>3</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li><dl class="field-list simple">
|
||||
<dt class="field-odd">Goal</dt>
|
||||
<dd class="field-odd"><p>Cooperation</p>
|
||||
</dd>
|
||||
<dt class="field-even">Question</dt>
|
||||
<dd class="field-even"><p>Do team member consult each other about a topic?</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Metric</dt>
|
||||
<dd class="field-odd"><p>Sharing of ideas</p>
|
||||
</dd>
|
||||
<dt class="field-even">Evaluation</dt>
|
||||
<dd class="field-even"><dl class="field-list simple">
|
||||
<dt class="field-odd">1</dt>
|
||||
<dd class="field-odd"><p>never asks for an opinion</p>
|
||||
</dd>
|
||||
<dt class="field-even">5</dt>
|
||||
<dd class="field-even"><p>wants to discuss about every topic</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dt class="field-odd">Chiara</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-even">Giorgio</dt>
|
||||
<dd class="field-even"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Giovanni</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-even">Stefano P.</dt>
|
||||
<dd class="field-even"><p>3</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Lorenzo</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-even">Stefano G.</dt>
|
||||
<dd class="field-even"><p>4</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Flavia</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li><dl class="field-list simple">
|
||||
<dt class="field-odd">Goal</dt>
|
||||
<dd class="field-odd"><p>Motivation</p>
|
||||
</dd>
|
||||
<dt class="field-even">Question</dt>
|
||||
<dd class="field-even"><p>Do team members encourage collegues in need?</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Metric</dt>
|
||||
<dd class="field-odd"><p>Players explain something other players don’t understand</p>
|
||||
</dd>
|
||||
<dt class="field-even">Evaluation</dt>
|
||||
<dd class="field-even"><dl class="field-list simple">
|
||||
<dt class="field-odd">1</dt>
|
||||
<dd class="field-odd"><p>not involved by the game</p>
|
||||
</dd>
|
||||
<dt class="field-even">5</dt>
|
||||
<dd class="field-even"><p>always makes sure everyone is on point</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dt class="field-odd">Chiara</dt>
|
||||
<dd class="field-odd"><p>3</p>
|
||||
</dd>
|
||||
<dt class="field-even">Giorgio</dt>
|
||||
<dd class="field-even"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Giovanni</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-even">Stefano P.</dt>
|
||||
<dd class="field-even"><p>4</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Lorenzo</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-even">Stefano G.</dt>
|
||||
<dd class="field-even"><p>4</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Flavia</dt>
|
||||
<dd class="field-odd"><p>4</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li><dl class="field-list simple">
|
||||
<dt class="field-odd">Goal</dt>
|
||||
<dd class="field-odd"><p>Motivation</p>
|
||||
</dd>
|
||||
<dt class="field-even">Question</dt>
|
||||
<dd class="field-even"><p>Does PO help the team?</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Metric</dt>
|
||||
<dd class="field-odd"><p>Quality of PO’s advices to get better in the next sprints</p>
|
||||
</dd>
|
||||
<dt class="field-even">Evaluation</dt>
|
||||
<dd class="field-even"><dl class="field-list simple">
|
||||
<dt class="field-odd">1</dt>
|
||||
<dd class="field-odd"><p>poor/absent advices</p>
|
||||
</dd>
|
||||
<dt class="field-even">5</dt>
|
||||
<dd class="field-even"><p>wise and helpful suggestions when is required</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dt class="field-odd">Stefano G.</dt>
|
||||
<dd class="field-odd"><p>4</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li><dl class="field-list simple">
|
||||
<dt class="field-odd">Goal</dt>
|
||||
<dd class="field-odd"><p>Motivation</p>
|
||||
</dd>
|
||||
<dt class="field-even">Question</dt>
|
||||
<dd class="field-even"><p>Does the team come up with good ideas?</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Metric</dt>
|
||||
<dd class="field-odd"><p>Effectiveness of sprint retrospective</p>
|
||||
</dd>
|
||||
<dt class="field-even">Evaluation</dt>
|
||||
<dd class="field-even"><dl class="field-list simple">
|
||||
<dt class="field-odd">1</dt>
|
||||
<dd class="field-odd"><p>doesn’t express opinions during retrospective</p>
|
||||
</dd>
|
||||
<dt class="field-even">5</dt>
|
||||
<dd class="field-even"><p>feels the retrospective fundamental to express opinions</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dt class="field-odd">Chiara</dt>
|
||||
<dd class="field-odd"><p>4</p>
|
||||
</dd>
|
||||
<dt class="field-even">Giorgio</dt>
|
||||
<dd class="field-even"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Giovanni</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-even">Stefano P.</dt>
|
||||
<dd class="field-even"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Lorenzo</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-even">Stefano G.</dt>
|
||||
<dd class="field-even"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Flavia</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li><dl class="field-list simple">
|
||||
<dt class="field-odd">Goal</dt>
|
||||
<dd class="field-odd"><p>Problem Solving</p>
|
||||
</dd>
|
||||
<dt class="field-even">Question</dt>
|
||||
<dd class="field-even"><p>Do team members behave well when facing a problem?</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Metric</dt>
|
||||
<dd class="field-odd"><p>Level of the technical debt at the end of the game</p>
|
||||
</dd>
|
||||
<dt class="field-even">Evaluation</dt>
|
||||
<dd class="field-even"><p>On the game board, if the debt pawn is on the lowest stage,the evaluation is 5, for every higher stage it decreases by 1</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Chiara</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-even">Giorgio</dt>
|
||||
<dd class="field-even"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Giovanni</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-even">Stefano P.</dt>
|
||||
<dd class="field-even"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Lorenzo</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-even">Stefano G.</dt>
|
||||
<dd class="field-even"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Flavia</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li><dl class="field-list simple">
|
||||
<dt class="field-odd">Goal</dt>
|
||||
<dd class="field-odd"><p>Problem Solving</p>
|
||||
</dd>
|
||||
<dt class="field-even">Question</dt>
|
||||
<dd class="field-even"><p>Does team organize their tasks properly?</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Metric</dt>
|
||||
<dd class="field-odd"><p>Average of tasks left at the end of each sprint</p>
|
||||
</dd>
|
||||
<dt class="field-even">Evaluation</dt>
|
||||
<dd class="field-even"><dl class="field-list simple">
|
||||
<dt class="field-odd">1</dt>
|
||||
<dd class="field-odd"><p>21+ average tasks left</p>
|
||||
</dd>
|
||||
<dt class="field-even">2</dt>
|
||||
<dd class="field-even"><p>16-20 average tasks left</p>
|
||||
</dd>
|
||||
<dt class="field-odd">3</dt>
|
||||
<dd class="field-odd"><p>11-15 average tasks left</p>
|
||||
</dd>
|
||||
<dt class="field-even">4</dt>
|
||||
<dd class="field-even"><p>6-10 average tasks left</p>
|
||||
</dd>
|
||||
<dt class="field-odd">5</dt>
|
||||
<dd class="field-odd"><p>0-5 average tasks left</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dt class="field-even">Chiara</dt>
|
||||
<dd class="field-even"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Giorgio</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-even">Giovanni</dt>
|
||||
<dd class="field-even"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Stefano P.</dt>
|
||||
<dd class="field-odd"><p>5</p>
|
||||
</dd>
|
||||
<dt class="field-even">Lorenzo</dt>
|
||||
<dd class="field-even"><p>5</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li><dl class="field-list simple">
|
||||
<dt class="field-odd">Goal</dt>
|
||||
<dd class="field-odd"><p>Problem Solving</p>
|
||||
</dd>
|
||||
<dt class="field-even">Question</dt>
|
||||
<dd class="field-even"><p>Does PO plan efficiently the Sprint Backlog?</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Metric</dt>
|
||||
<dd class="field-odd"><p>Average of tasks left at the end of each sprint</p>
|
||||
</dd>
|
||||
<dt class="field-even">Evaluation</dt>
|
||||
<dd class="field-even"><dl class="field-list simple">
|
||||
<dt class="field-odd">1</dt>
|
||||
<dd class="field-odd"><p>21+ average tasks left</p>
|
||||
</dd>
|
||||
<dt class="field-even">2</dt>
|
||||
<dd class="field-even"><p>16-20 average tasks left</p>
|
||||
</dd>
|
||||
<dt class="field-odd">3</dt>
|
||||
<dd class="field-odd"><p>11-15 average tasks left</p>
|
||||
</dd>
|
||||
<dt class="field-even">4</dt>
|
||||
<dd class="field-even"><p>6-10 average tasks left</p>
|
||||
</dd>
|
||||
<dt class="field-odd">5</dt>
|
||||
<dd class="field-odd"><p>0-5 average tasks left</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dt class="field-even">Stefano G.</dt>
|
||||
<dd class="field-even"><p>5</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="section" id="statistiche">
|
||||
<h2>Statistiche<a class="headerlink" href="#statistiche" title="Link a questa intestazione">¶</a></h2>
|
||||
|
@ -552,10 +1167,24 @@
|
|||
<p>Questa statistica è stata generata dal prof. Marcello Missiroli con
|
||||
<a class="reference external" href="https://github.com/ejwa/gitinspector">Gitinspector</a> al termine dello Sprint.</p>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference download internal" download="" href="../../_downloads/b39447cc9fdf36619aeebedbc640599a/0-stats.html"><code class="xref download docutils literal notranslate"><span class="pre">Sprint</span> <span class="pre">0</span></code></a></p></li>
|
||||
<li><p><a class="reference download internal" download="" href="../../_downloads/b39447cc9fdf36619aeebedbc640599a/0-stats.html"><code class="xref download docutils literal notranslate"><span class="pre">0-stats.html</span></code></a></p></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="artefatti">
|
||||
<h2>Artefatti<a class="headerlink" href="#artefatti" title="Link a questa intestazione">¶</a></h2>
|
||||
<p>In questo sprint è stato realizzato il seguente documento:</p>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference download internal" download="" href="../../_downloads/d8e10120028bfd129b2cd34bea08128f/0-result.pdf"><code class="xref download docutils literal notranslate"><span class="pre">Documento</span> <span class="pre">generale</span> <span class="pre">dello</span> <span class="pre">Sprint</span> <span class="pre">0</span></code></a></p></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="sprint-review">
|
||||
<h2>Sprint review<a class="headerlink" href="#sprint-review" title="Link a questa intestazione">¶</a></h2>
|
||||
<p>Il video di sprint review è disponibile al seguente link:</p>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference external" href="https://drive.google.com/file/d/12worWEcx-uf2UP4_lnEOovHZpvR77MsG/view">https://drive.google.com/file/d/12worWEcx-uf2UP4_lnEOovHZpvR77MsG/view</a></p></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
|
||||
<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" />
|
||||
|
||||
|
||||
|
||||
|
@ -92,7 +93,7 @@
|
|||
</ul>
|
||||
<p class="caption"><span class="caption-text">Relazione sul progetto</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../goals.html">Obiettivo del progetto</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../goals.html">Introduzione</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../process.html">Processo di sviluppo</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../tools.html">Strumenti utilizzati</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../sprint0/index.html">Sprint 0: 04 Apr - 18 Apr</a></li>
|
||||
|
@ -131,6 +132,7 @@
|
|||
<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>
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
|
||||
<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" />
|
||||
|
||||
|
||||
|
||||
|
@ -92,7 +93,7 @@
|
|||
</ul>
|
||||
<p class="caption"><span class="caption-text">Relazione sul progetto</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../goals.html">Obiettivo del progetto</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../goals.html">Introduzione</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../process.html">Processo di sviluppo</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../tools.html">Strumenti utilizzati</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../sprint0/index.html">Sprint 0: 04 Apr - 18 Apr</a></li>
|
||||
|
@ -131,6 +132,7 @@
|
|||
<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>
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
|
||||
<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" />
|
||||
|
||||
|
||||
|
||||
|
@ -92,7 +93,7 @@
|
|||
</ul>
|
||||
<p class="caption"><span class="caption-text">Relazione sul progetto</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../goals.html">Obiettivo del progetto</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../goals.html">Introduzione</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../process.html">Processo di sviluppo</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../tools.html">Strumenti utilizzati</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../sprint0/index.html">Sprint 0: 04 Apr - 18 Apr</a></li>
|
||||
|
@ -132,6 +133,7 @@
|
|||
<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>
|
||||
|
|
4
docs/build/html/development/suggestions.html
vendored
|
@ -13,6 +13,7 @@
|
|||
|
||||
<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" />
|
||||
|
||||
|
||||
|
||||
|
@ -92,7 +93,7 @@
|
|||
</ul>
|
||||
<p class="caption"><span class="caption-text">Relazione sul progetto</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="goals.html">Obiettivo del progetto</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="goals.html">Introduzione</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="process.html">Processo di sviluppo</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="tools.html">Strumenti utilizzati</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="sprint0/index.html">Sprint 0: 04 Apr - 18 Apr</a></li>
|
||||
|
@ -106,6 +107,7 @@
|
|||
<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>
|
||||
|
|
13
docs/build/html/development/tools.html
vendored
|
@ -13,6 +13,7 @@
|
|||
|
||||
<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" />
|
||||
|
||||
|
||||
|
||||
|
@ -92,7 +93,7 @@
|
|||
</ul>
|
||||
<p class="caption"><span class="caption-text">Relazione sul progetto</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="goals.html">Obiettivo del progetto</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="goals.html">Introduzione</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="process.html">Processo di sviluppo</a></li>
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Strumenti utilizzati</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="sprint0/index.html">Sprint 0: 04 Apr - 18 Apr</a></li>
|
||||
|
@ -106,6 +107,7 @@
|
|||
<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>
|
||||
|
@ -215,6 +217,15 @@ il miglioramento della qualità del codice del progetto.</p>
|
|||
<p>È accessibile al seguente indirizzo: <a class="reference external" href="https://sonarqube.steffo.eu/">https://sonarqube.steffo.eu/</a></p>
|
||||
</div>
|
||||
</div></blockquote>
|
||||
<p><a class="reference external" href="https://www.figma.com/">Figma</a></p>
|
||||
<blockquote>
|
||||
<div><p>Applicazione web centralizzata per la creazione collaborativa di interfacce grafiche moderne.</p>
|
||||
</div></blockquote>
|
||||
<p><a class="reference external" href="https://discord.com/">Discord</a></p>
|
||||
<blockquote>
|
||||
<div><p>Piattaforma centralizzata di messaggistica istantanea e chiamate vocali utilizzata per la comunicazione sincrona
|
||||
tra i membri del team.</p>
|
||||
</div></blockquote>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
94
docs/build/html/genindex.html
vendored
|
@ -13,6 +13,7 @@
|
|||
|
||||
<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" />
|
||||
|
||||
|
||||
|
||||
|
@ -90,7 +91,7 @@
|
|||
</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">Obiettivo del progetto</a></li>
|
||||
<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>
|
||||
|
@ -104,6 +105,7 @@
|
|||
<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>
|
||||
|
@ -232,8 +234,12 @@
|
|||
</li>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.MadeOf.aid">aid (nest_backend.database.tables.MadeOf attributo)</a>
|
||||
</li>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Alert">Alert (classe in nest_backend.database.tables)</a>
|
||||
<li><a href="code/database/index.html#Alert">Alert (classe built-in)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Alert">(classe in nest_backend.database.tables)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.MadeOf.alert">alert (nest_backend.database.tables.MadeOf attributo)</a>
|
||||
|
||||
<ul>
|
||||
|
@ -255,11 +261,21 @@
|
|||
<li><a href="code/backend/index.html#nest_backend.database.tables.ConditionMode.all_or">all_or (nest_backend.database.tables.ConditionMode attributo)</a>
|
||||
</li>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.OperationType.assign">assign (nest_backend.database.tables.OperationType attributo)</a>
|
||||
</li>
|
||||
<li><a href="code/crawler/index.html#nest_crawler.associate_condition_tweet">associate_condition_tweet() (nel modulo nest_crawler)</a>
|
||||
</li>
|
||||
<li><a href="code/backend/index.html#nest_backend.gestione.authenticate">authenticate() (nel modulo nest_backend.gestione)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="code/crawler/index.html#nest_crawler.authenticate">(nel modulo nest_crawler)</a>
|
||||
</li>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Authorization">Authorization (classe in nest_backend.database.tables)</a>
|
||||
</ul></li>
|
||||
<li><a href="code/database/index.html#Authorization">Authorization (classe built-in)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Authorization">(classe in nest_backend.database.tables)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Repository.authorizations">authorizations (nest_backend.database.tables.Repository attributo)</a>
|
||||
|
||||
<ul>
|
||||
|
@ -278,10 +294,18 @@
|
|||
<li><a href="code/backend/index.html#nest_backend.database.tables.MadeOf.cid">(nest_backend.database.tables.MadeOf attributo)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Composed">Composed (classe in nest_backend.database.tables)</a>
|
||||
<li><a href="code/database/index.html#Composed">Composed (classe built-in)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Composed">(classe in nest_backend.database.tables)</a>
|
||||
</li>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Condition">Condition (classe in nest_backend.database.tables)</a>
|
||||
</ul></li>
|
||||
<li><a href="code/database/index.html#Condition">Condition (classe built-in)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Condition">(classe in nest_backend.database.tables)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Contains.condition">condition (nest_backend.database.tables.Contains attributo)</a>
|
||||
|
||||
<ul>
|
||||
|
@ -302,8 +326,12 @@
|
|||
</ul></li>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.ConditionType">ConditionType (classe in nest_backend.database.tables)</a>
|
||||
</li>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Contains">Contains (classe in nest_backend.database.tables)</a>
|
||||
<li><a href="code/database/index.html#Contains">Contains (classe built-in)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Contains">(classe in nest_backend.database.tables)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Condition.content">content (nest_backend.database.tables.Condition attributo)</a>
|
||||
|
||||
<ul>
|
||||
|
@ -380,15 +408,21 @@
|
|||
<li><a href="code/backend/index.html#nest_backend.database.tables.Repository.id">(nest_backend.database.tables.Repository attributo)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="code/backend/index.html#nest_backend.gestione.identity">identity() (nel modulo nest_backend.gestione)</a>
|
||||
</li>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Tweet.image_url">image_url (nest_backend.database.tables.Tweet attributo)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Tweet.insert_time">insert_time (nest_backend.database.tables.Tweet attributo)</a>
|
||||
</li>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Repository.is_active">is_active (nest_backend.database.tables.Repository attributo)</a>
|
||||
</li>
|
||||
<li><a href="code/crawler/index.html#nest_crawler.is_coordinate_inside_bounding_box">is_coordinate_inside_bounding_box() (nel modulo nest_crawler)</a>
|
||||
</li>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Repository.is_deleted">is_deleted (nest_backend.database.tables.Repository attributo)</a>
|
||||
</li>
|
||||
<li><a href="code/crawler/index.html#nest_crawler.is_repo_alert_triggered">is_repo_alert_triggered() (nel modulo nest_crawler)</a>
|
||||
</li>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.User.isAdmin">isAdmin (nest_backend.database.tables.User attributo)</a>
|
||||
</li>
|
||||
|
@ -428,8 +462,12 @@
|
|||
<h2 id="M">M</h2>
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.MadeOf">MadeOf (classe in nest_backend.database.tables)</a>
|
||||
<li><a href="code/database/index.html#MadeOf">MadeOf (classe built-in)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.MadeOf">(classe in nest_backend.database.tables)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li>
|
||||
modulo
|
||||
|
||||
|
@ -503,8 +541,12 @@
|
|||
<li><a href="code/crawler/index.html#module-nest_crawler">modulo</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Notification">Notification (classe in nest_backend.database.tables)</a>
|
||||
<li><a href="code/database/index.html#Notification">Notification (classe built-in)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Notification">(classe in nest_backend.database.tables)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Alert.notifications">notifications (nest_backend.database.tables.Alert attributo)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
|
@ -553,8 +595,12 @@
|
|||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Tweet.repositories">repositories (nest_backend.database.tables.Tweet attributo)</a>
|
||||
</li>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Repository">Repository (classe in nest_backend.database.tables)</a>
|
||||
<li><a href="code/database/index.html#Repository">Repository (classe built-in)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Repository">(classe in nest_backend.database.tables)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Alert.repository">repository (nest_backend.database.tables.Alert attributo)</a>
|
||||
|
||||
<ul>
|
||||
|
@ -586,6 +632,14 @@
|
|||
|
||||
<h2 id="S">S</h2>
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="code/crawler/index.html#nest_crawler.search_repo_conditions">search_repo_conditions() (nel modulo nest_crawler)</a>
|
||||
</li>
|
||||
<li><a href="code/crawler/index.html#nest_crawler.send_notification_email">send_notification_email() (nel modulo nest_crawler)</a>
|
||||
</li>
|
||||
<li><a href="code/crawler/index.html#nest_crawler.send_notification_tweet">send_notification_tweet() (nel modulo nest_crawler)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Composed.snowflake">snowflake (nest_backend.database.tables.Composed attributo)</a>
|
||||
|
||||
|
@ -595,8 +649,6 @@
|
|||
<li><a href="code/backend/index.html#nest_backend.database.tables.Tweet.snowflake">(nest_backend.database.tables.Tweet attributo)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Repository.start">start (nest_backend.database.tables.Repository attributo)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
|
@ -625,8 +677,12 @@
|
|||
</ul></li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Tweet">Tweet (classe in nest_backend.database.tables)</a>
|
||||
<li><a href="code/database/index.html#Tweet">Tweet (classe built-in)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Tweet">(classe in nest_backend.database.tables)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Composed.tweet">tweet (nest_backend.database.tables.Composed attributo)</a>
|
||||
|
||||
<ul>
|
||||
|
@ -647,16 +703,20 @@
|
|||
<h2 id="U">U</h2>
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.User">User (classe in nest_backend.database.tables)</a>
|
||||
<li><a href="code/database/index.html#User">User (classe built-in)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.User">(classe in nest_backend.database.tables)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.Authorization.user">user (nest_backend.database.tables.Authorization attributo)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.ConditionType.user">(nest_backend.database.tables.ConditionType attributo)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="code/backend/index.html#nest_backend.database.tables.User.username">username (nest_backend.database.tables.User attributo)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
|
|
4
docs/build/html/guide/about.html
vendored
|
@ -13,6 +13,7 @@
|
|||
|
||||
<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" />
|
||||
|
||||
|
||||
|
||||
|
@ -96,7 +97,7 @@
|
|||
</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">Obiettivo del progetto</a></li>
|
||||
<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>
|
||||
|
@ -110,6 +111,7 @@
|
|||
<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>
|
||||
|
|
8
docs/build/html/guide/installation.html
vendored
|
@ -13,6 +13,7 @@
|
|||
|
||||
<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" />
|
||||
|
||||
|
||||
|
||||
|
@ -39,7 +40,7 @@
|
|||
|
||||
<link rel="index" title="Indice" href="../genindex.html" />
|
||||
<link rel="search" title="Cerca" href="../search.html" />
|
||||
<link rel="next" title="Obiettivo del progetto" href="../development/goals.html" />
|
||||
<link rel="next" title="Introduzione" href="../development/goals.html" />
|
||||
<link rel="prev" title="Il progetto in breve" href="about.html" />
|
||||
</head>
|
||||
|
||||
|
@ -107,7 +108,7 @@
|
|||
</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">Obiettivo del progetto</a></li>
|
||||
<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>
|
||||
|
@ -121,6 +122,7 @@
|
|||
<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>
|
||||
|
@ -474,7 +476,7 @@ esempio da adattare al proprio setup:</p>
|
|||
</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="Obiettivo del progetto" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
<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="about.html" class="btn btn-neutral float-left" title="Il progetto in breve" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
</div>
|
||||
|
||||
|
|
67
docs/build/html/index.html
vendored
|
@ -13,6 +13,7 @@
|
|||
|
||||
<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" />
|
||||
|
||||
|
||||
|
||||
|
@ -91,7 +92,7 @@
|
|||
</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">Obiettivo del progetto</a></li>
|
||||
<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>
|
||||
|
@ -105,6 +106,7 @@
|
|||
<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>
|
||||
|
@ -207,8 +209,12 @@
|
|||
<div class="toctree-wrapper compound">
|
||||
<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">Obiettivo del progetto</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="development/goals.html#scope">Scope</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="development/goals.html">Introduzione</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="development/goals.html#obiettivo">Obiettivo</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="development/goals.html#campo-di-applicazione">Campo di applicazione</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="development/goals.html#caratteristiche-degli-utenti">Caratteristiche degli utenti</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="development/goals.html#glossario">Glossario</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="development/goals.html#macro-funzionalita">Macro-funzionalità</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="development/goals.html#casi-d-uso">Casi d’uso</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="development/goals.html#backlog-generale">Backlog generale</a></li>
|
||||
</ul>
|
||||
|
@ -217,12 +223,13 @@
|
|||
<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><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="development/sprint0/index.html#consegna">Consegna</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="development/sprint0/index.html#goal">Goal</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="development/sprint0/index.html#backlog">Backlog</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="development/sprint0/index.html#definition-of-done">Definition of done</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="development/sprint0/index.html#definition-of-ready">Definition of Ready</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="development/sprint0/index.html#definition-of-done">Definition of Done</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="development/sprint0/index.html#registro-attivita">Registro attività</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="development/sprint0/index.html#risultati-della-partita-di-scrumble">Risultati della partita di Scrumble</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="development/sprint0/index.html#statistiche">Statistiche</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="development/sprint0/index.html#artefatti">Artefatti</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="development/sprint0/index.html#sprint-review">Sprint review</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="development/sprint1/index.html">Sprint 1: 19 Apr - 02 Mag</a><ul>
|
||||
|
@ -273,6 +280,7 @@
|
|||
<li class="toctree-l2"><a class="reference internal" href="code/meta/index.html#compilazione-con-windows-powershell">Compilazione con Windows Powershell</a></li>
|
||||
</ul>
|
||||
</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><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="code/backend/index.html#module-nest_backend.gestione"><code class="docutils literal notranslate"><span class="pre">.gestione</span></code> - Metodi di utility</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="code/backend/index.html#module-nest_backend.database"><code class="docutils literal notranslate"><span class="pre">.database</span></code> - Database</a><ul>
|
||||
|
@ -287,6 +295,12 @@
|
|||
<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 class="system-message">
|
||||
<p class="system-message-title">System Message: WARNING/2 (<span class="docutils literal">/mnt/tera/ext4/code/g2-progetto-2/docs/source/index.rst</span>, line 40)</p>
|
||||
<p>toctree contains reference to nonexisting document “development/clientinterview”</p>
|
||||
</div>
|
||||
<div class="toctree-wrapper compound">
|
||||
</div>
|
||||
<div class="section" id="cose-rimaste-da-fare">
|
||||
<h2>Cose rimaste da fare<a class="headerlink" href="#cose-rimaste-da-fare" title="Link a questa intestazione">¶</a></h2>
|
||||
<div class="admonition-todo admonition">
|
||||
|
@ -309,24 +323,14 @@
|
|||
<p class="todo-source">(L'<a class="reference internal" href="development/conclusions.html#id1"><em>riga originale</em></a> si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/development/conclusions.rst, linea 4.)</p>
|
||||
<div class="admonition-todo admonition">
|
||||
<p class="admonition-title">Da fare</p>
|
||||
<p>Scrivere l’obiettivo generale del progetto.</p>
|
||||
<p>Lasciamo il tempo al futuro?</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 4.)</p>
|
||||
<div class="admonition-todo admonition">
|
||||
<p class="admonition-title">Da fare</p>
|
||||
<p>Scrivere lo scope del progetto.</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#id2"><em>riga originale</em></a> si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/development/goals.rst, linea 12.)</p>
|
||||
<div class="admonition-todo admonition">
|
||||
<p class="admonition-title">Da fare</p>
|
||||
<p>Scrivere i casi d’uso del progetto.</p>
|
||||
</div>
|
||||
<p class="todo-source">(L'<a class="reference internal" href="development/goals.html#id3"><em>riga originale</em></a> si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/development/goals.rst, linea 20.)</p>
|
||||
<div class="admonition-todo admonition">
|
||||
<p class="admonition-title">Da fare</p>
|
||||
<p>Elencare qui tutte le user story del backlog, senza specificare lo sprint in cui sono state realizzate.</p>
|
||||
</div>
|
||||
<p class="todo-source">(L'<a class="reference internal" href="development/goals.html#id4"><em>riga originale</em></a> si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/development/goals.rst, linea 28.)</p>
|
||||
<p class="todo-source">(L'<a class="reference internal" href="development/goals.html#id2"><em>riga originale</em></a> si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/development/goals.rst, linea 64.)</p>
|
||||
<div class="admonition-todo admonition">
|
||||
<p class="admonition-title">Da fare</p>
|
||||
<p>Descrivere genericamente il processo di sviluppo seguito, includendo:</p>
|
||||
|
@ -341,31 +345,6 @@ retrospettiva finale»</p>
|
|||
<p class="admonition-title">Da fare</p>
|
||||
<p>Inserire informazioni generali sullo sprint, come inizio e fine.</p>
|
||||
</div>
|
||||
<p class="todo-source">(L'<a class="reference internal" href="development/sprint0/index.html#id1"><em>riga originale</em></a> si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/development/sprint0/index.rst, linea 4.)</p>
|
||||
<div class="admonition-todo admonition">
|
||||
<p class="admonition-title">Da fare</p>
|
||||
<p>Inserire qui lo sprint goal.</p>
|
||||
</div>
|
||||
<p class="todo-source">(L'<a class="reference internal" href="development/sprint0/index.html#id2"><em>riga originale</em></a> si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/development/sprint0/index.rst, linea 21.)</p>
|
||||
<div class="admonition-todo admonition">
|
||||
<p class="admonition-title">Da fare</p>
|
||||
<p>Mostrare qui lo sprint backlog di Taiga.</p>
|
||||
</div>
|
||||
<p class="todo-source">(L'<a class="reference internal" href="development/sprint0/index.html#id3"><em>riga originale</em></a> si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/development/sprint0/index.rst, linea 29.)</p>
|
||||
<div class="admonition-todo admonition">
|
||||
<p class="admonition-title">Da fare</p>
|
||||
<p>Inserire qui la definition of done dello sprint.</p>
|
||||
</div>
|
||||
<p class="todo-source">(L'<a class="reference internal" href="development/sprint0/index.html#id4"><em>riga originale</em></a> si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/development/sprint0/index.rst, linea 37.)</p>
|
||||
<div class="admonition-todo admonition">
|
||||
<p class="admonition-title">Da fare</p>
|
||||
<p>Trascrivere qui i risultati della partita di Scrumble.</p>
|
||||
</div>
|
||||
<p class="todo-source">(L'<a class="reference internal" href="development/sprint0/index.html#id5"><em>riga originale</em></a> si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/development/sprint0/index.rst, linea 275.)</p>
|
||||
<div class="admonition-todo admonition">
|
||||
<p class="admonition-title">Da fare</p>
|
||||
<p>Inserire informazioni generali sullo sprint, come inizio e fine.</p>
|
||||
</div>
|
||||
<p class="todo-source">(L'<a class="reference internal" href="development/sprint1/index.html#id1"><em>riga originale</em></a> si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/development/sprint1/index.rst, linea 4.)</p>
|
||||
<div class="admonition-todo admonition">
|
||||
<p class="admonition-title">Da fare</p>
|
||||
|
|
BIN
docs/build/html/objects.inv
vendored
4
docs/build/html/py-modindex.html
vendored
|
@ -13,6 +13,7 @@
|
|||
|
||||
<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" />
|
||||
|
||||
|
||||
|
||||
|
@ -93,7 +94,7 @@
|
|||
</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">Obiettivo del progetto</a></li>
|
||||
<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>
|
||||
|
@ -107,6 +108,7 @@
|
|||
<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>
|
||||
|
|
4
docs/build/html/search.html
vendored
|
@ -13,6 +13,7 @@
|
|||
|
||||
<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" />
|
||||
|
||||
|
||||
|
||||
|
@ -93,7 +94,7 @@
|
|||
</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">Obiettivo del progetto</a></li>
|
||||
<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>
|
||||
|
@ -107,6 +108,7 @@
|
|||
<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>
|
||||
|
|
2
docs/build/html/searchindex.js
vendored
7
docs/source/_static/custom.css
Normal file
|
@ -0,0 +1,7 @@
|
|||
dl > dd > dl {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
li > dl {
|
||||
margin-bottom: 24px !important;
|
||||
}
|
|
@ -32,6 +32,8 @@
|
|||
``.routes`` - Percorsi API
|
||||
--------------------------
|
||||
|
||||
.. automodule:: nest_backend.database.routes
|
||||
:imported-members:
|
||||
.. note::
|
||||
|
||||
La documentazione dei percorsi API è gestita da Swagger UI, disponibile a ``/docs`` una volta che il webserver
|
||||
del backend è avviato.
|
||||
|
||||
|
|
|
@ -2,3 +2,4 @@
|
|||
====================================
|
||||
|
||||
.. automodule:: nest_crawler
|
||||
:imported-members:
|
||||
|
|
265
docs/source/code/database/index.rst
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
|
|
@ -74,8 +74,6 @@ html_theme_options = {
|
|||
html_static_path = ['_static']
|
||||
|
||||
|
||||
|
||||
|
||||
# -- Intersphinx options -----------------------------------------------------
|
||||
|
||||
intersphinx_mapping = {
|
||||
|
@ -93,6 +91,12 @@ intersphinx_mapping = {
|
|||
}
|
||||
|
||||
|
||||
# -- Setup function ----------------------------------------------------------
|
||||
|
||||
def setup(app):
|
||||
app.add_css_file('custom.css')
|
||||
|
||||
|
||||
# -- Extension configuration -------------------------------------------------
|
||||
|
||||
todo_include_todos = True
|
||||
|
@ -105,6 +109,5 @@ autodoc_default_options = {
|
|||
'member-order': 'bysource',
|
||||
'special-members': '__init__',
|
||||
'undoc-members': True,
|
||||
'show-inheritance': True,
|
||||
'show-inheritance': False,
|
||||
}
|
||||
|
||||
|
|
BIN
docs/source/development/Backlog1.PNG
Normal file
After Width: | Height: | Size: 677 KiB |
BIN
docs/source/development/Backlog2.PNG
Normal file
After Width: | Height: | Size: 396 KiB |
BIN
docs/source/development/Backlog3.PNG
Normal file
After Width: | Height: | Size: 538 KiB |
BIN
docs/source/development/Backlog4.PNG
Normal file
After Width: | Height: | Size: 394 KiB |
BIN
docs/source/development/Backlog5.PNG
Normal file
After Width: | Height: | Size: 449 KiB |
BIN
docs/source/development/Burndown1.png
Normal file
After Width: | Height: | Size: 68 KiB |
BIN
docs/source/development/Burndown2.png
Normal file
After Width: | Height: | Size: 74 KiB |
BIN
docs/source/development/Burndown3.png
Normal file
After Width: | Height: | Size: 75 KiB |
BIN
docs/source/development/Burndown4.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
docs/source/development/CasiUso1.PNG
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
docs/source/development/CasiUso2.PNG
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
docs/source/development/CasiUso3.PNG
Normal file
After Width: | Height: | Size: 73 KiB |
BIN
docs/source/development/CasiUso4.PNG
Normal file
After Width: | Height: | Size: 127 KiB |
BIN
docs/source/development/CasiUso5.PNG
Normal file
After Width: | Height: | Size: 79 KiB |
BIN
docs/source/development/CasiUso6.PNG
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
docs/source/development/Utenti.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
|
@ -1,30 +1,152 @@
|
|||
Obiettivo del progetto
|
||||
======================
|
||||
Introduzione
|
||||
============
|
||||
|
||||
.. todo::
|
||||
Lasciamo il tempo al futuro?
|
||||
|
||||
Scrivere l'obiettivo generale del progetto.
|
||||
Obiettivo
|
||||
---------
|
||||
|
||||
L'obiettivo del progetto è la creazione di un software per fornire l'aggregazione e l'analisi di `Tweet`_, in modo da
|
||||
rilevare eventi *macroscopici*, *locali* o più semplicemente filtrarli in base a delle *keyword*.
|
||||
|
||||
Il prodotto sarà utilizzato dal cliente e da un piccolo gruppo di suoi dipendenti per effettuare ricerche statistiche.
|
||||
|
||||
Il software andrà ad integrarsi direttamente con `Twitter`_, da cui verranno raccolti dati e su cui verranno pubblicate
|
||||
allerte su di essi.
|
||||
|
||||
.. _Tweet: https://help.twitter.com/it/using-twitter#tweets
|
||||
.. _Twitter: https://twitter.com/
|
||||
|
||||
|
||||
Scope
|
||||
-----
|
||||
Campo di applicazione
|
||||
---------------------
|
||||
|
||||
Il software trova utilizzo principalmente in **ambito statistico**, essendo il suo scopo quello di raccogliere dati e
|
||||
permettere di analizzarli tramite un'interfaccia grafica.
|
||||
|
||||
|
||||
Caratteristiche degli utenti
|
||||
----------------------------
|
||||
|
||||
Il software potrà essere utilizzato da utenti con una discreta esperienza nell'analisi di dati ma senza particolari
|
||||
conoscenze informatiche.
|
||||
|
||||
Glossario
|
||||
---------
|
||||
|
||||
Repository
|
||||
Raccolta di tweet che soddisfano determinate condizioni.
|
||||
|
||||
Condizione
|
||||
Predicato logico che deve essere soddisfatto da un tweet per essere raccolto in fase di raccolta dati, o per essere
|
||||
contato in fase di allertamento utente.
|
||||
|
||||
Filtro
|
||||
Predicato logico che deve essere soddisfatto da un tweet per essere visualizzato in fase di analisi dati.
|
||||
|
||||
Allarme
|
||||
Notifica inviata all'utente attraverso un mezzo telematico, come email oppure un tweet.
|
||||
|
||||
Utente
|
||||
Utilizzatore del software con un proprio account creato dall'amministratore della piattaforma.
|
||||
|
||||
In particolare, la piattaforma prevederà due tipologie di utenti:
|
||||
|
||||
Utente regolare
|
||||
Potranno eseguire attività di creazione, analisi, condivisione, archiviazione ed eliminazione dei propri repository.
|
||||
|
||||
Utente amministratore
|
||||
Potrà effettuare tutte le attività dell'utente regolare, e in aggiunta potrà creare ed eliminare nuovi utenti
|
||||
regolari.
|
||||
|
||||
|
||||
.. todo::
|
||||
Estendere il glossario qualora vengano incontrati altri termini.
|
||||
|
||||
Scrivere lo scope del progetto.
|
||||
|
||||
Macro-funzionalità
|
||||
------------------
|
||||
|
||||
Il software permetterà di selezionare **condizioni** con cui scegliere quali tweet raccogliere:
|
||||
|
||||
- in base ai loro `hashtag`_
|
||||
- in base al loro autore
|
||||
- in base alla loro `posizione geografica`_ (ove presente)
|
||||
- in base alla loro data di pubblicazione
|
||||
|
||||
Selezionate le condizioni, l'utente potrà creare una **repository**: una cartella in cui verranno raccolti i tweet
|
||||
soddisfacenti le condizioni richieste.
|
||||
|
||||
Una volta raccolti, i tweet di una repository potranno essere **analizzati** in qualsiasi momento: durante l'analisi,
|
||||
saranno mostrate statistiche e grafici relativi ai tweet.
|
||||
|
||||
La raccolta potrà essere interrotta in qualsiasi momento **archiviando** il repository.
|
||||
|
||||
Sarà possibile **condividere** una repository con altri utenti della piattaforma, permettendo loro di analizzarla.
|
||||
|
||||
Infine, l'utente potrà configurare una repository in modo che gli invii una **allerta** qualora vengano raccolti un dato
|
||||
numero di tweet in una certa *finestra temporale*.
|
||||
|
||||
.. _hashtag: https://help.twitter.com/it/using-twitter/how-to-use-hashtags
|
||||
.. _posizione geografica: https://help.twitter.com/en/safety-and-security/tweet-location-settings
|
||||
|
||||
|
||||
Casi d'uso
|
||||
----------
|
||||
|
||||
.. todo::
|
||||
N.E.S.T. prevede tre tipologie di *agenti* ("utenti" UML): **utente**, **amministratore** e **sistema**.
|
||||
|
||||
Scrivere i casi d'uso del progetto.
|
||||
.. image:: Utenti.png
|
||||
|
||||
I principali casi d’uso individuati durante la progettazione di N.E.S.T. sono:
|
||||
|
||||
- La gestione degli utenti da parte di un Amministratore:
|
||||
|
||||
.. image:: CasiUso1.PNG
|
||||
:width: 400
|
||||
|
||||
- La gestione del login da parte di un Utente:
|
||||
|
||||
.. image:: CasiUso2.PNG
|
||||
:width: 400
|
||||
|
||||
- La gestione delle Allerte sia dal punto di vista dell’Utente che del Sistema:
|
||||
|
||||
.. image:: CasiUso3.PNG
|
||||
:width: 800
|
||||
|
||||
- La gestione della raccolta da parte dell'utente:
|
||||
|
||||
.. image:: CasiUso4.PNG
|
||||
:width: 400
|
||||
|
||||
- La gestione di un repository da parte dell'utente:
|
||||
|
||||
.. image:: CasiUso5.PNG
|
||||
:width: 400
|
||||
|
||||
- La visualizzazione di un repository:
|
||||
|
||||
.. image:: CasiUso6.PNG
|
||||
:width: 400
|
||||
|
||||
|
||||
Backlog generale
|
||||
----------------
|
||||
|
||||
.. todo::
|
||||
Si riporta qui di seguito il Backlog definito ad inizio progetto, prima dell’avvio dello sviluppo.
|
||||
Gli elementi dal bordo grigio sono le epiche:
|
||||
|
||||
Elencare qui tutte le user story del backlog, senza specificare lo sprint in cui sono state realizzate.
|
||||
.. note::
|
||||
Alcune user story sono state rimosse in seguito al feedback ricevuto durante il primo sprint!
|
||||
|
||||
.. image:: Backlog1.PNG
|
||||
|
||||
.. image:: Backlog2.PNG
|
||||
|
||||
.. image:: Backlog3.PNG
|
||||
|
||||
.. image:: Backlog4.PNG
|
||||
|
||||
.. image:: Backlog5.PNG
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
Registro attività
|
||||
=================
|
||||
|
||||
Questo registro attività delinea le attività effettuate dai membri del team e ne indica la durata.
|
||||
|
||||
.. note::
|
||||
|
||||
Per informazioni più dettagliate sulle attività di sviluppo, si suggerisce di guardare il log dei commit di Git:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
nest:g2-progetto$ git log
|
||||
|
||||
|
||||
|
||||
Sprint 1: 19 Apr - 02 Mag
|
||||
-------------------------
|
||||
|
||||
|
||||
Sprint 2: 03 Mag - 16 Mag
|
||||
-------------------------
|
||||
|
||||
|
||||
|
|
@ -1,11 +1,46 @@
|
|||
Processo di sviluppo
|
||||
====================
|
||||
|
||||
Lo sviluppo è stato suddiviso in 4 sprint, ciascuno della durata di 2 settimane:
|
||||
Sprint 0 - dal 5 Aprile al 18 Aprile
|
||||
`Diari`_ dei partecipanti
|
||||
`Retrospettiva`_ dello sprint 0
|
||||
.. _Diari: http://localhost:63342/N.E.S.T./Modulo%20unico/docs/build/html/development/sprint0/index.html#registro-attivita
|
||||
.. _Retrospettiva: http://localhost:63342/N.E.S.T./Modulo%20unico/docs/build/html/development/sprint0/index.html#retrospettiva-finale
|
||||
Sprint 1 - dal 19 Aprile al 2 Maggio
|
||||
Burndown dello sprint 1
|
||||
.. image:: Burndown1.png
|
||||
:width: 400
|
||||
`Diari`_ dei partecipanti
|
||||
`Retrospettiva`_ dello sprint 1
|
||||
.. _Diari: http://localhost:63342/N.E.S.T./Modulo%20unico/docs/build/html/development/sprint1/index.html#registro-attivita
|
||||
.. _Retrospettiva: http://localhost:63342/N.E.S.T./Modulo%20unico/docs/build/html/development/sprint1/index.html#retrospettiva-finale
|
||||
Sprint 2 - dal 3 Maggio al 16 Maggio
|
||||
Burndown dello sprint 2
|
||||
.. image:: Burndown2.png
|
||||
:width: 400
|
||||
`Diari`_ dei partecipanti
|
||||
`Retrospettiva`_ dello sprint 2
|
||||
.. _Diari: http://localhost:63342/N.E.S.T./Modulo%20unico/docs/build/html/development/sprint2/index.html#registro-attivita
|
||||
.. _Retrospettiva: http://localhost:63342/N.E.S.T./Modulo%20unico/docs/build/html/development/sprint2/index.html#retrospettiva-finale
|
||||
Sprint 3 - dal 19 Maggio al 30 Maggio
|
||||
Burndown dello sprint 3
|
||||
.. image:: Burndown3.png
|
||||
:width: 400
|
||||
`Diari`_ dei partecipanti
|
||||
`Retrospettiva`_ dello sprint 3
|
||||
.. _Diari: http://localhost:63342/N.E.S.T./Modulo%20unico/docs/build/html/development/sprint3/index.html#registro-attivita
|
||||
.. _Retrospettiva: http://localhost:63342/N.E.S.T./Modulo%20unico/docs/build/html/development/sprint3/index.html#retrospettiva-finale
|
||||
In generale:
|
||||
Burndown totale
|
||||
.. image:: Burndown4.png
|
||||
:width: 400
|
||||
|
||||
.. todo::
|
||||
|
||||
Descrivere genericamente il processo di sviluppo seguito, includendo:
|
||||
|
||||
"numero e durata degli sprint, burndown complessivo, diari dei partecipanti e/o diario di gruppo,
|
||||
burndown complessivo, diari dei partecipanti e/o diario di gruppo,
|
||||
retrospettiva finale"
|
||||
|
||||
Visto che i diari e la retrospettiva li abbiamo già altrove, suggerirei di metterci solo un link usando ``:ref:``.
|
||||
|
|
|
@ -1,11 +1,6 @@
|
|||
Sprint 0: 04 Apr - 18 Apr
|
||||
=========================
|
||||
|
||||
.. todo::
|
||||
|
||||
Inserire informazioni generali sullo sprint, come inizio e fine.
|
||||
|
||||
|
||||
Consegna
|
||||
--------
|
||||
|
||||
|
@ -15,28 +10,28 @@ La seguente documentazione è stata fornita dal cliente durante questo sprint:
|
|||
- :download:`Sprint 0 <0-sprint-requirements.pdf>`
|
||||
|
||||
|
||||
Goal
|
||||
----
|
||||
Definition of Ready
|
||||
-------------------
|
||||
|
||||
.. todo::
|
||||
Il team ha definito lo stato di Ready di una User Story in base ai seguenti criteri:
|
||||
|
||||
Inserire qui lo sprint goal.
|
||||
* La User Story è stata compresa ed accettata da tutti i membri
|
||||
* I tester hanno confermato la possibilità di poterla testare
|
||||
* Il Product Owner ha la visione necessaria per definirne la priorità
|
||||
* Il Team è in grado di stimarla
|
||||
* La User Story è indipendente o dipendente da altre a priorità maggiore
|
||||
|
||||
|
||||
Backlog
|
||||
-------
|
||||
|
||||
.. todo::
|
||||
|
||||
Mostrare qui lo sprint backlog di Taiga.
|
||||
|
||||
|
||||
Definition of done
|
||||
Definition of Done
|
||||
------------------
|
||||
|
||||
.. todo::
|
||||
La definizione di Done è stata concordata da tutto il team con il Product Owner, ed è stata così
|
||||
definita:
|
||||
|
||||
Inserire qui la definition of done dello sprint.
|
||||
* Sviluppo completo della funzionalità richiesta
|
||||
* Definizione e superamento dei test
|
||||
* Bozza della documentazione della funzionalità
|
||||
* Merge dei sorgenti nel branch ``main`` del repository Git
|
||||
|
||||
|
||||
Registro attività
|
||||
|
@ -171,7 +166,7 @@ Chiara Calzolari
|
|||
- Durata
|
||||
- Attività
|
||||
* -
|
||||
-
|
||||
- 12h 30m
|
||||
- Totale
|
||||
|
||||
* - 2021-04-09
|
||||
|
@ -272,9 +267,192 @@ Lorenzo Balugani
|
|||
Risultati della partita di Scrumble
|
||||
-----------------------------------
|
||||
|
||||
.. todo::
|
||||
#. :Goal: Learn
|
||||
:Question: Do team members understand the Scrum roles?
|
||||
:Metric: Knowledge of Scrum roles by questions
|
||||
:Evaluation: :1: no idea of the Scrum roles
|
||||
:5: perfect knowledge of the roles and their jobs
|
||||
:Chiara: 4
|
||||
:Giorgio: 4
|
||||
:Giovanni: 4
|
||||
:Stefano P.: 4
|
||||
:Lorenzo: 5
|
||||
:Stefano G.: 5
|
||||
:Flavia: 4
|
||||
|
||||
Trascrivere qui i risultati della partita di Scrumble.
|
||||
#. :Goal: Learn
|
||||
:Question: Do team members feel they learned the process?
|
||||
:Metric: Opinions from the participants
|
||||
:Evaluation: :1: couldn't repeat the game
|
||||
:5: could play the game as a Scrum Master by himself
|
||||
:Chiara: 3
|
||||
:Giorgio: 3
|
||||
:Giovanni: 4
|
||||
:Stefano P.: 5
|
||||
:Lorenzo: 3
|
||||
:Stefano G.: 3
|
||||
:Flavia: 3
|
||||
|
||||
#. :Goal: Learn
|
||||
:Question: Does everyone keep up with the other players?
|
||||
:Metric: Check during every sprint retrospective if every one is on point
|
||||
:Evaluation: :1: totally lost
|
||||
:5: leads the game driving the other players
|
||||
:Chiara: 3
|
||||
:Giorgio: 4
|
||||
:Giovanni: 4
|
||||
:Stefano P.: 4
|
||||
:Lorenzo: 5
|
||||
:Stefano G.: 5
|
||||
:Flavia: 5
|
||||
|
||||
#. :Goal: Practice
|
||||
:Question: Are the game mechanics linear and repeatable?
|
||||
:Metric: Opinions from the participants
|
||||
:Evaluation: :1: feels the game is unrepeatable
|
||||
:5: feels the game could be played in any situation
|
||||
:Chiara: 1
|
||||
:Giorgio: 2
|
||||
:Giovanni: 1
|
||||
:Stefano P.: 1
|
||||
:Lorenzo: 1
|
||||
:Stefano G.: 2
|
||||
:Flavia: 1
|
||||
|
||||
#. :Goal: Practice
|
||||
:Question: Do team success in completing the game?
|
||||
:Metric: Number of User Stories completed
|
||||
:Evaluation: :1: 0 to 3 stories
|
||||
:2: 4 to 6
|
||||
:3: 7 to 9
|
||||
:4: 10 to 12
|
||||
:5: 13 to 15
|
||||
:Chiara: 5
|
||||
:Giorgio: 5
|
||||
:Giovanni: 5
|
||||
:Stefano P.: 5
|
||||
:Lorenzo: 5
|
||||
:Stefano G.: 5
|
||||
:Flavia: 5
|
||||
|
||||
#. :Goal: Practice
|
||||
:Question: Do team members efficiently estimate during sprint planning?
|
||||
:Metric: Uniformity in evaluating the size and the priority of user stories
|
||||
:Evaluation: :1: abnormal difference from the other players
|
||||
:5: coherent and uniform with the group most of the time
|
||||
:Chiara: 5
|
||||
:Giorgio: 4
|
||||
:Giovanni: 5
|
||||
:Stefano P.: 4
|
||||
:Lorenzo: 5
|
||||
|
||||
#. :Goal: Cooperation
|
||||
:Question: Do team members know each other better?
|
||||
:Metric: Level of players' serenity throughout the game
|
||||
:Evaluation: :1: never speaks with the other players
|
||||
:5: talks friendly to anyone in every situation
|
||||
:Chiara: 4
|
||||
:Giorgio: 5
|
||||
:Giovanni: 5
|
||||
:Stefano P.: 5
|
||||
:Lorenzo: 5
|
||||
:Stefano G.: 5
|
||||
:Flavia: 4
|
||||
|
||||
#. :Goal: Cooperation
|
||||
:Question: Does the game let all players cooperate?
|
||||
:Metric: Contribution of every player during the game
|
||||
:Evaluation: :1: never puts effort in doing something
|
||||
:5: every time is willing to understand what is going on
|
||||
:Chiara: 4
|
||||
:Giorgio: 3
|
||||
:Giovanni: 3
|
||||
:Stefano P.: 2
|
||||
:Lorenzo: 3
|
||||
:Stefano G.: 4
|
||||
:Flavia: 3
|
||||
|
||||
#. :Goal: Cooperation
|
||||
:Question: Do team member consult each other about a topic?
|
||||
:Metric: Sharing of ideas
|
||||
:Evaluation: :1: never asks for an opinion
|
||||
:5: wants to discuss about every topic
|
||||
:Chiara: 5
|
||||
:Giorgio: 5
|
||||
:Giovanni: 5
|
||||
:Stefano P.: 3
|
||||
:Lorenzo: 5
|
||||
:Stefano G.: 4
|
||||
:Flavia: 5
|
||||
|
||||
#. :Goal: Motivation
|
||||
:Question: Do team members encourage collegues in need?
|
||||
:Metric: Players explain something other players don't understand
|
||||
:Evaluation: :1: not involved by the game
|
||||
:5: always makes sure everyone is on point
|
||||
:Chiara: 3
|
||||
:Giorgio: 5
|
||||
:Giovanni: 5
|
||||
:Stefano P.: 4
|
||||
:Lorenzo: 5
|
||||
:Stefano G.: 4
|
||||
:Flavia: 4
|
||||
|
||||
#. :Goal: Motivation
|
||||
:Question: Does PO help the team?
|
||||
:Metric: Quality of PO's advices to get better in the next sprints
|
||||
:Evaluation: :1: poor/absent advices
|
||||
:5: wise and helpful suggestions when is required
|
||||
:Stefano G.: 4
|
||||
|
||||
#. :Goal: Motivation
|
||||
:Question: Does the team come up with good ideas?
|
||||
:Metric: Effectiveness of sprint retrospective
|
||||
:Evaluation: :1: doesn't express opinions during retrospective
|
||||
:5: feels the retrospective fundamental to express opinions
|
||||
:Chiara: 4
|
||||
:Giorgio: 5
|
||||
:Giovanni: 5
|
||||
:Stefano P.: 5
|
||||
:Lorenzo: 5
|
||||
:Stefano G.: 5
|
||||
:Flavia: 5
|
||||
|
||||
#. :Goal: Problem Solving
|
||||
:Question: Do team members behave well when facing a problem?
|
||||
:Metric: Level of the technical debt at the end of the game
|
||||
:Evaluation: On the game board, if the debt pawn is on the lowest stage,the evaluation is 5, for every higher stage it decreases by 1
|
||||
:Chiara: 5
|
||||
:Giorgio: 5
|
||||
:Giovanni: 5
|
||||
:Stefano P.: 5
|
||||
:Lorenzo: 5
|
||||
:Stefano G.: 5
|
||||
:Flavia: 5
|
||||
|
||||
#. :Goal: Problem Solving
|
||||
:Question: Does team organize their tasks properly?
|
||||
:Metric: Average of tasks left at the end of each sprint
|
||||
:Evaluation: :1: 21+ average tasks left
|
||||
:2: 16-20 average tasks left
|
||||
:3: 11-15 average tasks left
|
||||
:4: 6-10 average tasks left
|
||||
:5: 0-5 average tasks left
|
||||
:Chiara: 5
|
||||
:Giorgio: 5
|
||||
:Giovanni: 5
|
||||
:Stefano P.: 5
|
||||
:Lorenzo: 5
|
||||
|
||||
#. :Goal: Problem Solving
|
||||
:Question: Does PO plan efficiently the Sprint Backlog?
|
||||
:Metric: Average of tasks left at the end of each sprint
|
||||
:Evaluation: :1: 21+ average tasks left
|
||||
:2: 16-20 average tasks left
|
||||
:3: 11-15 average tasks left
|
||||
:4: 6-10 average tasks left
|
||||
:5: 0-5 average tasks left
|
||||
:Stefano G.: 5
|
||||
|
||||
|
||||
Statistiche
|
||||
|
@ -286,7 +464,30 @@ Gitinspector
|
|||
Questa statistica è stata generata dal prof. Marcello Missiroli con
|
||||
`Gitinspector`_ al termine dello Sprint.
|
||||
|
||||
- :download:`Sprint 0 <0-stats.html>`
|
||||
- :download:`0-stats.html`
|
||||
|
||||
|
||||
.. _Gitinspector: https://github.com/ejwa/gitinspector
|
||||
|
||||
|
||||
Sprint Retrospective
|
||||
--------------------
|
||||
|
||||
|
||||
- :download:`Sprint 0 Retrospective <sprint-0_retrospective.pdf>`
|
||||
|
||||
|
||||
Sprint review
|
||||
-------------
|
||||
|
||||
Il video di sprint review è disponibile al seguente link:
|
||||
|
||||
- https://drive.google.com/file/d/12worWEcx-uf2UP4_lnEOovHZpvR77MsG/view
|
||||
|
||||
|
||||
Artefatti
|
||||
---------
|
||||
|
||||
In questo sprint è stato realizzato il seguente documento:
|
||||
|
||||
- :download:`Documento generale dello Sprint 0 <0-result.pdf>`
|
||||
|
|
BIN
docs/source/development/sprint0/sprint-0_retrospective.pdf
Normal file
BIN
docs/source/development/sprint1/BacklogSprint1.png
Normal file
After Width: | Height: | Size: 438 KiB |
BIN
docs/source/development/sprint1/Chart1.png
Normal file
After Width: | Height: | Size: 68 KiB |
BIN
docs/source/development/sprint1/Sprint1Task.png
Normal file
After Width: | Height: | Size: 13 KiB |
|
@ -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.
|
|
@ -1,11 +1,6 @@
|
|||
Sprint 1: 19 Apr - 02 Mag
|
||||
=========================
|
||||
|
||||
.. todo::
|
||||
|
||||
Inserire informazioni generali sullo sprint, come inizio e fine.
|
||||
|
||||
|
||||
Consegna
|
||||
--------
|
||||
|
||||
|
@ -17,25 +12,47 @@ La seguente documentazione è stata fornita dal cliente durante questo sprint:
|
|||
Goal
|
||||
----
|
||||
|
||||
.. todo::
|
||||
Il **goal** per questo sprint è stato costruire una codebase facilmente mantenibile e modulare, che potesse accomodare grossi
|
||||
cambiamenti nei sottomoduli senza impattare gli altri:
|
||||
|
||||
Inserire qui lo sprint goal.
|
||||
- Dal punto di vista del **backend**: l'obiettivo è stato predisporre la struttura del database e creare le api calls per illogin degli utenti e la creazione dei repository
|
||||
- Dal punto di vista del **frontend**: creare la struttura con le componenti importate da figma e implementare le schermate principali
|
||||
|
||||
Tutto ciò è visibile dai task completati:
|
||||
|
||||
.. image:: Sprint1Task.png
|
||||
:width: 400
|
||||
|
||||
Backlog
|
||||
-------
|
||||
|
||||
.. todo::
|
||||
.. image:: BacklogSprint1.png
|
||||
:width: 400
|
||||
|
||||
Mostrare qui lo sprint backlog di Taiga.
|
||||
**Burndown Chart**
|
||||
|
||||
.. image:: Chart1.png
|
||||
:width: 600
|
||||
|
||||
|
||||
Definition of done
|
||||
Definition of Ready
|
||||
------------------
|
||||
|
||||
.. todo::
|
||||
Il team ha definito lo stato di Ready di una User Story in base ai seguenti criteri:
|
||||
* La User Story è stata compresa ed accettata da tutti i membri
|
||||
* I tester hanno confermato la possibilità di poterla testare
|
||||
* Il Product Owner ha la visione necessaria per definirne la priorità
|
||||
* Il Team è in grado di stimarla
|
||||
* La User Story è indipendente o dipendente da altre a priorità maggiore
|
||||
|
||||
Inserire qui la definition of done dello sprint.
|
||||
Definition of Done
|
||||
------------------
|
||||
|
||||
La definizione di Done è stata concordata da tutto il team con il Product Owner, ed è stata così definita:
|
||||
* Sviluppo completo della funzionalità richiesta
|
||||
* Definizione e superamento dei test
|
||||
* Bozza della documentazione della funzionalità
|
||||
* Merge dei sorgenti nel branch ‘Main’ di GitLab
|
||||
|
||||
|
||||
Registro attività
|
||||
|
@ -486,10 +503,19 @@ Questa statistica è stata generata dal prof. Marcello Missiroli con
|
|||
.. _Gitinspector: https://github.com/ejwa/gitinspector
|
||||
|
||||
|
||||
Sprint retrospective
|
||||
--------------------
|
||||
- :download:`Sprint 1 Retrospective <1-retrospective.pdf>`
|
||||
|
||||
Sprint review
|
||||
-------------
|
||||
|
||||
.. todo::
|
||||
Il video di sprint review è disponibile al seguente link:
|
||||
|
||||
Inserire un link alla sprint review.
|
||||
- https://drive.google.com/drive/folders/1dsis_cGCRnVgZAkZjEVIZKt4NndkycaF?usp=sharing
|
||||
|
||||
|
||||
Artefatti
|
||||
---------
|
||||
- :download:`Valutazion SM Debito Tecnico <ValutazioneSMDebitoTecnico.md>`
|
||||
- :download:`Valutazione PO User Stories <valutazionePO__US_realizzate_o_rifiutate.md>`
|
|
@ -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/source/development/sprint2/BacklogSprint2.PNG
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
docs/source/development/sprint2/Chart2.png
Normal file
After Width: | Height: | Size: 74 KiB |
BIN
docs/source/development/sprint2/RetrospectiveSprint2.pdf
Normal file
BIN
docs/source/development/sprint2/Sprint2Task.png
Normal file
After Width: | Height: | Size: 52 KiB |
|
@ -1,11 +1,6 @@
|
|||
Sprint 2: 03 Mag - 16 Mag
|
||||
=========================
|
||||
|
||||
.. todo::
|
||||
|
||||
Inserire informazioni generali sullo sprint, come inizio e fine.
|
||||
|
||||
|
||||
Consegna
|
||||
--------
|
||||
|
||||
|
@ -16,26 +11,47 @@ La seguente documentazione è stata fornita dal cliente durante questo sprint:
|
|||
|
||||
Goal
|
||||
----
|
||||
Il **goal** del secondo sprint è stato la creazione, cancellazione e modifica dei repository, ovvero permettere agli utenti
|
||||
di creare repo partendo da una ricerca che rispetta determinate condizioni.
|
||||
|
||||
.. todo::
|
||||
Tutto ciò è visibile dai task completati:
|
||||
|
||||
.. image:: Sprint2Task.png
|
||||
:width: 390
|
||||
|
||||
Inserire qui lo sprint goal.
|
||||
|
||||
|
||||
Backlog
|
||||
-------
|
||||
|
||||
.. todo::
|
||||
.. image:: BacklogSprint2.png
|
||||
:width: 400
|
||||
|
||||
Mostrare qui lo sprint backlog di Taiga.
|
||||
**Burndown Chart**
|
||||
|
||||
.. image:: Chart2.png
|
||||
:width: 600
|
||||
|
||||
|
||||
Definition of done
|
||||
Definition of Ready
|
||||
------------------
|
||||
|
||||
.. todo::
|
||||
Il team ha definito lo stato di Ready di una User Story in base ai seguenti criteri:
|
||||
* La User Story è stata compresa ed accettata da tutti i membri
|
||||
* I tester hanno confermato la possibilità di poterla testare
|
||||
* Il Product Owner ha la visione necessaria per definirne la priorità
|
||||
* Il Team è in grado di stimarla
|
||||
* La User Story è indipendente o dipendente da altre a priorità maggiore
|
||||
|
||||
Definition of Done
|
||||
------------------
|
||||
|
||||
La definizione di Done è stata concordata da tutto il team con il Product Owner, ed è stata così definita:
|
||||
* Sviluppo completo della funzionalità richiesta
|
||||
* Definizione e superamento dei test
|
||||
* Bozza della documentazione della funzionalità
|
||||
* Merge dei sorgenti nel branch ‘Main’ di GitLab
|
||||
|
||||
Inserire qui la definition of done dello sprint.
|
||||
|
||||
|
||||
Registro attività
|
||||
|
@ -423,9 +439,14 @@ Questa statistica è stata generata dal prof. Marcello Missiroli con
|
|||
.. _Gitinspector: https://github.com/ejwa/gitinspector
|
||||
|
||||
|
||||
Sprint retrospective
|
||||
--------------------
|
||||
- :download:`Sprint 2 Retrospective <RetrospectiveSprint2.pdf>`
|
||||
|
||||
|
||||
Sprint review
|
||||
-------------
|
||||
|
||||
.. todo::
|
||||
Il video di sprint review è disponibile al seguente link:
|
||||
|
||||
Inserire un link alla sprint review.
|
||||
- https://drive.google.com/file/d/1x1kub-bpVJrwmGrn5LLU8ecqcbxFaoKg/view?usp=sharing
|
||||
|
|
BIN
docs/source/development/sprint3/Backlog3.png
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
docs/source/development/sprint3/Chart3.png
Normal file
After Width: | Height: | Size: 75 KiB |
BIN
docs/source/development/sprint3/Task3.png
Normal file
After Width: | Height: | Size: 37 KiB |
|
@ -1,11 +1,6 @@
|
|||
Sprint 3: 17 Mag - 30 Mag
|
||||
=========================
|
||||
|
||||
.. todo::
|
||||
|
||||
Inserire informazioni generali sullo sprint, come inizio e fine.
|
||||
|
||||
|
||||
Consegna
|
||||
--------
|
||||
|
||||
|
@ -18,25 +13,52 @@ La seguente documentazione è stata fornita dal cliente durante questo sprint:
|
|||
Goal
|
||||
----
|
||||
|
||||
.. todo::
|
||||
Il **goal** del terzo Sprint è stato far funzionare il crawler, gli alert e completare tutte i task rimanenti.
|
||||
|
||||
Tutto ciò è visibile dai task completati:
|
||||
|
||||
.. image:: Task3.png
|
||||
:width: 400
|
||||
|
||||
Grooming session
|
||||
----------------
|
||||
|
||||
Sono state definite le nuove User Stories da inserire nel progetto sulla base delle nuove richieste pervenute dal cliente: analisi statistica più dettagliata, postare su Twitter, traduzione dell'interfaccia in inglese.
|
||||
La richiesta relativa alle ricerche basate sulla geolocalizzazione, come già comunicato al cliente, non è stata inserita per motivi tecnici legati alle features delle API 1.1 che non permettono di eseguire query sui campi di posizione geografica.
|
||||
Le nuove User Stories sono state valutate tramite il metodo dello Scrum Poker, durante il quale ogni membro ha espresso la sua valutazione.
|
||||
Tutte le nuove richieste sono state accettate dal Product Owner e sono pronte ad essere inserite nello sprint di sviluppo in partenza.
|
||||
|
||||
Inserire qui lo sprint goal.
|
||||
|
||||
|
||||
Backlog
|
||||
-------
|
||||
.. image:: Backlog3.png
|
||||
:width: 400
|
||||
|
||||
.. todo::
|
||||
**Burndown Chart**
|
||||
|
||||
Mostrare qui lo sprint backlog di Taiga.
|
||||
.. image:: Chart3.png
|
||||
:width: 600
|
||||
|
||||
|
||||
Definition of done
|
||||
Definition of Ready
|
||||
------------------
|
||||
|
||||
.. todo::
|
||||
Il team ha definito lo stato di Ready di una User Story in base ai seguenti criteri:
|
||||
* La User Story è stata compresa ed accettata da tutti i membri
|
||||
* I tester hanno confermato la possibilità di poterla testare
|
||||
* Il Product Owner ha la visione necessaria per definirne la priorità
|
||||
* Il Team è in grado di stimarla
|
||||
* La User Story è indipendente o dipendente da altre a priorità maggiore
|
||||
|
||||
Inserire qui la definition of done dello sprint.
|
||||
Definition of Done
|
||||
------------------
|
||||
|
||||
La definizione di Done è stata concordata da tutto il team con il Product Owner, ed è stata così definita:
|
||||
* Sviluppo completo della funzionalità richiesta
|
||||
* Definizione e superamento dei test
|
||||
* Bozza della documentazione della funzionalità
|
||||
* Merge dei sorgenti nel branch ‘Main’ di GitLab
|
||||
|
||||
|
||||
Registro attività
|
||||
|
@ -81,12 +103,24 @@ Stefano Goldoni
|
|||
- Durata
|
||||
- Attività
|
||||
* -
|
||||
-
|
||||
- 14h
|
||||
- Totale
|
||||
|
||||
* -
|
||||
-
|
||||
-
|
||||
* - 21/05
|
||||
- 2.0h
|
||||
- Analisi strumenti di test frontend
|
||||
* - 24/05
|
||||
- 3.0h
|
||||
- Inizio test alerts
|
||||
* - 25/05
|
||||
- 2.5h
|
||||
- Test alerts
|
||||
* - 26/05
|
||||
- 3.0h
|
||||
- Test
|
||||
* - 28/05
|
||||
- 3.5h
|
||||
- Test, refactory in base a Sonarqube
|
||||
|
||||
|
||||
Flavia Cocca
|
||||
|
@ -117,12 +151,42 @@ Chiara Calzolari
|
|||
- Durata
|
||||
- Attività
|
||||
* -
|
||||
-
|
||||
- 17h 30m
|
||||
- Totale
|
||||
|
||||
* -
|
||||
-
|
||||
-
|
||||
* - 17/05
|
||||
- 3.0h
|
||||
- Traduzione UI
|
||||
* - 17/05
|
||||
- 1.5h
|
||||
- Traduzione UI
|
||||
* - 18/05
|
||||
- 1.5h
|
||||
- Traduzione UI
|
||||
* - 20/05
|
||||
- 1.0h
|
||||
- Traduzione UI
|
||||
* - 22/05
|
||||
- 1.0h
|
||||
- Traduzione UI
|
||||
* - 24/05
|
||||
- 2.0h
|
||||
- Traduzione UI
|
||||
* - 24/05
|
||||
- 1.0h
|
||||
- Traduzione UI
|
||||
* - 25/05
|
||||
- 1.0h
|
||||
- Traduzione UI
|
||||
* - 27/05
|
||||
- 0.5h
|
||||
- Traduzione UI
|
||||
* - 28/05
|
||||
- 2.0h
|
||||
- Configurazione ambiente di sviluppo
|
||||
* - 28/05
|
||||
- 3.0h
|
||||
- Creazione video-demo
|
||||
|
||||
|
||||
Stefano Pigozzi
|
||||
|
@ -189,12 +253,33 @@ Lorenzo Balugani
|
|||
- Durata
|
||||
- Attività
|
||||
* -
|
||||
-
|
||||
- 22h
|
||||
- Totale
|
||||
|
||||
* -
|
||||
-
|
||||
-
|
||||
* - 17/05
|
||||
- 4h
|
||||
- Bugfixing, supporto alla localizzazione degli errori
|
||||
* - 18/05
|
||||
- 3h
|
||||
- Bugfixing
|
||||
* - 20/05
|
||||
- 3h
|
||||
- API autorizzazioni, refactoring
|
||||
* - 21/05
|
||||
- 2h
|
||||
- Gestione tweet, rappresentazione tweet
|
||||
* - 24/05
|
||||
- 2h
|
||||
- Bugfixing
|
||||
* - 25/05
|
||||
- 4h
|
||||
- Docs, refactoring
|
||||
* - 27/05
|
||||
- 3h
|
||||
- Bugfixing
|
||||
* - 28/05
|
||||
- 6h
|
||||
- Bugfixing
|
||||
|
||||
|
||||
Statistiche
|
||||
|
@ -219,6 +304,9 @@ Retrospettiva finale
|
|||
Schermata finale di SonarQube
|
||||
-----------------------------
|
||||
|
||||
.. todo::
|
||||
- :download:`Schermata finale Sonarqube <sonarqube.pdf>`
|
||||
|
||||
Inserire qui uno screenshot della schermata finale di SonarQube.
|
||||
Demo
|
||||
----
|
||||
|
||||
- https://drive.google.com/file/d/15o70Ffe51CNj8LTKHC9dGiqRVnbv9UpZ/view?usp=sharing
|
||||
|
|
BIN
docs/source/development/sprint3/sonarqube.pdf
Normal file
|
@ -40,8 +40,20 @@ Nello sviluppo di N.E.S.T. sono stati usati i seguenti strumenti software:
|
|||
È accessibile al seguente indirizzo: https://sonarqube.steffo.eu/
|
||||
|
||||
|
||||
`Figma`_
|
||||
|
||||
Applicazione web centralizzata per la creazione collaborativa di interfacce grafiche moderne.
|
||||
|
||||
`Discord`_
|
||||
|
||||
Piattaforma centralizzata di messaggistica istantanea e chiamate vocali utilizzata per la comunicazione sincrona
|
||||
tra i membri del team.
|
||||
|
||||
|
||||
.. _IntelliJ IDEA Ultimate: https://www.jetbrains.com/idea/
|
||||
.. _Git: https://git-scm.com/
|
||||
.. _GitLab: https://about.gitlab.com/
|
||||
.. _Taiga: https://www.taiga.io/
|
||||
.. _SonarQube: https://www.sonarqube.org/
|
||||
.. _Figma: https://www.figma.com/
|
||||
.. _Discord: https://discord.com/
|
||||
|
|
|
@ -31,11 +31,18 @@ Benvenuto alla documentazione di N.E.S.T.!
|
|||
:caption: Documentazione tecnica
|
||||
|
||||
code/meta/index
|
||||
code/database/index
|
||||
code/backend/index
|
||||
code/crawler/index
|
||||
code/frontend/index
|
||||
|
||||
|
||||
.. toctree::
|
||||
:hidden:
|
||||
|
||||
development/clientinterview
|
||||
|
||||
|
||||
Cose rimaste da fare
|
||||
--------------------
|
||||
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
# UI Mockup
|
||||
|
||||
[Disponibile su Figma](https://www.figma.com/file/CA6VnMo3NIHnqSJNZGWAvT/N.E.S.T.?node-id=12%3A4)
|
|
@ -1 +0,0 @@
|
|||
https://drive.google.com/file/d/12worWEcx-uf2UP4_lnEOovHZpvR77MsG/view?usp=sharing
|
|
@ -4,7 +4,7 @@
|
|||
|------|-----|--------|----------|
|
||||
| | | | |
|
||||
|
||||
Totale generale di tutti i componenti: 12.5h
|
||||
Totale generale di tutti i componenti: 39.5h
|
||||
|
||||
|
||||
# Log attività individuali dello Sprint 3
|
||||
|
@ -15,9 +15,13 @@ Stefano Goldoni - Product Owner & Tester
|
|||
|
||||
| Data | Durata | Attività |
|
||||
|-------|--------|----------|
|
||||
| | | |
|
||||
|21/05 |2.0h |analisi strumenti di test frontend
|
||||
|24/05 |3.0h |inizio test alerts
|
||||
|25/05 |2.5h |test alerts
|
||||
|26/05 |3.0h |test
|
||||
|28/05 |3.5h |test, refactory in base a sonarqube
|
||||
|-------|--------|
|
||||
|totale| __._h |
|
||||
|totale| 14.0h |
|
||||
|
||||
|
||||
Flavia Cocca - Scrum Master & UI Designer
|
||||
|
@ -83,8 +87,10 @@ Chiara Calzolari - UI Designer
|
|||
| 24/05 | 1.0h | Traduzione UI
|
||||
| 25/05 | 1.0h | Traduzione UI
|
||||
| 27/05 | 0.5h | Traduzione UI
|
||||
| 28/05 | 2.0h | Configurazione ambiente di sviluppo
|
||||
| 28/05 | 3.0h | Creazione video-demo
|
||||
|-------|--------|
|
||||
|totale| 12.5h |
|
||||
|totale| 17.5h |
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ from flask_jwt_extended import jwt_required, get_jwt_identity
|
|||
from nest_backend.gestione import *
|
||||
from flask_cors import cross_origin
|
||||
import datetime
|
||||
from nest_backend.errors import *
|
||||
import nest_backend.errors as errors
|
||||
|
||||
|
||||
@cross_origin()
|
||||
|
@ -150,16 +150,16 @@ def page_alert(aid):
|
|||
user = find_user(get_jwt_identity())
|
||||
alert = Alert.query.filter_by(id=aid).first()
|
||||
if not alert or alert.repository.is_deleted:
|
||||
return json_error("Could not find alert.", ALERT_NOT_FOUND), 404
|
||||
return json_error("Could not find alert.", errors.ALERT_NOT_FOUND), 404
|
||||
if alert.repository not in [a.repository for a in user.authorizations] + user.owner_of:
|
||||
return json_error("You are not authorized to proceed.", USER_NOT_AUTHORIZED), 403
|
||||
return json_error("You are not authorized to proceed.", errors.USER_NOT_AUTHORIZED), 403
|
||||
if request.method == "GET":
|
||||
return json_success(alert.to_json()), 200
|
||||
if alert.repository not in user.owner_of:
|
||||
return json_error("You are not authorized to proceed.", REPOSITORY_NOT_OWNER), 403
|
||||
return json_error("You are not authorized to proceed.", errors.REPOSITORY_NOT_OWNER), 403
|
||||
if request.method == "PATCH":
|
||||
if request.json is None:
|
||||
return json_error("Missing json content.", GENERIC_NO_JSON), 400
|
||||
return json_error("Missing json content.", errors.GENERIC_NO_JSON), 400
|
||||
|
||||
if 'name' in request.json:
|
||||
alert.name = request.json['name']
|
||||
|
@ -171,9 +171,9 @@ def page_alert(aid):
|
|||
try:
|
||||
alert.evaluation_mode = ConditionMode(request.json['evaluation_mode'])
|
||||
except KeyError:
|
||||
return json_error("Unknown `evaluation_mode` specified.", GENERIC_ENUM_INVALID), 400
|
||||
return json_error("Unknown `evaluation_mode` specified.", errors.GENERIC_ENUM_INVALID), 400
|
||||
except Exception as e:
|
||||
return json_error("Unknown error:" + str(e), GENERIC_UFO), 400
|
||||
return json_error("Unknown error:" + str(e), errors.GENERIC_UFO), 400
|
||||
ext.session.commit()
|
||||
return json_success(alert.to_json()), 200
|
||||
elif request.method == "DELETE":
|
||||
|
@ -191,14 +191,14 @@ def page_alert(aid):
|
|||
ext.session.delete(alert)
|
||||
ext.session.commit()
|
||||
except Exception as e:
|
||||
return json_error("Something went wrong while deleting alert.", ALERT_DELETION_FAILURE), 500
|
||||
return json_error("Something went wrong while deleting alert.", errors.ALERT_DELETION_FAILURE), 500
|
||||
return json_success("Deletion completed."), 204
|
||||
elif request.method == "PUT":
|
||||
if request.json is None:
|
||||
return json_error("Missing json content.", GENERIC_NO_JSON), 400
|
||||
return json_error("Missing json content.", errors.GENERIC_NO_JSON), 400
|
||||
|
||||
if not json_request_authorizer(request.json, alert):
|
||||
return json_error("Missing one or more parameters in alert json.", GENERIC_MISSING_FIELDS), 400
|
||||
return json_error("Missing one or more parameters in alert json.", errors.GENERIC_MISSING_FIELDS), 400
|
||||
alert.limit = request.json['limit']
|
||||
alert.name = request.json['name']
|
||||
alert.window_size = request.json['window_size']
|
||||
|
@ -206,9 +206,9 @@ def page_alert(aid):
|
|||
try:
|
||||
alert.evaluation_mode = ConditionMode(mode)
|
||||
except KeyError:
|
||||
return json_error("Unknown `evaluation_mode` specified.", GENERIC_ENUM_INVALID), 400
|
||||
return json_error("Unknown `evaluation_mode` specified.", errors.GENERIC_ENUM_INVALID), 400
|
||||
except Exception as e:
|
||||
return json_error("Unknown error:" + str(e), GENERIC_UFO), 400
|
||||
return json_error("Unknown error:" + str(e), errors.GENERIC_UFO), 400
|
||||
if request.json['conditions'] is not None:
|
||||
# Wow very pythonic so much wow
|
||||
# Obtain list of no longer needed connections
|
||||
|
@ -223,15 +223,15 @@ def page_alert(aid):
|
|||
for c in request.json['conditions']:
|
||||
if not c.get("id"):
|
||||
if (type_ := c.get("type")) is None:
|
||||
return json_error("Missing `type` parameter.", GENERIC_MISSING_FIELDS), 400
|
||||
return json_error("Missing `type` parameter.", errors.GENERIC_MISSING_FIELDS), 400
|
||||
try:
|
||||
type_ = ConditionType(type_)
|
||||
except KeyError:
|
||||
return json_error("Unknown `type` specified.", GENERIC_ENUM_INVALID), 400
|
||||
return json_error("Unknown `type` specified.", errors.GENERIC_ENUM_INVALID), 400
|
||||
except Exception as e:
|
||||
return json_error("Unknown error: " + str(e)), 400
|
||||
if not (content := c.get("content")):
|
||||
return json_error("Missing `content` parameter.", GENERIC_MISSING_FIELDS), 400
|
||||
return json_error("Missing `content` parameter.", errors.GENERIC_MISSING_FIELDS), 400
|
||||
if type_ == ConditionType.hashtag:
|
||||
content = hashtag_validator(content)
|
||||
con = Condition(content=content, type=type_, repository_id=alert.repository_id)
|
||||
|
|
|
@ -3,7 +3,7 @@ from nest_backend.database import *
|
|||
from flask_jwt_extended import jwt_required, get_jwt_identity
|
||||
from nest_backend.gestione import *
|
||||
from flask_cors import cross_origin
|
||||
from nest_backend.errors import *
|
||||
import nest_backend.errors as errors
|
||||
|
||||
|
||||
@cross_origin()
|
||||
|
@ -73,30 +73,30 @@ def page_repository_alerts(rid):
|
|||
|
||||
repository = Repository.query.filter_by(id=rid, is_deleted=False).first()
|
||||
if not repository:
|
||||
return json_error("Could not find repository", REPOSITORY_NOT_FOUND), 404
|
||||
return json_error("Could not find repository", errors.REPOSITORY_NOT_FOUND), 404
|
||||
user = find_user(get_jwt_identity())
|
||||
if user.email != repository.owner_id:
|
||||
return json_error("You are not authorized.", REPOSITORY_NOT_OWNER), 403
|
||||
return json_error("You are not authorized.", errors.REPOSITORY_NOT_OWNER), 403
|
||||
|
||||
if request.method == "GET":
|
||||
return json_success([alert.to_json() for alert in repository.alerts])
|
||||
|
||||
if request.method == "POST":
|
||||
if 'name' not in request.json:
|
||||
return json_error("Missing name.", ALERT_NO_NAME), 400
|
||||
return json_error("Missing name.", errors.ALERT_NO_NAME), 400
|
||||
if 'limit' not in request.json:
|
||||
return json_error('Missing limit', ALERT_NO_LIMIT), 400
|
||||
return json_error('Missing limit', errors.ALERT_NO_LIMIT), 400
|
||||
if 'window_size' not in request.json:
|
||||
return json_error('Missing window size', ALERT_NO_WINDOW), 400
|
||||
return json_error('Missing window size', errors.ALERT_NO_WINDOW), 400
|
||||
if (mode := request.json.get("evaluation_mode")) is not None:
|
||||
try:
|
||||
mode = ConditionMode(mode)
|
||||
except KeyError:
|
||||
return json_error("Unknown `type` specified.", GENERIC_ENUM_INVALID), 400
|
||||
return json_error("Unknown `type` specified.", errors.GENERIC_ENUM_INVALID), 400
|
||||
except Exception as e:
|
||||
return json_error("Unknown error:" + str(e), GENERIC_UFO), 400
|
||||
return json_error("Unknown error:" + str(e), errors.GENERIC_UFO), 400
|
||||
else:
|
||||
return json_error("Evaluation mode was not provided.", ALERT_NO_EVALUATION), 400
|
||||
return json_error("Evaluation mode was not provided.", errors.ALERT_NO_EVALUATION), 400
|
||||
|
||||
alert = Alert(name=request.json['name'], limit=request.json['limit'], window_size=request.json['window_size'],
|
||||
repository_id=rid, evaluation_mode=mode)
|
||||
|
@ -105,15 +105,15 @@ def page_repository_alerts(rid):
|
|||
if request.json['conditions'] is not None:
|
||||
for condition in request.json['conditions']:
|
||||
if (type_ := condition.get("type")) is None:
|
||||
return json_error("Missing `type` parameter.", GENERIC_MISSING_FIELDS), 400
|
||||
return json_error("Missing `type` parameter.", errors.GENERIC_MISSING_FIELDS), 400
|
||||
try:
|
||||
type_ = ConditionType(type_)
|
||||
except KeyError:
|
||||
return json_error("Unknown `type` specified.", GENERIC_ENUM_INVALID), 400
|
||||
return json_error("Unknown `type` specified.", errors.GENERIC_ENUM_INVALID), 400
|
||||
except Exception as e:
|
||||
return json_error("Unknown error: " + str(e)), 400
|
||||
if not (content := condition.get("content")):
|
||||
return json_error("Missing `content` parameter.", GENERIC_MISSING_FIELDS), 400
|
||||
return json_error("Missing `content` parameter.", errors.GENERIC_MISSING_FIELDS), 400
|
||||
if type_ == ConditionType.hashtag:
|
||||
content = hashtag_validator(content)
|
||||
c = Condition(content=content, type=type_)
|
||||
|
|
|
@ -3,7 +3,7 @@ from nest_backend.database import *
|
|||
from flask_jwt_extended import jwt_required, get_jwt_identity
|
||||
from nest_backend.gestione import *
|
||||
from flask_cors import cross_origin
|
||||
from nest_backend.errors import *
|
||||
import nest_backend.errors as errors
|
||||
|
||||
|
||||
@cross_origin()
|
||||
|
@ -42,12 +42,12 @@ def page_authorization(rid, email):
|
|||
repository = Repository.query.filter_by(id=rid, is_deleted=False).first()
|
||||
user = find_user(get_jwt_identity())
|
||||
if not repository:
|
||||
return json_error("Could not find the repository.", REPOSITORY_NOT_FOUND), 404
|
||||
return json_error("Could not find the repository.", errors.REPOSITORY_NOT_FOUND), 404
|
||||
if user != repository.owner:
|
||||
return json_error("You are not authorized.", USER_NOT_AUTHORIZED), 403
|
||||
return json_error("You are not authorized.", errors.USER_NOT_AUTHORIZED), 403
|
||||
authorization = Authorization.query.filter_by(rid=rid, email=email).first()
|
||||
if not authorization:
|
||||
return json_error("Could not find the authorization", AUTHORIZATION_NOT_FOUND), 404
|
||||
return json_error("Could not find the authorization", errors.AUTHORIZATION_NOT_FOUND), 404
|
||||
if request.method == "DELETE":
|
||||
ext.session.delete(authorization)
|
||||
ext.session.commit()
|
||||
|
|
|
@ -4,7 +4,7 @@ from nest_backend.gestione import repository_auth, json_error, json_success, fin
|
|||
from nest_backend.database import ext, User, Authorization, Repository
|
||||
from flask_cors import cross_origin
|
||||
from nest_backend.gestione import hashtag_validator
|
||||
from nest_backend.errors import *
|
||||
import nest_backend.errors as errors
|
||||
|
||||
|
||||
@cross_origin()
|
||||
|
@ -114,24 +114,24 @@ def page_repository_authorizations(rid):
|
|||
|
||||
repository = Repository.query.filter_by(id=rid, is_deleted=False).first()
|
||||
if not repository:
|
||||
return json_error("Could not find repository", REPOSITORY_NOT_FOUND), 404
|
||||
return json_error("Could not find repository", errors.REPOSITORY_NOT_FOUND), 404
|
||||
user = find_user(get_jwt_identity())
|
||||
if user.email != repository.owner_id:
|
||||
return json_error("You are not authorized.", REPOSITORY_NOT_OWNER), 403
|
||||
return json_error("You are not authorized.", errors.REPOSITORY_NOT_OWNER), 403
|
||||
if request.method == "GET":
|
||||
try:
|
||||
return json_success([a.to_json() for a in repository.authorizations])
|
||||
except Exception as e:
|
||||
return json_error("Unknown error:" + str(e), GENERIC_UFO), 400
|
||||
return json_error("Unknown error:" + str(e), errors.GENERIC_UFO), 400
|
||||
if request.json is None:
|
||||
return json_error("Missing json content.", GENERIC_NO_JSON), 400
|
||||
return json_error("Missing json content.", errors.GENERIC_NO_JSON), 400
|
||||
if not request.json.get("email"):
|
||||
return json_error("Missing user email.", GENERIC_MISSING_FIELDS), 400
|
||||
return json_error("Missing user email.", errors.GENERIC_MISSING_FIELDS), 400
|
||||
target = User.query.filter_by(email=request.json.get('email')).first()
|
||||
if not target:
|
||||
return json_error("User could not be located", USER_NOT_FOUND), 400
|
||||
return json_error("User could not be located", errors.USER_NOT_FOUND), 400
|
||||
if target == user:
|
||||
return json_error("Owner cannot be a spectator", GENERIC_ALREADY_EXISTS), 406
|
||||
return json_error("Owner cannot be a spectator", errors.GENERIC_ALREADY_EXISTS), 406
|
||||
if request.method == "POST":
|
||||
authorization = Authorization(email=request.json.get('email'), rid=repository.id)
|
||||
ext.session.add(authorization)
|
||||
|
|
|
@ -3,7 +3,7 @@ from nest_backend.database import *
|
|||
from flask_jwt_extended import jwt_required, get_jwt_identity
|
||||
from nest_backend.gestione import *
|
||||
from flask_cors import cross_origin
|
||||
from nest_backend.errors import *
|
||||
import nest_backend.errors as errors
|
||||
|
||||
|
||||
@cross_origin()
|
||||
|
@ -107,25 +107,25 @@ def page_condition(cid):
|
|||
condition = Condition.query.filter_by(id=cid).first()
|
||||
user = find_user(get_jwt_identity())
|
||||
if not condition or condition.repository.is_deleted:
|
||||
return json_error("Could not find the condition.", CONDITION_NOT_FOUND), 404
|
||||
return json_error("Could not find the condition.", errors.CONDITION_NOT_FOUND), 404
|
||||
if condition.repository not in [a.repository for a in user.authorizations] + user.owner_of and not user.isAdmin:
|
||||
return json_error("You lack the authorization to proceed, pal.", USER_NOT_AUTHORIZED), 403
|
||||
return json_error("You lack the authorization to proceed, pal.", errors.USER_NOT_AUTHORIZED), 403
|
||||
if request.method == "GET":
|
||||
return json_success(condition.to_json()), 200
|
||||
if condition.repository not in user.owner_of and not user.isAdmin:
|
||||
return json_error("You lack the authorization to proceed, pal.", USER_NOT_AUTHORIZED), 403
|
||||
return json_error("You lack the authorization to proceed, pal.", errors.USER_NOT_AUTHORIZED), 403
|
||||
if request.method == "PATCH":
|
||||
if request.json is None:
|
||||
return json_error("Missing json content.", GENERIC_NO_JSON), 400
|
||||
return json_error("Missing json content.", errors.GENERIC_NO_JSON), 400
|
||||
|
||||
if (type_ := request.json.get("type")) is not None:
|
||||
try:
|
||||
type_ = ConditionType(type_)
|
||||
condition.type = type_
|
||||
except KeyError:
|
||||
return json_error("Unknown `type` specified.", GENERIC_ENUM_INVALID), 400
|
||||
return json_error("Unknown `type` specified.", errors.GENERIC_ENUM_INVALID), 400
|
||||
except Exception as e:
|
||||
return json_error("Unknown error:" + str(e), GENERIC_UFO), 400
|
||||
return json_error("Unknown error:" + str(e), errors.GENERIC_UFO), 400
|
||||
|
||||
if content := request.json.get("content"):
|
||||
condition.content = content
|
||||
|
|
|
@ -5,7 +5,7 @@ from nest_backend.gestione import repository_auth, json_error, json_success, Con
|
|||
from nest_backend.database import ext
|
||||
from flask_cors import cross_origin
|
||||
from nest_backend.gestione import hashtag_validator
|
||||
from nest_backend.errors import *
|
||||
import nest_backend.errors as errors
|
||||
|
||||
|
||||
@cross_origin()
|
||||
|
@ -75,34 +75,34 @@ def page_repository_conditions(rid):
|
|||
|
||||
repository = Repository.query.filter_by(id=rid, is_deleted=False).first()
|
||||
if not repository:
|
||||
return json_error("Could not find repository", REPOSITORY_NOT_FOUND), 404
|
||||
return json_error("Could not find repository", errors.REPOSITORY_NOT_FOUND), 404
|
||||
user = find_user(get_jwt_identity())
|
||||
|
||||
if request.method == "GET":
|
||||
try:
|
||||
return json_success([u.to_json() for u in repository.conditions])
|
||||
except Exception as e:
|
||||
return json_error("Unknown error:" + str(e), GENERIC_UFO), 400
|
||||
return json_error("Unknown error:" + str(e), errors.GENERIC_UFO), 400
|
||||
|
||||
if user.email != repository.owner_id:
|
||||
return json_error("You are not authorized.", REPOSITORY_NOT_OWNER), 403
|
||||
return json_error("You are not authorized.", errors.REPOSITORY_NOT_OWNER), 403
|
||||
|
||||
if request.method == "POST":
|
||||
if request.json is None:
|
||||
return json_error("Missing json content.", GENERIC_NO_JSON), 400
|
||||
return json_error("Missing json content.", errors.GENERIC_NO_JSON), 400
|
||||
|
||||
if (type_ := request.json.get("type")) is None:
|
||||
return json_error("Missing `type` parameter.", GENERIC_MISSING_FIELDS), 400
|
||||
return json_error("Missing `type` parameter.", errors.GENERIC_MISSING_FIELDS), 400
|
||||
|
||||
try:
|
||||
type_ = ConditionType(type_)
|
||||
except KeyError:
|
||||
return json_error("Unknown `type` specified.", GENERIC_ENUM_INVALID), 400
|
||||
return json_error("Unknown `type` specified.", errors.GENERIC_ENUM_INVALID), 400
|
||||
except Exception as e:
|
||||
return json_error("Unknown error: " + str(e)), 400
|
||||
|
||||
if not (content := request.json.get("content")):
|
||||
return json_error("Missing `content` parameter.", GENERIC_MISSING_FIELDS), 400
|
||||
return json_error("Missing `content` parameter.", errors.GENERIC_MISSING_FIELDS), 400
|
||||
if type_ == ConditionType.hashtag:
|
||||
content = hashtag_validator(content)
|
||||
condition = Condition(content=content, type=type_, repository_id=rid)
|
||||
|
|