Mashup - Sustainability

  • Published on
    11-May-2015

  • View
    384

  • Download
    1

Embed Size (px)

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

  • 1.P ROGETTO L AB . C OMPUTER GRAPHICS Raffaele De Amicis, Giuseppe Conti Debiasi Alberto 26/08/2009

2. 26/8/2009PROGETTO LAB. COMPUTER GRAPHICS Sommario Introduzione .......................................................................................................................... 2 Oggetti Utilizzati................................................................................................................... 2Fornitore ............................................................................................................................ 2Ristorante........................................................................................................................... 2Piatto .................................................................................................................................. 2Ingrediente ......................................................................................................................... 3 Servizi Esterni Coinvolti ....................................................................................................... 4http://maps.google.com/ ..................................................................................................... 4http://www.ip-adress.com/ ................................................................................................. 4http://www.paginegialle.it/ ................................................................................................ 5http://en.wikibooks.org/ ..................................................................................................... 5http://chuck-wright.com/.................................................................................................... 6 Gestione Database................................................................................................................. 7Struttura Database ........................................................................................................... 7 Informazioni sui fornitori .............................................................................................. 7 Informazioni sui ristoratori ........................................................................................... 7 Informazioni sui piatti ................................................................................................... 8 Informazioni sui prodotti ............................................................................................... 9Creazione 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 ........................................................................................................................ 10Ruolo Utente .................................................................................................................... 10Ruolo Ristoratore ............................................................................................................. 13Ruolo Fornitore ................................................................................................................ 16 Informazioni Ricavate ......................................................................................................... 18Prezzo ............................................................................................................................... 18Distanza ........................................................................................................................... 18Sostenibilit ..................................................................................................................... 191 3. 26/8/2009INTRODUZIONE Questo progetto riguarda in generale lalimentazione; ci sono tre parti coinvolte: Lutente: 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 Loggetto fornitore ha i seguenti attributi: Coordinate: latitudine , longitudine Nome Fornitore Indirizzo Fornitore Codice Postale Regione Telefono Lista Prodotti Ristorante Loggetto ristorante ha i seguenti attributi:Coordinate: latitudine , longitudine Nome Ristorante Indirizzo Ristorante Codice Postale Regione Telefono Men: lista piatti Lista IngredientiPiatto Loggetto piatto lelemento che compone il men del ristorante, ha i seguenti attributi:Nome Piatto Url: che corrisponde alla pagina di Wikipedia del piatto Lista ingredienti Prezzo 2 4. 26/8/2009 Ingrediente Loggetto ingrediente lelemento che compone un piatto, ha i seguenti attributi:Nome Ingrediente Prezzo Nome fornitore3 5. 26/8/2009SERVIZI 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 Trentohttp://www.ip-adress.com/ Quando lutente avvia il programma, questultimo utilizza il sito http://www.ip- adress.com/ per avere la posizione geografica calcolata dallindirizzo IP della macchina nella quale viene eseguito il programma. 4 6. 26/8/2009 Pagina web con lindirizzo 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.5 7. 26/8/2009In 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 auto6 8. 26/8/2009GESTIONE 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 xmlAttualmente 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.7 9. 26/8/2009Esempio di un ristorante salvato in un file xmlAttualmente 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)8 10. 26/8/2009 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 xmlAttualmente 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, questultimo viene scelto casualmente tra i produttori che posseggono quel prodotto con un prezzo inferiore a quello del compratore. 9 11. 26/8/2009RUOLI INTERNI Quando il programma avviato, compare un questito; bisogna scegliere quale ruolo si ha: Finestra che appare quando si avvia il programmaRuolo Utente Lutente non pu modificare e/o salvare le informazioni presenti nel programma. Pu visualizzare i ristoranti e la derivazioni degli ingredienti.Inizialmente lutente viene automaticamente geo-referenziato, pu comunque cambiare la localit in cui si trova utilizzando il pannello superiore.Pannello superiore che consente allutente di cambiare posizione geograficaFinestra utente con le operazioni disponibiliLa prima operazione consente di visualizzare i ristoranti pi vicini allutente.La seconda operazione consente di visualizzare i ristoranti pi economici.La terza operazione consente di visualizzare i ristoranti pi sostenibili.10 12. 26/8/2009 In questo caso lutente ha scelto di visualizzare i ristoranti pi vicini.Lutente 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 dallesempio seguente il ristorante fornisce i prezzi dei piatti e i costi degli ingredienti di ogni pietanza. 11 13. 26/8/2009In questo esempio lutente 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 lutente visualizza gli ingredienti di un ristorante con li prezzo e il fornitore (se presente).12 14. 26/8/2009Questo esempio mostra il fornitore dellingrediente 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 ristoranteQuando 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.13 15. 26/8/2009 Pannello contenente tutti i piatti presenti nel database 14 16. 26/8/2009 Questo esempio mostra il men del ristorante, possibile inserire/eliminare le pietanze e modificarne il prezzoInoltre per ogni ingrediente potr assegnargli un fornitore, scegliendo fra i fornitori con il minore costo dellingrediente, i fornitori pi vicini, oppure quelli pi sostenibili.15 17. 26/8/2009 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. 16 18. 26/8/2009 Pannello contenente tutti i prodotti presenti nel database Finestra di un fornitore 17 19. 26/8/2009 Informazioni RicavateGli utenti, i fornitori, e i ristoratori utilizzano 3 fattori per ogni operazione che svolgono: Il prezzo La distanza La sostenibilitQuesti fattori vengono visualizzati sulle frecce che collegano lutente con i ristoranti, i ristoranti con i fornitori e i fornitori con i fornitori.Esempio che mostra i tre fattoriPrezzo Nel caso dellutente, loperazione 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, loperazione 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.18 20. 26/8/2009 Sostenibilit Nel caso dellutente, loperazione 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 loperazione ricorsivamente tra i fornitori. Con una formula viene calcolato la quantit di Co2 nellaria.Vengono ordinati i ristoranti in base a questo valore.19