- Notification (classe in nest_backend.database.tables)
+ Notification (classe built-in)
+
+
notifications (nest_backend.database.tables.Alert attributo)
|
@@ -566,8 +595,12 @@
|
- - Tweet (classe in nest_backend.database.tables)
+
- Tweet (classe built-in)
+
+
- tweet (nest_backend.database.tables.Composed attributo)
@@ -666,16 +703,20 @@
U
|
+ |
- |
diff --git a/docs/build/html/index.html b/docs/build/html/index.html
index dd29fb8..d4cea03 100644
--- a/docs/build/html/index.html
+++ b/docs/build/html/index.html
@@ -106,6 +106,7 @@
Documentazione tecnica
@@ -278,6 +278,7 @@
- Compilazione con Windows Powershell
+- Struttura del database
nest_backend - Web API in Python
.gestione - Metodi di utility
.database - Database
- System Message: WARNING/2 (/mnt/tera/ext4/code/g2-progetto-2/docs/source/index.rst, line 39)
+ System Message: WARNING/2 (/mnt/tera/ext4/code/g2-progetto-2/docs/source/index.rst, line 40)
toctree contains reference to nonexisting document “development/clientinterview”
@@ -332,11 +333,6 @@ retrospettiva finale»
Da fare
Inserire informazioni generali sullo sprint, come inizio e fine.
-(L'riga originale si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/development/sprint0/index.rst, linea 4.)
-
- Da fare
- Inserire informazioni generali sullo sprint, come inizio e fine.
-
(L'riga originale si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/development/sprint1/index.rst, linea 4.)
Da fare
@@ -440,6 +436,11 @@ retrospettiva finale»
(L'riga originale si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/guide/installation.rst, linea 291.)
Da fare
+ Inserire informazioni generali sullo sprint, come inizio e fine.
+
+ (L'riga originale si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/development/sprint0/index.rst, linea 4.)
+
+ Da fare
Lasciamo il tempo al futuro?
(L'riga originale si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/development/goals.rst, linea 4.)
@@ -448,11 +449,6 @@ retrospettiva finale»
Estendere il glossario qualora vengano incontrati altri termini.
(L'riga originale si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/development/goals.rst, linea 64.)
-
- Da fare
- inserire schema database + glossario aggiornato
-
-(L'riga originale si trova in /mnt/tera/ext4/code/g2-progetto-2/docs/source/development/goals.rst, linea 98.)
Altri collegamenti
diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv
index b449d21..1296559 100644
Binary files a/docs/build/html/objects.inv and b/docs/build/html/objects.inv differ
diff --git a/docs/build/html/py-modindex.html b/docs/build/html/py-modindex.html
index 2e4c67c..5810762 100644
--- a/docs/build/html/py-modindex.html
+++ b/docs/build/html/py-modindex.html
@@ -108,6 +108,7 @@
Documentazione tecnica
- Meta-documentazione
+- Struttura del database
nest_backend - Web API in Python
nest_crawler - Crawler in Python
nest_frontend - Interfaccia utente in React
diff --git a/docs/build/html/search.html b/docs/build/html/search.html
index 09e06c4..3e5be15 100644
--- a/docs/build/html/search.html
+++ b/docs/build/html/search.html
@@ -108,6 +108,7 @@
Documentazione tecnica
- Meta-documentazione
+- Struttura del database
nest_backend - Web API in Python
nest_crawler - Crawler in Python
nest_frontend - Interfaccia utente in React
diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js
index 078e1a3..15b1f9a 100644
--- a/docs/build/html/searchindex.js
+++ b/docs/build/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["code/backend/index","code/crawler/index","code/frontend/index","code/meta/index","development/artifacts","development/conclusions","development/goals","development/process","development/sprint0/index","development/sprint1/index","development/sprint2/index","development/sprint3/index","development/suggestions","development/tools","guide/about","guide/installation","index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,"sphinx.ext.todo":2,sphinx:56},filenames:["code/backend/index.rst","code/crawler/index.rst","code/frontend/index.rst","code/meta/index.rst","development/artifacts.rst","development/conclusions.rst","development/goals.rst","development/process.rst","development/sprint0/index.rst","development/sprint1/index.rst","development/sprint2/index.rst","development/sprint3/index.rst","development/suggestions.rst","development/tools.rst","guide/about.rst","guide/installation.rst","index.rst"],objects:{"":{nest_backend:[0,0,0,"-"],nest_crawler:[1,0,0,"-"]},"nest_backend.database":{base:[0,0,0,"-"],tables:[0,0,0,"-"]},"nest_backend.database.tables":{Alert:[0,1,1,""],Authorization:[0,1,1,""],Composed:[0,1,1,""],Condition:[0,1,1,""],ConditionMode:[0,1,1,""],ConditionType:[0,1,1,""],Contains:[0,1,1,""],MadeOf:[0,1,1,""],Notification:[0,1,1,""],OperationType:[0,1,1,""],Repository:[0,1,1,""],Tweet:[0,1,1,""],User:[0,1,1,""]},"nest_backend.database.tables.Alert":{__init__:[0,2,1,""],conditions:[0,3,1,""],evaluation_mode:[0,3,1,""],id:[0,3,1,""],limit:[0,3,1,""],name:[0,3,1,""],notifications:[0,3,1,""],repository:[0,3,1,""],repository_id:[0,3,1,""],to_json:[0,2,1,""],window_size:[0,3,1,""]},"nest_backend.database.tables.Authorization":{__init__:[0,2,1,""],email:[0,3,1,""],repository:[0,3,1,""],rid:[0,3,1,""],to_json:[0,2,1,""],user:[0,3,1,""]},"nest_backend.database.tables.Composed":{__init__:[0,2,1,""],repository:[0,3,1,""],rid:[0,3,1,""],snowflake:[0,3,1,""],tweet:[0,3,1,""]},"nest_backend.database.tables.Condition":{__init__:[0,2,1,""],alerts:[0,3,1,""],content:[0,3,1,""],id:[0,3,1,""],repository:[0,3,1,""],repository_id:[0,3,1,""],to_json:[0,2,1,""],tweets:[0,3,1,""],type:[0,3,1,""]},"nest_backend.database.tables.ConditionMode":{all_and:[0,3,1,""],all_or:[0,3,1,""]},"nest_backend.database.tables.ConditionType":{coordinates:[0,3,1,""],hashtag:[0,3,1,""],location:[0,3,1,""],place:[0,3,1,""],time:[0,3,1,""],user:[0,3,1,""]},"nest_backend.database.tables.Contains":{__init__:[0,2,1,""],cid:[0,3,1,""],condition:[0,3,1,""],snowflake:[0,3,1,""],tweet:[0,3,1,""]},"nest_backend.database.tables.MadeOf":{__init__:[0,2,1,""],aid:[0,3,1,""],alert:[0,3,1,""],cid:[0,3,1,""],condition:[0,3,1,""]},"nest_backend.database.tables.Notification":{__init__:[0,2,1,""],alert:[0,3,1,""],alert_id:[0,3,1,""],id:[0,3,1,""],ora:[0,3,1,""],to_json:[0,2,1,""]},"nest_backend.database.tables.OperationType":{assign:[0,3,1,""]},"nest_backend.database.tables.Repository":{__init__:[0,2,1,""],alerts:[0,3,1,""],authorizations:[0,3,1,""],conditions:[0,3,1,""],end:[0,3,1,""],evaluation_mode:[0,3,1,""],id:[0,3,1,""],is_active:[0,3,1,""],is_deleted:[0,3,1,""],name:[0,3,1,""],owner:[0,3,1,""],owner_id:[0,3,1,""],start:[0,3,1,""],to_json:[0,2,1,""],tweets:[0,3,1,""]},"nest_backend.database.tables.Tweet":{__init__:[0,2,1,""],conditions:[0,3,1,""],content:[0,3,1,""],image_url:[0,3,1,""],insert_time:[0,3,1,""],location:[0,3,1,""],place:[0,3,1,""],post_time:[0,3,1,""],poster:[0,3,1,""],repositories:[0,3,1,""],snowflake:[0,3,1,""],to_json:[0,2,1,""]},"nest_backend.database.tables.User":{__init__:[0,2,1,""],authorizations:[0,3,1,""],email:[0,3,1,""],isAdmin:[0,3,1,""],owner_of:[0,3,1,""],password:[0,3,1,""],to_json:[0,2,1,""],username:[0,3,1,""]},"nest_backend.gestione":{admin_or_403:[0,4,1,""],authenticate:[0,4,1,""],error_handler:[0,4,1,""],find_user:[0,4,1,""],gen_password:[0,4,1,""],hashtag_validator:[0,4,1,""],identity:[0,4,1,""],json_error:[0,4,1,""],json_request_authorizer:[0,4,1,""],json_success:[0,4,1,""],repository_auth:[0,4,1,""]},nest_backend:{database:[0,0,0,"-"],gestione:[0,0,0,"-"]},nest_crawler:{associate_condition_tweet:[1,4,1,""],authenticate:[1,4,1,""],is_coordinate_inside_bounding_box:[1,4,1,""],is_repo_alert_triggered:[1,4,1,""],search_repo_conditions:[1,4,1,""],send_notification_email:[1,4,1,""],send_notification_tweet:[1,4,1,""]}},objnames:{"0":["py","module","Python modulo"],"1":["py","class","Python classe"],"2":["py","method","Python metodo"],"3":["py","attribute","Python attributo"],"4":["py","function","Python funzione"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:attribute","4":"py:function"},terms:{"00m":10,"100":[],"104":[],"105":[],"10h":[8,9,10],"10m":[9,10],"11h":10,"11m":10,"127":15,"12h":8,"12m":9,"13h":9,"13m":[9,10],"14m":9,"15h":8,"15m":[9,10],"16h":[9,10],"16m":9,"17h":10,"17m":10,"18m":[9,10],"19h":10,"19m":9,"2021":[8,9,10,14],"206":16,"20m":10,"214":16,"21m":10,"222":16,"23h":[8,9],"23m":9,"248":15,"25m":10,"26m":9,"27h":10,"283":16,"28m":9,"291":16,"29h":9,"29m":[9,10],"30040":15,"30041":15,"301":15,"30m":[8,9,10],"32m":9,"34m":[9,10],"35m":[8,9],"36m":9,"39m":[8,10],"40m":10,"429":16,"42m":9,"443":15,"44m":10,"45m":10,"46m":9,"47m":10,"48m":9,"492":16,"51m":10,"52m":8,"56m":9,"57m":10,"58m":9,"59m":9,"63072000":15,"7c2fm2vd":15,"andr\u00e0":6,"class":0,"else":0,"enum":0,"final":[7,16],"for":[0,8],"function":0,"gi\u00e0":[7,9,16],"return":0,"static":13,"super":8,"this":[0,15],"var":[9,15],"with":8,Che:[12,16],Gli:6,Nello:13,Noi:14,Non:[4,16],None:0,Per:[9,15],Una:[3,6,14,15],__init__:0,abbiam:[7,16],abil:15,abnormal:8,about:8,absent:8,access:13,accett:8,according:0,account:6,acme:15,actually:0,adatt:15,adds:0,adegu:[9,10],admin_or_403:0,advices:8,after:15,age:15,agent:6,aggiorn:[6,16],aggiunt:[6,9,10],aggreg:[6,9],aid:0,alcun:[6,10,15],alert:[0,1,10],alert_id:0,alerts:[0,8],all_and:0,all_or:0,allarm:6,allert:6,allowed:0,allows:0,almen:3,alon:0,altre:[8,9],altri:6,altrov:[7,16],always:[8,15],ambient:[9,10],ambit:6,amministr:[6,15],analis:[6,8,9,13],analizz:6,ancor:[11,16],and:[0,8],andat:[5,16],andrann:10,any:[0,8],anyon:8,apac:16,api:[9,10,14,15,16],app:15,applic:[13,14,16],application:0,appost:15,approcc:10,apr:16,arch:15,archiv:6,are:[0,8],artefatt:16,artifacts:16,asks:8,assign:0,associate_condition_tweet:1,attiv:[6,15,16],attravers:[6,14,15,16],attributes:0,autent:[9,14],authentic:[0,1],authentication:0,authorization:0,authorizations:0,automat:[13,15],autor:6,autorizz:14,aver:15,averag:8,avet:[5,12,16],avvi:[0,6,15],backend:[0,9,14,16],background:15,backlog:[8,16],bas:[6,8,9,16],based:15,bash:15,basic:3,bat:3,becaus:0,behav:8,ben:[5,16],benven:16,better:8,bin:15,bisogn:[4,16],board:8,bord:6,bozz:8,brainstorming:8,branc:8,brev:16,bug:10,bugfixing:[9,10],build:[3,15],burndown:[7,16],cach:15,camb:[5,16],camp:16,cancell:9,cap:9,caratterist:16,cartell:[3,6,15],cas:[15,16],cases:[8,9],casual:15,cattur:10,cer:15,cert:6,check:8,checks:0,chiam:9,chiav:9,chown:15,cid:0,classes:0,client:[6,8,9,10,11],clientinterview:16,clon:15,cod:[0,16],codic:[9,10,13,16],coherent:8,collabor:9,collegues:8,columns:0,com:[3,6,8,9,10,11,16],comand:15,combination:0,compil:[11,16],compless:[7,9,15,16],complet:[8,10],completed:8,completing:8,component:8,composed:0,compost:14,comprens:14,compres:8,comun:14,conclusion:[10,16],conclusions:16,concord:8,condition:0,conditionmod:0,conditions:[0,10],conditions_typ:1,conditiontyp:0,condivid:6,condivision:6,condizion:[6,9,10,14],conferm:8,config:15,configur:[6,8,9,10,16],configuration:3,connession:15,conoscent:6,consegn:16,consigl:15,constructed:0,constructor:0,consult:8,cont:6,contains:[0,16],conten:15,content:0,continuous:3,contribution:8,controll:[9,13],cooper:8,cooperation:8,coordinates:0,cop:15,cor:15,correct:0,corrett:15,correzion:10,cors:[9,14,16],cos:[3,4,5,8],costant:15,could:[0,8],couldn:8,coverag:[10,13],crawler:16,cre:[6,16],createdb:15,createuser:15,creating:15,creazion:[6,8,9],credentials:0,criter:8,css:8,curl:15,dar:[12,16],dark:8,dashboard:[8,10],dat:[0,3,6,8,9,10,11,14,15],databas:[8,9,10,14,16],dbms:15,deb:9,debt:8,decl_ap:0,declar:0,decreases:8,defin:[6,8],definit:8,definition:16,definizion:[8,9],delin:[],dem:[10,15,16],denomin:15,depends:0,description:15,descriv:[7,16],descrizion:8,design:8,determin:6,dettagl:15,dev:6,development:16,diagramm:8,diar:[7,16],differenc:8,dipendent:[3,6,8,10,16],dir:15,directory:[3,15],dirett:[6,15],discord:8,discret:6,discuss:8,discussion:10,dispon:[0,3,10,15],disponessim:3,distribu:15,divers:9,doa:15,docs:[0,3,15,16],document:[0,8,9,10,11,13],documentation:3,does:8,doesn:8,doing:8,don:16,dop:15,doppiagg:8,dovr:15,dovrebb:15,driving:8,dsjiofgvinmodfiojvbnio3erfnoiweraqugu43ghjwrevniuwerng43iugnreuwignhritmj43i43nb8i42ug0wevkwovmwigtjj:15,due:6,dur:[7,8,9,10,11,16],durant:[6,8,9,10,11],during:8,each:8,edit:15,effectiveness:8,effettu:[6,9],efficent:9,efficiently:8,effort:8,elabor:14,element:6,elenc:8,elimin:[6,9],email:[0,6],enabl:15,encourag:8,end:[0,8],engines:15,entit:9,entrarv:15,entri:3,enumeration:0,env:15,environment:[3,15],epic:[6,8],error:[0,9],error_handler:0,errorunknownerror:0,esam:14,esecu:[13,15,16],esegu:[3,6,15],esemp:[9,15],esperient:6,espost:15,esse:9,essend:6,esser:[6,15],essi:6,estend:[6,16],estension:16,estim:8,estraiam:14,evaluating:8,evaluation:8,evaluation_mod:0,event:6,every:8,everyon:8,exampl:0,exec:15,execstart:15,explain:8,explorer:9,expr:15,express:8,ext4:16,facing:8,fact:0,fallimentar:10,fancy:0,farl:15,fas:6,feedback:6,feel:8,feels:8,figm:8,fil:16,filtr:6,fin:[8,9,10,11,15,16],finc:15,find_user:0,finestr:6,fix:[9,10],fixtures:10,flask:[14,16],flask_config:15,forc:15,form:14,format:0,formatted:0,forn:[6,8,9,10,11,14,15],forwarded:15,foss:3,fram:8,framework:14,friendly:8,from:[0,8],frontend:[9,10,16],full:15,fullchain:15,fundamental:8,funzion:9,funzional:[8,16],futur:[6,14,16],gam:8,gen_password:0,gener:[3,7,8,9,10,11,15,16],general:[8,9,10,11,16],generates:0,geograf:6,geolocalizz:[9,10],gest:[0,14,15],gestion:[6,9,16],get:8,giorn:13,git:[13,15],github:3,gitlab:[0,8,10,13,15],giust:[],glossar:16,gnu:16,goal:[8,16],goals:16,going:8,good:8,grad:8,grafic:6,gratuit:10,graz:9,grig:6,grooming:9,group:[8,15],grupp:[6,7,16],guid:[15,16],gunicorn:15,hann:8,happy:0,hash:0,hashed:0,hashtag:[0,6,9],hashtag_validator:0,header:15,help:8,helpful:8,higher:8,himself:8,hom:15,hosted:13,hosting:13,html:[3,15],http:[14,15],http_host:15,https:[13,15],ide:[4,8,9,13,16],ideas:8,identity:0,illustr:15,image_url:0,immediat:14,impar:[5,16],impieg:8,implement:9,imports:0,impost:15,includ:[7,16],incontr:[6,10,16],index:16,indic:16,indipendent:8,indirizz:[13,15],individu:6,inerent:9,infin:[3,6],info:9,inform:[8,9,10,11,15,16],informat:[6,14],initialization:0,iniz:[6,8,9,10,11,16],inizial:8,inser:[4,6,8,9,10,11,15,16],insert_tim:0,install:[3,16],installation:16,instanc:0,integr:[3,6,10,15],intellij:[9,13,16],inter:15,interfacc:[6,16],intern:[3,14,15],internet:15,interrott:6,interv:8,introdu:16,inutil:9,invi:6,involved:8,is_act:0,is_coordinate_inside_bounding_box:1,is_deleted:0,is_repo_alert_triggered:1,isadmin:0,isol:15,issu:10,issues:10,ital:10,its:0,jobs:8,json:[0,9,15],json_error:0,json_request_authorizer:0,json_success:0,jsx:14,jwt:[0,15],keep:8,key:15,keys:0,keyword:6,know:8,knowledg:8,kwargs:0,lasc:[6,10,16],latitud:1,lavor:9,leads:8,learn:8,learned:8,left:8,leg:9,let:8,level:8,librer:15,licenz:3,light:8,limit:[0,9],lin:8,line:16,link:[4,7,9,10,16],linux:[3,15],littl:0,local:[6,9,15],location:0,log:8,logg:9,logic:6,login:[0,6,9],longitud:1,lookup:15,loopback:15,lor:6,lost:8,lowest:8,macr:16,macroscop:6,madeof:0,mag:16,maggior:[8,15],main:8,mak:16,makefil:3,makes:8,manag:9,management:[8,9,10,13],manipol:14,manten:15,manual:[3,15],many:0,mapped:0,marcell:[8,9,10,11,16],master:8,matc:0,max:15,mechanics:8,member:8,members:8,membr:8,mentr:3,merg:8,messag:0,met:16,method:0,metod:[9,16],metric:8,mett:[7,16],mezz:6,miglior:[9,13],missirol:[8,9,10,11,12,16],mkdir:15,mnt:16,mockup:[8,9,10],mod:[6,8,9,15],model:0,modic:9,modif:[9,10,13],modul:[0,9,16],molt:15,moment:[6,9],most:8,mostr:[6,9,10,11,14,16],mot:15,motivation:8,msg:0,mult:15,multilinguagg:13,nam:0,names:0,necess:15,necessar:[3,8,15],need:8,needs:0,nest:15,nest_backend:[14,15,16],nest_crawler:[14,16],nest_frontend:[14,16],network:15,never:8,next:8,node_env:15,node_modules:15,node_version:15,nodejs:16,nom:[9,15],nonexisting:16,not:[0,8],notif:6,notification:0,notifications:[0,8],npm:15,nss:15,number:8,numer:[6,7,16],nuov:[6,10,16],nvm:15,oauth:9,obiett:16,one:8,onlin:15,only:0,oper:15,operation:0,operationtyp:0,opinion:8,opinions:8,oppur:6,ora:[0,8,9,10,11,15],org:15,organiz:8,organizz:9,original:16,orm:0,ospit:[3,13],other:8,ottimizz:15,output:9,ove:6,owner:[0,8,15],owner_id:0,owner_of:0,pacchett:15,pagin:8,pair:9,param:0,parametr:3,parents:15,parol:9,part:[6,9,13,14,16],partecip:[7,16],participants:8,particol:[3,6],particolar:6,pass:10,password:0,pawn:8,payload:0,penpot:8,perc:[10,15],percors:[15,16],perfect:8,permett:[3,6],pertant:15,piattaform:6,piccol:[6,10],pien:15,plac:0,place_id:10,plan:8,planning:8,platform:0,play:8,played:8,player:8,players:8,plugin:9,poetry:[3,15],poi:3,point:8,poker:8,poor:8,port:15,porting:10,posizion:6,poss:15,possibil:[3,6,8,15],post_tim:0,poster:0,postgres:15,postgresql:15,pot:8,poter:9,potr:6,potrann:6,powershell:16,practic:8,precedent:15,predic:6,predisposizion:9,preferibil:15,prem:15,prepar:10,prerequis:16,present:[0,6,8,9,14],preved:6,prim:[3,6,8,9,10,15],principal:[6,9],priorit:8,priority:8,problem:8,process:[8,16],prod:15,prodott:[6,8],product:8,production:15,prof:[8,9,10,11,12,16],progett:[3,6,8,9,13,15],programming:9,project:[8,9,10,13],properly:8,propr:[6,15],propriet:9,prosegu:15,prot:15,protocols:15,prov:9,proxy:16,proxypass:15,proxypassrevers:15,pubblic:[6,10,15],punt:6,put:10,puts:8,py3:15,pypoetry:15,pytest:10,python:[3,14,16],qual:[6,10,15],qualit:13,quality:8,qualor:[3,6,16],qualsias:6,quant:15,quel:9,quell:[6,9],query:10,quest:[3,8,9,10,11,15],question:8,questions:8,qui:[4,6,9,10,11,16],raccogl:[6,8],raccolt:6,radius:1,rappresent:15,react:[14,16],readthedocs:3,ready:16,realizz:[9,10,14],recuper:14,recurs:15,ref:[7,16],refactor:9,refactoring:[9,10,13],referenc:16,registered:0,registr:16,regol:6,regolar:6,relat:[3,6,8,16],relationships:0,relazion:9,rend:15,rep:9,repeat:8,repeatabl:8,report:11,repositories:[0,8],repository:[0,6,9,10,13],repository_auth:0,repository_id:[0,1],reqest:0,request_schem:15,requestheader:15,required:[0,8],resocont:8,rest:15,restitu:9,restructuredtext:3,ret:15,retrieval:9,retrospect:[8,9,10],retrospett:[7,10,16],returned:0,returns:0,revers:16,review:16,rewriteengin:15,rewriterul:15,riavv:15,ricerc:[6,9],ricev:6,richiest:[6,8,9],ricord:15,rid:0,rifatt:[],rig:[15,16],riguard:9,rilev:6,rimang:15,rimoss:6,rimozion:9,ripet:[15,16],riport:6,risolt:10,risolu:10,risult:16,ritocc:[8,9],ritorn:[9,10],riusc:10,roles:8,root:15,routes:16,rp_app:15,rst:16,run:[3,15],ruol:15,salv:[14,15],sar:[6,15],sarann:6,scanner:10,scaric:16,scegl:6,schem:[6,16],scherm:16,scop:6,screenshot:[11,16],screenshots:16,script:[3,15],scritt:[3,9,14],scrittur:[9,13],scriv:[4,5,15,16],scrum:8,scrumbl:16,search_repo_conditions:1,second:14,secret_key:15,security:15,see:15,segnal:10,segret:15,segu:[6,7,16],seguent:[8,9,10,11,13,15],selezion:6,self:13,semplic:6,send_notification_email:1,send_notification_tweet:1,senz:6,serenity:8,serializabl:0,serv:15,server:[0,14,15],servernam:15,servic:15,serviz:16,session:[9,10],set:15,sets:0,setting:10,settings:8,setup:[10,15],shar:8,sharing:8,shell:[3,15],shouldnt:0,sian:[],sicurezz:15,simpl:0,sint:15,sistem:[3,6,15],sit:9,situation:8,siz:8,snowflak:0,soddisf:6,soddisfacent:6,soddisfatt:6,softw:[6,13,14],sol:[7,15,16],solving:8,something:8,son:[6,13,15],sonarqub:[8,9,10,13,16],sorgent:[3,8,16],sostitu:15,sourc:[3,16],speaks:8,spec:0,specif:[0,8],specific:9,sphinx:3,sprint0:16,sprint1:[9,16],sprint2:[10,16],sprint3:16,sprint:[6,7,16],sprints:8,sqlalchemy:[0,15],sqlalchemy_database_ur:15,srs:8,srv:15,sslcertificatefil:15,sslcertificatekeyfil:15,sslengin:15,stag:8,standard:3,standardizz:9,start:[0,15],stat:[6,8,9,10,11,13,15],statist:[6,14,16],steff:[13,15],stess:15,stesur:[8,9],stim:8,stories:8,story:[6,8],strict:15,string:[0,15],strument:[3,16],struttur:[3,9],stud:9,success:[8,15],successful:0,such:0,suddivision:16,sugger:[7,15,16],suggestions:[8,16],support:9,sur:8,svilupp:[6,8,9,10,13,16],svolt:9,swagger:[0,10],system:0,systemctl:15,systemd:16,tabell:16,tables:16,taig:[8,9,10,11,13,16],talks:8,talvolt:15,target:[3,15],tasks:8,tast:15,tastier:15,team:[8,9,10],technical:8,tecnic:9,telemat:6,temp:[6,8,16],temporal:6,tentat:10,ter:16,termin:[6,8,9,10,16],test:[8,9,10,15],tester:8,testing:[9,10,13],tests:10,that:0,the:[0,8,15],thes:0,they:8,thing:0,thingamajigs:0,throughout:8,tim:[0,8],timer:16,tip:9,tipolog:6,to_json:0,toctre:16,tod:11,token:15,topic:8,total:[8,9,10,11],totally:8,tracc:13,traduzion:10,tram:[6,9,15],transport:15,tre:[6,14],trov:[3,6,16],tutt:[6,8,9,13,15],tweepy:14,tweet:[0,1,6,9,10,14],tweet_latitud:1,tweet_longitud:1,tweets:0,twitter:[6,8,9,14],type:[0,15],ulterior:10,ultim:[3,8,9,13],uml:6,understand:8,uniform:8,uniformity:8,unimor:14,unit:15,unrepeatabl:8,usa:15,usand:[7,14,16],usat:13,use:8,used:0,user:[0,3,6,8,9,10,15],useradd:15,usernam:0,users:[9,10],using:0,uso:[15,16],usr:15,utent:[9,10,14],utility:16,utilizz:[6,9,10,15,16],valid:0,valu:0,values:0,valut:10,variabil:15,ved:[0,15],ven:9,veng:[6,15,16],venv:[3,15],verif:15,verification:0,verr:15,verrann:6,version:[3,8,10,13,15],vide:[4,8,9,10,16],vim:15,virtual:3,virtualenv:15,virtualenvs:15,virtualhost:15,vision:8,vist:[6,7,16],visualizz:[6,13,14],volt:[0,3,6,9],want:0,wantedby:15,wants:[8,15],was:0,web:[13,14,15,16],webserver:0,well:8,what:8,when:8,whether:0,willing:8,window_siz:0,windows:16,wis:8,working:15,workingdirectory:15,you:[0,15]},titles:["nest_backend - Web API in Python","nest_crawler - Crawler in Python","nest_frontend - Interfaccia utente in React","Meta-documentazione","Artefatti","Conclusioni","Introduzione","Processo di sviluppo","Sprint 0: 04 Apr - 18 Apr","Sprint 1: 19 Apr - 02 Mag","Sprint 2: 03 Mag - 16 Mag","Sprint 3: 17 Mag - 30 Mag","Suggerimenti relativi al corso","Strumenti utilizzati","Il progetto in breve","Installazione","N.E.S.T."],titleterms:{"final":11,altri:16,anniball:[8,9,10,11],apac:15,api:0,applic:6,apr:[8,9],artefatt:4,attiv:[8,9,10,11],backend:15,backlog:[6,9,10,11],balugan:[8,9,10,11],bas:0,brev:14,calzolar:[8,9,10,11],camp:6,caratterist:6,cas:6,chiar:[8,9,10,11],cocc:[8,9,10,11],codic:15,colleg:16,collett:[8,9,10,11],com:15,compil:[3,15],conclusion:5,configur:15,consegn:[8,9,10,11],cors:12,cos:16,crawler:[1,15],cre:15,databas:[0,6,15],definition:[8,9,10,11],dem:4,descrizion:[],dipendent:15,document:[3,16],don:[8,9,10,11],estension:0,far:[4,5,6,7,8,9,10,11,12,15,16],fil:15,flask:0,flav:[8,9,10,11],frontend:15,funzional:6,general:6,gestion:0,giorg:[8,9,10,11],giovann:[8,9,10,11],gitinspector:[8,9,10,11],glossar:6,gnu:3,goal:[9,10,11],goldon:[8,9,10,11],ide:3,individual:[8,9,10,11],install:15,intellij:3,interfacc:2,introdu:6,lorenz:[8,9,10,11],macr:6,mag:[9,10,11],mak:3,manual:16,met:3,metod:0,minoccar:[8,9,10,11],modul:14,nest_backend:0,nest_crawler:1,nest_frontend:2,nodejs:15,nuov:15,obiett:6,part:8,percors:0,pigozz:[8,9,10,11],powershell:3,prerequis:15,process:7,progett:[14,16],proxy:15,python:[0,1,15],react:2,ready:8,registr:[8,9,10,11],relat:12,relazion:16,retrospett:11,revers:15,review:[9,10],rimast:16,risult:8,riunion:[8,9,10,11],routes:0,scaric:15,scherm:11,screenshots:14,scrumbl:8,serviz:15,sonarqub:11,sorgent:15,sprint:[8,9,10,11],statist:[8,9,10,11],stef:[8,9,10,11],strument:13,suddivision:14,sugger:12,svilupp:7,systemd:15,tabell:0,tables:0,tecnic:16,timer:15,uso:6,utent:[2,6,15,16],utility:0,utilizz:13,web:0,windows:3}})
\ No newline at end of file
+Search.setIndex({docnames:["code/backend/index","code/crawler/index","code/database/index","code/frontend/index","code/meta/index","development/artifacts","development/conclusions","development/goals","development/process","development/sprint0/index","development/sprint1/index","development/sprint2/index","development/sprint3/index","development/suggestions","development/tools","guide/about","guide/installation","index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,"sphinx.ext.todo":2,sphinx:56},filenames:["code/backend/index.rst","code/crawler/index.rst","code/database/index.rst","code/frontend/index.rst","code/meta/index.rst","development/artifacts.rst","development/conclusions.rst","development/goals.rst","development/process.rst","development/sprint0/index.rst","development/sprint1/index.rst","development/sprint2/index.rst","development/sprint3/index.rst","development/suggestions.rst","development/tools.rst","guide/about.rst","guide/installation.rst","index.rst"],objects:{"":{Alert:[2,0,1,""],Authorization:[2,0,1,""],Composed:[2,0,1,""],Condition:[2,0,1,""],Contains:[2,0,1,""],MadeOf:[2,0,1,""],Notification:[2,0,1,""],Repository:[2,0,1,""],Tweet:[2,0,1,""],User:[2,0,1,""],nest_backend:[0,1,0,"-"],nest_crawler:[1,1,0,"-"]},"nest_backend.database":{base:[0,1,0,"-"],tables:[0,1,0,"-"]},"nest_backend.database.tables":{Alert:[0,0,1,""],Authorization:[0,0,1,""],Composed:[0,0,1,""],Condition:[0,0,1,""],ConditionMode:[0,0,1,""],ConditionType:[0,0,1,""],Contains:[0,0,1,""],MadeOf:[0,0,1,""],Notification:[0,0,1,""],OperationType:[0,0,1,""],Repository:[0,0,1,""],Tweet:[0,0,1,""],User:[0,0,1,""]},"nest_backend.database.tables.Alert":{__init__:[0,2,1,""],conditions:[0,3,1,""],evaluation_mode:[0,3,1,""],id:[0,3,1,""],limit:[0,3,1,""],name:[0,3,1,""],notifications:[0,3,1,""],repository:[0,3,1,""],repository_id:[0,3,1,""],to_json:[0,2,1,""],window_size:[0,3,1,""]},"nest_backend.database.tables.Authorization":{__init__:[0,2,1,""],email:[0,3,1,""],repository:[0,3,1,""],rid:[0,3,1,""],to_json:[0,2,1,""],user:[0,3,1,""]},"nest_backend.database.tables.Composed":{__init__:[0,2,1,""],repository:[0,3,1,""],rid:[0,3,1,""],snowflake:[0,3,1,""],tweet:[0,3,1,""]},"nest_backend.database.tables.Condition":{__init__:[0,2,1,""],alerts:[0,3,1,""],content:[0,3,1,""],id:[0,3,1,""],repository:[0,3,1,""],repository_id:[0,3,1,""],to_json:[0,2,1,""],tweets:[0,3,1,""],type:[0,3,1,""]},"nest_backend.database.tables.ConditionMode":{all_and:[0,3,1,""],all_or:[0,3,1,""]},"nest_backend.database.tables.ConditionType":{coordinates:[0,3,1,""],hashtag:[0,3,1,""],location:[0,3,1,""],place:[0,3,1,""],time:[0,3,1,""],user:[0,3,1,""]},"nest_backend.database.tables.Contains":{__init__:[0,2,1,""],cid:[0,3,1,""],condition:[0,3,1,""],snowflake:[0,3,1,""],tweet:[0,3,1,""]},"nest_backend.database.tables.MadeOf":{__init__:[0,2,1,""],aid:[0,3,1,""],alert:[0,3,1,""],cid:[0,3,1,""],condition:[0,3,1,""]},"nest_backend.database.tables.Notification":{__init__:[0,2,1,""],alert:[0,3,1,""],alert_id:[0,3,1,""],id:[0,3,1,""],ora:[0,3,1,""],to_json:[0,2,1,""]},"nest_backend.database.tables.OperationType":{assign:[0,3,1,""]},"nest_backend.database.tables.Repository":{__init__:[0,2,1,""],alerts:[0,3,1,""],authorizations:[0,3,1,""],conditions:[0,3,1,""],end:[0,3,1,""],evaluation_mode:[0,3,1,""],id:[0,3,1,""],is_active:[0,3,1,""],is_deleted:[0,3,1,""],name:[0,3,1,""],owner:[0,3,1,""],owner_id:[0,3,1,""],start:[0,3,1,""],to_json:[0,2,1,""],tweets:[0,3,1,""]},"nest_backend.database.tables.Tweet":{__init__:[0,2,1,""],conditions:[0,3,1,""],content:[0,3,1,""],image_url:[0,3,1,""],insert_time:[0,3,1,""],location:[0,3,1,""],place:[0,3,1,""],post_time:[0,3,1,""],poster:[0,3,1,""],repositories:[0,3,1,""],snowflake:[0,3,1,""],to_json:[0,2,1,""]},"nest_backend.database.tables.User":{__init__:[0,2,1,""],authorizations:[0,3,1,""],email:[0,3,1,""],isAdmin:[0,3,1,""],owner_of:[0,3,1,""],password:[0,3,1,""],to_json:[0,2,1,""],username:[0,3,1,""]},"nest_backend.gestione":{admin_or_403:[0,4,1,""],authenticate:[0,4,1,""],error_handler:[0,4,1,""],find_user:[0,4,1,""],gen_password:[0,4,1,""],hashtag_validator:[0,4,1,""],identity:[0,4,1,""],json_error:[0,4,1,""],json_request_authorizer:[0,4,1,""],json_success:[0,4,1,""],repository_auth:[0,4,1,""]},nest_backend:{database:[0,1,0,"-"],gestione:[0,1,0,"-"]},nest_crawler:{associate_condition_tweet:[1,4,1,""],authenticate:[1,4,1,""],is_coordinate_inside_bounding_box:[1,4,1,""],is_repo_alert_triggered:[1,4,1,""],search_repo_conditions:[1,4,1,""],send_notification_email:[1,4,1,""],send_notification_tweet:[1,4,1,""]}},objnames:{"0":["py","class","Python classe"],"1":["py","module","Python modulo"],"2":["py","method","Python metodo"],"3":["py","attribute","Python attributo"],"4":["py","function","Python funzione"]},objtypes:{"0":"py:class","1":"py:module","2":"py:method","3":"py:attribute","4":"py:function"},terms:{"00m":11,"100":[],"104":[],"105":[],"10h":[9,10,11],"10m":[10,11],"11h":11,"11m":11,"127":16,"12h":9,"12m":10,"13h":10,"13m":[10,11],"14m":10,"15h":9,"15m":[10,11],"16h":[10,11],"16m":10,"17h":11,"17m":11,"18m":[10,11],"19h":11,"19m":10,"2021":[9,10,11,15],"206":17,"20m":11,"214":17,"21m":11,"222":17,"23h":[9,10],"23m":10,"248":16,"25m":11,"26m":10,"27h":11,"283":17,"28m":10,"291":17,"29h":10,"29m":[10,11],"30040":16,"30041":16,"301":16,"30m":[9,10,11],"32m":10,"34m":[10,11],"35m":[9,10],"36m":10,"39m":[9,11],"40m":11,"429":17,"42m":10,"443":16,"44m":11,"45m":11,"46m":10,"47m":11,"48m":10,"492":17,"51m":11,"52m":9,"56m":10,"57m":11,"58m":10,"59m":10,"63072000":16,"7c2fm2vd":16,"andr\u00e0":7,"boolean":2,"class":[0,2],"default":2,"else":0,"enum":[0,2],"final":[8,17],"for":[0,9],"function":0,"gi\u00e0":[8,10,17],"null":2,"pu\u00f2":2,"return":0,"static":14,"super":[2,9],"this":[0,16],"var":[10,16],"with":9,Che:[13,17],Gli:[2,7],Nello:14,Noi:15,Non:[5,17],None:0,Per:[10,16],Una:[2,4,7,15,16],Uno:2,__init__:0,abbiam:[8,17],abil:16,abnormal:9,about:9,absent:9,accad:2,access:14,accett:9,according:0,account:[2,7],acme:16,actually:0,adatt:16,adds:0,adegu:[10,11],admin:2,admin_or_403:0,advices:9,after:16,age:16,agent:7,aggiorn:[],aggiunt:[7,10,11],aggreg:[7,10],aid:[0,2],alcun:[7,11,16],alert:[0,1,2,11],alert_id:[0,2],alerts:[0,9],algoritm:2,all_and:0,all_not:2,all_or:[0,2],allarm:[2,7],allert:[2,7],allowed:0,allows:0,almen:4,alon:0,altre:[9,10],altri:7,altro:2,altrov:[8,17],always:[9,16],ambient:[10,11],ambit:7,amministr:[7,16],analis:[2,7,9,10,14],analizz:7,ancor:[12,17],and:[0,2,9],andat:[6,17],andrann:11,any:[0,9],anyon:9,apac:17,apert:2,api:[10,11,15,16,17],app:16,appartenent:2,applic:[14,15,17],application:0,appost:16,approcc:11,apr:17,arch:16,archiv:[2,7],are:[0,9],artefatt:17,artifacts:17,asks:9,assign:0,associate_condition_tweet:1,attiv:[2,7,16,17],attravers:[7,15,16,17],attributes:0,autent:[10,15],authentic:[0,1],authentication:0,authorization:[0,2],authorizations:0,automat:[14,16],autor:7,autorizz:[2,15],aver:16,averag:9,avet:[6,13,17],avvi:[0,7,16],backend:[0,10,15,17],background:16,backlog:[9,17],bas:[2,7,9,10,17],based:16,bash:16,basic:4,bat:4,bcrypt:2,becaus:0,behav:9,ben:[6,17],benven:17,better:9,bin:16,bisogn:[5,17],board:9,bord:7,bozz:9,brainstorming:9,branc:9,brev:17,bug:11,bugfixing:[10,11],build:[4,16],burndown:[8,17],bytearray:2,cach:16,camb:[6,17],camp:17,cancell:10,cap:10,caratterist:17,cartell:[4,7,16],cas:[16,17],cases:[9,10],casual:16,cattur:11,cer:16,cerc:2,cert:[2,7],check:9,checks:0,chiam:10,chiav:10,chiusur:2,chown:16,cid:[0,2],classes:0,classific:2,client:[7,9,10,11,12],clientinterview:17,clon:16,cod:[0,17],codic:[10,11,14,17],codific:2,coherent:9,collabor:10,collegues:9,colonn:2,columns:0,com:[4,7,9,10,11,12,17],comand:16,combination:0,compil:[12,17],compless:[8,10,16,17],complet:[9,11],completed:9,completing:9,component:[2,9],composed:[0,2],compost:15,comprens:15,compres:9,comun:15,concess:2,conclusion:[11,17],conclusions:17,concord:9,condition:[0,2],conditionmod:0,conditions:[0,11],conditions_typ:1,conditiontyp:0,condivid:7,condivision:7,condizion:[2,7,10,11,15],conferm:9,config:16,configur:[7,9,10,11,17],configuration:4,connession:16,conoscent:7,consegn:17,consent:2,consigl:16,constructed:0,constructor:0,consult:9,cont:[2,7],contains:[0,2,17],conten:[2,16],contenent:2,conteng:2,contenitor:2,content:[0,2],contien:2,continuous:4,contribution:9,controll:[10,14],cooper:9,cooperation:9,coordin:2,coordinates:[0,2],cop:16,cor:16,correct:0,corrett:16,correzion:11,cors:[10,15,17],cos:[2,4,5,6,9],costant:16,could:[0,9],couldn:9,coverag:[11,14],crawler:[2,17],cre:[2,7,17],createdb:16,createuser:16,creating:16,creator:2,creazion:[2,7,9,10],credentials:0,criter:9,css:9,curl:16,dar:[13,17],dark:9,dashboard:[9,11],dat:[0,2,4,7,9,10,11,12,15,16],databas:[9,10,11,15,17],dbms:16,deb:10,debt:9,decl_ap:0,declar:0,decreases:9,defin:[7,9],definit:9,definition:17,definizion:[2,9,10],delin:[],dem:[11,16,17],denomin:16,depends:0,deprec:[],description:16,descriv:[8,17],descrizion:9,design:9,determin:7,dettagl:16,dev:7,development:17,diagramm:9,diar:[8,17],differenc:9,dipendent:[4,7,9,11,17],dir:16,directory:[4,16],dirett:[7,16],discord:9,discret:7,discuss:9,discussion:11,dispon:[0,4,11,16],disponessim:4,distribu:16,div:2,diven:2,divers:10,doa:16,docs:[0,4,16,17],document:[0,9,10,11,12,14],documentation:4,does:9,doesn:9,doing:9,don:17,dop:[2,16],doppiagg:9,dovr:16,dovrebb:16,driving:9,dsjiofgvinmodfiojvbnio3erfnoiweraqugu43ghjwrevniuwerng43iugnreuwignhritmj43i43nb8i42ug0wevkwovmwigtjj:16,due:7,dur:[8,9,10,11,12,17],durant:[7,9,10,11,12],during:9,each:9,edit:16,effectiveness:9,effettu:[7,10],efficent:10,efficiently:9,effort:9,elabor:15,element:[2,7],elenc:9,elimin:[2,7,10],email:[0,2,7],enabl:16,encourag:9,end:[0,2,9],engines:16,entit:[2,10],entrarv:16,entri:4,entro:2,entry:2,enumeration:0,env:16,environment:[4,16],epic:[7,9],error:[0,10],error_handler:0,errorunknownerror:0,esam:15,esecu:[14,16,17],esegu:[2,4,7,16],esemp:[10,16],esperient:7,espost:16,esse:10,essend:7,esser:[2,7,16],essi:[2,7],esso:2,estend:[7,17],estension:17,estim:9,estraiam:15,evaluating:9,evaluation:9,evaluation_mod:[0,2],event:7,eventual:2,every:9,everyon:9,exampl:0,exec:16,execstart:16,explain:9,explorer:10,expr:16,express:9,ext4:17,facing:9,fact:0,fallimentar:11,fancy:0,farl:16,fas:7,feedback:7,feel:9,feels:9,figm:9,fil:17,filtr:7,fin:[9,10,11,12,16,17],finc:16,find_user:0,finestr:7,fix:[10,11],fixtures:11,flag:2,flask:[15,17],flask_config:16,forc:16,form:15,format:0,formatted:0,forn:[7,9,10,11,12,15,16],forwarded:16,foss:4,fram:9,framework:15,friendly:9,from:[0,9],frontend:[10,11,17],full:16,fullchain:16,fundamental:9,funzion:10,funzional:[9,17],futur:[2,7,15,17],gam:9,gen_password:0,gener:[4,8,9,10,11,12,16,17],general:[9,10,11,12,17],generates:0,geograf:7,geolocalizz:[10,11],gest:[0,15,16],gestion:[7,10,17],get:9,giorn:14,git:[14,16],github:4,gitlab:[0,9,11,14,16],giust:[],glossar:17,gnu:17,goal:[9,17],goals:17,going:9,good:9,grad:9,grafic:7,gratuit:11,graz:10,grig:7,grooming:10,group:[9,16],grupp:[7,8,17],guid:[16,17],gunicorn:16,hann:9,happy:0,hash:0,hashed:0,hashtag:[0,2,7,10],hashtag_validator:0,header:16,help:9,helpful:9,higher:9,himself:9,hom:16,hosted:14,hosting:14,html:[4,16],http:[15,16],http_host:16,https:[14,16],ide:[5,9,10,14,17],ideas:9,identif:2,identity:0,illustr:16,image_url:[0,2],immagin:2,immediat:15,impar:[6,17],impieg:9,implement:10,imports:0,impost:[2,16],includ:[8,17],incontr:[7,11,17],index:17,indic:[2,17],indipendent:9,indirizz:[14,16],individu:7,inerent:10,infin:[4,7],info:10,inform:[2,9,10,11,12,16,17],informat:[7,15],initialization:0,iniz:[7,9,10,11,12,17],inizial:9,innesc:2,inoltr:2,inser:[2,5,9,10,11,12,16,17],insert_tim:[0,2],install:[4,17],installation:17,instanc:0,integer:2,integr:[4,7,11,16],intellij:[10,14,17],inter:16,interfacc:[7,17],intern:[4,15,16],internet:16,interrott:7,interv:9,introdu:17,inutil:10,invi:[2,7],involved:9,is_act:[0,2],is_coordinate_inside_bounding_box:1,is_deleted:[0,2],is_repo_alert_triggered:1,isadmin:[0,2],isol:16,ispezion:2,issu:11,issues:11,ital:11,its:0,jobs:9,json:[0,10,16],json_error:0,json_request_authorizer:0,json_success:0,jsx:15,jwt:[0,16],keep:9,key:16,keys:0,keyword:7,know:9,knowledg:9,kwargs:0,lasc:[7,11,17],latitud:1,lavor:10,leads:9,learn:9,learned:9,left:9,leg:[2,10],legam:2,let:9,lettur:2,level:9,librer:16,licenz:4,light:9,limit:[0,2,10],lin:9,line:17,link:[2,5,8,10,11,17],linux:[4,16],littl:0,local:[7,10,16],location:[0,2],log:9,logg:10,logic:7,login:[0,7,10],longitud:1,lookup:16,loopback:16,lor:7,lost:9,lowest:9,macr:17,macroscop:7,madeof:[0,2],mag:17,maggior:[9,16],mail:2,main:9,mak:17,makefil:4,makes:9,manag:10,management:[9,10,11,14],manipol:15,manten:16,manual:[4,16],many:0,mapped:0,marcell:[9,10,11,12,17],master:9,matc:0,max:16,mechanics:9,member:9,members:9,membr:9,men:2,mentr:4,merg:9,mess:2,messag:0,met:17,method:0,metod:[10,17],metric:9,mett:[8,17],mezz:7,miglior:[10,14],missirol:[9,10,11,12,13,17],mkdir:16,mnt:17,mockup:[9,10,11],mod:[7,9,10,16],model:0,modic:10,modif:[10,11,14],modul:[0,10,17],molt:16,moment:[2,7,10],most:9,mostr:[7,10,11,12,15,17],mot:16,motivation:9,msg:0,mult:16,multilinguagg:14,nam:[0,2],names:0,necess:16,necessar:[4,9,16],need:9,needs:0,nest:16,nest_backend:[15,16,17],nest_crawler:[15,17],nest_frontend:[15,17],network:16,never:9,next:9,node_env:16,node_modules:16,node_version:16,nodejs:17,nom:[2,10,16],nonexisting:17,not:[0,2,9],notif:[2,7],notification:[0,2],notifications:[0,2,9],npm:16,nss:16,number:9,numer:[2,7,8,17],nuov:[2,7,11,17],nvm:16,oauth:10,obiett:17,oggett:2,ogni:2,one:9,onlin:16,only:0,oper:16,operation:0,operationtyp:0,opinion:9,opinions:9,oppur:[2,7],opzional:2,ora:[0,2,9,10,11,12,16],orar:2,ore:2,org:16,organiz:9,organizz:10,original:17,orm:0,ospit:[4,14],other:9,ottimizz:16,output:10,ove:7,ovver:2,owner:[0,9,16],owner_id:[0,2],owner_of:0,pacchett:16,pagin:9,pair:10,param:0,parametr:4,parents:16,parol:10,part:[7,10,14,15,17],partecip:[8,17],partenz:2,participants:9,particol:[4,7],particolar:7,pass:11,password:[0,2],pawn:9,payload:0,penpot:9,perc:[11,16],percors:[16,17],perfect:9,permess:2,permett:[2,4,7],pertant:16,piattaform:[2,7],piccol:[7,11],pien:16,plac:[0,2],place_id:11,plan:9,planning:9,platform:0,play:9,played:9,player:9,players:9,plugin:10,poetry:[4,16],poi:4,point:9,poker:9,poor:9,port:16,porting:11,posizion:[2,7],poss:[2,16],possibil:[4,7,9,16],post:2,post_tim:[0,2],poster:[0,2],postgres:16,postgresql:16,pot:9,poter:10,potr:7,potrann:7,powershell:17,practic:9,precedent:16,predic:7,predisposizion:10,preferibil:16,prem:16,prepar:11,prerequis:17,present:[0,2,7,9,10,15],presenz:2,preved:7,prim:[2,4,7,9,10,11,16],principal:[7,10],priorit:9,priority:9,problem:9,process:[9,17],prod:16,prodott:[7,9],product:9,production:16,prof:[9,10,11,12,13,17],progett:[4,7,9,10,14,16],programming:10,project:[9,10,11,14],properly:9,propr:[7,16],propriet:10,proprietar:2,prosegu:16,prot:16,protocols:16,prov:10,proxy:17,proxypass:16,proxypassrevers:16,pubblic:[2,7,11,16],punt:7,put:11,puts:9,py3:16,pypoetry:16,pytest:11,python:[4,15,17],qual:[2,7,11,16],qualit:14,quality:9,qualor:[4,7,17],qualsias:7,quand:2,quant:16,quel:10,quell:[7,10],query:11,quest:[2,4,9,10,11,12,16],question:9,questions:9,qui:[5,7,10,11,12,17],raccogl:[7,9],raccolt:[2,7],radius:1,ragg:2,rappresent:[2,16],react:[15,17],readthedocs:4,ready:17,realizz:[10,11,15],recuper:15,recurs:16,ref:[8,17],refactor:10,refactoring:[10,11,14],referenc:17,registered:0,registr:17,regol:7,regolar:7,relat:[2,4,7,9,17],relationships:0,relazion:10,rend:16,rep:[2,10],repeat:9,repeatabl:9,report:12,repositories:[0,9],repository:[0,2,7,10,11,14],repository_auth:0,repository_id:[0,1,2],reqest:0,request_schem:16,requestheader:16,required:[0,9],resocont:9,rest:16,restitu:10,restructuredtext:4,ret:16,retrieval:10,retrospect:[9,10,11],retrospett:[8,11,17],returned:0,returns:0,revers:17,review:17,rewriteengin:16,rewriterul:16,riavv:16,ricerc:[7,10],ricev:7,richied:2,richiest:[7,9,10],ricord:16,rid:[0,2],riemp:2,rifatt:[],rig:[16,17],righ:2,riguard:10,rilev:7,rimang:16,rimoss:7,rimozion:10,ripet:[16,17],riport:7,riserv:2,risolt:11,risolu:11,rispett:2,risult:17,ritocc:[9,10],ritorn:[10,11],riusc:11,roles:9,root:16,routes:17,rp_app:16,rst:17,run:[4,16],ruol:16,sal:2,salv:[15,16],sar:[7,16],sarann:7,scanner:11,scaric:17,scegl:7,schem:[],scherm:17,scop:7,screenshot:[12,17],screenshots:17,script:[4,16],scritt:[4,10,15],scrittur:[10,14],scriv:[5,6,16,17],scrum:9,scrumbl:17,search_repo_conditions:1,second:15,secret_key:16,security:16,see:16,segnal:[2,11],segret:16,segu:[7,8,17],seguent:[2,9,10,11,12,14,16],selezion:7,self:14,semplic:7,send_notification_email:1,send_notification_tweet:1,senz:7,serenity:9,serializabl:0,serv:16,server:[0,15,16],servernam:16,servic:16,serviz:17,session:[10,11],set:16,sets:0,setting:11,settings:9,setup:[11,16],shar:9,sharing:9,shell:[4,16],shouldnt:0,sian:[],sicurezz:16,simpl:0,sint:16,sistem:[4,7,16],sit:10,situation:9,siz:9,smallint:2,snowflak:[0,2],soddisf:7,soddisfacent:7,soddisfatt:7,softw:[7,14,15],sogl:2,sol:[8,16,17],solving:9,something:9,son:[2,7,14,16],sonarqub:[9,10,11,14,17],sorgent:[4,9,17],sostitu:16,sourc:[4,17],speaks:9,spec:0,specif:[0,9],specific:10,sphinx:4,sprint0:17,sprint1:[10,17],sprint2:[11,17],sprint3:17,sprint:[7,8,17],sprints:9,sqlalchemy:[0,16],sqlalchemy_database_ur:16,srs:9,srv:16,sslcertificatefil:16,sslcertificatekeyfil:16,sslengin:16,stag:9,standard:4,standardizz:10,start:[0,2,16],stat:[2,7,9,10,11,12,14,16],statist:[7,15,17],steff:[14,16],stess:16,stesur:[9,10],stim:9,stories:9,story:[7,9],strict:16,string:[0,2,16],strument:[4,17],struttur:[4,10,17],stud:10,success:[9,16],successful:0,such:0,suddivision:17,sugger:[8,16,17],suggestions:[9,17],support:10,sur:9,svilupp:[2,7,9,10,11,14,17],svolt:10,swagger:[0,11],system:0,systemctl:16,systemd:17,tabell:[2,17],tables:17,taig:[9,10,11,12,14,17],talks:9,talvolt:16,target:[4,16],tasks:9,tast:16,tastier:16,team:[9,10,11],technical:9,tecnic:10,telemat:7,temp:[2,7,9,17],temporal:7,ten:2,tentat:11,ter:17,termin:[7,9,10,11,17],test:[9,10,11,16],tester:9,testing:[10,11,14],tests:11,that:0,the:[0,9,16],thes:0,they:9,thing:0,thingamajigs:0,throughout:9,tim:[0,2,9],timer:17,timestamp:2,tip:[2,10],tipolog:7,to_json:0,toctre:17,tod:12,token:16,topic:9,total:[9,10,11,12],totally:9,tracc:[2,14],traduzion:11,tram:[7,10,16],transport:16,tre:[7,15],trigger:2,trov:[4,7,17],tru:2,tutt:[7,9,10,14,16],tweepy:15,tweet:[0,1,2,7,10,11,15],tweet_latitud:1,tweet_longitud:1,tweets:0,twitter:[2,7,9,10,15],type:[0,2,16],ulterior:11,ultim:[2,4,9,10,14],uml:7,understand:9,uniform:9,uniformity:9,unimor:15,unit:16,univoc:2,unrepeatabl:9,usa:16,usand:[2,8,15,17],usat:[2,14],use:9,used:0,user:[0,2,4,7,9,10,11,16],useradd:16,usernam:[0,2],users:[10,11],usi:[],using:0,uso:[16,17],usr:16,utent:[2,10,11,15],utility:17,utilizz:[2,7,10,11,16,17],valid:0,valor:2,valu:0,values:0,valut:11,varc:2,variabil:16,ved:[0,16],ven:[2,10],veng:[7,16,17],venv:[4,16],verif:16,verification:0,verr:16,verrann:7,version:[4,9,11,14,16],vide:[5,9,10,11,17],vien:2,vim:16,virtual:4,virtualenv:16,virtualenvs:16,virtualhost:16,vision:9,vist:[7,8,17],visualizz:[7,14,15],volt:[0,2,4,7,10],want:0,wantedby:16,wants:[9,16],was:0,web:[14,15,16,17],webserver:0,well:9,what:9,when:9,whether:0,willing:9,window_siz:[0,2],windows:17,wis:9,working:16,workingdirectory:16,you:[0,16]},titles:["nest_backend - Web API in Python","nest_crawler - Crawler in Python","Struttura del database","nest_frontend - Interfaccia utente in React","Meta-documentazione","Artefatti","Conclusioni","Introduzione","Processo di sviluppo","Sprint 0: 04 Apr - 18 Apr","Sprint 1: 19 Apr - 02 Mag","Sprint 2: 03 Mag - 16 Mag","Sprint 3: 17 Mag - 30 Mag","Suggerimenti relativi al corso","Strumenti utilizzati","Il progetto in breve","Installazione","N.E.S.T."],titleterms:{"final":12,altri:17,anniball:[9,10,11,12],apac:16,api:0,applic:7,apr:[9,10],artefatt:5,attiv:[9,10,11,12],backend:16,backlog:[7,10,11,12],balugan:[9,10,11,12],bas:0,brev:15,calzolar:[9,10,11,12],camp:7,caratterist:7,cas:7,chiar:[9,10,11,12],cocc:[9,10,11,12],codic:16,colleg:17,collett:[9,10,11,12],com:16,compil:[4,16],conclusion:6,configur:16,consegn:[9,10,11,12],cors:13,cos:17,crawler:[1,16],cre:16,databas:[0,2,16],definition:[9,10,11,12],dem:5,descrizion:[],dipendent:16,document:[4,17],don:[9,10,11,12],estension:0,far:[5,6,7,8,9,10,11,12,13,16,17],fil:16,flask:0,flav:[9,10,11,12],frontend:16,funzional:7,general:7,gestion:0,giorg:[9,10,11,12],giovann:[9,10,11,12],gitinspector:[9,10,11,12],glossar:7,gnu:4,goal:[10,11,12],goldon:[9,10,11,12],ide:4,individual:[9,10,11,12],install:16,intellij:4,interfacc:3,introdu:7,lorenz:[9,10,11,12],macr:7,mag:[10,11,12],mak:4,manual:17,met:4,metod:0,minoccar:[9,10,11,12],modul:15,nest_backend:0,nest_crawler:1,nest_frontend:3,nodejs:16,nuov:16,obiett:7,part:9,percors:0,pigozz:[9,10,11,12],powershell:4,prerequis:16,process:8,progett:[15,17],proxy:16,python:[0,1,16],react:3,ready:9,registr:[9,10,11,12],relat:13,relazion:17,retrospett:12,revers:16,review:[10,11],rimast:17,risult:9,riunion:[9,10,11,12],routes:0,scaric:16,scherm:12,screenshots:15,scrumbl:9,serviz:16,sonarqub:12,sorgent:16,sprint:[9,10,11,12],statist:[9,10,11,12],stef:[9,10,11,12],strument:14,struttur:2,suddivision:15,sugger:13,svilupp:8,systemd:16,tabell:0,tables:0,tecnic:17,timer:16,uso:7,utent:[3,7,16,17],utility:0,utilizz:14,web:0,windows:4}})
\ No newline at end of file
diff --git a/docs/source/code/database/index.rst b/docs/source/code/database/index.rst
new file mode 100644
index 0000000..9ab1295
--- /dev/null
+++ b/docs/source/code/database/index.rst
@@ -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
diff --git a/docs/source/development/goals.rst b/docs/source/development/goals.rst
index e192a72..6e86446 100644
--- a/docs/source/development/goals.rst
+++ b/docs/source/development/goals.rst
@@ -92,247 +92,6 @@ numero di tweet in una certa *finestra temporale*.
.. _posizione geografica: https://help.twitter.com/en/safety-and-security/tweet-location-settings
-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:
-
-
- .. 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)
- -
-
-
-
- **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
-
-
-
- **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
-
-
-
- **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);
-
- 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)
- -
-
-
-
-**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
-
-
-
-
-**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
-
-
-
-
-**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)
- -
-
-
-
-**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
-
-
-**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
-
-
-**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
-
-
Casi d'uso
----------
@@ -345,26 +104,32 @@ 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
diff --git a/docs/source/index.rst b/docs/source/index.rst
index cb3d33a..af54e51 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -31,6 +31,7 @@ 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
|