1
Fork 0
mirror of https://github.com/pds-nest/nest.git synced 2024-11-21 20:44:18 +00:00

📔 Improve goals.rst

This commit is contained in:
Steffo 2021-05-29 02:16:01 +02:00
parent b0415dcb1c
commit 6c45ff0528
Signed by: steffo
GPG key ID: 6965406171929D01
32 changed files with 703 additions and 422 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,30 +1,151 @@
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
Database
--------
.. todo:: inserire schema database + glossario aggiornato
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 duso individuati durante la progettazione di N.E.S.T. sono:
- La gestione degli utenti da parte di un Amministratore:
.. image:: CasiUso1.PNG
- La gestione del login da parte di un Utente:
.. image:: CasiUso2.PNG
- La gestione delle Allerte sia dal punto di vista dellUtente che del Sistema:
.. image:: CasiUso3.PNG
- La gestione della raccolta da parte dell'utente:
.. image:: CasiUso4.PNG
- La gestione di un repository da parte dell'utente:
.. image:: CasiUso5.PNG
- La visualizzazione di un repository:
.. image:: CasiUso6.PNG
Backlog generale
----------------
.. todo::
Si riporta qui di seguito il Backlog definito ad inizio progetto, prima dellavvio 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

View file

@ -15,28 +15,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.
Backlog
-------
.. todo::
Mostrare qui lo sprint backlog di Taiga.
* 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
------------------
.. 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 di GitLab
Registro attività
@ -438,12 +438,11 @@ Risultati della partita di Scrumble
#. :Goal: Problem Solving
:Question: Does team organize their tasks properly?
:Metric: Average of tasks left at the end of each sprint
:Evaluation: Calculate the average of tasks left for each sprint:
:1: 21+
:2: 16-20
:3: 11-15
:4: 6-10
:5: 0-5
: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
@ -453,12 +452,11 @@ Risultati della partita di Scrumble
#. :Goal: Problem Solving
:Question: Does PO plan efficiently the Sprint Backlog?
:Metric: Average of tasks left at the end of each sprint
:Evaluation: Calculate the average of tasks left for each sprint:
:1: 21+
:2: 16-20
:3: 11-15
:4: 6-10
:5: 0-5
: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

View file

@ -36,6 +36,12 @@ Benvenuto alla documentazione di N.E.S.T.!
code/frontend/index
.. toctree::
:hidden:
development/clientinterview
Cose rimaste da fare
--------------------

View file

@ -93,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">Descrizione generale</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>

View file

@ -93,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">Descrizione generale</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>

View file

@ -92,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">Descrizione generale</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>

View file

@ -93,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">Descrizione generale</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>

View file

@ -93,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">Descrizione generale</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>

View file

@ -93,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">Descrizione generale</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>

View file

@ -7,7 +7,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Obiettivo del progetto &mdash; N.E.S.T. 0.1.0 documentazione</title>
<title>Introduzione &mdash; N.E.S.T. 0.1.0 documentazione</title>
@ -93,8 +93,13 @@
</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="#database">Database</a></li>
<li class="toctree-l2"><a class="reference internal" href="#casi-d-uso">Casi duso</a></li>
<li class="toctree-l2"><a class="reference internal" href="#backlog-generale">Backlog generale</a></li>
</ul>
@ -163,7 +168,7 @@
<li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
<li>Obiettivo del progetto</li>
<li>Introduzione</li>
<li class="wy-breadcrumbs-aside">
@ -182,32 +187,122 @@
<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 lobiettivo 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>Lobiettivo del progetto è la creazione di un software per fornire laggregazione e lanalisi 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 uninterfaccia 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 nellanalisi 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 allutente attraverso un mezzo telematico, come email oppure un tweet.</p>
</dd>
<dt>Utente</dt><dd><p>Utilizzatore del software con un proprio account creato dallamministratore 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à dellutente 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, lutente 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 lanalisi,
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, lutente 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="database">
<h2>Database<a class="headerlink" href="#database" title="Link a questa intestazione"></a></h2>
<div class="admonition-todo admonition" id="id3">
<p class="admonition-title">Da fare</p>
<p>inserire schema database + glossario aggiornato</p>
</div>
</div>
<div class="section" id="casi-d-uso">
<h2>Casi duso<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 duso 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 duso individuati durante la progettazione di N.E.S.T. sono:</p>
<ul>
<li><p>La gestione degli utenti da parte di un Amministratore:</p>
<img alt="../_images/CasiUso1.PNG" src="../_images/CasiUso1.PNG" />
</li>
<li><p>La gestione del login da parte di un Utente:</p>
<img alt="../_images/CasiUso2.PNG" src="../_images/CasiUso2.PNG" />
</li>
<li><p>La gestione delle Allerte sia dal punto di vista dellUtente che del Sistema:</p>
<img alt="../_images/CasiUso3.PNG" src="../_images/CasiUso3.PNG" />
</li>
<li><p>La gestione della raccolta da parte dellutente:</p>
<img alt="../_images/CasiUso4.PNG" src="../_images/CasiUso4.PNG" />
</li>
<li><p>La gestione di un repository da parte dellutente:</p>
<img alt="../_images/CasiUso5.PNG" src="../_images/CasiUso5.PNG" />
</li>
<li><p>La visualizzazione di un repository:</p>
<img alt="../_images/CasiUso6.PNG" src="../_images/CasiUso6.PNG" />
</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 dellavvio 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>

