Mashup - Sustainability

20
Debiasi Alberto 26/08/2009 P ROGETTO L AB . C OMPUTER G RAPHICS

description

A mashup is a Web application that combines data from one or more sources into a single integrated tool. The goal of the project is the possibility to visualize sustainable restaurants on the territory.

Transcript of Mashup - Sustainability

Page 1: Mashup - Sustainability

Debiasi Alberto

26/08/2009

PROGETTO LAB.

COMPUTER GRAPHICS

Page 2: Mashup - Sustainability

26/8/2009

1

PROGETTO LAB. COMPUTER GRAPHICS

Sommario

Introduzione .......................................................................................................................... 2

Oggetti Utilizzati ................................................................................................................... 2

Fornitore ............................................................................................................................ 2

Ristorante........................................................................................................................... 2

Piatto .................................................................................................................................. 2

Ingrediente ......................................................................................................................... 3

Servizi Esterni Coinvolti ....................................................................................................... 4

http://maps.google.com/ ..................................................................................................... 4

http://www.ip-adress.com/ ................................................................................................. 4

http://www.paginegialle.it/ ................................................................................................ 5

http://en.wikibooks.org/ ..................................................................................................... 5

http://chuck-wright.com/ .................................................................................................... 6

Gestione Database................................................................................................................. 7

Struttura Database ........................................................................................................... 7

Informazioni sui fornitori .............................................................................................. 7

Informazioni sui ristoratori ........................................................................................... 7

Informazioni sui piatti ................................................................................................... 8

Informazioni sui prodotti ............................................................................................... 9

Creazione Database ........................................................................................................... 9

Inserimento di Ristoranti e Fornitori ............................................................................ 9

Inserimento di Piatti e Prodotti .................................................................................... 9

Creazione del Menù e della lista Prodotti ..................................................................... 9

Aggiunta fornitori per ogni prodotto ............................................................................. 9

Ruoli Interni ........................................................................................................................ 10

Ruolo Utente .................................................................................................................... 10

Ruolo Ristoratore ............................................................................................................. 13

Ruolo Fornitore ................................................................................................................ 16

Informazioni Ricavate ......................................................................................................... 18

Prezzo ............................................................................................................................... 18

Distanza ........................................................................................................................... 18

Sostenibilità ..................................................................................................................... 19

Page 3: Mashup - Sustainability

26/8/2009

2

INTRODUZIONE Questo progetto riguarda in generale l‘alimentazione; ci sono tre parti coinvolte:

• L’utente: può visualizzare un insieme di ristoranti secondo dei diversi criteri.

• Il ristoratore: può visualizzare un insieme di fornitori secondo diversi criteri, può

assegnare fornitori agli ingredienti che compongono i suoi piatti, può creare o

modificare il proprio menù.

• Il fornitore: può creare la lista dei propri prodotti, può a sua volta acquistare i

prodotti da altri fornitori secondo diversi criteri.

OGGETTI UTILIZZATI Gli oggetti in java che ho creato sono i seguenti:

Fornitore L’oggetto fornitore ha i seguenti attributi:

Coordinate: latitudine , longitudine

Nome Fornitore

Indirizzo Fornitore

Codice Postale

Regione

Telefono

Lista Prodotti

Ristorante L’oggetto ristorante ha i seguenti attributi:

Coordinate: latitudine , longitudine

Nome Ristorante

Indirizzo Ristorante

Codice Postale

Regione

Telefono

Menù: lista piatti

Lista Ingredienti

Piatto L’oggetto piatto è l’elemento che compone il menù del ristorante, ha i seguenti attributi:

Nome Piatto

Url: che corrisponde alla pagina di Wikipedia del piatto

Lista ingredienti

Prezzo

Page 4: Mashup - Sustainability

26/8/2009

3

Ingrediente L’oggetto ingrediente è l’elemento che compone un piatto, ha i seguenti attributi:

Nome Ingrediente

Prezzo

Nome fornitore

Page 5: Mashup - Sustainability

26/8/2009

4

SERVIZI ESTERNI COINVOLTI Questo progetto è un Mashup di componenti, in seguito sono riportati i servizi internet

che ho utilizzato.

http://maps.google.com/ Ho utilizzato questo servizio per ricavare le informazioni riguardanti le coordinate di

una carta località. Oppure viceversa, cioè date la longitudine e la latitudine viene

restituita la località. In seguito ho riportato un esempio:

In questo esempio vengono restituite le coordinate di “Trento”

http://www.ip-adress.com/ Quando l’utente avvia il programma, quest’ultimo utilizza il sito http://www.ip-

