Skip to content
This repository was archived by the owner on Apr 21, 2023. It is now read-only.

Latest commit

 

History

History
229 lines (191 loc) · 5.73 KB

File metadata and controls

229 lines (191 loc) · 5.73 KB

Progetto programmazione ad oggetti - TICKETMASTER

Lista contenuti


Introduzione

La nostra applicazione ci permette di studiare gli eventi che avranno luogo in Europa, utilizzando le API del sito ticketmaster.
L'applicazione deve permettere all'utente finale di visualizzare delle statistiche per ogni stato. Inoltre, l'utente deve poter avere la possibilità di calcolare/filtrare le statistiche in base a dei filtri scelti dall'utente stesso.

Installazione

TicketMaster è installabile dal Prompt dei Comandi digitando:

git clone https://github.com/Girg-Z/UNI-Java.git

Configurazione

Per accedere al nostro servizio è necessario modificare la variabile api_key in aplication.properties. Si può ottenere una API key gratuitamente accedendo alla pagina di TicketMaster. Infine basterà avviare il web-server.


Diagrammi UML

Class Diagram

alt text

Use Case Diagram

alt text

Sequance Diagram

  • EVENTS

alt text

  • STATS

alt text

Rotte API

Rotta Metodo Funzione
/metadata GET Mostra le catatteristiche degli attributi della classe Event
/stats GET Mostra il numero totale di eventi, numero di eventi raggruppati per genere, numero minimo/massimo/medio di eventi mensili. Filtraggio in base a: uno o più stati, uno o più generi
/events GET Mostra lista eventi. Filtrabile.

METADATA

Metadata non vuole nulla in input.
Esempio di output:

[
  {
    "Type": "String",
    "Sourcefield": " codice identificazione ",
    "Alias": "id"
  },
  {
    "Type": "String",
    "Sourcefield": " nome evento ",
    "Alias": "name"
  },
  {
    "Type": "String",
    "Sourcefield": " tipo evento ",
    "Alias": "type"
  },
  {
    "Type": "LocalDate",
    "Sourcefield": " data inizio ",
    "Alias": "startDate"
  },
  {
    "Type": "LocalDate",
    "Sourcefield": " data fine ",
    "Alias": "endDate"
  },
  {
    "Type": "String",
    "Sourcefield": " segmento ",
    "Alias": "segment"
  },
  {
    "Type": "String",
    "Sourcefield": " genere evento ",
    "Alias": "kind"
  },
  {
    "Type": "String",
    "Sourcefield": " Stato ",
    "Alias": "country"
  },
  {
    "Type": "String[]",
    "Sourcefield": "",
    "Alias": "COMPARABLE_FIELDS"
  }
]

STATS

Come input prende il parametro filter contenente un json come da esempio:

{"countries": ["uk", "it"],"period": 7}

Esempio di output:

[
  {
    "country": "DE",
    "average": 9,
    "maximumOfEvent": 39,
    "eventsByGenre": {
      "Motorsports/Racing": 1,
      "Miscellaneous": 1,
      "Alternative": 2,
      "Rock": 150,
      "Volleyball": 2,
      "Theatre": 5,
      "Family": 1,
      "Classical": 1,
      "Dance/Electronic": 3,
      "Spectacular": 4,
      "Wrestling": 3,
      "Hip-Hop/Rap": 27
    },
    "minimumOfEvent": 0,
    "numberOfEvents": 200
  },
  {
    "country": "IT",
    "average": 0,
    "maximumOfEvent": 0,
    "eventsByGenre": {},
    "minimumOfEvent": 0,
    "numberOfEvents": 0
  }
]

EVENTS

Come input prende il parametro filter contenente un json come da esempio:

{"$and": [{"country": "DE"}, {"startDate": {"$bt": [2021-05-29, 2021-06-29]}}]}
OPERATORI LOGICI

Gli operatori logici disponibili sono i seguenti:

Operatore Funzione Formato
$and and logico {"$and": [filter1, filter2]}
$or or logico {"$or": [filter1, filter2]}
$not negazione "field" : {"$not" : value}}
$in trova qualsiasi valore contenuto nella lista {"field" : {"$in" : [value1, value2, ...]}}
$nin negazione del filtro $in {"field" : {"$nin" : [value1, value2, ...]}}
$gt > {"field": {"$gt": value}}
$gte >= {"field": {"$gte": value}}
$lt < {"field": {"$lt": value}}
$lte <= {"field": {"$lte": value}}
$bt contenuto nel range {"field": {"$bt": [value1, value2]}}

Esempio di output:

{
  "totalEvents": 2,
  "events": [
    {
      "country": "DE",
      "Type": "event",
      "endDate": "2021-07-06",
      "kind": "Rock",
      "segment": "Music",
      "name": "Sting",
      "id": "Z698xZC2Z17uOFo",
      "startDate": "2021-07-06"
    },
    {
      "country": "DE",
      "Type": "event",
      "endDate": "2021-07-10",
      "kind": "Rock",
      "segment": "Music",
      "name": "Sting",
      "id": "Z698xZC2Z17uOat",
      "startDate": "2021-07-10"
    }
  ]
}

Javadoc

Javadoc disponibile al seguente link: https://girg-z.github.io/UNI-Java/

Autori

Progetto sviluppato in modo equo da:

  • Diego Manzo
  • Giorgio Zanchetti