<liclass="toctree-l1"><aclass="reference internal"href="../code/backend/index.html"><codeclass="docutils literal notranslate"><spanclass="pre">nest_backend</span></code> - Web API in Python</a></li>
<liclass="toctree-l1"><aclass="reference internal"href="../code/crawler/index.html"><codeclass="docutils literal notranslate"><spanclass="pre">nest_crawler</span></code> - Crawler in Python</a></li>
<liclass="toctree-l1"><aclass="reference internal"href="../code/frontend/index.html"><codeclass="docutils literal notranslate"><spanclass="pre">nest_frontend</span></code> - Interfaccia utente in React</a></li>
<h1>Introduzione<aclass="headerlink"href="#introduzione"title="Link a questa intestazione">¶</a></h1>
<divclass="section"id="obiettivo">
<h2>Obiettivo<aclass="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 <aclass="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 <aclass="reference external"href="https://twitter.com/">Twitter</a>, da cui verranno raccolti dati e su cui verranno pubblicate
allerte su di essi.</p>
</div>
<divclass="section"id="campo-di-applicazione">
<h2>Campo di applicazione<aclass="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>
<h2>Caratteristiche degli utenti<aclass="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>
<divclass="section"id="glossario">
<h2>Glossario<aclass="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>
<dlclass="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
<h2>Macro-funzionalità<aclass="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>
<ulclass="simple">
<li><p>in base ai loro <aclass="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 <aclass="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>
<divclass="section"id="casi-d-uso">
<h2>Casi d’uso<aclass="headerlink"href="#casi-d-uso"title="Link a questa intestazione">¶</a></h2>
<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>