mashup - sustainability
Post on 11-May-2015
391 Views
Preview:
DESCRIPTION
TRANSCRIPT
Debiasi Alberto
26/08/2009
PROGETTO LAB.
COMPUTER GRAPHICS
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
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
26/8/2009
3
Ingrediente L’oggetto ingrediente è l’elemento che compone un piatto, ha i seguenti attributi:
Nome Ingrediente
Prezzo
Nome fornitore
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.
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.
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
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.
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)
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.
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.
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.
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).
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.
26/8/2009
14
Pannello contenente tutti i piatti presenti nel database
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.
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.
26/8/2009
17
Pannello contenente tutti i prodotti presenti nel database
Finestra di un fornitore
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.
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.
top related