Tema elaborato per Tecnologia e Applicazioni Internet 2011/12

Matteo Vaccari > Tecnologia e Applicazioni Internet

Istruzioni per la consegna

Mandatemi uno zip con il progetto completo al mio indirizzo @uninsubria.it

  1. Se l'allegato è troppo grosso, create un account su Dropbox, salvate sulla vostra cartella pubblica di Dropbox lo zip e mandatemi la url per scaricarlo. Verifica che il link funzioni: fai il logout da Dropbox e verifica che si riesca a scaricare lo stesso.
  2. Lo zip deve avere il seguente nome: elaborato-TAI2012-rossi-bianchi.zip nel caso di due studenti di nome Mario Rossi e Giulio Bianchi che lavorano insieme; altrimenti elaborato-TAI2012-rossi.zip nel caso di studente che lavora da solo.
  3. La mail deve essere inviata entro le ore 13:00 del giorno precedente l'esame.
  4. Lo zip deve contenere un comando script/server.sh che fa partire l'applicazione. Se l'applicazione usa Mysql, ci deve essere anche un comando script/create-databases.sh. Io proverò l'applicazione usando questi due script. Mi raccomando assicuratevi che funzioni! Per essere sicuri, provate a testare il vostro zip su un computer diverso da quello che avete usato per lo sviluppo.

Tema

Realizzare un'applicazione per il tracciamento delle calorie assunte e consumate giorno per giorno.

Use Case: Visualizzazione della mia pagina personale

L'utente apre la home page del sistema (url "/") e inserisce la sua login. Il sistema lo ridirige sulla sua pagina personale. Per esempio, se l'utente ha login "mario", la sua pagina personale ha la url "/users/mario". Sulla pagina personale l'utente visualizza le seguenti informazioni:

grafico calorie

Use Case: Aggiornamento calorie assunte

L'utente visualizza la sua pagina personale. Una sezione della pagina è intitolata "Che cosa ho mangiato oggi" e permette di scegliere vari tipi di cibo da un menu a tendina. L'utente può scegliere, ad esempio, "spaghetti", inserire in un campo di testo la quantità in grammi, ad esempio 100, e confermare. Il sistema registra il tipo di cibo, la quantità e la data. Il sistema calcola le calorie corrispondenti a questo pasto. Gli elementi della pagina personale (grafico, tabella) vengono aggiornati. La pagina non viene ricaricata; la comunicazione con il server avviene tramite Ajax.

Estensione: Tracciare le calorie bruciate

La pagina personale contiene una sezione "Che cosa ho fatto oggi". Analogamente a "Che cosa ho mangiato oggi", si può selezionare un'attività fisica, una durata, e confermare. Il sistema registra l'attività fisica, calcola le calorie bruciate, e aggiorna gli elementi della pagina personale. Il grafico deve mostrare anche le calorie bruciate. Ci deve essere una seconda tabella che mostra le attività fisiche ordinate per data.

grafico calorie

Suggerimenti

Per realizzare i grafici, si può usare una libreria come Elycharts.

Le tabelle dei valori nutrizionali degli alimenti si possono trovare, ad esempio, in questa pagina.

Salvare i dati su tabelle Mysql lato server. I dati devono essere persistenti! Ma non da subito. Affrontate lo sviluppo per gradi; all'inizio è sufficiente conservare i dati in maniera non persistente in JavaScript. In un secondo momento aggiungete la persistenza.

Per facilitare il test, si può aggiungere un elemento "calendario" alle sezioni "Che cosa ho mangiato/che cosa ho fatto oggi" per poter inserire dati in altri giorni e vedere che il grafico si aggiorni correttamente.

Sviluppate prima il dominio, poi l'interfaccia utente!