1
Fork 0
mirror of https://github.com/pds-nest/nest.git synced 2024-11-22 13:04:19 +00:00
pds-2021-g2-nest/doc/development/sprint-0/database-analysis.md
Stefano Pigozzi 4c4f0387fe
🧹 Reorganize files
2021-04-17 17:31:08 +02:00

3.7 KiB

Analisi del database

Glossario generale

Vedi glossary.md

Glossario specifico

Entità Attributi Interazioni
User email, username, password Repository
Repository id, name, start, end, status User, Tweet, Alert, Keyword
Tweet snowflake, content, location, poster Repository, Condition
Condition id, type, param BoolOperation
BoolOperation id, operation, condition_id, alert_id, node_1, node_2 Alert, BoolOperation, Condition
Alert id, repository_id, name, limit, window_size BoolOperation, Norifica, Repository
Notifica id, ora, alert_id Alert

Elementi

User

Username: Steffo Email: ste.pigozzi@gmail.com Password: ···········

L'utilizzatore della piattaforma, colui che ha accesso ai dati.

L'utente possiede una email per ricevere gli Alert, una password per accedere al servizio e un username per essere più facilmente riconoscibile.

Un utente può avere più Repository sotto il suo controllo.

Repository

Repository "Modena e dintorni"

Un insieme di Tweet che soddisfano una o più Condition.

Ha un proprietario che può cambiarne le impostazioni, ma possono essere visibili a più Users.

Un repository può avere diversi Alert.

Tweet

Tweet di @USteffo: "Testo di sopra #PdS2021"

Un post su Twitter, che viene salvato su NEST se soddisfa le Condition richieste da uno o più Repository.

I Tweet sono identificati da un particolare tipo di identificatore chiamato snowflake.

Contiene informazioni relative al poster del tweet, il suo content e opzionalmente informazioni sulla location in cui è stato scritto.

Condition

Tweet contenenti #PdS2021

Tweet postati a Modena

Tweet postati tra le 21:00 e le 23:00 del 15 Aprile

Un predicato usato per effettuare ricerca e filtraggio di Tweet.

Può essere di diversi tipi:

  • HASHTAG: richiede che un tweet contenga un determinato hashtag
  • LOCATION: richiede che un tweet venga inviato in una specifica location
  • TIME: richiede che un tweet venga inviato in un dato lasso di tempo

Viene utilizzato all'interno di Repository e Alert per definire le condizioni in cui catturare tweet o allertare l'utente.

È possibile unire più condizioni con una o più BoolOperation.

BoolOperation

Tweet contenenti #Modena OR Tweet postati a Modena

Tweet postati tra le 21:00 e le 23:00 del 15 Aprile AND Tweet contenenti #PdS2021

Un nodo di albero binario usato per combinare più Condition.

Le foglie fanno riferimento a una Condition, mentre i rami fanno riferimento ad altre BoolOperation.

Supporta le seguenti operazioni:

  • AND: intersezione
  • OR: unione

Alert

Un elemento di un Repository a cui è legata una BoolOperation.

Se i Tweet di un Repository che rispettano la BoolOperation superano un certo limit in un lasso di tempo, si attiva e notifica l'utente.

Notifica

Una notifica legata ad un Alert che viene creata quando l'alert viene innescato.