vuoi
o PayPal
tutte le volte che vuoi
Introduzione gLibrary, tesina
Questo progetto nasce come idea per un eventuale supporto ad una biblioteca scolastica. L'idea alla base di questa applicazione è infatti quella di poter prenotare direttamente dal proprio dispositivo un libro che l'utente vede, per esempio in una libreria, e desidera prenotare in biblioteca. Per controllare la disponibilità del libro basta semplicemente inquadrare il codice a barre del libro prescelto e con un semplice tocco prenotarlo se possibile. Se il libro non dovesse invece essere prenotabile l'utente ha la possibilità di effettuare una ricerca per libri simili. Si potrà allora cercare nella biblioteca scolastica i libri che presentano lo stesso genere e autore, solo lo stesso autore o solo lo stesso genere. L'applicazione si pone, come già detto, ad una funzione di supporto e quindi non sono implementate alcune funzioni che si deve pensare faccia la biblioteca. Fra queste per esempio la gestione delle prenotazioni: è l'app a memorizzare le prenotazioni, ma sarà poi la biblioteca a indicare quando un libro è ritornato dal prestito e a modificare il valore nel database. Il progetto si pone anche come un quadro riepilogativo di tutte le attività compiute all'interno dell'anno scolastico unendo perciò la programmazione Android per la creazione di applicazioni con il linguaggio PHP e SQL per la gestione del database contenente i libri. La tesina di maturità permette il collegamento con alcune materie scolastiche.
Collegamenti
gLibrary, tesina
Informatica - Linguaggio PHP, database.
TPSIT - Linguaggio Android.
BIBLIOTECA SCOLASTICA
Michael Bertini 5^E
a.s 2015/2016
Michael Bertini 5^E ITIS “E. Mattei”, Sondrio a.s 2015/2016
INDICE
PRESENTAZIONE …............................................................................ pag. 2
LA STRUTTURA DELL'APPLICAZIONE …..................................................
1. IL DATABASE …......................................................................
1.1 PROGETTAZIONE DELLA BASE DI DATI .................................... pag.3
1.2 RELAZIONE FRA LA BASE DI DATI E L'APPLICAZIONE …................. pag.4
2. L'APP ANDROID .....................................................................
2.1 MAIN ACTIVITY …............................................................... pag. 5
2.2 MOSTRA LIBRO …............................................................... pag. 6
2.3 PRENOTAZIONE ….............................................................. pag. 6
2.4 CONSIGLI DI LETTURA …...................................................... pag. 7
3. LE PAGINE PHP …....................................................................
3.1 METODO DI INVIO DEI DATI …................................................. pag.8
3.2 RICERCA.PHP …................................................................. pag.9
3.3 PRENOTA.PHP …................................................................ pag.9
3.4 GEN.PHP/GENAUT.PHP/AUT.PHP ….........................................pag.10
3.5 ANNULLA.PHP …................................................................pag.11
4. LE LIBRERIE ZXING ….............................................................. pag.12
5. SITOGRAFIA …....................................................................... pag.14
Michael Bertini 5^E ITIS “E. Mattei”, Sondrio a.s 2015/2016
PRESENTAZIONE
Questo progetto nasce come idea per un eventuale supporto ad una biblioteca scolastica. L'idea alla base di
questa applicazione è infatti quella di poter prenotare direttamente dal proprio dispositivo un libro che
l'utente vede, per esempio in una libreria, e desidera prenotare in biblioteca.
Per controllare la disponibilità del libro basta semplicemente inquadrare il codice a barre del libro prescelto
e con un semplice tocco prenotarlo se possibile.
Se il libro non dovesse invece essere prenotabile l'utente ha la possibilità di effettuare una ricerca per libri
simili. Si potrà allora cercare nella biblioteca scolastica i libri che presentano lo stesso genere e autore, solo lo
stesso autore o solo lo stesso genere.
L'applicazione si pone, come già detto, ad una funzione di supporto e quindi non sono implementate alcune
funzioni che si deve pensare faccia la biblioteca. Fra queste per esempio la gestione delle prenotazioni: è
l'app a memorizzare le prenotazioni, ma sarà poi la biblioteca a indicare quando un libro è ritornato dal
prestito e a modificare il valore nel database.
Il progetto si pone anche come un quadro riepilogativo di tutte le attività compiute all'interno dell'anno
scolastico unendo perciò la programmazione Android per la creazione di applicazioni con il linguaggio
PHP e SQL per la gestione del database contenente i libri. 2
Michael Bertini 5^E ITIS “E. Mattei”, Sondrio a.s 2015/2016
LA STRUTTURA DELL'APPLICAZIONE
1.IL DATABASE
1.1 PROGETTAZIONE DELLA BASE DI DATI
Il database gLibrary implementato tramite il linguaggio MySQL è utilizzato per la gestione delle
informazioni riguardanti i libri a disposizione della biblioteca e le prenotazioni.
Sono presenti le seguenti tabelle:
LIBRO : questa entità rappresenta nella sua generalità un determinato libro stampato da un
• determinato editore. Sarà identificato univocamente dal suo codice ISBN.
COPIA: l'entità copia rappresenta invece la singola copia materiale del libro a disposizione
• della biblioteca ed è identificato da un codice che gli viene imposto dalla biblioteca a cui
appartiene (in questo caso il valore del codice della copia è un auto_increment). Perciò un
libro in questa tabella appare tanta volte quante sono le copie che la biblioteca ha a
disposizione. In questa tabella è presente un attributo “stato” che segnala se il libro è
occupato oppure no (0: libero; 1:occupato).
EDITORE
• AUTORE
• GENERE
• PRENOTAZIONE: questa entità rappresenta la prenotazione che viene effettuata su una copia
• del libro.
DIAGRAMMA E/R (SCHEMA CONCETTUALE) 3
Michael Bertini 5^E ITIS “E. Mattei”, Sondrio a.s 2015/2016
SCHEMA LOGICO
PRENOTAZIONE(codPren,codCopia,data)
COPIA(codCopia,codLibro,stato)
LIBRO_AUTORE(codA,ISBN)
LIBRO(ISBN,titolo,anno,lingua,codA,codGenere,codEditore)
AUTORE(codA,nome,cognome)
EDITORE(codEditore,ragione_sociale,città)
GENERE(codGenere,descrizione)
chiave primaria codPren
chiave esterna codEditore
chiave primaria ed esterna codA
1.2 RELAZIONE FRA LA BASE DI DATI E L'APPLICAZIONE
Il database è una parte fondamentale per il funzionamento dell'applicazione e quindi deve poter
essere raggiungibile da questa. Per questo la base di dati è ospitata tramite hosting sulla rete internet
e da qui è raggiugibile. L'utente quando invia il suo codice ISBN lo invia ad una pagina PHP,
anch'essa memorizzata sul web, che si interfaccia attraverso l'utilizzo del linguaggio MySQL con il
database. 4
Michael Bertini 5^E ITIS “E. Mattei”, Sondrio a.s 2015/2016
2.L'APP ANDROID
Per lo sviluppo dell'applicazione si è scelto l'ambiente di sviluppo Android. Fondamentalmente
l'applicazione si compone delle seguenti activity, le varie schermate che l'utente può incontrare durante
l'uso. Per comprendere lo schema generale delle activity e la loro connessione si veda lo schema conclusivo.
2.1 MAIN ACTIVITY
Questa è la schermata iniziale che l'utente vede non appena avvia l'applicazione. Questa activity si compone
di due bottoni e da un'area di testo sulla quale appariranno le informazioni ricavate dalla gestione dei dati,
in questo caso il codice ISBN che viene scannerizzato. Il bottone INIZIA viene utilizzato dall'utente per
iniziare la scansione del codice ISBN del libro. Al bottone è associato un ascoltatore che richiama le librerie
open source di Zxing (per vedere come sono state implementate si veda pag. 12). Queste librerie permettono
di utilizzare dei metodi che accedono alla fotocamera del dispositivo e che dalla fotografia scattata riescono
a estrapolare il codice.
Non appena l' ISBN viene riconosciuto questo viene inviato all'app che stampa il risultato sull' area di testo.
L'utente dovrà quindi schiacciare il bottone INVIA e qui potranno presentarsi differenti scenari in base allo
stato del libro segnalato. Se l'utente non ha inserito tramite scansione nessun codice al tentativo di invio
apparirà un messaggio d'errore. 5
Michael Bertini 5^E ITIS “E. Mattei”, Sondrio a.s 2015/2016
2.2 MOSTRA LIBRO
Se il libro è presente nel database e prenotabile dall'utente viene
visualizzata questa activity. Qui viene mostrato all'utente il risultato
della sua ricerca e quindi le informazioni generali riguardanti il libro.
Nel fondo della schermata è presente un bottone PRENOTA che
rende possibile la prenotazione da parte dell'utente. Quando il
bottone viene cliccato il codice ISBN viene inviato alla pagina
prenota.php che una volta trovato il libro ne modifica lo stato di
prenotazione e inserisce i dati nella tabella Prenotazione. Ritorna
quindi all'applicazione il codice della prenotazione.
2.3 PRENOTAZIONE
In questa activity viene mostrato il codice di prenotazione che l'utente deve utilizzare per ritirare il libro.
Ora l'utente può decidere se prenotare altri libri e quindi tornare alla schermata iniziale oppure annullare la
prenotazione precedentemente effettuata. In quest'ultimo caso viene richiamata una pagina PHP che
ripristina lo stato del libro a libero e cancella la prenotazione. 6
Michael Bertini 5^E ITIS “E. Mattei”, Sondrio a.s 2015/2016
2.4 CONSIGLI DI LETTURA
Questa activity viene mostrata se
il libro che si è cercato non è
presente nella base di dati. In
questo caso è quindi possibile
ricercare dei libri simili a quello
desiderato in base a dei parametri
inseriti. Si potrà quindi cercare
tutti i libri con lo stesso autore, lo
stesso genere oppure con lo
stesso autore e lo stesso genere.
Una volta inseriti i parametri
secondo cui ricercare i libri questi
appariranno preceduti da un
codice. L'utente dovrà quindi
inserire questo codice all'interno
di un'area di testo posta nel fondo
della pagina. Cliccando poi il
pulsante PRENOTA si aprirà la
schermata MOSTRA LIBRO e la
procedura continuerà come precedentemente mostrato.
SCHEMA DEL FUNZIONAMENTO GENERALE DELL'APPLICAZIONE 7
Michael Bertini 5^E ITIS “E. Mattei”, Sondrio a.s 2015/2016
3.LE PAGINE PHP
3.1 METODO DI INVIO DEI DATI
Per inviare i dati dall'applicazione alle pagine PHP e viceversa si è utilizzato il metodo POST. In questo caso
quindi l'applicazione Android, conoscendo l'indirizzo del sito in cui sono ospitati gli script,invia alla pagina
PHP dei dati parametri che vengono inseriti all'interno del vettore $_POST[]. A questo punto lo script
estrapola i dati che gli servono dal vettore e infine, dopo delle elaborazioni, stampa sul flusso in uscita di
dati una risposta. Questa viene letta dall'applicazione che se ne servirà per il suo funzionamento.
INVIO E RICEZIONE DEI DATI TRAMITE L'APPLICAZIONE
LETTURA DEL VALORE DA PHP 8
Michael Bertini 5^E ITIS “E. Mattei”, Sondrio a.s 2015/2016
3.2 RICERCA.PHP
Questa pagina ha la funzione di ricercare il libro nel database. Dopo essersi connesso a questo, tramite una
query ricerca il libro secondo il codice ISBN che gli è stato inviato. Se il libro viene trovato allora si passa
alla ricerca delle informazioni che lo riguardano fra cui anche il numero di copie libere presenti. Se emerge
che sono presenti delle copie libere allora si stampano sul flusso di uscita dei dati le informazioni che
riguardano il libro. Se invece il libro non presenta copie libere si stampa un codice, “NP”, che per
convenzione indica all'applicazione che il libro non è prenotabile. Nel caso in cui invece il libro non viene
trovato nel database si stamperà un messaggio che indica questa situazione.
3.3 PRENOTA.PHP
Questa pagina serve per prenotare il libro selezionato dalla precedente ricerca. Viene quindi cercata nella
tabella Copia u