Il progetto 竪 stato realizzato per l'esame di Gestione Avanzata dei dati. Esso prevedeva la creazione di un sito web il quale recuperava informazioni nel web tramite web scraping ed API.
In particolare abbiamo deciso di realizzare un sito web che fosse in grado di fornire informazioni utili agli appassionati di fantacalcio. Le informazioni sono state recuperate su i siti pi湛 rilevanti nel campo per cercare di offrire informazioni pi湛 dettagliate. E' possibile visionare una demo del sito presso: https://www.youtube.com/watch?v=IU0K5K-ZsEg.
Il nome deriva dall'unione di fantacalcio e dell'acronimo del corso per il quale 竪 stato realizzato il progetto (GAD).
Gabriele Lombari & Alessandra Zullo & Gaetano Prisco
1 of 42
Download to read offline
More Related Content
FantaGAD
1. Gestione Avanzata dei Dati - Prof. Gennaro Costagliola
Gabriele Lombari | Alessandra Zullo | Gaetano Prisco
AnnoAccademico: 2015 - 2016
3. Specifica del Problema (1)
L'obiettivo che il progetto si pone 竪 riuscire a fornire in un unico sito
tutte le informazioni utili ai giocatori di Fantacalcio*.
*Il Fantacalcio 竪 un popolare gioco di fantasia sul calcio che consiste
nell'organizzare e gestire squadre virtuali formate da calciatori reali, scelti tra
quelli che giocano il torneo a cui il gioco si riferisce (nel nostro caso alla Serie A).
3SPECIFICA DEL PROBLEMA
4. Specifica del Problema (2)
I dati forniti dal progetto sono i seguenti:
Informazioni su tutte le squadre di Serie A;
Probabili formazioni di ogni match della prossima giornata di campionato;
Calendario contenente le informazioni di tutti i match del campionato di Serie A;
Quote per le partite della prossima giornata;
Live delle partite in tempo reale;
Dettagli tecnici dei match gi conclusi.
4SPECIFICA DEL PROBLEMA
6. Fonti (1)
Lega Serie A: http://www.legaseriea.it
Utilizzata per ottenere il calendario del campionato, le informazioni sulle squadre e le
informazioni dei match passati.
Web Scraping
Wikipedia: https://it.wikipedia.org
Utilizzata per ottenere la storia delle squadre.
Web Scraping
Fastest live scores: https://docs.crowdscores.com
Utilizzata per il live di una partita.
API
6FONTI
7. Fonti (2)
Google Maps: https://maps.google.it
Utilizzata per ottenere le coordinate della sede centrale di ogni squadra (reverse geocoding) e
per visualizzare la stessa sulla mappa
API
Google Custom Search: https://developers.google.com/web-search/
Utilizzata per ricavare lurl della pagina Wikipedia della squadra di cui ricavare le informazioni.
API
Fantagazzetta: https://www.fantagazzetta.com
Utilizzata per ottenere le probabili formazioni di ogni match relativo alla prossima giornata di
campionato.
Web Scraping
7FONTI
8. Fonti (3)
8FONTI
William Hill: http://www.williamhill.it
Utilizzata per ricavare le quote delle partite della prossima giornata di
campionato.
Web Scraping
10. Meccanismi di caching
10CACHE
Per alcune query effettuate 竪 salvato in risultato in cache con un
tempo di scadenza che dipende dal grado di volatilit della fonte.
Il caching 竪 stato effettuato sia lato client che lato server.
12. Cache - Client-side
12CACHE
INFORMAZIONI SCADENZA
Calendario: informazioni relative ad
ogni giornata di campionato.
24 h
Probabili formazioni: informazioni
relative alle probabili formazioni del
prossimo match di campionato.
24 h
13. Ruoli e responsabilit del team di progetto
[Gabriele Lombari]
Informazioni Squadre, Probabili
Formazioni
www.gabrielelombari.it
[Alessandra Zullo]
Calendario, Informazioni
Match
www.alessandrazullo.it
[Gaetano Prisco]
Quote, Live
13RUOLI
14. 14INFORMAZIONI SQUADRA
I dati sono stati estratti da wikipedia.it e legaseriea.it
mediante WebScraping eseguito con appositi script
PHP. Sono state inoltre utilizzate le Google Custom
Search API e le Google Maps API.
Le informazioni delle squadre sono memorizzate in
locale sul client (localStorage) quando la pagina 竪
visitata.
In questa pagina 竪 stata effettuata loperazione di
JOINT.
Informazioni squadra
15. 15PROBABILI FORMAZIONI
I dati sono stati estratti da fantagazzetta.it mediante
WebScraping eseguito con appositi script PHP.
Le informazioni sulle probabili formazioni sono
memorizzate su un database NOSQL sul server e in
locale sul client (localStorage) quando la pagina 竪
visitata.
Probabili formazioni
16. 16LIVE
I dati sono aggiornati in real-time(ogni 15 secondi).
I dati sono recuperati mediante le API di CrowdScores.
Per tale pagina non sono previsti meccanismi di caching.
Live
17. 17CALENDARIO
Per ogni giornata di campionato 竪 stata creata una tabella:
Intestazione: numero giornata + data giornata.
Riga: scudetto team1 + nome team1 + score + nome
team2 + scudetto team 2 + pulsante informazioni
o pulsante live.
Calendario (1)
18. 18CALENDARIO
I dati sono stati estratti da LegaSerieA mediante
WebScraping eseguito con appositi script PHP.
Il calendario 竪 memorizzato su un database NOSQL sul
server e in locale sul client (localStorage) quando la
pagina 竪 visitata.
I dati sono aggiornati mediante uno script PHP di
update invocato ogni 24 ore dal sito cron-job.org.
Calendario (2)
19. 19INFORMAZIONI MATCH
I dati sono stati estratti da LegaSerieA mediante
WebScraping eseguito con appositi script PHP.
Per tale funzionalit non 竪 previsto nessun
meccanismo di caching.
Informazioni match
20. 20QUOTE
I dati sono stati estratti da WilliamHill mediante
WebScraping eseguito con appositi script PHP.
Per tale funzionalit non 竪 previsto nessun
meccanismo di caching.
Quote Serie A
36. Query
36QUERY
1) Mostra la storia di una determinata squadra.
Q1(storia)
2) Dato un determinato match in corso mostrare i minuti dei goal effettuati da una
squadra.
Q2(minuto)
3) Date due squadre mostrare le quotazioni del match tra esse.
Q3(quota1,quotaX, quota2)
37. Query in datalog e SQL-1
37QUERY IN DATALOG
1) Mostra la storia di una determinata squadra.
Q1(storia):-informazioniSquadre(nome_squadra, storia, _ , _, _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _) ^
nome_squadra=napoli"
SELECT storia FROM InformazioniSquadre WHERE squadra='milan'
2) Dato un determinato match in corso mostrare i minuti dei goal effettuati da una squadra.
Q2(minuto) :- live(id, tipo_evento, squadra_convolta, _ , minuto) ^ id="id_match_scelto" ^
squadra_coinvolta="napoli" ^ tipo_evento=goal"
SELECT minuto FROM Live WHERE ID = 'my_id' AND squadra_coinvolta='napoli' AND
tipo_evento='goal'
38. Query in datalog e SQL-2
38QUERY IN DATALOG
3) Date due squadre mostrare le quotazioni del match tra esse.
Q3(quota1,quotaX, quota2) :- quote(team1, team2, quota1, quotaX, quota2) ^ team1="napoli" ^
team2="milan"
SELECT quota1, quota2, quotaX FROM quote WHERE squadra1='napoli' AND squadra2='milan'