Sei sulla pagina 1di 5

Università Politecnica delle Marche

Facoltà di Ingegneria - Sede di Ancona

Corso di Laurea in
Ingegneria Informatica e dell’Automazione

Anno Accademico 2008-2009

Corso di Linguaggi e Programmazione WEB

Docente – Prof. Alessandro Cucchiarelli

Coadiutore – Dott. Fulvio D’Antonio

Progetto Didattico Extra Corso

Sito WEB per la gestione di prestazioni ambulatoriali


specialistiche

©2009 Università Politecnica delle Marche – Sede di Ancona – Corso “Linguaggi e Programmazione WEB”
Overview del Progetto

Obiettivo
Il progetto ha come obiettivo la realizzazione di un sito web per la gestione delle
prestazioni ambulatoriali specialistiche di una struttura sanitaria. A livello esemplificativo
e senza pretesa di esaustività si citano: le strutture ospedaliere, i poliambulatori, i centri
diagnostici.

Specifiche
Il progetto dovrà realizzare un’applicazione Web che consenta:
• la presentazione di informazioni generali:
 sulla struttura sanitaria a cui il sito si riferisce (descrizione generale,
missione, recapiti, localizzazione, organizzazione interna dei servizi);
 sul sito stesso (modalità di fornitura dei servizi, FAQ, …);
• la descrizione dei dipartimenti specialistici della struttura (oculistica, cardiologia,
radiologia, …), che fornisca le informazioni principali relative ad ognuno di essi ed
alle prestazioni offerte (descrizione, personale, orario di ambulatorio, prescrizioni
da osservare per usufruire delle prestazioni, …);
• la registrazione di utenti al sito (a cura degli stessi), per la loro abilitazione alla
prenotazione delle prestazioni;
• la prenotazione delle prestazioni, attraverso l’indicazione:
 del dipartimento che la eroga;
 della tipologia della prestazione specialistica richiesta, selezionata da un
elenco predefinito per ciascun dipartimento;
• la gestione:
 dei dipartimenti presenti nella struttura;
 delle prestazioni erogate da ciascuno dei dipartimenti e della relativa
agenda (giorni in cui ciascuna prestazione viene erogata, numero massimo
di appuntamenti giornalieri, orario di inizio di ciascuna prestazione);
• l’analisi statistica delle prestazioni erogate.

Ad un maggior livello di dettaglio, nella realizzazione del sito si tenga conto delle seguenti
specifiche funzionali:
• si dia all’utente la possibilità di effettuare una ricerca nel catalogo delle prestazioni
erogate dalla struttura tramite l’indicazione della specializzazione a cui si riferisce
(nome del dipartimento) e/o natura della prestazione (visita, esame radiologico,
…). L’indicazione può essere espressa anche in modo parziale, tramite l’uso del
carattere wild-card “*”, ammesso solo come ultimo carattere del pattern di ricerca
(ad esempio “O*” come indicazione della specializzazione per ricercare “Otorino”,
“Ortopedia”, …);
• una volta selezionata una prestazione (da catalogo o dalla lista ottenuta come
risultato di una ricerca), vengano visualizzate le informazioni estese ad essa
relative (giorni della settimana in cui la prestazione viene erogata, prescrizioni da
osservare per usufruire della prestazione, …);
• si dia all’utente la possibilità di prenotare una prestazione, lasciando al sistema la
definizione della data, scelta in base al prima disponibilità in agenda;
• si tenga traccia, nel sistema di prenotazione, delle prenotazione effettuate da
ciascun utente, in modo da poter avere uno storico delle prestazioni erogate.

Relativamente all’accesso all’applicazione, si definisca una policy diversificata articolata


nei seguenti livelli:
 Livello 1: area pubblica del sito, cioè disponibile con le informazioni o servizi
forniti a tutti coloro che accedono al sito (anche agli utenti definiti nei livelli
successivi). A questo livello si associno:

©2009 Università Politecnica delle Marche – Sede di Ancona – Corso “Linguaggi e Programmazione WEB”
 la presentazione della struttura sanitaria a cui il sito si riferisce e delle
