Tema dell'Elaborato
di Applicazioni Web; Anno
Accademico 2005/06. Docente Matteo Vaccari
Regole
- L'elaborato consiste in un'applicazione web, corredato di documentazione
- L'applicazione deve essere basata su Ruby on Rails, e deve essere installata e funzionante sul server di laboratorio (pisolo.sciva.uninsubria.it). Per avere accesso occorre fare richiesta.
- L'installazione deve essere basata su CGI. Non accetto installazioni basate su Webrick (cioè url con :3000 o simili)
- Lo studente ha facoltà di sviluppare su di un computer privato, ma l'elaborato verrà valutato solo se installato su Pisolo.
- Il lavoro è da svolgersi in coppia; non sono ammesse
terne. Solo 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 e la url dove è installata l'applicazione (es. http://pisolo.sciva.uninsubria.it/~xy123456/)
-
Le pagine dell'applicazione devono avere la seguente indicazione in pié di pagina:
Autori: Rossi Paolo 123456 e Bianchi Mario 234567
Appello: febbraio 2006
- 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.
Una sistema di gestione dei contenuti
Il termine CMS (Content Management System) può significare diverse cose. Ci sono applicazioni molto diverse che si possono definire CMS. Possiamo distinguere questi tipi di CMS (vedi questo articolo di Seth Gottlieb per maggiori informazioni):
- La brochure aziendale online. E' una pubblicazione essenzialmente a senso unico, dall'azienda al pubblico. Il contenuto è relativamente statico. L'uso di software di gestione dei contenuti permette al personale dell'azienda di preparare e modificare i contenuti, senza dipendere dall'agenzia che ha realizzato il sito web. Esempi: www.fiat.it, www.kel12.com.
- Il periodico online. Il CMS deve fornire sofisticati modelli di controllo editoriale. In generale non è sufficiente un semplice workflow in due passi. Inoltre devono essere in grado di strutturare il contenuto in diversi formati, per Web, email, wireless e per gli aggregatori di notizie. Esempi: www.salon.com
- Il workspace collaborativo. Lo scopo è creare un deposito centrale di informazioni per un'azienda o una comunità. E' fatto perché gli utenti possano facilmente contribuire contenuti; quindi la comunicazione non è a senso unico. La versione più semplice è il wiki (es. la Wikipedia). Un possibile problema dei wiki è la totale mancanza di struttura; alcune organizzazioni preferiscono organizzare i contenuti in gerarchie. Inoltre il tipico wiki permette a tutti di editare tutto. Molte organizzazioni non posseggono la cultura wiki che è necessaria perché questo sistema funzioni. Un esempio di sistema per workspace collaborativi che fornisce gerarchia di contenuti e un modello di autorizzazione flessibile è plone, oppure, se vogliamo uscire dall'ambito del software libero, Sharepoint.
- La comunità online. In spirito può essere simile al workspace collaborativo (photo.net) oppure al sito di notizie (slashdot.org).
- Il sistema di gestione di documenti non-web. Si occupa di indicizzare, catalogare, e rendere cercabili e disponibili online una collezione di documenti. Questi possono nascere in forma digitale (Word, Excel, Pdf) oppure possono essere documenti cartacei scannerizzati ed analizzati con OCR.
Il sistema che dovrete realizzare è simile al workspace collaborativo. Per ispirazione potete guardare come funzionano plone oppure textpattern.
Requisiti
Articoli.
Gli utenti possono scrivere articoli. Un articolo è composto per lo meno da: un titolo, un sommario, e un testo più o meno lungo.
Parte pubblica.
Gli utenti, anche non registrati, possono visitare il sito e leggere gli articoli.
La pagina principale mostra un elenco di tutti gli articoli disponibili,
con il titolo e il sommario. Cliccando sul titolo dell'articolo si
arriva su una pagina che contiene il testo completo dell'articolo.
Autenticazione e autorizzazione.
Solo gli utenti registrati possono scrivere articoli.
Registrazione utenti
Gli utenti possono registrarsi tramite una semplice form online. Per ogni utente vanno raccolti almeno: nome, cognome, nick, email.
Versionamento
Ogni volta che un articolo viene modificato, si salva la versione precedente.
Per ogni articolo si possono leggere le versioni precedenti
Date di rilascio e scadenza
Un articolo può avere una release date e/o una expiry date. L'articolo non deve essere visibile prima della data di rilascio né dopo la data di scadenza.
Workflow
Gli articoli sono pubblicati solo se approvati da un
editor. Alcuni utenti sono ``editor''. L'editor può approvare o rifiutare un articolo. Vedi diagramma degli stati:
Pannello di controllo
Ogni utente (normale o editor) ha un pannello di
controllo. Per un utente normale, contiene un elenco di tutti gli articoli che l'utente ha in stato
di lavorazione, un elenco di tutti gli articoli che sono in stato "in attesa
di approvazione", e un elenco di tutti gli articoli in stato "rifiutato". Per un utente editor, contiene un elenco dei documenti sottomessi per approvazione.
Documentazione
La documentazione di progetto deve essere consultabile online alla url http://pisolo.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
Nota: i seguenti due requisiti sono facoltativi per gli studenti che danno l'esame a febbraio 2006. Diventano obbligatori a partire da aprile 2006.
Amministratori
Gli utenti ``admin'' possono editare e modificare tutti i dati degli utenti, e assegnare o rimuovere lo status di editor
Commenti
Il pubblico può aggiungere commenti a un'articolo. I commenti vengono visualizzati sulla pagina di dettaglio dell'articolo.
Il seguente disegno mostra la struttura di navigazione per un utente registrato normale (non editor).
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. Ispiratevi a Textpattern o Plone per vedere quali feature potete implementare.