Project Review Località Sciistica 21 Dicembre 2011 Project Review • Agenda: o Project goals o User stories – use cases – scenarios o Status as of November 17th 2011 Analysis and Design Spikes UI and user interaction draft (on paper or ...) o Project plan summary Project goals - gestione pagamento online - tre tipi di utenti (registrati, anonimi e amministratore) - sito visibile a tutti - prenotazione solo per utenti registrati - numero max biglietti acquistabili per le manifestazioni sportive Project Goals - calendario manifestazioni - affitto online attrezzatura con pagamento caparra - vendita attrezzatura online - applicazione smartphone per android - gestione prenotazione lezioni con maestro Project Non Goals - forum per gli utenti - conferma prenotazioni sms - applicazione smartphone web based - prenotazione telefonica hotel User stories - Registrazione Utente - Visualizzazione Stato Piste - Visualizzazione Impianti Aperti - Acquisto Skipass - Prenotazione Lezioni Sci - Affitto Attrezzatura - Acquisto Attrezzatura User stories - Stato Riparazione - Acquisto Biglietti Manifestazioni Sportive - Prenotazione Hotel User Story : Affitto Attrezzatura I - l'utente autenticato inserisce i/il giorni/o per cui intende affittare l'attrezzatura - l'utente sceglie da un elenco l'attrezzatura desiderata - il sistema mostra l'elenco di quel tipo di attrezzatura disponibile per il periodo scelto - l'utente sceglie l'attrezzatura desiderata User Story : Affitto Attrezzatura II - il sistema mostra le caratteristiche dell'attrezzatura (lunghezza, ecc..) - l'utente sceglie tali caratteristiche ed invia la prenotazione - il sistema chiede conferma della prenotazione - l'utente conferma la prenotazione ed effettua il pagamento della caparra User Story : Affitto Attrezzatura III - User Story Pagamento - il sistema registra il pagamento ed invia la mail di conferma User Story: Prenotazione Lezione Con Maestro - l'utente sceglie il maestro con cui effettuare la lezione - il sistema mostra il calendario del maestro con le date disponibili - l'utente sceglie una data disponibile in cui effettuare la lezione - il sistema notifica la prenotazione all'utente e al maestro tramite mail CRC Cards I CRC cards individuate nella fase di Design: -Impianto -Articolo -Utente -Controller -ArticoloInAffitto -ArticoloAcquistato CRC Cards II - ArticoloInRiparazione - Calendario - Lezione - Maestro - Hotel - Pista - Carrello Esempi CRC Cards I ARTICOLO Responsabilita` Collaborazioni - getArticoloByDate() - getArticoloBySize() - getArticolo() - Utente - Controller - ArticoloInAffitto Attributi: Nome, descrizione, quantita`, identificativo, affitto (si/no), vendita (si/no) Esempi CRC Cards II IMPIANTO Responsabilita` Collaborazioni - getPiste() - Pista - Controller Attributi: Numero impianto, collezione piste, posizione (?), aperto (si/no) Diagramma di Sequenza -Affitto Attrezzatura Diagramma di Sequenza – Pagamento Carrello Diagramma di Sequenza – Lezione con Maestro Diagramma delle Classi I Diagramma delle Classi II Spike: Facebook pulsante Like Script per l’inserimento del pulsante ‘Like’ di Facebook <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/it_IT/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); </script> …. <div class="fb-like" data-href="http://localhost:8080" datasend="true" data-width="450" data-show-faces="true"></div> Spike: Facebook pulsante Like Spike: Facebook OpenID Script per l’utilizzo di OpenID con Facebook Fase di inizilializzazione: window.fbAsyncInit = function() { FB.init({ appId : ‘ID applicazione Facebook', status : true, cookie : true, xfbml : true, oauth : true }); Spike: Facebook OpenID Script (1): FB.Event.subscribe('auth.login', function(response){window.location.reload();}); FB.Event.subscribe('auth.logout', function(response){window.location.reload();}); FB.api('/me', function(user) { if (user) { var image = document.getElementById('image'); image.src = 'http://graph.facebook.com/' + user.id + '/picture'; var name = document.getElementById('name'); alert(user.first_name); name.value = user.first_name; var last_name = document.getElementById('last_name'); last_name.value = user.last_name; var id = document.getElementById('id'); id.value = user.id; var email = document.getElementById('email'); email.value = user.email; } }); }; Spike: Facebook OpenID Script (2): (function(d){ var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;} js = d.createElement('script'); js.id = id; js.async = true; js.src = "//connect.facebook.net/en_US/all.js"; d.getElementsByTagName('head')[0].appendChild(js); }(document)); </script> <div align="center"> <img id="image"/> <input type="text" id="name"></input> <input type="text" id="id"></input> <input type="text" id="last_name"></input> <input type="text" id="email"></input> </div> <div id="login"><div class="fb-login-button" autologoutlink="true"></div></div> Spike: Facebook OpenID Nonostante inizialmente il codice di questo spike funzionasse alla perfezione, dopo qualche giorno sono stati riscontrati dei problemi che hanno portato questo codice, al momento, a non funzionare più. Potrebbe addirittura essere un problema di Facebook stesso. Spike: Google Maps Cosa si realizzerà • • • • L’intera sezione relativa al negozio di attrezzature sciistiche (acquisto, recensioni, ‘like’ per ogni oggetto,…) Interfaccia del sistema Applicazione Android per conoscere lo stato delle piste Applicazione desktop per gli hotel, la quale offrirà dei web services al sistema principale (per conoscere ad esempio il numero di camere ancora disponibili) Stato al 21 Dicembre 2011 • Analysis and Design o CRC cards o Class diagram o Sequence/Collaboratio diagrams o Activity diagram o Utilizzo del sito Zoho per la gestione dei vari task relativi all’analisi e al design del progetto Stato al 21 Dicembre 2011 • Spikes: JEE; Open ID facebook (non funzionante); ‘Like’ di Facebook; Google Maps; Web Service; Android. Project plan summary Project plan summary Grazie per la vostra attenzione ! Domande?