View file

@ -41,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="Descrizione generale" href="goals.html" />
</head>
<body class="wy-body-for-nav">
@ -93,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">Descrizione generale</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>
@ -197,7 +197,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="Descrizione generale" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>

View file

@ -93,13 +93,12 @@
</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">Descrizione generale</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-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>
@ -216,26 +215,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>
<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 Main di GitLab</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>
@ -1090,28 +1090,39 @@
<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"><p>Calculate the average of tasks left for each sprint:
:1: 21+
:2: 16-20
:3: 11-15
:4: 6-10
:5: 0-5</p>
<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-odd">Chiara</dt>
<dd class="field-odd"><p>5</p>
<dt class="field-even">2</dt>
<dd class="field-even"><p>16-20 average tasks left</p>
</dd>
<dt class="field-even">Giorgio</dt>
<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">Giovanni</dt>
<dt class="field-odd">Giorgio</dt>
<dd class="field-odd"><p>5</p>
</dd>
<dt class="field-even">Stefano P.</dt>
<dt class="field-even">Giovanni</dt>
<dd class="field-even"><p>5</p>
</dd>
<dt class="field-odd">Lorenzo</dt>
<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">
@ -1125,15 +1136,26 @@
<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"><p>Calculate the average of tasks left for each sprint:
:1: 21+
:2: 16-20
:3: 11-15
:4: 6-10
:5: 0-5</p>
<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-odd">Stefano G.</dt>
<dd class="field-odd"><p>5</p>
<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>

View file

@ -93,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">Descrizione generale</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>

View file

@ -93,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">Descrizione generale</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>

View file

@ -93,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">Descrizione generale</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>

View file

@ -93,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">Descrizione generale</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>

View file

@ -93,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">Descrizione generale</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>

View file

@ -91,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>

View file

@ -97,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">Descrizione generale</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>

View file

@ -40,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="Descrizione generale" href="../development/goals.html" />
<link rel="prev" title="Il progetto in breve" href="about.html" />
</head>
@ -108,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">Descrizione generale</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>
@ -475,7 +475,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="Descrizione generale" 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>

View file

@ -92,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>
@ -208,8 +208,13 @@
<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#database">Database</a></li>
<li class="toctree-l2"><a class="reference internal" href="development/goals.html#casi-d-uso">Casi duso</a></li>
<li class="toctree-l2"><a class="reference internal" href="development/goals.html#backlog-generale">Backlog generale</a></li>
</ul>
@ -218,8 +223,7 @@
<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-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>
@ -288,6 +292,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 39)</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">
@ -310,26 +320,6 @@
<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 lobiettivo generale del progetto.</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>
</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 duso 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>
<div class="admonition-todo admonition">
<p class="admonition-title">Da fare</p>
<p>Descrivere genericamente il processo di sviluppo seguito, includendo:</p>
<blockquote>
<div><p>«numero e durata degli sprint, burndown complessivo, diari dei partecipanti e/o diario di gruppo,
@ -345,21 +335,6 @@ retrospettiva finale»</p>
<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>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>
@ -463,6 +438,21 @@ retrospettiva finale»</p>
<p>Scrivere una guida allesecuzione ripetuta del crawler attraverso un timer SystemD.</p>
</div>
<p class="todo-source">(L'<a class="reference internal" href="guide/installation.html#id2"><em>riga originale</em></a> si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/guide/installation.rst, linea 291.)</p>
<div class="admonition-todo admonition">
<p class="admonition-title">Da fare</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>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 64.)</p>
<div class="admonition-todo admonition">
<p class="admonition-title">Da fare</p>
<p>inserire schema database + glossario aggiornato</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 98.)</p>
</div>
<div class="section" id="altri-collegamenti">
<h2>Altri collegamenti<a class="headerlink" href="#altri-collegamenti" title="Link a questa intestazione"></a></h2>

Binary file not shown.

View file

@ -94,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>

View file

@ -94,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>