adress.com/ per avere la posizione geografica calcolata dall’indirizzo IP della macchina

nella quale viene eseguito il programma.

Page 6: Mashup - Sustainability

26/8/2009

5

Pagina web con l’indirizzo IP e la rispettiva localizzazione geografica

http://www.paginegialle.it/ Ho utilizzato questo servizio per avere le informazioni sui ristoranti e fornitori presenti

nel Trentino.

In questo esempio vengono restituiti i ristoranti presenti a Trento

http://en.wikibooks.org/ Ho utilizzato questo servizio per avere un gran numero di pietanze con i rispettivi

ingredienti.

Page 7: Mashup - Sustainability

26/8/2009

6

In questo esempio vengono visualizzati una lista di piatti presenti in wikipedia.

http://chuck-wright.com/ Ho utilizzato questo servizio per avere la formula utilizzata per calcolare il consumo di

Co2. Ho preso il codice del sito scritto in javascript e ho riscritto la parte di codice

relativa al consumo di Co2 in java.

Ho

utilizzato la prima parte della tabella; quella riguardante il consumo in auto

Page 8: Mashup - Sustainability

26/8/2009

7

GESTIONE DATABASE

Struttura Database Questo progetto utilizza i file .xml per salvare le informazioni.

Il database è diviso in 4 parti:

Informazioni sui fornitori

Ogni file contiene le informazioni di un fornitore, il nome del file è composto dalle

coordinate del fornitore (latitudine e longitudine). Il seguente schema mostra un

fornitore salvato in un file xml.

Esempio di un fornitore salvato in un file xml

Attualmente sono presenti nel database 168 fornitori.

Informazioni sui ristoratori

Ogni file contiene le informazioni di un ristorante, il nome del file è composto dalle

coordinate del ristorante (latitudine e longitudine). Il seguente schema mostra un

ristorante salvato in un file xml.

Page 9: Mashup - Sustainability

26/8/2009

8

Esempio di un ristorante salvato in un file xml

Attualmente sono presenti nel database 241 ristoranti.

Informazioni sui piatti

Ogni file contiene le informazioni di un piatto, il nome del file è composto dal nome del

piatto. Il seguente schema mostra un piatto salvato in un file xml.

Esempio di un piatto salvato in file xml (Spaghetti alla carbonara)

Page 10: Mashup - Sustainability

26/8/2009

9

Attualmente sono presenti nel database 524 piatti.

Informazioni sui prodotti

Ogni file contiene le informazioni di un prodotto, il nome del file è composto dal nome del

prodotto. Il seguente schema mostra un prodotto salvato in un file xml.

Esempio di un prodotto salvato in un file xml

Attualmente sono presenti nel database 666 prodotti.

Creazione Database Poiché il progetto coinvolge un gran numero di ristoranti, fornitori, piatti e prodotti ho

creato un programma per la creazione del database. Ho seguito le seguenti fasi:

Inserimento di Ristoranti e Fornitori

Il progetto ha lo scopo di analizzare i prodotti in trentino quindi ho utilizzato

“http://www.paginegialle.it/” per avere i fornitori e i ristoranti presenti a Trento,

Rovereto, Bolzano. Poi ho salvato i risultati nel database.

Inserimento di Piatti e Prodotti

Per avere un gran numero di piatti con i rispettivi ingredienti ho utilizzato

“http://en.wikibooks.org/”. I prodotti invece sono tutti gli ingredienti che compongono i

piatti trovati. Poi ho salvato i risultati nel database.

Creazione del Menù e della lista Prodotti

Per ogni ristorante ho inserito in modo casuale 25 piatti con un prezzo che varia da 0.1 a

100 euro (generato casualmente).

Per ogni fornitore ho inserito in modo casuale 150 prodotti con un prezzo che varia da

0.1 a 15 euro (generato casualmente).

Aggiunta fornitori per ogni prodotto

Per ogni prodotto appartenente ai fornitori viene assegnato il rispettivo fornitore con

probabilità di 0.5.

Se si assegna a un prodotto un fornitore, quest’ultimo viene scelto casualmente tra i

produttori che posseggono quel prodotto con un prezzo inferiore a quello del compratore.

Page 11: Mashup - Sustainability

26/8/2009

10

RUOLI INTERNI Quando il programma è avviato, compare un questito; bisogna scegliere quale ruolo si

ha:

Finestra che appare quando si avvia il programma

Ruolo Utente

L’utente non può modificare e/o salvare le informazioni presenti nel programma. Può

visualizzare i ristoranti e la derivazioni degli ingredienti.

Inizialmente l’utente viene automaticamente geo-referenziato, può comunque cambiare

