Tema dell'Elaborato 2006/7
Per Applicazioni Web; Anno Accademico 2006/07
Aggiornamento
Nell'appello di novembre ho consentito ad alcuni studenti di rimandare lo scritto a febbraio. Da febbraio però richiedo che chi consegna l'elaborato faccia lo scritto nella stessa sessione.
La documentazione di progetto deve essere consultabile online; non presentatemi documenti PDF, Word o altro da scaricare. Se la specifica dice che deve essere consultabile alla url "http://buffy.sciva.uninsubria.it/~xy123456/doc" dovete fare in modo che sia così. Per questo appello ho sorvolato, ma da febbraio non accetto la documentazione se non è alla url corretta.
Nuovo requisito: in fondo ad ogni pagina deve apparire il bottone
(usate quello appropriato per la variante di HTML da voi supportata), cliccabile per testare la validità del sito. L'assenza del bottone (o il fatto che non sia cliccabile) verrà presa come un'ammissione che il sito non rispetta lo standard.
Per puntualizzare, "romance" in inglese significa "amore." "Romanzo" si dice "novel." :-)
Regole
- L'elaborato consiste in un'applicazione web, corredata di documentazione
- L'applicazione deve essere basata su Ruby on Rails, e deve essere installata e funzionante sul server di laboratorio (buffy.sciva.uninsubria.it). Per avere accesso occorre mandarmi una email con
- subject: [buffy] richiesta login
-
body: cognome nome matricola password-desiderata
- L'installazione deve essere basata su FastCGI. Non accetto installazioni basate su Webrick (cioè url con :3000 o simili)
- Lo studente è incoraggiato a sviluppare su di un computer privato, ma l'elaborato verrà valutato solo
se installato su Buffy.
- Il lavoro è da svolgersi in coppia; non sono ammesse
terne. Nel caso lo studente sia lavoratore o abbia qualche
problema particolare per cui non può lavorare in coppia, è ammesso
realizzare l'elaborato da soli.
- E' ammesso discutere il problema fra studenti; ma non è ammesso
scambiarsi programmi o frammenti di programma.
- L'elaborato va consegnato entro tre giorni dalla data dell'appello; se per esempio l'appello è il
giorno 10, l'elaborato va consegnato entro la mezzanotte del giorno 7. La consegna consiste semplicemente
nel mandarmi un'email con i vostri nomi, la url dove è installata l'applicazione (es.
http://buffy.sciva.uninsubria.it/~xy123456/, e login/password per un utente amministrativo)
-
Tutte le pagine dell'applicazione devono un'indicazione come la seguente in pié di pagina:
Autori: Rossi Paolo 123456 e Bianchi Mario 234567
Appello: febbraio 2007
- La realizzazione di questo elaborato è condizione necessaria per superare l'esame. Una volta
consegnato l'elaborato, e solo dopo aver consegnato l'elaborato, potrete dare lo scritto.
Tenete d'occhio il forum per gli
annunci e gli aggiornamenti.
Un database di romanzi
Il sito è una collezione di segnalazioni letterarie, simile a siti come http://www.upto11.net/, o del.icio.us eccetto che parla di romanzi invece che di dischi o siti web. L'entità fondamentale è il romanzo. Ad ogni romanzo gli utenti devono poter attaccare recensioni o commenti e tag.
La pagina frontale deve essere simile al seguente mockup:
. Le pagine successive possono essere realizzate a piacere, purché seguano lo stile della pagina frontale. Il nome del sito può essere cambiato a fantasia. I link ai generi sono facoltativi.
Storie
Segue l'elenco delle "storie" che devono essere realizzate.
Romanzi
Gli utenti registrati possono inserire romanzi. Di un romanzo occorre sapere il titolo, l'autore, l'editore, l'anno di uscita. Opzionalmente si potranno inserire il numero delle pagine, una url che punta all'immagine della copertina, e il codice isbn. L'utente che registra un romanzo deve inserire anche una descrizione del libro, spiegando perché valga la pena di leggerlo.
Pagina frontale
La pagina frontale contiene gli ultimi sei romanzi segnalati, e contiene link per vedere i romanzi precedenti, paginati a gruppi di sei, nella maniera consueta (es. le pagine dei risultati di Google)
CRUD romanzi
Gli utenti registrati possono modificare i dati dei romanzi che loro stessi hanno inserito, e dei commenti che loro hanno inserito. Quando sono registrato, appare un link "edit" a fianco del commento, oppure accanto al titolo del romanzo che posso editare.
Parte pubblica.
Gli utenti, anche non registrati, possono visitare il sito, eseguire ricerche, e leggere tutti i commenti.
Autenticazione e autorizzazione.
Solo gli utenti registrati possono inserire romanzi, commentare o taggare.
Registrazione utenti
Gli utenti possono registrarsi tramite una semplice form online. Per ogni utente vanno raccolti almeno: nome, cognome, nick, email.
Documentazione
La documentazione di progetto deve essere consultabile online alla url http://buffy.sciva.uninsubria.it/~xy123456/doc. Deve contenere:
- Nome dei componenti della coppia
- Descrizione tecnica del progetto (breve)
- Documentazione del database, compreso un diagramma entità-relazioni
- Eventuali estensioni realizzate (se non sono documentate, non verranno valutate)
- Eventuali punti oscuri nella specifica, come li avete interpretati, cosa avete fatto per risolverli
- Qualsiasi altra cosa riteniate rilevante
Le seguenti storie sono facoltative per gli studenti che danno l'esame a novembre 2006. Diventano obbligatorie a partire da febbraio 2007.
Amministratori
Gli utenti ``admin'' possono editare e modificare tutti i dati degli utenti, e di tutti i romanzi e commenti.
Commenti
Gli utenti registrati possono aggiungere commenti a un romanzo. I commenti vengono visualizzati sulla pagina di dettaglio del romanzo. I commenti sono mostrati con il nick dell'utente che li ha inseriti.
Tag
Gli utenti registrati possono aggiungere tag a un romanzo. Un tag è una parola (senza spazi). Di ogni tag, per ogni libro, va ricordato quante volte è stato dato. Es. "Cime tempestose" è stato taggato come "romantico" da 100 utenti e "avvincente" da 2. I tag vengono sempre mostrati nell'ordine dal tag più numeroso a quello meno. I tag vengono mostrati accanto al titolo dei romanzi. Ogni tag è un link a una pagina che contiene l'elenco di tutti i libri che hanno ricevuto lo stesso tag, in ordine di quale libro l'ha ricevuto più volte.
Pagina utenti
Ogni volta che viene mostrato il nick di un utente (accanto a un libro che ha inserito, o accanto a un commento), il nick deve essere un link alla pagina pubblica dell'utente. Questa pagina deve contenere un elenco dei contributi di questo utente: quali libri ha inserito, e quali commenti.
Pagina autore
Ogni volta che viene mostrato il nome di un autore (accanto al titolo di un libro) questo deve essere un link a una pagina che contiene l'elenco dei libri dello stesso autore che sono stati inseriti.
Criteri di valutazione
Il sito verrà valutato in base ai seguenti parametri, elencati senza ordine di importanza:
- Rispondenza ai requisiti
- Chiarezza della documentazione
- Rispetto degli standard W3C
- Usabilità: navigazione semplice, chiara e consistente; si deve capire subito come funziona
- La robustezza rispetto a input malformati
- Robustezza rispetto a SQL injection, Cross-site-scripting
Eventuali estensioni, se ben realizzate, potranno valere punti extra. Usate la fantasia per inventare estensioni interessanti. Ispiratevi a siti web esistenti. Documentate l'estensione!