funzionalità del sito stesso;
 la descrizione dei dipartimenti specialistici ed alle prestazioni offerte;
 la registrazione di un nuovo utente.
 Livello 2: area per gli utenti esterni registrati i quali possono:
 modificare il loro profilo;
 prenotare prestazioni;
 annullare prenotazioni non ancora usufruite;
 visualizzare le prenotazioni effettuate;
 comunicare con lo staff, attraverso un sistema di messaggistica interna al
sito, per richiedere informazioni sui servizi erogati e per ricevere eventuali
aggiornamenti sulle prenotazioni.
 Livello 3: area riservata ai componenti dello staff che gestisce le prenotazioni,
che consenta:
 la modifica delle agende delle prestazioni erogate dalla struttura;
 la prenotazione per conto di utenti esterni non registrati;
 la visualizzazione dell’agenda giornaliera di ciascuna prestazione (solo per
prestazioni ancora da erogare), con l’indicazione dei singoli appuntamenti e
degli utenti che li hanno prenotati;
 di comunicare con gli utenti esterni, attraverso un sistema di messaggistica
interna al sito, per segnalare variazioni nell’agenda (cancellazione o
spostamento di appuntamenti);
 Livello 4: area ad accesso esclusivo dell’amministratore del sito che, oltre alle
funzionalità del livello precedente, consenta:
 la gestione (creazione/modifica/cancellazione):
 dei dipartimenti della struttura;
 delle prestazioni erogate dalle strutture e delle relative agende;
 la creazione/modifica/cancellazione degli utenti (sia esterni che membri
dello staff);
 l’attivazione di funzioni di analisi statistiche che consentano, relativamente
ad un intervallo temporale specificato, di visualizzare:
 tutte le prestazioni erogate, suddivise per tipologia;
 le prestazioni erogate, relative ad una singola tipologia selezionata;
 tutte le prestazioni, suddivise per tipologia, erogate dai singoli
dipartimenti;
 tutte le prestazioni erogate ad un utente esterno specificato.
 l’aggiornamento delle FAQ del sito.
L’accesso per livelli ai contenuti ed ai servizi del sito venga realizzato tramite l’uso di
SESSIONI php.

Funzionalità opzionali
L’implementazione delle funzionalità descritte nel seguito non è obbligatoria, ma se
realizzata, determina un ‘plus’ nella valutazione del progetto:
• gestione della riorganizzazione di un agenda. Si implementi una procedura che
consenta allo staff e all’amministratore di riorganizzare un’agenda a seguito della
cancellazione di alcune date nella stessa (ad esempio, per improvvisa
indisponibilità degli specialisti). La procedura provveda:
o a riprenotare gli appuntamenti cancellati in base alle date libere in agenda,
visualizzando la soluzione individuata e dando la possibilità di introdurre
variazioni;
o a comunicare agli utenti esterni interessati la variazione della data della
prestazione prenotata tramite il sistema di messaggistica interna al sito;
• gestione della scelta della data della prenotazione. Si implementi una modalità di
prenotazione, disponibile per l’utente esterno ed alternativa a quella indicata nelle
specifiche precedenti basata sulla prima data disponibile, che consenta la scelta
della data della prestazione dall’elenco di tutte le date disponibili.

©2009 Università Politecnica delle Marche – Sede di Ancona – Corso “Linguaggi e Programmazione WEB”
Obiettivi didattici del Progetto

Il progetto ha l’obiettivo di far apprendere allo studente le modalità di:

• Uso del linguaggio HTML per la realizzazione delle pagine web


• Uso del linguaggio Javascript per funzionalità quali la validazione, il controllo e la
visualizzazione del contenuto di una pagina
• Uso di applicazione basate su CGI
• Uso di applicazioni PHP e funzioni di accesso al database MySQL
• Uso di elementi multimediali nelle pagine web
• Uso di tecniche per il controllo degli accessi tramite sessioni PHP

Organizzazione della Documentazione

Al termine del progetto dovrà essere redatta una documentazione descrittiva del lavoro
svolto contenente le seguenti informazioni:

• Riferimenti: identificativo del gruppo e suoi componenti.


