Progettazione di Applicazioni Web (01KPSBF) – A.A. 2011/2012 – Tesina Tesina - Appello Luglio 2013 Tema: Answer-a-thon Estendere il sito base QAx con le seguenti funzionalità aggiuntive: Punti comuni (saranno sempre presenti in tutte le tesine proposte nei vari appelli) Correggere eventuali “bug” presenti nel codice pubblicato sul sito ed indicati sul documento “Errori noti” presente sul sito. Aggiungere a tutti i FORM (di registrazione, login, inserimento asta, inserimento offerta, ricerca) la funzione di validazione lato client dei dati immessi. Personalizzare l’aspetto grafico mediante opportuni CSS Punti specifici per l’appello di Febbraio 2013 Nel sito QAx tendono ad accumularsi domande con poche risposte, oppure domande con molte risposte, ma per le quali il creatore della domanda non ha selezionato la risposta accettata. Pertanto, ogni primo giorno del mese, viene attivata una modalità speciale denominata “Aswer-a-thon” (maratona delle risposte). In questa modalità, vi è una pagina, che si aggiorna continuamente, che contiene due colonne: le domande prive di risposta, e le domande con più risposte ma nessuna accettata. Tutti gli utenti gareggiano per fornire risposte alle domande della prima colonna: non appena vi sono almeno 2 risposte, la domanda scompare dalla colonna. Inoltre, tutti gli utenti possono votare per quale risposta accettare nelle domande della seconda colonna (tutti gli utenti, non solo il creatore della domanda); la risposta che riceverà un numero di voti molto superiore alle altre verrà accettata. Si richiede pertanto di: Attivare la modalità “Answer-a-thon” impostando il giorno del mese in cui deve essere visibile: in tale giorno dovrà sostituire la pagina di ingresso degli utenti registrati Visualizzare le due colonne con le domande da completare Permettere di aggiungere una risposta alle domande che ne sono prive (questo può avvenire nella pagina di inserimento della risposta, già esistente, oppure direttamente nella pagina della Answera-thon) Permettere di votare le risposte che gli utenti propongono di accettare (questo può avvenire nella pagina di voto della risposta, modificandola, oppure direttamente nella pagina della Answer-athon) Al raggiungimento di una determinata soglia (ad es. almeno X voti in più rispetto alla seconda preferenza, e dopo almeno Y minuti dall’ultimo aggiornamento), la risposta più votata deve divenire definitiva. Gli elenchi delle domande devono aggiornarsi con continuità, anche se l’utente non interagisce Progettazione Applicazioni Web Specifiche Tesina Lug 2013 Progettazione di Applicazioni Web (01KPSBF) – A.A. 2011/2012 – Tesina Note per la consegna e valutazione della tesina La realizzazione delle funzionalità richieste può comportare l’aggiunta o la modifica di tabelle o colonne nel database, l’aggiunta o modifica di java bean o pagine JSP, e l’aggiunta di script lato client e di fogli di stile. Il sito dovrà generare codice HTML, CSS e Javascript valido ed esente da errori. La tesina viene valutata a livello individuale durante la data stabilita in laboratorio. Non occorre consegnare nulla prima della data stabilita. È invece necessario prenotarsi alla prova (sul Portale della Didattica). La valutazione comprenderà: una demo del sito (con particolare attenzione alle funzionalità aggiuntive per l’appello in corso) e delle domande che verteranno su tutto il codice (jsp, java, javascript, css, sql) che compone il sito. La valutazione avverrà tassativamente utilizzando i computer del laboratorio (5T). Lo studente dovrà installare il proprio lavoro su un PC del laboratorio. Si consiglia di non sottovalutare l’operazione di installazione, copia e configurazione, e di recarsi in aula con sufficiente anticipo (almeno 1 ora) per poter gestire eventuali imprevisti. È opportuno preparare una mini-relazione nella quale riportare le scelte progettuali fatte (max 1 pagina) più le immagini e schemi che possano aiutare a capire il lavoro fatto (esempi: mappa del sito, struttura tabelle aggiuntive del database, elenchi dei bean utilizzati, elenchi delle funzioni ajax utilizzate, ecc ecc.). Non è vietato riutilizzare il codice messo a disposizione dai docenti o sviluppato in collaborazione con altri studenti. È però prerequisito essenziale per ottenere un punteggio della tesina maggiore di zero la conoscenza completa e approfondita del codice compreso nella tesina. Progettazione Applicazioni Web Specifiche Tesina Lug 2013 Progettazione di Applicazioni Web (01KPSBF) – A.A. 2011/2012 – Tesina Griglia di valutazione della tesina (max 12 punti) Sessione Settembre 2012 Specifica Correzione bug al sito web di base Javascript per la validazione dei form di registrazione/modifica dati e di login. Layout del sito e foglio di stile Attivazione della modalità Answer-a-thon Visualizzazione dinamica delle due colonne Inserimento nuove risposte Votazione delle risposte Assegnazione della risposta scelta Conoscenza codice del sito web e della tesina. VOTO TESINA = Progettazione Applicazioni Web Punti 2 1 1 3 1 3 1 Fattore moltiplicativo del punteggio della Tesina Da 0% a 100% (PUNTI TESINA) * (Conoscenza Codice) Specifiche Tesina Lug 2013 Progettazione di Applicazioni Web (01KPSBF) – A.A. 2011/2012 – Tesina Esempi di valutazione Tesina quasi perfetta, non è stato curato solamente l’aspetto grafico del sito. Punti 11. Lo studente durante l’orale è molto confuso, non è in grado di spiegare e descrivere la parte del codice che implementa una particolare funzionalità. Ai docenti appare chiaramente che ha partecipato marginalmente (o non ha partecipato proprio) alla stesura del codice. Conoscenza Tesina 0%. VOTO TESINA 0% * 11 = 0 . Tesina con diverse lacune: non sono stati corretti i bug e i javascript di validazione non sono corretti. Vi sono, inoltre, alcune funzionalità che non rispettano a pieno le specifiche. Punti 6. Lo studente conosce approfonditamente ogni aspetto del codice della tesina e del sito web. Conoscenza Tesina 100%. VOTO TESINA 100% * 6 = 6 . Esempi di domande fatte durante la presentazione della tesina Mostrami il codice che implementa la funzionalità Y Se dovessi modificare la pagina in modo tale da fare X, cosa dovresti cambiare? Quali sono le modifiche che hai apportato al database rispetto al sito web del corso? Questa funzionalità viene eseguita dal client o dal server? Perché questo oggetto X ha scope application? Se avesse scope session che cosa cambierebbe? (Osservando il codice) Cosa significa class=”errore” ? Mostrami e descrivimi il codice javascript che permette la validazione del form di registrazione. … Progettazione Applicazioni Web Specifiche Tesina Lug 2013