la località in cui si trova utilizzando il pannello superiore.

Pannello superiore che consente all’utente di cambiare posizione geografica

Finestra utente con le operazioni disponibili

La prima operazione consente di visualizzare i ristoranti più vicini all’utente.

La seconda operazione consente di visualizzare i ristoranti più economici.

La terza operazione consente di visualizzare i ristoranti più sostenibili.

Page 12: Mashup - Sustainability

26/8/2009

11

In questo caso l’utente ha scelto di visualizzare i ristoranti più vicini.

L’utente può visualizzare le informazioni su un ristorante; sia le informazioni

riguardanti il numero di telefono, la via ecc…, sul menù e sugli ingredienti.

Come si può notare dall’esempio seguente il ristorante fornisce i prezzi dei piatti e i costi

degli ingredienti di ogni pietanza.

Page 13: Mashup - Sustainability

26/8/2009

12

In questo esempio l’utente visualizza i piatti di un ristorante con i prezzi di ogni piatto e

degli ingredienti che formano il piatto.

Si può anche sapere quali sono i fornitori per ogni ingrediente, e per ogni fornitore si

possono visualizzare i prodotti che vende a da chi a sua volta gli ha acquistati.

In questo esempio l’utente visualizza gli ingredienti di un ristorante con li prezzo e il

fornitore (se presente).

Page 14: Mashup - Sustainability

26/8/2009

13

Questo esempio mostra il fornitore dell’ingrediente “pane” presente nella lista di

ingredienti del ristorante.

Ruolo Ristoratore

Il ristoratore può cercare i ristoranti presenti nel database, creare il proprio menù,

visualizzare i menù di tutti i ristoranti.

Pannello superiore che consente a ristoratore di cercare un ristorante

Quando un ristoratore crea il proprio menù, compare la finestra contenente tutti i piatti

presenti nel database. Dopo aver scelto le pietanze, dovrà assegnarle il rispettivo prezzo.

Page 15: Mashup - Sustainability

26/8/2009

14

Pannello contenente tutti i piatti presenti nel database

Page 16: Mashup - Sustainability

26/8/2009

15

Questo esempio mostra il menù del ristorante, è possibile inserire/eliminare le pietanze e

modificarne il prezzo

Inoltre per ogni ingrediente potrà assegnargli un fornitore, scegliendo fra i fornitori con

il minore costo dell’ingrediente, i fornitori più vicini, oppure quelli più sostenibili.

Page 17: Mashup - Sustainability

26/8/2009

16

In questo esempio si vede la lista di ingredienti del ristoratore

Ruolo Fornitore

Il ruolo del fornitore, come quello del ristoratore ha la possibilità di modificare gli

elementi del database, in questo caso i propri prodotti.

Inizialmente è possibile cercare tra i fornitori presenti nel database.

Quando un fornitore vuole inserire o modificare la propria lista di prodotti, compare il

pannello contenente tutti i prodotti presenti nel database.

Page 18: Mashup - Sustainability

26/8/2009

17

Pannello contenente tutti i prodotti presenti nel database

Finestra di un fornitore

Page 19: Mashup - Sustainability

26/8/2009

18

Informazioni Ricavate

Gli utenti, i fornitori, e i ristoratori utilizzano 3 fattori per ogni operazione che svolgono:

• Il prezzo

• La distanza

• La sostenibilità

Questi fattori vengono visualizzati sulle frecce che collegano l’utente con i ristoranti, i

ristoranti con i fornitori e i fornitori con i fornitori.

Esempio che mostra i tre fattori

Prezzo Nel caso dell’utente, l’operazione disponibile è visualizzare i ristoranti più economici.

Per ogni ristorante viene calcolato il prezzo medio di ogni piatto, poi vengono ordinati in

base a questo fattore, e vengono visualizzati i primi elementi.

Per i ristoratori e i fornitori, l’operazione è di visualizzare e assegnare un fornitore a un

proprio prodotto o ingrediente, tra quelli che hanno il prezzo più basso.

Distanza Per tutti e tre i ruoli, viene utilizzata la distanza per avere i ristoranti o i fornitori più

vicini.

Page 20: Mashup - Sustainability

26/8/2009

19

Sostenibilità Nel caso dell’utente, l’operazione disponibile è visualizzare i ristoranti più sostenibili.

Per ogni ristorante viene trovato il valore si sostenibilità:

• per ogni suo ingrediente viene calcolata la distanza dal fornitore, e viene

ripetuta l’operazione ricorsivamente tra i fornitori.

• Con una formula viene calcolato la quantità di Co2 nell’aria.

Vengono ordinati i ristoranti in base a questo valore.