L'applicazione vuole essere il prototipo di un nuovo social network. L'idea centrale è quella di simulare un diario, del tipo in uso nelle scuole medie e superiori. Sul diario è possibile lasciare messaggi. Attualmente si vogliono trattare solo messaggi testuali, ma in prospettiva l'idea è quella di estendere l'applicazione a messaggi multimediali.
I concetti fondamentali dell'applicazione sono gli utenti e i diari. Gli utenti sono caratterizzati da username, password, nome, cognome e nickname (il nome che compare vicino ai messaggi da loro creati). Ogni utente ha un solo diario, e ad ogni diario corrisponde un solo proprietario. Ogni diario ha, almeno virtualmente, una pagina per ogni data (ci sarà quindi la pagina del 12 Maggio 2011, quella del 3 Settembre 2025, etc...). Su ogni pagina si possono scrivere dei messaggi. Inoltre, ogni utente avrà un certo numero di amici, che sono altri utenti come lui, dei quali è autorizzato a guardare i diari. La relazione di amicizia è riflessiva: se A è amico di B, allora anche B è amico di A.
Per poter accedere ai diari, gli utenti devono inserire la propria username e password. Appena effettuato il login, all'utente viene presentata la pagina del proprio diario corrispondente al giorno odierno. Da qui, egli può svolgere le seguenti azioni:
L'aggiunta di un amico deve essere confermata dall'altra persona: solo una volta confermata sarà possibile scriversi a vicenda nei propri diari.
Infine, ecco ulteriori specifiche:
Alla fine del lavoro, bisognerà consegnare:
La relazione deve essere concisa e deve riguardare esclusivamente il progetto dell'applicazione. Non trasformate la relazione nel manuale utente del programma, perché è inutile. In linea di massima, dovrebbe essere sufficiente includere:
Se durante lo svolgimento del progetto sono state compiute delle scelte progettuali particolari, delle quali ritenete io debba essere a conoscenza, includetene una piccola descrizione nella relazione.
La relazione va consegnata in forma elettronica, in un formato non proprietario e leggibile da software libero. Ad esempio
Il database deve contenere tutte le tabelle individuate nella fase di progetto. Per poter controllare il buon funzionamento dell'applicazione, è necessario che siano già inseriti i dati relativi ad almeno 3 utenti: pippo, pluto e paperino, ognuno con password uguale al nome.
Il database va consegnato sotto forma di un unico file di testo contenente tutti i comandi SQL necessari per creare le tabelle e inserire i dati in queste ultime. Lo script SQL non deve contenere comandi per creare database o utenti MySQL. Per generare il file richiesto si può usare il comando mysqldump
nella forma:
mysqldump [-H <server>] [-U <username>] [-p] <nomedb> > <nomefile>
Nomi di tabelle, campi, etc.. possono essere scelti a piacere, ma per favore non utilizzate caratteri accentati, che potrebbero creare problemi dovuti alla loro differente codifica in sistemi diversi.
L'applicazione consiste in una serie di script PHP e pagine HTML. Alla fine, bisognerà consegnare tutti i file relativi all'applicazione in un unico file compresso, nel formato che preferite: ZIP, TGZ, etc..
A parte le specifiche del progetto, questi sono ulteriori requisiti che deve soddisfare l'applicazione:
php_value display_errors On
php_value error_reporting -1
php_value output_buffering 0
config.php
.Ai fini della valutazione, saranno tenuti in conto i seguenti aspetti:
Invece, non concorre alla valutazione l'aspetto grafico dell'applicazione, a meno che questo non danneggi l'usabilità.