File diff suppressed because one or more lines are too long

View file

@ -1,344 +1,387 @@
Descrizione generale
--------------------
Introduzione
============
1.1 Obiettivi
^^^^^^^^^^^^^
Lo **scopo** di questo software è quello di fornire tool per laggregazione e lanalisi di Tweet in modo da rilevare
eventi *macroscopici*, *locali* o più semplicemente filtrare in base a delle *keyword*.
Il software è un nuovo prodotto autonomo che non va ad integrarsi a nessun sistema software fatta eccezione per Twitter, da cui raccogliamo i nostri dati.
.. todo::
Lasciamo il tempo al futuro?
1.2 Marco Funzionalità
^^^^^^^^^^^^^^^^^^^^^^
Modalità di ricerca:
- filtrare i Tweet in base a delle keyword
- filtrare i Tweet in base alla loro geolocalizzazione solo se sono provvisti dellattributo di geolocalizzazione
- filtrare i Tweet in base alla loro data di pubblicazione
- filtratre i tweet in base all'utente
- combinare diversi filtri
Obiettivo
---------
L'utente può decidere di salvare la propria ricerca in un **repositotory** per poterla consultare in seguito o per poterla condividere con
un altro utente , un repository può essere attivo o archiviato:
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*.
**Attivo :**
continua a raccogliere dati ed è possibile modificarne i parametri di ricerca.
Il prodotto sarà utilizzato dal cliente e da un piccolo gruppo di suoi dipendenti per effettuare ricerche statistiche.
**Archiviato :**
mostra la ricerca salvata senza poterne più modificare i parametri o far ripartire la ricerca.
Il software andrà ad integrarsi direttamente con `Twitter`_, da cui verranno raccolti dati e su cui verranno pubblicate
allerte su di essi.
LUtente che utilizza la piattaforma riceverà una **notifica** al verificarsi di determinate condizioni, che potranno
essere impostate dall'utente.
.. _Tweet: https://help.twitter.com/it/using-twitter#tweets
.. _Twitter: https://twitter.com/
1.3 Campo di Applicazione
^^^^^^^^^^^^^^^^^^^^^^^^^
Il software trova utilizzo principalmente in ambito statistico essendo il suo scopo quello di raccogliere dati per
favorirne lanalisi tramite uninterfaccia grafica.
1.4 Caratteristiche degli utenti
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Il software è pensato per essere utilizzato da utenti con una discreta esperienza nell'analisi di dati ma senza particolari conoscenze informatiche.
Campo di applicazione
---------------------
- Sarà presente un super utente (**Amministratore**) che avrà il compito di creare ed eliminare gli altri utenti del sistema.
- Gli utenti base (**Utenti**) potranno eseguire tutte le attività descritte nel paragrafo precedente, es. raccolta, analisi, storicizzazione, condivisione, ecc..
- Sarà presente un utente virtuale (**Sistema**) che si occuperà delle interazioni con le api di Twitter e con il database.
Il software trova utilizzo principalmente in **ambito statistico**, essendo il suo scopo quello di raccogliere dati e
permettere di analizzarli tramite un'interfaccia grafica.
.. image:: Utenti.png
1.5 Definizioni, Acronimi, Abbreviazioni
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**Filtro :**
i filtri vengono utilizzati a livello frontend, servono per poter assegnare delle condition nella pagina
**Crea Repository** e per *filtrare* ulteriormente nella pagina di Analisi di una repository.
Caratteristiche degli utenti
----------------------------
.. todo:: modificare descrizione filtro se necessario
Il software potrà essere utilizzato da utenti con una discreta esperienza nell'analisi di dati ma senza particolari
conoscenze informatiche.
**Condizione :**
Glossario
---------
.. todo:: descrizione condizione
Repository
Raccolta di tweet che soddisfano determinate condizioni.
**Repository :**
raccolta di tweet che hanno in comune una o più condizione.
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.
**Tweet :**
è un post su Twitter che viene raccolto dal software se i filtri applicati al repository lo permettono.
Contiene informazioni relative al suo autore e altre informazioni, a seconda del tipo di Tweet.
Filtro
Predicato logico che deve essere soddisfatto da un tweet per essere visualizzato in fase di analisi dati.
**Allarme:**
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.
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
.. todo:: descrizione allarme
1.6 Database
^^^^^^^^^^^^
1.6.1 Definizioni, glossario
""""""""""""""""""""""""""""
**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:
**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
.. 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)
-
* -
- 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)
-
**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:
**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
.. 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
* -
- Definizioni
* - rid (INTEGER, PK, FK)
- id del repository
* - email (VARCHAR, PK, FK)
- email dell'utente
**Composed**
| Composed è una tabella le cui righe indicano l'appartenenza di un Tweet ad un certo repository.
| La tabella composed contiene le seguenti colonne:
**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
.. 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
* -
- Definizioni
* - rid (INTEGER, PK, FK)
- id del repository
* - snowflake (VARCHAR, PK, FK)
- id del tweet
**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:
**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);
- **location** (valore 1, deprecato);
- **time** (valore 2);
- **coordinates** (valore 3);
- **place** (valore 4, riservato per usi futuri);
- **user** (valore 5);
- **hashtag** (valore 0);
- **location** (valore 1, deprecato);
- **time** (valore 2);
- **coordinates** (valore 3);
- **place** (valore 4, riservato per usi futuri);
- **user** (valore 5);
La tabella condition contiene le seguenti colonne:
La tabella condition contiene le seguenti colonne:
.. list-table::
:header-rows: 1
:stub-columns: 1
:align: left
.. 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)
-
* -
- 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)
-
**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:
**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
.. 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
* -
- Definizioni
* - cid (INTEGER, PK, FK)
- id della condition
* - snowflake (VARCHAR, PK, FK)
- id del tweet
**MadeOf**
MadeOf è una tabella le cui righe indicano il legame tra un alert e una certa condition.
La tabella madeof contiene le seguenti colonne:
**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
.. 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
* -
- Definizioni
* - aid (INTEGER, PK, FK)
- id dell'alert
* - cid (INTEGER, PK, FK)
- id della condition
**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:
**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
.. 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)
-
* -
- Definizioni
* - id (INTEGER, PK)
- id della notifica
* - ora (TIMESTAMP, NOT NULL)
- timestamp di attivazione
* - alert_id (INTEGER, FK, NOT NULL)
-
**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:
**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
.. 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
* -
- 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
**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:
**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
.. 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
* -
- 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
**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:
**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
.. 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
* -
- 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
Casi d'uso
----------
N.E.S.T. prevede tre tipologie di *agenti* ("utenti" UML): **utente**, **amministratore** e **sistema**.
.. image:: Utenti.png
I principali casi duso individuati durante la progettazione di N.E.S.T. sono:
- La gestione degli utenti da parte di un Amministratore:
.. image:: CasiUso1.PNG
- La gestione del login da parte di un Utente:
.. image:: CasiUso2.PNG
- La gestione delle Allerte sia dal punto di vista dellUtente che del Sistema:
.. image:: CasiUso3.PNG
- La gestione della raccolta da parte dell'utente:
.. image:: CasiUso4.PNG
- La gestione di un repository da parte dell'utente:
.. image:: CasiUso5.PNG
- La visualizzazione di un repository:
.. image:: CasiUso6.PNG
Backlog generale
----------------
1.7 Casi d'uso
^^^^^^^^^^^^^^
.. todo:: li ho rifatti tutti controllate che siano giusti
Si riporta qui di seguito il Backlog definito ad inizio progetto, prima dellavvio dello sviluppo.
Gli elementi dal bordo grigio sono le epiche:
Si riportano di seguito i principali casi duso delineati durante la progettazione di N.E.S.T.
.. note::
Alcune user story sono state rimosse in seguito al feedback ricevuto durante il primo sprint!
- La gestione degli utenti da parte di un Amministratore:
.. image:: CasiUso1.png
- La gestione del login da parte di un Utente:
.. image:: CasiUso2.png
- La gestione delle Allerte sia dal punto di vista dellUtente che del Sistema:
.. image:: CasiUso3.png
- La gestione della raccolta da parte dell'utente:
.. image:: CasiUso4.png
- La gestione di un repository da parte dell'utente:
.. image:: CasiUso5.png
- La visualizzazione di un Repository:
.. image:: CasiUso6.png
.. image:: Backlog1.PNG
.. image:: Backlog2.PNG
.. image:: Backlog3.PNG
.. image:: Backlog4.PNG
1.8 Backlog generale
^^^^^^^^^^^^^^^^^^^^
Si riporta qui di seguito il Backlog definito ad inizio progetto, prima dellavvio dello sviluppo.
Gli elementi dal bordo grigio sono le epiche:
.. image:: Backlog1.png
.. image:: Backlog2.png
.. image:: Backlog3.png
.. image:: Backlog4.png
.. image:: Backlog5.png
.. image:: Backlog5.PNG

View file

@ -20,11 +20,11 @@ Definition of ready
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
* 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
@ -33,10 +33,10 @@ 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
* 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à

View file

@ -36,6 +36,12 @@ Benvenuto alla documentazione di N.E.S.T.!
code/frontend/index
.. toctree::
:hidden:
development/clientinterview
Cose rimaste da fare
--------------------