• Descrizione del sito: descrizione sintetica del sito.
• Organization chart: struttura in termini di pagine (mappa) e funzionalità.
• Soluzioni adottate: illustrazione delle soluzioni tecnologicamente più
interessanti adottate.

Elementi per la Valutazione del Progetto


FUNZIONI IMPLEMENTATE
1 Quelle specificate come standard nella descrizione del progetto

2 Quelle specificate come opzionali


STRUMENTI UTILIZZATI
1 HTML: uso dei FRAME

2 HTML: uso di elementi multimediali

3 HTML: uso delle mappe immagine

4 HTML: uso di FORM

5 CSS: utilizzo degli stili

6 Javascript: uso degli eventi

7 Javascript: creazione di funzioni complesse

8 Javascript: uso oggetti predefiniti [DOM]

9 CGI

10 PHP: uso base (interfaccia MySQL)

11 PHP: uso avanzato di pagine dinamiche (sessioni, elaborazioni varie)

ASPETTI ORGANIZZATIVI

1 Articolazione complessiva del Progetto

2 Documentazione di progetto

©2009 Università Politecnica delle Marche – Sede di Ancona – Corso “Linguaggi e Programmazione WEB”
Modalità di sviluppo del Progetto

Il progetto può essere sviluppato da un gruppo composto al massimo da due studenti


(sono ammessi progetti sviluppati da singoli studenti).

Perché possa essere valutato, il sito sviluppato deve essere trasferito sul server web
dedicato ai progetti del corso. Ciascun gruppo avrà a disposizione:
 un account ssh (per il login al server ed il trasferimento dei files dalle macchine
client),
 un account MySQL (per sviluppare la base dati funzionale al sito).
Contattare il docente del corso in orario di ricevimento per l’assegnazione degli account e
le indicazioni relative all’indirizzo IP del server web.

Inserire, attraverso un link presente nella home page del sito e visibile a tutti gli utenti,
la documentazione descrittiva del sito stesso (contenuta in un unico file in formato PDF),
con tutte le indicazioni utili per la valutazione delle funzionalità dell'applicazione.

Utilizzare il nome index.html (o index.php) per la pagina iniziale del sito, che deve essere
collocata nella cartella /home/grp_XX/www di ciascun gruppo XX.

Includere (istruzione INCLUDE in PHP) il file connect.php, predefinito nella cartella


/home/grp_XX/www/include di ciascun gruppo XX, in ogni pagina del sito che contiene
codice PHP per l’accesso al DB.
Nel file sono definite le variabili $HOST, $DB, $USER e $PASSWORD che contengono i
parametri di accesso, da usare tassativamente in tutte le procedure per la connessione al
DB implementate nel sito.
ATTENZIONE: non modificare in alcun modo il file connect.php predefinito.

Inserire i programmi CGI nella directory /home/grp_XX/www/cgi-bin.

Definire tre utenti del sito, associati ai seguenti username:

 Utente esterno (Livello 2 di accesso): user


 Membro dello staff (Livello 3 di accesso): staff
 Amministratore (Livello 4 di accesso): admin

Assegnare a tutti e tre gli utenti la stessa password, pari ai primi quattro caratteri della
password SSH associata al gruppo che predispone il sito.

La predisposizione del sito sul server deve essere completata entro e non oltre le ore
9:00 del quinto giorno lavorativo precedente la data dell’esame. Successivamente a tale
data, l'accesso al server verrà precluso sino al termine della sessione d’esame.

N.B. L'inosservanza delle modalità precedenti precluderà la valutazione ai fini


della prova d'esame dei siti predisposti.

Per sostenere l’esame bisogna, inoltre, iscriversi alla lista relativa all’appello scelto,
tramite la procedura di ‘Iscrizione Esami’ disponibile nel sito Web del corso.

ATTENZIONE: prendere visione delle date di apertura e chiusura della lista di iscrizione,
diverse per ciascun appello. La mancata iscrizione preclude la partecipazione
all’appello.

©2009 Università Politecnica delle Marche – Sede di Ancona – Corso “Linguaggi e Programmazione WEB”