Esame di stato 2014 - 2015 Opere Sonore Francesco Bruschetti INDICE Pagina 2: Abstract. Pagine 2-3: Introduzione. Pagine 4-5: Descrizione Software e tecnologie utilizzate. Pagine 5: Tratti significativi di codice. Pagina 6: Struttura del database e conclusioni personali. Pagina 7: Bibliografia e sitografia. FRANCESCO BRUSCHETTI 1 ABSTRACT Il mio progetto consiste nella creazione di un sito web, per un’azienda trentina, attraverso il quale è possibile creare e gestire dei QR-CODE, che verranno stampati su riviste, giornali, trasporti per permettere ai clienti di accedere facilmente al sito dell’azienda . Il QR-CODE è un codice a barre bidimensionale creato dinamicamente in base ad una stringa. Nel mio caso la stringa è un URL , ovvero l’indirizzo di una pagina web. Utilizzando un qualsiasi smartphone, attraverso apposite applicazioni scaricabili dai rispettivi store, è possibile “fotografare” il QR-CODE, estrarne l’indirizzo associato e collegarsi al sito web dove sono pubblicizzati gli eventi e le mostre dell’azienda. INTRODUZIONE Obbiettivi e scelte strumentali: L’obbiettivo principale di questo progetto è la realizzazione di un software, sviluppato in autonomia, al fine di affinare le tecniche di gestione dei tempi, delle scadenze, e soprattutto della risoluzione dei problemi. Per la creazione del sito ho utilizzato diversi software e tecnologie in quanto, ogni tecnologia ha permesso la creazione mirata delle parti che hanno componsto il progetto. Il software più significativo che ho utilizzato è stato UniServer, un’applicazione portatile, che permette l’interpretazione del linguaggio PHP e dell’attivazione del demone utilizzato per attivare un server locale di MySql, utilizzato per la creazione del database. Discipline coinvolte: E’ difficile distinguere i vari argomenti in quanto, oggi giorno, informatica, sistemi e reti, e tecnologie, sono materie interconnesse. Si può però affermare che, gli argomenti relativi all’ informatica, sono stati utilizzati per la creazione del modello logico e fisico del database e per lo sviluppo di pagine HTML con l’aggiunta di tratti di codice scritte in linguaggio PHP. Sistemi e reti: riguardano la struttura di base delle pagine e il codice che permette l’utilizzo delle funzioni, richiamate tramite degli eventi generati, per esempio, dal click di un bottone da parte dell’utente e, per la creazione dello stile. Tecnologie, per gestire le animazioni, e per le richieste AJAX fatte alle pagine PHP. Questa tecnologia è particolarmente utile perché permette di richiamare delle funzioni di call-back che attivano delle richieste asincrone ad altre pagine. Questo offre l’opportunità di ricevere dei dati FRANCESCO BRUSCHETTI 2 aggiornati e di visualizzarli, all’interno delle pagine, senza dover aggiornarle completamente ogni volta, ma rinfrescando solo la sezione desiderata, migliorando l’esperienza d’utilizzo. Argomenti coinvolti: Molte delle tecnologie e dei linguaggi utilizzati, per lo sviluppo del progetto, sono stati trattati durante gli anni del triennio, ma per riuscire a raggiungere l’obbiettivo e completare il sito, è stato necessario ampliarli studiando, in dettaglio, alcune delle loro caratteristiche. Gli argomenti coinvolti possono essere raggruppati in base alle funzioni, che svolgono nel programma, a partire da HTML e Javascript utilizzati per la creazione della struttura delle pagine e il codice, che gestisce gli eventi generati dall’utente. CSS e Bootstrap per lo stile. Ajax per le chiamate alle pagine in PHP, che interrogano il database e restituiscono i dati aggiornati, che vengono poi iniettati nel codice. jQuery per le animazione presenti nelle pagine e per la generazione dei QR-CODE. Infine, Dojo Toolkit, un framework javascript che permette di inserire dei grafici all’interno delle pagine HTML. Difficoltà incontrate e modalità di superamento: Gli argomenti approfonditi, hanno portato ad alcuni problemi che ho dovuto analizzare e risolvere. I più significativi sono stati la creazione dei QR-CODE, in quanto, essendo un argomento, che non avevo mai trattato, non sapevo come approcciarmi. Ho cercato, quindi, su internet, un codice che permettesse la sua generazione. Un altro problema è stato l’utilizzo di PHP per il collegamento delle pagine HTML al database, poiché non era ancora stato trattato in classe. Per imparare il suo funzionamento, ho iniziato, a leggere il libro di informatica e provando a sviluppare delle pagine partendo dagli esempi forniti dal testo. Questo mi ha permesso, iniziando dalle basi, di apprendere i costrutti necessari per lo sviluppo di pagine PHP. Funzionalità: Le funzionalità principale del software sono, la possibilità di creare dinamicamente dei QR-CODE, in base a dei parametri, inseriti dall’amministratore, nelle apposite caselle di testo, e la gestione dei dati inseriti. Delle matrici, è possibile modificare o eliminare i dati in caso di errori o in caso il QR-CODE non sia più utilizzato. E’ disponibile una funzione che permette di scaricare, localmente, i singoli QR-CODE, al fine di poterli inviare alle aziende, che li stamperanno sulle loro riviste, giornali o sui trasporti, permettendo così agli utenti, di utilizzarli per accedere alla sezione del sito a loro dedicata. FRANCESCO BRUSCHETTI 3 E’ inoltre disponibile, nella pagine principale dell’amministratore, un istogramma, che mostra il numero di tutte le persone, che hanno utilizzato i singoli QR-CODE oppure che si sono collegati in un determinato periodo dell’anno. DESCRIZIONE SOFTWARE Come software è stato utilizzato Notepad++, un editor di testo che permette la stesura del codice relativo alle pagine web, Heidi, un client in grado di collegarsi ai database sviluppati in MySql, per la creazione del modello fisico del database e Uniserver per l’attivazione del demone necessario all’attivazione del server MySql utilizzato in locale e per l’interpretazione del codice PHP. Le tecnologie utilizzati sono HTML per la creazione della struttura delle pagine, javascript per la realizzazione delle pagine in modo dinamico e le funzione di gestione degli eventi, css, bootstrap e jQuery per lo stile e le animazione, MySql per la costruzione del database per la memorizzazione dei dati e PHP per interrogare la base di dati, dalle pagine web. Sono inoltre state fatte delle richieste AJAX per collegare il codice HTML e PHP, con lo scopo di aggiornare singole parti delle pagine rendendo più piacevole l’utilizzo del sito. Come funzionano i QR-CODE I codici QR-CODE possono contenere sia indirizzi internet, che testi, numeri di telefono, o dettagli di un contatto telefonico. Sono leggibili da qualsiasi smartphone munito di un apposito programma di lettura che può essere scaricato dai rispettivi store. Fasi dell’utilizzo di un QR-CODE 1. Aprire l’applicazione, sullo smartphone, che permetta la lettura dei QR-CODE 2. Inquadrare il QR-CODE affinché l’applicazione riesca a “catturarlo” 3. Decodifica della matrice 4. Visualizzazione del contenuto del QR-CODE che, in caso di un url, collega l’utente ad una pagina web Spiegazione del funzionamento di collegamento al sito I clienti, tramite delle applicazioni dedicate per la decodifica dei QR-CODE, potranno catturare le matrici che saranno stampati sui giornali, sulle riviste o sui trasporti pubblici. Una volta estratto l’url associato alle matrici, i clienti accederanno ad una pagina di autenticazione che, automaticamente, FRANCESCO BRUSCHETTI 4 leggerà i dati presenti nell’url, controllerà se nel database esiste un QR-CODE con quei parametri e, se i dati sono corretti, salverà l’IP del cliente nel database e la data di lettura, utilizzata per calcolare le statistiche in un determinato periodo. Dopo l’inserimento dei dati, il cliente verrà istantaneamente reindirizzato alla pagina a lui dedicata in cui potrà avere delle informazioni relative alle mostre. In caso in cui i dati presenti nel QR-CODE non siano corretti, verrà mostrato un messaggio di errore. Cattura del QR-CODE Decodifica del codice Dati corretti Collegamento, tramite browser, alla pagina di autenticazione Dati NON corretti Salvataggio dell’IP del cliente e della data di accesso Reindirizzamento alla pagina dedicata ai clienti Visualizzazione di un messaggio di errore TRATTI SIGNIFICATIVI DI CODICE Un tratto significativo del codice, è quello relativo alla generazione del QR-CODE, in quanto, grazie all’implementazione con la tecnologia jQuery, permette una semplice e veloce creazione della matrice bidimensionale. FRANCESCO BRUSCHETTI 5 #QR-CODE identifica il punto nella pagina in cui viene inserito il QR-CODE generato $("#QR-CODE").QR-CODE({ text: ottengo il testo contenente l’ url con il quale genero la matrice $("#URL").text(), imposto le dimensioni del QR-CODE width: 180, larghezza della matrice impostata a 180 pixel height: 180 altezza della matrice impostata a 180 pixel }); Modello logico del database: QR-CODE UTENTE Data Lettura ID_Utente IP (1,N) ID_QRCODE (1,N) legge_qrcode Indirizzo Password Dettagli Tipo Amministratore Username Password FRANCESCO BRUSCHETTI 6 CONCLUSIONE Grazie a questo progetto ho avuto modo di imparare nuovi argomenti e gestire il tempo a mia disposizione per rispettare le date di scadenza. Nonostante abbia raggiunto gli obbiettivi che mi ero prefissato, riuscendo a sviluppare un software funzionante, molte sono le cose che potrebbero essere modificate o aggiunte e, questo fatto è dovuto al mondo dell’informatica, che è un vasto campo in continua evoluzione e questo offre la possibilità di sviluppare applicazioni innovative. BIBLIOGRAFIA E SITOGRAFIA - Progettare i database - SQL e PHP (Libro di testo, Edizione 2014-2015) - w3schools: (http://www.w3schools.com/ ) - bootstrap documentation: (http://getbootstrap.com/components/ ) - dojo toolkit documentation: (http://dojotoolkit.org/documentation/ ) - stackoverflow: (http://stackoverflow.com/ ) FRANCESCO BRUSCHETTI 7