Generator de chestionare [618961]
FACULTATEA DE AUTOMATIC Ă ȘI CALCULATOARE
2017
Generator de chestionare
LUCRARE DE DISERTA ȚIE
Autor: Ionel SOPON
Conduc ător științific: Conf . dr. ing. Paula RAICA
FACULTATEA DE AUTOMATIC Ă ȘI CALCULATOARE
DECAN
Prof.dr.ing. Liviu MICLEA Vizat,
DIRECTOR DEPARTAMENT AUTOMATIC Ă
Prof.dr.ing. Honoriu VĂ LEAN
Autor : Ionel SOPON
Genera tor de chestionare
1. Enunțul temei: Realizarea unei aplicații pentru crearea și administrarea
computerizată a chestionarelor. Aplicația va fi concepută în principal pentru
colectarea, vizualizarea și analiza datelor privind studenții și absolvenții
Universității Tehnice din Cluj -Napoca, dar va fi suficient de generală pentru a
putea fi adaptată și altor scopuri ca de exemplu diverse tipuri de e valuări
specifice sistemului de management al calității .
2. Conținutul proiectului : Lucrarea de fa ță este compusă din 6 capitole. Primul
capitol “ Introducere ” conține o scurtă prezentare a contex tului general, al
obiectivelor și al specificaț iilor proiectul ui. Cel de al doilea capitol “ Studiu
bibliografic ” este o prezentare a aplicațiilor similare realizate recent . Al treilea
capitol “Tehnologii utilizate ” prezint ă tehnologiile folosite ȋn realizarea
aplicaț iei. Ȋn capitolul patru “Aplicația – Generator de c hestionare ” se descrie
partea practică a noțiunilor expuse ȋ n capitolele ant erioare mai precis al aplicației
web Generator de chestionare. Al cincelea capitol denumit “Manual de utilizare”
descrie ȋn pași exacți modul de utilizare al aplicației. Ȋ n ultimul capitol
“Concluzii ” am prezentat rezultatele obținute cât și concluziile rezultate ȋn urma
studiului. Lucrarea se ȋ ncheie cu Bibliografia folosită .
3. Locul documentației: Universitatea Tehnic ă din Cluj -Napoca
4. Consultanți : Conf. dr. ing. Paula RAICA
5. Data emiterii temei: 10.12.2015
6. Data predării: 11.07.2017
Semnătura autorului
Semn ătura c onduc ătorului științific
FACULTATEA DE AUTOMATIC Ă ȘI CALCULATOARE
Declarație pe proprie răspundere privind
autenticitatea lucrării de disertație
Subsemnatul Ionel SOPON -TIȘE legitimat cu CI seria CJ nr. 275937 ,
CNP [anonimizat] , autorul lucrării: „Genera tor de chestionare ”, elaborată în
vederea susținerii examenului de finalizare a studii lor de master la Facultatea de
Automatică și Calculatoare , specializarea Informatică Aplicată din cadrul
Universității Tehnice din Cluj -Napoca, sesiunea Iulie 2017 a anului universitar 2016 –
2017 , declar pe proprie răspundere, că această lucrare este rezultatul propriei activități
intelectuale, pe baza cercetărilor mele și pe baza infor mațiilor obținute din surse care au
fost citate, în textul lucrării, și în bibliografie.
Declar, că această lucrare nu conține porțiuni plagiate, iar sursele bibliografice au
fost folosite cu respectarea legislației române și a convențiilor internaționale privind
drepturile de autor.
Declar, de asemenea, că această lucrare nu a mai fost prezentată în fața unei alte
comisii de examen de disertație .
Ȋn cazul constatării ulterioare a unor declarații false, voi suporta sancțiunile
administrative, respectiv, anularea examenului de disertație .
Data Ionel SOPON -TIȘE
(semnă tura)
FACULTATEA DE AUTOMATIC Ă ȘI CALCULATOARE
SINTEZA
lucrării de disertație cu titlul:
Genera tor de chestionare
Autor: Ionel SOPON
Conduc ător științific: Conf. dr. ing. Paula RAICA
1. Cerințele temei: Realizarea unei aplica ții web de generare a chestionarelor .
Aplica ția trebuie s ă asigure colectarea, vizualizarea și analiza datelor pentru scopuri c ât
mai generale. Ca exemplu de utilizare, aplica ția va fi folosit ă pentru colectarea datelor
referitoare la absolven ții Universit ății Tehnice din Cluj -Napoca
2. Soluții alese: Aplica ția a fost implementat ă utiliz ând tehnologii precum baze de
date, PHP, Zend Framework și bootstrap .
3. Rezultate obținute: Platforma online realizat ă pentru generarea de chestionare
este u șor de folosit, are o interfa ță prietenoas ă, iar datele pot fi stocate, centralizate și
securizate în condi țiile proiectate .
4. Testări și verificări: Toate modulele și func ționalit ățile proiectate ale aplica ției au
fost verificate ; aplicaț ia func ționeaz ă fără erori.
5. Contribuții personale: Analiza problemei, proiectarea logicii aplica ției,
dezvoltarea aplica ției func ționale pentru utilizare de c ătre administratori sau
studen ți/absolven ți.
6. Surse de docume ntare: Cărți, articole și pagini web disponibile în format
electronic pe Internet , cursuri din programul de master Informatic ă aplicat ă.
Semnătura autorului
Semn ătura conduc ătorului științific
1
Cuprins
1 INTRODUCERE ………………………….. ………………………….. ………………………….. ………………………….. 2
1.1 CONTEXT GENERAL ………………………….. ………………………….. ………………………….. …………………….. 2
1.2 OBIECTIVE ȘI SPECIFIC AȚII ………………………….. ………………………….. ………………………….. ……………… 3
1.2.1 Specificații ………………………….. ………………………….. ………………………….. ………………………… 3
2 STUDIU BIBLIOGRAFIC ………………………….. ………………………….. ………………………….. ……………….. 6
3 TEHNOLOGII UTILIZATE ………………………….. ………………………….. ………………………….. ……………… 9
3.1 SISTEMUL DE GESTIUNE AL BAZELOR DE DATE ………………………….. ………………………….. …………………… 9
3.2 APLICAȚII WEB………………………….. ………………………….. ………………………….. ………………………… 10
3.2.1 Pagini dinamice -scripturi ………………………….. ………………………….. ………………………….. ….. 10
3.2.2 Scripturi client ………………………….. ………………………….. ………………………….. …………………. 11
3.2.3 Scripturi server ………………………….. ………………………….. ………………………….. ………………… 12
3.2.4 Baze de date ………………………….. ………………………….. ………………………….. …………………… 13
3.3 PHP ȘI ZEND FRAMEWORK ………………………….. ………………………….. ………………………….. …………. 15
3.3.1 PHP ………………………….. ………………………….. ………………………….. ………………………… 15
3.3.2 Zend Frame work ………………………….. ………………………….. ………………………… 16
3.3.3 Bootstrap ………………………….. ………………………….. ………………………….. ……………………….. 18
4 APLICAȚIA – GENERATOR DE CHESTIO NARE ………………………….. ………………………….. …………….. 20
4.1 ANALIZĂ ȘI PROIECTARE ………………………….. ………………………….. ………………………….. ……………… 20
4.1.1 Cazuri de utilizare ………………………….. ………………………….. ………………………….. ……………. 20
4.1.2 Diagrama de Secvență ………………………….. ………………………….. ………………………….. ……… 24
4.2 IMPLEMENTARE ………………………….. ………………………….. ………………………….. ……………………….. 25
4.2.1 Detalii de implementare ………………………….. ………………………….. ………………………….. …… 25
4.2.2 Arhitectura bazei de date ………………………….. ………………………….. ………………………….. …. 29
4.2.3 Crearea paginilor și a formularelor ȋn ZF2 ………………………….. ………………………….. ……….. 33
4.2.4 Interfețele utilizator ………………………….. ………………………….. ………………………….. …………. 36
5 MANUAL DE UTILIZARE ………………………….. ………………………….. ………………………….. ……………. 44
5.1 UTILIZAREA CA ADMINIS TRATOR ………………………….. ………………………….. ………………………….. ……. 44
5.2 UTILIZAREA CA STUDENT ………………………….. ………………………….. ………………………….. …………….. 48
6 CONCLUZII ………………………….. ………………………….. ………………………….. ………………………….. …. 50
6.1 REZULTATE OBȚINUTE ………………………….. ………………………….. ………………………….. ………………… 50
6.2 DIRECȚII DE DEZVOLTARE ………………………….. ………………………….. ………………………….. …………….. 50
7 BIBLIOGRAFIE ………………………….. ………………………….. ………………………….. …………………………. 51
Introducere
2
1 Introducere
1.1 Context general
Chestionarul, inventat de Sir Francis Galton, este un instrument de cercetare
constând dintr -o serie de întrebări sau alte solicitări pentru a aduna informații de la cei
chestionați .
Avantajele chestionarelor sunt: ieftine, nu au nevoie de mult efort din partea celui
ce chestionează (precum necesită ancheta verbală sau prin telefo n) și au răspunsuri
standardizate care le face simplu de utilizat pentru a colecta date . [1]
Un chestionar este format dintr -un număr de întrebări la care cel care r ăspunde
trebuie să răspundă într -un format standard . Diferența între întrebări deschise și închise
este: o întrebare deschisă solicită chestionatului să își formuleze răspunsul propriu, în
cazul unei întrebări de tip închis chestionatul alege un răspuns dintr -un anumit număr
de opțiuni.
Opțiunile de răspuns pentru o întrebare de tip închis ar trebui să fie exhaustive și
exclusive reciproc. Ȋntrebarile ȋnchise au 4 tipuri de răspuns uri:
dihotomică, în cazul în care chestionatul are două opțiuni
nominală -politomă, în cazul în care cel chestionat are mai mult de două
opțiuni neordonate
ordinală -politomă, în cazul în care chestionatul are mai mult de două
opțiuni comandate
(mărginit) continuă, în cazul în care respondentului îi este oferită o scală
continuă. [2]
Astăzi , ȋn majoritatea domeniilor , este necesar ă cel puțin o dată folosirea de
chestionare, fie că este vorba de analize statistice sau de diverse tipuri de evaluări.
Ȋn prezent se găsesc nenumărate platforme pe generare de chestionare. La o
simplă căutare pe google a cuvintelor cheie “questionnaire generator” se vor returna
multe rezultate. Cea mai utilizată aplicație este Google Forms. Acesta este un generator
de chestionare gratuit care deține o serie de functionalități. Pe langă Google Forms există
și aplicații care pot fi folosite pe baza unui abonament lunar care poate să ȋnceapă de la
19 USD. Mai jos voi enumera câteva dintre aceste aplicații, urmate de situl official:
Survey Monkey: https://www.surveymonkey.com
Typeform : https://www.typeform.com
Client Heartbeat: https://www.clientheartbeat.com
Zoho Survey : https://www.zoho.eu
Survey Gizmo : https://www.surveygizmo.com
Survey Planet: https://surveyplanet.com
Introducere
3 Motiva ția acestei aplica ții este necesitatea protec ției datelor personale. Ȋn unele
situații cum este și cea de față nu pot fi utilizate aplica ții disponibile pe web, din motive
de securitate. Toate datele colectate trebuie p ăstrate pe calculatoare/servere locale. Mai
exact colectarea datelor referitoare la absolven ții universit ăților nu pot fi stocate pe al te
servere.
O altă motivație legată de implementarea acestei aplicații este punerea ȋn practică
a cunoștințelor acumulate pe parcursul studiului de master. Principalele materii care m –
au ajutat ȋn realizarea acestei platforme au fost:
Aplicații de birotică și internet – ȋn cadul căruia am ȋnvațat primele
noțiuni de HTML și CSS
Realizarea aplicațiilor pentru www – aici am aflat modul de funcționare
al limbajului PHP
Crearea și exploatarea bazelor de date relaționale – curs ȋn care am
ȋnvațat primele noțiuni de baze de date, și unde am creat prima bază de
date relațională.
Lucrarea de fa ță este compusă din 6 capitole. Primul capitol “ Introducere ”
conține o scurtă prezentare a contex tului general, al obiectivelor și al specificaț iilor
proiectului. Cel de al doilea capitol “ Studiu bibliografic ” este o prezentare a aplicațiilor
similare realizate recent . Al treilea capitol “Tehnologii utilizate ” prezint ă tehnologiile
folosite ȋn realizarea aplicațiiei . Ȋn capitolul patru “Aplicaț ia – Generator de
chestionare ” se descri e partea practică a noțiunilor expuse ȋ n capitolele ant erio are mai
precis a aplicaț iei w eb Generator de chestionare. Al cincelea capitol se numește “Manual
de utilizare” și descrie ȋn pași exacți modul de utilizare al aplicației. Ȋn ultimul capitol
“Concluzii ” am prezentat rezultatele obținute cât și concluziile rezultate ȋn urma
studiului. Lucrarea se ȋ ncheie cu Bibliografia folosită .
Ȋn ceea ce priveste aplicați a practică, aceasta se adresează atât profesorilor cât și
studenț ilor de la U TCN. Ȋn ca drul aplicaț iei profesorii s au cadrele auxiliare universită ții
au posib ilitatea de a cre ea chestionare și de a vizualiza răspunsurile primite. Studenț ii,
pe baza unui link primit , pot vizualiza și ră spunde la ȋntrebarile adresate .
Această aplicaț ie ajută la o mai bună comunicare ȋntre profesori și studenți și
totoda tă la o mai bună centralizare a ră spunsurilor primite.
1.2 Obiective și specifica ții
Lucrarea are ca obiectiv principal – crearea și administra rea computerizată a
chestionarelor . Aplicația este con cepută în principal pentru colectarea, vizualizarea și
analiza datelor privind studenții și absolvenții Universității Tehnice din Cluj -Napoca, dar
va fi suficient de generală pentru a putea fi adaptată și altor scopuri ca de exemplu
diverse tipuri de evalu ări specifice sistemului de management al calității .
1.2.1 Specifica ții
Principalele functionalit ăți implementate ȋn cadrul aplicaț iei sunt urmă toarele:
Introducere
4 Func ționalităț i specifice profesorilor sau administratorilor
o Logarea ȋ n aplicație folosind adresa de email ș i parola
o Adăugare a, modificarea și ștergerea unei ȋ ntreb ări
o Crearea unui chestionar din ȋ ntrebarile existente
o Modificarea chestionarului
o Generarea unui link pentru chest ionar
o Vizualizarea răspunsurilor date de către studenț i
Functionalităț i specifice studen ților
o Vizualizarea chestionarului
o Comple tarea chestionarului
Specificațiile funcț ionale
Logarea ȋn aplicație folosind adresa de email ș i parola – la accesarea
platformei utiliz atorul (administrator sau profesor) va putea accesa o
pagină destin tă lo gării. Dupa introducerea d atelor de autentificare, acestea
vor fi transmise serverului care le va verifica ș i va transmite un mesaj de
eroare daca nu sunt valide sau va redirecta utilizatorul spre o noua pagină .
Adăugare, modificarea și ștergerea unei ȋ ntrebari – administratorul va
putea adăuga, șterge, modifica câte o ȋ ntrebare.
Crearea unui chestiona r din ȋ ntrebarile existente – ȋn platforma va fi
vizibil cu toate ȋ ntrebarile adaugate de utilizatorul curent. Din cadrul
acestora se va putea crea un nou che stionar.
Modificarea chestionarului – aplicaț ia va permite ca utiliza torul să aducă
modificari unui chestionar nepublicat ȋ ncă.
Generarea unui link pentru chest ionar – la finalizarea chestionarului se
va genera unu link unic pentru fi ecare chestionar ȋ n parte care va fi
transmis studenț ilor pentru a putea răspunde la ȋntrebă ri.
Vizualizarea ră spunsurilor date de că tre student – odata ce un
chesionar este publicat creatorul lui va putea vizualiza ră spunsurile
comple tate .
Vizualizarea chestionarului de că tre student – pe baza unui link primit
studentul va putea vizuali za un chestionar cu o serie de ȋntrebă ri.
Comple tarea chestionarului – studentul va avea posibilitatea să răspundă
la ȋntrebările chestionarului și să trimit ă aceste r ăspunsuri .
Specifica ții non -funcț ionale
Interfața prietenoasă – aplicaț ia trebuie să fie uș or de utilizat oferind o
experiență cât mai plă cută utilizatorilor ei.
Utilizabilitate – platforma oferă o interfață grafic ă intuitivă .
Securitatea – este un aspect important al or icărei ap licații. Ȋ n ceea ce
privește aplicaț ia Generator de chestionare administratori sau profesori
care vor să creeze un chestionar vor avea acces la platfo rmă doar pe baza
unei autentifică rii (email și parolă ).
Introducere
5 Performanța – aceasta se referă la timpul de ră spuns al req uest -urilor.
Acesta va trebui să fie cât mai mic indif erent de numă rul utilizatorilor care
acces ează concomit ent aplicaț ia.
Scalabilitatea – prin scalabilitatea sistemului se ȋ nțelege abilitatea acestuia
de a permite extinderea sa. Vorbim de un sistem de stocare ș i prelucrare a
datelor sca labil care se comportă similar chiar dacă volum ul de date creș te.
Robuste țea – aplicația nu trebuie să fie vulnerabilă la erori produse de
intro ducerea unor date invalide de că tre utilizatori i acesteia. Platfo rma va
valida formularele prin afiș area de mesaje de eroare dacă este cazul.
Studiu bibliografic
6
2 Studiu bibliograf ic
În literatura de specialitate, g enerarea chestionarelor și utilizarea lor pentru
diverse scopuri în educa ție, cercetare sau analize statistice apare ca o problem ă de mare
interes în zilele noastre.
De exemplu, utilizarea generatoarelor de chestionare pentru scopuri legate de
educa ție apare frecvent în literatura de specialitate.
Un generator de chestionare automat, bazat pe jocuri, care utilizeaz ă resurse
educa ționale online pentru înv ățarea limbii engleze a fost prezentat în anul 2017 de Ono
și Nakajima [3]. Un recent proiect care propune un generator de chestionare adaptiv, cu
o banc ă de întreb ări colaborative , bazat pe web este prezentat în [4].
O alt ă aplica ție din acela și domeniu, dezvoltat ă pentru predarea cursurilor de
chimie general ă la Universitatea Tokai din Japonia , a fost un generator de întreb ări
similare pe baza fi șierelor XML și care include defini ții ale variabilelor și formule de
calcul pentru variante de r ăspuns corecte sau incorecte , [5].
O aplica ție similar ă cu cea dezvoltată în aceast ă lucrare , utiliz ând cloud computing ,
Google App Engine și Java a fost prezentat ă de Hoshi ș i Klyuev î n [6].
Generarea automat ă a chestionarelor a fost utilizat ă și pentru evaluarea calit ății
interfe țelor utilizator și validat ă prin evaluarea sistemelor de supervizare a traficului în
Valenciennes (Fran ța) ca parte a unui proiect interna țional , [7], [8].
Există un num ăr mare de generatoare de chestionare disponibile online, gratuite
sau cu unele facilit ăți gratuite . Câteva dint re acestea sunt descrise sumar mai jos.
1. Survey Monkey
Este cea mai cunoscută platformă din acest domeniu. Facilitățile oferite variantei
gratis sunt următoarele:
10 ȋntrebări
100 răspunsuri
15 tipuri de ȋntrebari
personalizarea temei.
Sistemul este bine conceput, destul de ușor de utilizat și se pot integra chestionare.
Nu exportă datele, iar versiun ile plătit e încep de la 35 EURO /lună, cu mai multe
întrebări, mai mulți respondenți și alte caracteristici. [9]
Studiu bibliografic
7 2. Typeform
Este cea mai creativă platformă pentru crearea de chestionare. Interfața este
elegantă cu un stil atractiv. M otto -ul companiei este , "Întrebările trebuie să fie simple,
umane și frumoase".
Versiunea gratuită , numită CORE plan, are o multitudin e de facilit ăți:
număr nelimitat de ȋntrebări
număr nelinitat de răspunsuri
exportarea datelor
design customizat a l temelor
crearea de rapoarte simple
Versiunea pro ȋncepe de la 25 EURO /lună și include funcționalitați precum
trimiterea de emailuri pentru p unctaje , prețuri și altele. [10]
3. Google Forms
Google Forms este altă aplicație oferită de Google ea fiind 100% gratuită. Câteva
facil ități oferite de această platformă sunt:
număr nelimitat de chestionare
număr nelimitat de repondenti
răspunsurile sunt automat colectate ȋn Google Spreadsheets
o mulțime de opțiuni tematice
posibilitatea adăugarea propriului logo
adăugare de imagini sau de videoclipuri
poibilitatea adăugarii de coloboratori
ȋncorporarea rezultatelor ȋn emailuri sau website
Google Forms este singurul instrument gratuit de sondaj online acesta fiind
probabil prima alegere pentru majoritatea.
4. Client Heartbeat
Aceasta aplicație nu are versiune gratuită. Prima opțiune pornește de la 2 9
USD/lună și poate ajunge pâ nă la 449 USD/lună. Această aplicație are un preț destul de
mare ȋn comparație cu celelalte instrumente. Pentru aceasta clienții aplicației au acces la
câteva funcții de rapoarte mult mai avansate. [11]
Platforma are funcționalita tea de ave rtizare a clienților nesatisfacuți precum și un
widget de m ărturii care poate afișa recomandări pe situl utilizatorului .
Studiu bibliografic
8 5. Zoho Survey
Platforma are și o versiune gratis care are urmatoarele facilită ți:
număr nelimitat de chestionare
15 ȋntrebări
150 răspunsuri
Pentru mai multe funcționalități se va trece la versiunea platită care va ȋncepe de la
19 euro/lună și poate ajunge la 41 euro/lună [12] .
6. Survey Gizmo
Survey Gizmo poate crea chestionare care să arate bine și p oate fi o alegere
excelentă chiar și dacă se folosește versiunea gratuită.
Versiunea gratuită este limitată și oferă următoarele facilit ăți:
număr nelimitat de chestionare și ȋntrebări
50 de re spondenți
mai multe tipuri de ȋntrebări de bază
șabloane gratuite
rapoarte de bază
opțiuni de export
Versiunea platită ȋncepe de la 25 USD/lună bine ȋnteles adăugandu -se
funcționalități noi față de versiunea gratuită. [13]
7. Survey Planet
Versiunea gratuită este destul de robustă și ofertă următoarele facilit ăți:
Număr nelimitat de chestionare
Număr nelimitat de ȋntrebări
Număr nelimitat de re spondenți
Varianta platită ȋncepe de la 20 USD/lună și oferă exportarea rezultatelor ȋn Word,
Excel, CSV, PDF, filtrarea rezultatelor, printarea chestionarelor și altele. [14]
Tehnologii utilizate
9
3 Tehnologii utilizate
3.1 Sistemul de gestiune al bazelor de date
Mult timp s -a crezut că fișierele clasice rezolvă toate problemele de informatică
economică și de afaceri. O organizație suficient de dezvoltată ajunge însă să dispună de
un număr prea mare de fișiere clasice. Acest număr mare de fișiere duce la o serie de
neajunsuri dintre care:
Redundanța – datele se multiplică în fișiere, nocivă nu numai prin
multiplicarea informației ci mai ales prin efectel e secundare pe care le
produce.
Inconsistența – necorelarea datelo r care sunt în diferite fișiere.
Securitatea – proprietatea prin care fiecare persoană care are dreptul de
acces la o informație să o poată utiliza și nici o altă persoană care n u are
drept să nu aibă acces la ea.
O altă problemă care apare este validarea datelor. În situația utilizării unui număr
mare de fișiere este foarte greu de asigurat un sistem corect de validare a tuturor
datelor.
Din aceste motive organizarea datelor pe memoria externă a parcurs în timp mai
multe stadii de la fișiere la bazele de date actuale.
Definiția bazelor de date diferă de la un autor la altul, dar în esență o bază de date
este un sistem integrat coerent și partajat de fișiere care conține o descriere a
structurilor de date folosite și o colecție de date aflate în interdepedență memorată în
diferite fișiere.
O bază de date este definită ca o colecție de date de următoarele două tipuri:
mulțime de date aflate în interdependență , memorate în diferite fișiere .
diferite tabele (fișiere, dicționare, contain ere) de descriere a datelor
memorate în baza de date.
În baza de date se memorează datele conform unui anumit model. Utilizatorul vede
baza de date conform aces tui model. Datele memorate urmează să fie gestionate
(adăugate, șterse, regăsi te, modificate) conform acestui model. Pentru ca aceste operații
să se poată efectua cât mai ușor este necesară o descriere a datelor memorate în baza de
date și această descrier e să fie memorată în diferite tabele. În momentul în care se
execută o anumită operație tr ebuie să se consulte aceste tabele de descriere pentru a
verifica dacă datele respective există și eventual locul unde se află ele memorate.
De aici rezultă una dintr e deosebirile esențiale între bazele de date și fișierele
clasice și anume că în fișierele clasice elementul cheie îl reprezintă structurile de date
care se referă la relațiile dintr -un fișier în timp ce în baza de date pe lângă structurile de
Tehnologii utilizate
10 date mai ap ar și modelele de date care descriu relațiile existente între fișierele
componente sau entitățile bazei de date.
Pentru a păstra corectitudinea datelor din baza de date este necesar ca ele să
respecte în permanență anumite reguli. Aceste reguli se pot refe ri la condiții de validare
a anumitor date individuale sau a unor grupuri de date, condiționarea prezenței unor
date numai dacă alte date există deja în baza de date, proceduri de codificare și de
decodificare a datelor.
Pentru ca mulțimea de fișiere în c are se memorează baza de date să poată fi
gestionată cât mai ușor este necesară existența unor programe specializate care
formează Sistemul de Ge stiune a Bazelor de Date (SGBD). Un astfel de sistem de gestiune
al bazelor de date constituie o interfață înt re utilizatorii și baza de date care permite în
principal crea rea, actualizarea și consultare a acesteia.
În afara conceptului de baze de date există și un alt concept cunoscut sub numele
de bancă de date. O bancă de date este o bază de date mai puțin struc turat ă și care
deservește sistemele documentare. F inalitatea utilizării unei bă nci de date este mai
puțin precisă decât a unei baze de date, băncile de date fiind orientate în general spre
publicul larg: mersul trenurilor, cursul valutar,consultarea unei b iblioteci etc.
Sistemul de Gestiune a Bazelor de Date relaționale au anumite fac ilități printre
care și realizarea de legă turi ȋntre dou ă sau mai multe baz e de date. Aceste legă turi
permit accesarea simultană a unor date aflându -se ȋntr-o anumită rela ție d in baze de
date diferite.
O altă facilitate din cadrul Sistemul de Gestiune a Bazelor de Date moderne este
tehnica de interogare a bazelor de date SQL (Structural Query Lang uage). Aceasta este
de fapt un limbaj neprocedural folosit pentr u interogarea bazel or de date. Ȋ ntr-un limbaj
neprocedural cum este SQL, nu este necesară scrierea algoritmului pentru rezolvarea
proble melor, ci doar specificarea comple tă a datelor acesteia , urmând ca apoi , pe baza
lor, sistemul să poată rezolva problema dată .
Ȋmbunatățirile mai recente ale sistemului de gestiune a bazelor de date se referă la :
limbaje de programare orientate pe obiect
baze de obiecte ȋn sensul că datele stocate ȋn acestea sunt imagini, sunete și
diverse alte obiect e complexe cuprinse ȋn concept ul general al multimedia
interfețe grafice prietenoase, orientate pe obiecte.
3.2 Aplicaț ii W eb
3.2.1 Pagini dinamice -scripturi
La momentul actual site-urile Web, nu mai sunt construite pe rând , fiecare pagină
ȋn parte. Folosind bazele de date se pot crea pagini Web care se modifică de fiecare dată
când se modifică baza de date. Aceste noi pagini, numite pagini dina mice, se genereaz ă
automat de că tre server din con ținutul bazelor de date, sunt mult mai fl exibile, mai uș or
de gestionat și ȋ n acela și timp pot s ă răspu ndă mai bine cerinț elor utilizatorilor. [15]
Tehnologii utilizate
11 Prin construirea unui site folosind baze de date se pot crea elemente noi ȋ n fiecare
moment, se pot face modific ări cu un minim de efort care cre ște popularitate a siteului
pentru utilizatori făcâ ndu -l mai folositor.
Cele mai multe pagini dinamice sunt generate ca r ăspunsu ri ale unui program care
rulează la server, ră spunsuri la anumite cereri pentru bazele de date.
Ȋn spatele un ui site foarte bine dezvoltat se găseș te o mare baz ă de date.
Ȋn momentul ȋ n care vizi tatorul își alege informaț iile pe care dore ște să le vadă din
meniul sitului, baza de date este cea din care ȋ i va fi generat raspunsul, cel pu țin în cazul
siturilor Web mai mari. De regulă , utilizator ul trebuie să bifeze anumite o pțiuni, să le
selecteze din tr-o list ă iar apoi să apese butonul submit care trimite cererea c ătre baza de
date. Ȋn acest fel ră spunsul c are ȋi va fi afiș at este mult m ai flexibil, răspun zând exact
cerinț elor sale .
Paginile Web dinamice, interactive se realizează cu ajutorul scripturilor, dintre
acestea amintim PHP, ASP si JSP. Scripturile su nt executate la server, astfel ȋ ncat ȋn
browser nu se vede codul, rezultatul creat d e instructiunile pe care le conț ine acestea.
3.2.2 Scripturi client
Scripturile client sunt cele incluse ȋ n interiorul pa ginilor HTML afișate de că tre
browser, fiind scripturi care se execut ă pe calculatorul utilizatorului. Acestea pot conț ine
verificarea anumitor date de către client ȋn formularul pe care ȋ l comple teaza pen tru a -l
trimite ca cerere serverului .
Deoarece se g ăsesc ȋ n interiorul paginilor HTML scriptu rile client pot fi vizualizate
ȋn momentul ȋn care se selectează o pțiunea View source cu ajutorul c ăreia se poate
vedea codul HTML care generează pagina Web.
Prin cipala diferență dintre fișierele PHP ș i cele HTML – care conțin scripturi client
– constau ȋn faptul că atunci când un browser cere o pagină HTML, serverul returnează
propriu -zis acea pagină, pe când atunci câ nd un browser c ere o pagina PHP, IIS -ul
pasea ză aceasta cerere că tre serverul PHP. Acesta va citi fișierul PHP linie cu linie și va
executa scripturile din fișier, pentru ca ȋn final browserului să i se returneze un text
HTML simplu.
Scripturile client sunt scrise ȋ n general cu Javascript. Acestea sunt folosite pentru a
evita supraȋncăr carea serverului. Se recomandă folosirea scripturilor client ȋn cazul unor
aplicaț ii care sunt folo site de catre mulți utilizatori , și/sau care sunt instalate pe un
server pentru a putea satisface cerinț ele tuturor clientilor.
Aceste scipturi ofer ă posibilitatea de a accelera afișarea rezultatelor ȋn cazul unor
erori ȋn formular atunci când sunt folosite ca ș i validatoare, pot fi fo losite pentru a bloca
anumite câmpuri sau de afișa anumite rezultate ȋn a lte câmpuri făra ca pagina să fie
trimisă la server. Ȋ n acest caz , exemplul cel mai elocvent este atunci câ nd uti lizatorul are
de comple tat țar a și regiuni din țară. De regul ă cele mai multe dintre situri folosesc un
script pe partea de client – o funcț ie javascript – care odata aleasă o țară permite ca ȋ n
Tehnologii utilizate
12 urmatorul câ mp de selectat să apar ă doar regiunile pentru țara respectiv a, nu toate
regiunile corespunzătoare tuturor ț arilor.
Datorită rapiditații cu care se executa acț iunile, rap iditate ce rezult ă din faptul că
totul se petrece pe c alculatorul clientului și nu mai sunt trimise nici un fel de informații
către sever, scrip turile client au co nstituit soluț ii pentru multe pagini cu formulare Web
și de asemen ea au fost folosite pentru construirea unor compon ente mai complexe, cum
ar fi un calendar pentru selectarea unei date sau un selector pentru culoare.
3.2.3 Scripturi server
Scripturile server sunt de fap t cod de program care se execută la server pentru a
genera ră spunsurile pentru utilizatori. Acestea se pot scrie folosind cod PHP, ASP, JSP,
etc. O aplica ție este un grup de f ișiere care funcționează ȋmpreuna pentru a obț ine
anumite rezultate.
Avantajele folosir ii scripturilor server constau ȋn aceea că cu ajutorul acestor a se
pot realiza urmatoarele operaț iuni :
Este posibil ă editarea, adă ugarea sau modificare a ușoară a conț inuturilor
paginilor Web
Se poate r ăspunde unor cereri specific e userului, unor date comp letate ȋ n
formularele HTML
Se poate accesa orice dată sau baze de date, iar rezultatul dorit va fi afișat ȋ n
browser
Se pot individualiza paginile Web pentru a le face m ai folositoare pentru
useri obiș nuiți
Ofer ă securitate datorit ă faptului că codul PHP nu poate fi vă zut de c ătre
browser
Deoarece ȋ n urma executarii codului din fiș iere se returneaz ă text H TML
simplu acesta poate fi citit de că tre orice browser
Un lucru i mportant de menționat este faptul că scripturile se execută la server iar
browserul care va afișa rezultatul nu are nevoie să suporte scripturile.
Informațiile sunt trimise că tre utilizator cu ajutorul obiectului Response ș i sunt
preluate cu obiectul Request. Metoda Write a obiectului Response este folosit ă pentru a
trimite date către browser, de exemplu următoarea structură va trimite textul “Hello
Word” că tre browser: <%response.write(“He llo Word”)%>.
Obiectul Re quest preia date din formulare ȋ n do uă moduri, depozitându -le ȋn doua
colecții ș i anume Request .QueryString și Request.Form. Ȋn cazul ȋn care la acț iunile
formul arului s -a folosit metoda get (ȋn acest caz informaț iile din formula r apar vizibile
utilizatorului ȋn bara de adresă a browserului) , informațiile vor fi ȋn
Request.QueryString, pe când ȋn cazul ȋn care acț iunea formularului are m etoda post
acestea vor fi puse ȋ n Request.Form.
Ȋn diferitele limbaje scripturale se poate lucra cu variab ile locale, care sunt definite
ȋntr-un anumit fiș ier și au domeniul de vizibilitate ȋn acel fișier ș i domeniul de existent
Tehnologii utilizate
13 pe parcursul acelui fișier după executarea declarării variabilei. Pe lânga variabile locale
mai exist ă și variabile gl obale. Una dintre variabi lele globale care au o importanț ă mai
mare și se g ăsesc ȋ n toate limbajele scripturale este variabila Session.
Obie ctul S ession este folosit pentru a reține informații referitore la o anumită
sesiune s au pentru a modifica anumite setari pentru o sesi une user. Variabilele
memorate ȋ ntr-un obiect Session rețin informaț ii despre u n singur user (nume, id, etc.) ș i
sunt accesibi le tuturor paginilor din aplicație. Serverul creaz ă câte un nou obiect Session
pentru fiecare nou utilizator ș i distruge obiectul Session când sesiunea expiră .
3.2.4 Baze de date
Baza de date reprezint ă o colecț ie de date create și menținute computerizat, cu
scopul prelucrării acestora ȋn contextu l unor aplicaț ii. Prin p relucrarea datelor se înteleg
operațiile de inse rare , ștergere, actualizare ș i interogare a datelor.
Definiția evidențiază structurarea informațiilor și datelor pe dispositive
computerizate, dupa anumite model ȋn vederea actualizării și ȋntreținerii facile și a
exploatării rapide prin diverse operațiuni specific. Astfel, bazele de date oferă
următoarele avantaje:
Controlul centralizat al datelor
Viteza mare de regăsire și actualizarea datelor
Flexibilitate ȋn modificarea stucturii
Reduntanță scăzută a datelor memorate
Posibilitatea partajării datelor
Men ținerea integrității datelor prin politici de securitate și prin gestiunea
tranzacțiilor
Independen ța datelor față de suportul hardware utilizat. [16]
Bazele de date trebuie să asigure o serie de proprietăți (ACID) care garante ază
realizarea cu succes a operațiilor asupra acestora (gestiunea tranzacțiilor):
Atomicitate – este reprezentată de tranzacții de tipul “totul ori nimic”, adică
ȋn cazul eșecul ui unei părți a tranzacții aceasta va conduc e la eșecul ȋntregii
tranzacții. Baza de date nu va fi modificareă.
Consistența – o tranzacție reprezintă transfor marea bazei de date dintr -o
stare consistentă și validă pe baza unor regulile definite ( adică
constrangeri) ȋntr -o altă stare tot consi stentă
Izolare – execuția concurentă a t ranzacțiilor poate duce la trecerea ȋntr -o
stare obținută și prin execuția secvențială a tranzacțiilor
Durabilitate – ȋn cazul apariției de probleme hardware sau software
tranzacțiile finalizate rămân ȋ și păstrează stare a [17]
Ȋntr-o bază de date sunt incluse diferite date conform unui model de organizare.
Pentru ca să poat ă fi gestionate, aceste date trebuie s ă fie descries e cu ajutorul unui
limbaj specializat, folosind anumiț i term eni corespunză tori limbajului de programare
folosit. Ȋn momentul descrierii bazei de date se folose sc anumite structur i de date.
Tehnologii utilizate
14 Această mulț ime de s truct uri defineș te structura virtuală (conceptuală ) a bazei de date.
Un anumit pr ogram sau un utilizator, foloseș te numai anumite date din baza de date .
Pentru acestă programul (sau utilizatorul) nu trebuie să “cunoască” toată structura
virtuală a bazei de date ci numai o partea a acesteia, care se numeș te structura logică
(subschema).
În demersul realizarii unei baze de date există trei niveluri de per cepție a acesteia:
nivelul extern, corespunzător utilizatorilor care își exprimă cerințele
informaționale prin așa numitele structuri logice;
nivelul conceptual, aferent administratorului bazei de date care se
concretizează în structură virtuală;
nivelul intern, corespunzator programului care realizează reprezentarea
datelor pe suportul fizic.
Cele trei structuri și nivele amintite mai sus sunt ilustrate în următoarea figură:
Figură 3.1 Arhitectura unei baze de date
Construirea aplicațiilor soft printre care ș i a celor de pe Web implică inevitabil
lucrul cu baze de date simple sau servere de date cu a jutorul c ărora se vor depozita și
manipula datele folosite ȋn aplicația respectivă .
Ȋn momentul de față aplicaț iile folosesc sisteme de gestiune a bazelor de date care
au diferite facilitații ȋ n plus față de bazele de date simple și anume : utilizatori ș i grupuri
de utilizatori , view -uri, funcții și proceduri stocate predefinite sau definite de utilizato r,
uneori chiar ș i posibilitatea de a implementa obiecte, facilitații pentru tranzacț ii, etc.
Printre sisemele de gest iune a bazelor de date se numară ș i :
Tehnologii utilizate
15 MySQL – baze d e date “open source”, folosite ȋ n general cu PH P-ul care are
implementate funcț ii spec iale pentru accesul la acest tip de bază de date
MS SQL Server – sistemul de gestiun e a bazelor de date oferit de către
Microsoft, pentru acestea au fo st implementate de c ătre Microsoft metode
special e de acces la date, metode care au rolul de a optimiza accesul la o
bază de date de pe un asemenea server
Oracle – este un si stem de gestiune a bazelor de da te obiectual care este
renumit ȋ n special pent ru standardele de securitate având ȋn același timp ș i
o mul țime de facilitaț i specific ale sistemelor de ges tiune a bazelor de date,
datorită acestui fapt este folosit cu precadere ȋn aplicațiile care necesită o
mai mare securitate cum sunt aplicaț iile bancare.
Fiecare sistem de gestiune a bazelor de date are la baza sa limbajul SQL de
interogare a datelor, defi nindu -și propria versiune a acestui limbaj. Interogarile la
sistemul de gestiune a bazelor de date se pot realiza scriind interogari SQL simple sau
folosind un alt progra m care ofer ă o interfață grafică a bazelor de date din interiorul
SGBD -ului.
3.3 PHP ș i Zend Framework
3.3.1 PHP
Acronimul pentru PHP este Hypertext Preprocessor. PHP este un limbaj de server
foarte utilizat și care are cu cod sursă deschis (open source) . Acesta care este folosit ȋn
special ȋn dezvoltarea aplicaț iilor Web, acesta putând fi integ rat ȋ n HTML și JS.
Pentru a afișa HTML nu se necesită o mulț ime de comenzi ca și ȋn C sau Perl . Astfel
paginilie PHP conțin HTML cu cod sursă ȋncorporat , adică ȋntre <?php … și … ? > care
reprezintă instrucțiuni de procesare pentru ȋnceput și sfarș it. Acestea permit să intri și
să ieși din modul ul PHP.
Diferența dintre un PHP -ul și un JavaScr ipt este faptul că codul este executat pe
server unde se va genera HTML -ul care va fi apoi trimis că tre client. Acesta va primi
rezultatele rulă rii script ului , fară a știi codul sursă ce stă la bază. Programatorul are
obțiunea de configurare a Web Server -ul să proceseze toate fișierele HTML cu PHP ȋn
acest mod nu va mai exista vreo o modalitate ca userul să cunoască codul.
Unul din avantajele folosiri i PHP este simplitatea , la care se adaugă existenț a unor
facilită ții avansate pentru programat orii profesionist i. PHP este folosit ȋn principal pe
partea serverului (scripting) , dar se po ate utiliza și ȋn alte domenii .
Principalele trei domenii un de scripturile PHP sunt utilizat e:
Scripting pe partea serverului – este ce a mai tradiț ională utilizare a PHP,
cât și cea de bază . Pentru a putea fi folosit ă sunt necesare trei lucruri
esențiale : un analizator PHP, un server Web dar și un browser Web.
Scripting ȋ n linia de comandă – se pot rula scripturi PHP fară un server și
browser Web , fiind nevoie doar de anali zatorul PHP . Acest tip de utilizare
Tehnologii utilizate
16 este folosit pentru scripturi execut ate ȋ n mod regulat . Acestea sunt numite
cron, pe Linux sau U nix și Task Scheduler, pe Windo ws.
Scrierea aplicaț iilor de birou – PHP poate fi u tilizat pentru a scrie
asemenea aplicații folosind PHP -GTK. [18]
PHP -ul rulează pe toate sisteme de operare, multe variante Unix, Linux , Microsoft
Windows, Mac OS X ș i poate altele. Majoritatea serverelor Web existente ȋn present
rulează pe PHP. Astfel, PHP vă oferă posibilitatea alegerii sistemului de operare dorit cât
și a serverului Web.
PHP nu limitează doar afișarea de HTML. Cu PHP se pot afișa imagini, documente
PDF ori filme Flash. Se poate asemenea cu ușor să se afișeze orice t ext, cum ar fi de
exemplu XHTML sau alt document XML. PHP -ul are posibilitatea de genera re ȋn mod
automat a acestor fișiere , putându -le salva ȋn cadrul sistemul de fiș iere , ȋn loc ul afișării
lor. Se formează astfel un siste m de cache reprezentat de conț inutului dinamic p e partea
severului.
Ȋn imaginea de mai jos voi exemplif ica maniera de funcț ionare a procesorului PHP.
Figură 3.2 Mecanismul PH P
Cea mai importantă facilitate a PHP -ului este folosirea unui larg domeniu de baze
de date. Pentru s crierea une i pagini Web care să accese ze o bază de date , este foarte
simpl u dacă se va utiliza una dintre extensiile care lucrează cu baze le de date (de
exemplu pentru MySQL), sau dacă se utilizează un anumit nivel de abstractizare PDO ,
sau nu ȋn ultimul rând folosirea standardul “Open Database Connection” cu ajutorul
extensiei ODBC . Unele baze de date pot folosi cURL sau socket -uri.
3.3.2 Zend Framework
Zend Framework este un framework (open source ) și orientat pe obiect in PHP.
Acesta poate fi f olosit pentru a dezvolta aplicații ș i servicii web folosind PHP 5.6+ ș i
ofera 100% cod orientat pe obiect.
Zend Framework oferă și o implem entare avansată Model -View-Controller (MVC)
care poate fi utilizată pentru a stabili structura de bază a aplica ției. [19]
Tehnologii utilizate
17 MVC este utilizat ȋn ingineria software ca și un model ar hitectural . Principiile
modelului se referă la izolar ea logicii de busi ness față de interfețele cu utilizatorul. Astfel
rezultă o aplicație unde aspectul vizual, adică interfețele cu utilizatorul sunt mai ușor de
modificat fară a duce la modificări din cadrul altor nivele. Ȋ n figura de mai jos se poate
observa schema conceptuală a modelului.
Figură 3.3 Diagrama MVC
Arhitectura Model -View -Controller :
Model – această parte cuprinde operațiunile logice ș i de utilizare de
informaț iei. El poate fi asemanat cu un scrip t obișnuit ȋ ntr-un server, cu
mențiunea că el va fi grupat sub un model reutilizabil.
View – acestă parte este reprezenta tă de componenta grafică , cu alte
cuvinte, reprezintă exprimarea ultimei forme a datelo r și a nume intefața
grafic ă care intereacți onează cu utilizatorul . Principalul r ol este de a
evidenția informația obținută până ce aceasta ajunge la controller. Aici se
vor găsi probabil marcaje HTML ȋn aplicația MVC.
Controller – cu ajutorul acestei părți putem cont rola accesul ȋn cadrul
aplicației . Aici avem fișiere , scripturi sau programe. La nivelul Controller –
ului se poate manipula rute le, fișiere le, clase le, metode le și funcț iile.
Zend Framework conț ine o se rie de componente cu ajutorul cărora se pot construi
ușor aplicaț iile. Ȋn momentul de față exista 3 versiuni Zend Framework și anume Zend
Framework 1, Zend Framework 2, Zend Framework 3.
Ȋn implementarea aplicaț iei Generator de chestionare am folosit versiun ea a
doua a frameworkului, adică ZF2.
Cele mai frecvente componente utilizate ale ZF2 su nt:
Zend \Authentication – oferă un API pentru autentificare ș i include
adaptoare concrete de a utentificare pentru cele mai comune cazuri. Această
componentă se referă nu numai la autentificare ci și la autorizare.
Tehnologii utilizate
18 Zend \Config – este proiectat pentru a simplifica accesul la datele d e
configurare din cadrul aplicaț iilor. Datele de configurare pot proveni dintr -o
varietate de suporturi care suportă stocarea ierarhică a datelor.
Zend \Conf ig ofera adaptoare care citesc ș i scr iu date de configurare stocate
ȋn fișiere .ini, JSON, YAML si XML.
Zend \Db – este component a care se ocupă de lucr uri cu baze de date. Aici
există Zend \Db\Asapter, Zend \Db\ResultSet, Zend \Db\Sql,
Zend \Db\TabelGateway, Zend \Db\RowGateway, Zend \Db\Metadata.
Zend \Db\Asapter este cea mai impo rtant ă subcomponentă din Zend \Db.
Zend \Form – este destinat ȋn primul rând ca o punte ȋntre modele ș i view –
uri. Este compus din element ele unui form.
3.3.3 Bootstrap
Bootstrap este cel unul dintre cele mai utilizat e frame work -uri utilizat ȋn
dezvoltarea interf ețelor W eb responsive .
Acest tip de Framework se folosește de către designeri ș i dezvoltatori de front -end
care sunt familiarizați cu HTML ș i CSS și care necesită de o baz ă de pornire ȋn
construirea de site -uri W eb responsive.
Boostrap poate fi un instrume nt folosit ȋn a gestionarea fazei iniț iale a unui proiect .
Și asta deoarece framework -ul oferă o serie de comp onente care pot fi reutilizate ș i
personalizate . Nu este astfel nevoie sa se ȋnceapă un proiect de la zero . Această
facilitate este sugerat ă și de termenul “bootstrap” , adică numele frame workului.
Pe site-ul Bootstrap putem descarca ultima versiune a framework -ului.
Bootstrap a dezvoltat un sistem de coloane – poate gazdui 12 coloane ȋntr-un rând.
Ȋn funcț ie de layo ut-ul diferitelor zone din pagina Web coloanele se pot folosi ȋn varii
combinații. Toate elementele preconfecționate ȋ n Bootstrap pot fi utilizate prin clase le
CSS corespondente, denumite ȋ n mod foarte intuitiv.
Figură 3.4 Grid bootstrap
Ca ȋn cazul tutu ror platformelor responsive afiș area diferit ă a elementelor pentru
diferitele puncte de intrerupere ( Breakpoints ) se face prin CSS Media
Queries (Interog ări Media CSS).
Tehnologii utilizate
19 Pentru Bootstrap avem 4 astfel de vizualiză ri predefinit e pentru dispozitive de
diverse lărgimi:
extra -small – xs – pentru telefoane
small – sm – pentru tableta
medium – md – pentru desktops
large – lg – pentru desktop mare
Totul porneș te de la logica MOBILE FIRST , vizualizarea implicit ă fiind cea pentru
mobile (xs). [20]
Aplicația – Generator de chestionare
20
4 Aplicaț ia – Generator de chestionare
Aplica ția Generator de chestionare dorește să vină ȋn sprijinul stud enților ș i al
administatorilor facultăț ii pentru a facilita comunicare a dintre aceș tia.
Adm inistratori vor avea la dispoziție o serie de pagini ȋn cadrul platformei care ȋi
va ajuta să creeze un chestionar. Odată ce chestionarul este gata de publicat aplica ția va
genera un link unic pentru fiecare chestion ar. La acest link va putea fi vizualizat ȋntreg
chestionarul iar studenț ii vor putea s ă își adauge propriile ră spunsuri. Aceste r ăspunsuri
vor putea fi vizualizate și analizate de că tre creatorul chestionarului.
4.1 Analiză și proiectare
4.1.1 Cazuri de utilizare
Un caz de utilizare este o colecț ie de scenarii posibi le, care fac referire la
comunicarea ȋ ntre sistem ș i actorii extern . Scenarii le sunt definite ca secven țe de pași
care pot corespunde cazuri lor de utilizare de la nivel infer ior. Cazurile de utilizare
prezintă ce trebuie să facă sistemul , nu și cum . Actorul este o entitate cu un
comportament specific, spre exemplu o persoană, un alt sistem, etc. În sistemul proiectat
se pot identifica doi actori principali:
Adminstratorul sau profesorul : orice utilizato r al aplica ției care are un cont
ȋn aplica ție. Dupa logarea ȋ n sistem acesta poate re aliza o multitudine de
activitaț i precum crearea unei ȋ ntrebari, crearea unui chestionar,
vizua lizarea ră spunsu rilor chestionarului, etc.
Studentul : orice utilizator care primeste link -ul unui chestionar. Dup ă
accesarea a cestui link , acesta poate comple ta răspunsurile și trim ite
răspunsurile. El nu necesită să fie logat.
Ȋn contiuare voi prezenta Diagram a cazurilor de utilizare a profesorului . Cazul
principal de utilizare constă ȋ n crearea unui chestionar. Posibile cazuri de utilizare
pentr u un utilizator de tip profesor :
Login ȋ n aplicaț ie
Adăugare, modificare, ș terge re ȋntrebare
Adă ugare, m odificare, ș terge re chesti onar
Activare chestionar
Vizualizarea ră spunsurilor chestionarului
Aplicația – Generator de chestionare
21
Figură 4.1 Diagrama cazurilo r de utilizare pentru un profes or
Ȋn continuare voi prezenta unul din aceste cazuri de utilizare :
Nume caz de utilizare : Creare chestionar
Actorul principal : Utilizatorul tip profesor
Scurtă descriere : De fiecare dată când un profesor dorește să creeze un chestionar
după logare va selecta din meniul stâ nga “Creare chestionar”.
Succesiunea evenimentelor :
START caz de utilizare
1. Profesorul accesează aplicația și se autentifică ȋ n aceasta
2. După logare acesta va fi redirecț ionat la pagina “Acasa” din aplicaț ie
3. Utilizatorul selecteaza “C reare chestionar” din meniul stâ nga
4. Utilizatorul insereaza “Numele chestionarului”
5. Utilizatorul insereaza “Descrierea chestionarului”
6. Utilizatorul insereaza “Data de incepere a chestionarului”
7. Utilizatorul insereaza “Data de final a chestionarului”
8. Utilizatorul insereaza “Concluziile chestionarului”
9. Utilizatorul alege din lista din parte stânga ȋntrebarile dorite ȋn chestionar și
o va trage ȋ n lista din pa rtea dreaptă cu mouse -ul. Selecț ia se va face prin
drag and drop .
10. Utiliz atorul poate vizualiza ȋ ntrega ȋntrebare (cu răspunsurile posibile dacă
este cazul) apăsâ nd click pe oricare ȋ ntrebare din listă .
11. Tot cu ajutorul mouse -ului utiliz atorul poate să iși aranjeze ȋntrebarile ȋ n
ordinea dorita de el, ordine care va fi menținuta ȋ n chestionar.
12. Utilizatorul apasă butonul “Salveaza chestionar”
13. Utilizatorul primeș te un mesaj “Chesti onar ada ugat cu succes”
FINALIZARE caz de utilizare
Aplic ația – Generator de chestionare
22 Momentu l în care utilizatorul profesor primeș te mesajul de success , cazul de
utilizare ia sfârșit.
Excep ții :
1. Utiliza torul nu se poate autentifica ȋ n aplicaț ie deorece nu are un cont valid
a. Această proble mă poate fi remediată doar de că tre un administrator
al sistemului
2. Utilizatorul apasă butonul “Sal veaz ă chestionar” fă ră a comple ta unul din
câmpurile : “Numele chestionarului”, “Descrierea chestionarului” , “Data de
ȋncepere a chestionarului”, “Data de final a chestionarului”, “Concluziile
chestionarului”, “L ista de ȋ ntrebari a chestionarului”:
a. Aplicația va afiș a un mesaj de eroare prin care avertizează starea
invalidă a formularului de adă ugare.
b. Se va continua de la pasul 4
Cerințe special e :
Sistemul nu trebuie să permită accesul persoanelor neautentificate, asigurând
astfel integritatea și securitatea datelor utilizatorilor deja existenți.
Precondiții :
1. Utilizatorul trebuie să fie autentificat ȋ n sistem.
2. Utilizatorul trebuie să fie de tip professor.
Postcondiții :
1. Datele sunt trimise că tre server și vor fi stocate ȋ n baza de date.
Prioritate : Rămane la latitudinea utilizatorului când dore ște să folosească această
funcț ionalitate.
Disponibilitate : disponibil tot timpul.
Frec vența de utilizare : este variabilă, aceasta depinde de numărul de chestionare
necesare profesorului.
Ȋn cele ce urmează voi prezenta Diagrama cazurilor de utilizare student . Cazul
principal constă ȋn ră spunderea la ȋntrebă rile chestionarului.
Posibilele cazuri de utilizare ale unui utilizator de tip student sunt:
Vizualizarea chestio narulu i
Completarea chestionarului
Aplicația – Generator de chestionare
23
Figură 4.2 Diagrama cazuri utilizator student
Ȋn continuare voi prezenta unul din aceste cazuri de utilizare:
Nume caz de utilizare : Completare chestionar
Actorul principal : Utilizatorul tip student
Scurtă descriere : De fiecare dată când un student dorește să completeze un
chestionar va accesa linkul primit.
Succesiunea evenimentelor :
START caz de utilizare
1. Studentul primeș te un link pentru completarea unui chestionar
2. Studentu l acceseaza linkul primit
3. Studentul răspunde la o listă de ȋ ntrebă ri
4. Studentul apasă butonul “Salveaza raspunsurile”
5. Studentul este redirecționat spre o altă pagina unde va primi un mesaj de
finalizare a chestionarului
FINALIZARE caz de utilizare
Momentul în care utilizatorul student este redirec ționat ș i primeș te mesajul de
succes , cazul de utilizare ia sfârșit.
Excep ții :
1. Utilizato rul acceseaz ă un link incorect ș i nu poate vizualiza chestionarul
a. Această probl emă poate fi remediată doar de că tre un
profes or/administrator al sistemului
2. Utilizatorul apasă butonul “Salveaz ă răspunsurile” fară a comple ta una
dintre ȋ ntrebari :
b. Aplicația va afiș a un mesaj de eroare prin care avertizează starea
invalidă a formularului.
c. Se va continua de la pasul 3.
Precondiții :
1. Utilizatorul trebuie să primească un link valid.
2. Utilizatorul trebuie să fie de tip student .
Aplicația – Generator de chestionare
24 Postcondiții :
1. Datele sunt trimise către server și vor fi stocate ȋ n baza de date.
Prioritate : Rămane la latitudinea utilizatorului când dorește să foloseasc ă această
funcț ionalitate.
Disponibilitate : disponibil ȋn intervalul de valabilitate al unui chestionar . Interval
stabilit de că tre profesor.
Frec vența de utilizare : o singură dată pentru un student
4.1.2 Diagrama de Secv ență
Diagrama de secvență descrie interac țiunile dintre două sau mai multe entități și
ordinea în care mesajele sunt schimbate între acestea. Acestea sunt folosite în special ȋn
reprezenta rea interacțiunilor dintre obiecte.
Diagramele de secvențe pot fi folosite ȋn :
Prezentarea scenariilor de uti lizare a unei aplicați i. Ȋn cadrul procesului de
analiză pentru fiecare diagramă a cazurilor de utilizare se po ate crea unul
sau mai multe scenarii de utilizare . Prin intermediul acestora se evidențiază
fluxul de mesaje trimise între sistem și utilizator sau trimise ȋntre
componentele sistemului
Prezentarea logicii metodelor. D iagramele pot fi folosite ȋn descrie rea logici
de funcționare a proceselor complexe sau a funcțiilor
Prezentarea logicii unui process sau serviciu . Ȋn implementa rea unei funcți i
complex e la nivelul sistemului este necesar ca două sau chiar mai multe
componente să interacționeze ȋntre ele . Astfel, d iagramele de secvențe
permit reprezentarea fluxurilor de mesaj e între componentele sistemului.
Se evidențiază de asemenea și constrân gerile tempora le, ordine de execuție
sau durate de execuție.
Elementele folosite ȋn diagramele de secvențe sunt liniile de viață, mesajele și
fragmentele. Linia de viață reprezintă un obiect, o entitate ce primește mesaje sau
transmite mesaje către componente de același tip. Ea e ste reprezentată ȋn cadrul
diagramei sub forma unui dreptunghi ce conține numele component ei. De la drept unghi
se trasează o linie punctată care reprezintă linia timpului. [21]
În continuare vor fi prezentate diagramele de secvență pentru a utentificarea în
cadrul aplicației . Ea va fi ilustrată ȋ n figura de mai jos.
Aplicația – Generator de chestionare
25
Figură 4.3 Diagramă de secvență a autentificării ȋn aplicație
Componenta Login afișează un formular prin care oferă utilizato rului posibilitatea
de autentificare prin introducerea unei adrese de email și o parolă validă. După
inserarea acestora, componenta trimite un request HTTP la index controller .
Când requestul ajunge la index c ontroller aici un obiect ce conține emailul
utilizatorului și parola acestui a va fi costruit din body -ul requestului primit. Acest obiect
va fi transmis la RegisterOperatione. Ajuns ȋ n RegisterOperatione se va apela serviciul
de autentifcare unde se va apela metoda “ Autenticate ”. Metoda va returna un mesaj de
success dacă ȋ n tabela user a gă sit o ȋnregistrare cu datele cerute, altfel va afiș a un mesaj
de eroare.
După autentificarea utilizatorului i ndex controller va trimite un ră spuns HTTP
componentei de logare.
4.2 Implementare
4.2.1 Detalii de implementare
Sistemul proiectat ȋn lucrarea de față este realizat ȋn ZF2 (Zend Framework 2),
bucurâ ndu -se de toate faci lităț ile oferite arhitectura Model -View -Controller.
Am folosit un fra mework pentru realizarea aplicației datorită unor functionalit ăți
pe care acesta le oferă. Câteva dintre aceste functionalități le voi enumera ȋn cele ce
urmează :
Abstractizarea bazei de date – orice framework vine la pachet cu un nivel
ridicat de abstractizare a l bazei de date . Acest lucru ne ajută să putem
Aplicația – Generator de chestionare
26 schimba oricând baza de date . Spre exemplu daca folosim MySQL putem
oricând să schimbăm cu MSSql , fără rescrie rea vreun ui rând de cod. O altă
facilitate a abstractizării este reprezentată de recunoașterea legă turilor
dintre tabele, acest fapt ne ajută mai ales ȋn cadrul JOIN -uri.
Abstractizarea cache -ului – fiecare framework va oferi clase specific e
spre exemplu Memcache, APC sau XCache ȋn locul funcțiilor .
Management -ul form -urilor – ȋn cadrul framework -ului form urile sunt
definite ca și cod PHP. Pe baza acestuia framework -ul va genera codul
HTML asociat. Alte functionalități oferite sunt validare a și securitate a
formurilor .
Autentificarea – de cele mi multe ori , framework -urilor dețin un modul de
autentificare. Acesta se referă la partea de log in și log out în aplicație , de
partea de înregistrare, de management de sesiune și chiar de permisiuni le
din cadrul aplicației .
Depanare ușoară – sunt framework -uri care pot ajuta programatorul cu
unelte specifice care ȋi pot facilita depanarea. Aceste unelte de depanare
ajută la inspectarea variabilelor, sau a interogărilor , sau a duratei de timp
necesare rulării unui script .
Internaționalizarea – o facilitate oferită de majoritatea framework -urilor
este component a de traduceri. Aceasta ȋnseamnă că ȋntr -un mod foarte u șor
se pot construi websit e-uri ȋn orice limb ă, ba chiar mai mult , situri
disponibile ȋn mai multe limbi .
Pe lângă func ționalităț ile oferi te de un framework, acesta are ș i o serie de avantaje .
Ȋn continuare voi enumera câ teva dintre aceste avantaje:
Portabilitate – aplicațiile realizate cu un framework și care folosesc
abstractizarea bazei de date și a cache -ului fac pot să ruleze pe servere care
au diferite configurații.
Timp de dezvoltare mai scurt – timpul scurt poate vine din faptul că nu se
mai necesită scrierea de cod pentru formularele de înregistrare, de logare
sau de delogare .
Securitate – framework -urile au dezvoltate module de securitate pentru
formulare, const ruirea de interogări SQL sau partea de autentificare .
Suportul comunității – pentru majoritatea framework -urile există
forumuri specializate unde se pot găsi răspunsuri l a o serie de probleme
care pot interven i ȋn timpul dezvoltării un ei aplicații.
Plugin -uri și module – se pot insera u șor funcționalități deja existente,
adică a unui modul sau plugin -ul de care avem nevoie . Pentru a folosi ce
este deja creat trebuie doar sa ȋl descărcăm și să îl instalăm ȋn cadrul
aplicației ca apoi sa putem sa ȋl și folosim.
Standard de codare – framework -urile pot obliga utilizarea de către
programatori a anumitor standarde, cum ar fi de exemplu principiul MVC
(Model -View -Controller ).
Documentație – de cele mai multe ori framework -urile au o documentație
foarte bin e structurată ceea ce ajută programatorul să înțele agă codul . [22]
Aplicația – Generator de chestionare
27 Pe partea de client am folosit JavaScrip t și jQuery . JavaScript este folosit pentru
modificările de afișare sau conținut aduse interfețelor utilizator in cadul paginilor web.
O data ce pagina primește răspunsul de la servăr și este ȋncarcată, codul JavaScript
din cadrul pagini are acces să modifice structura documentului. Pentru acesta se va
utiliza elementul DOM .
Browserul, ȋn i nterpretarea sa internă , va folosi o structură arborescentă,
cunoscută sub denumirea de arbore DOM. Arborele DOM conține o serie de elemente,
fiecare dintre acestea are asociată o listă de atribute și evenimente sau acțiuni .
Cu ajutorul JavaS cript avem posibilitatea să accesă m dinamic și să manipulăm
arborele DOM al oricărei pagini web. Astfel se pot modifica proprietățile și
comportamentul fiecărui element din intermediul arborelui . Document este obiectul
rădăcină al arborelui. Folosind acest obiect se poate accesa orice alt obiect sau mar caj
din document.
Pentru efectuarea unor cereri HTTP către server ul Web am folosit AJAX
(Asynchronous Javascript and XML) . AJAX reprezintă o teh nică ȋn programarea web, cu
ajutorul c ăreia exist ă posibilitatea actualiz ării interf eței fără a fi nevoie să se reȋncarc e
întreaga pagină .
Ȋn imaginea de mai jo s voi exemplifica modul de funcț ionare AJAX.
Figură 4.4 Diagrama AJAX
Din imaginea de mai sus reies urmatorii paș i:
Un eveniment se ȋ ntampl ă pe pagina Web, spre ex empl un buton se apas ă
Se crează un obiect JavaScript XMLHttpRequest
Aplicația – Generator de chestion are
28 Obiectul XMLHttpRequest trimite o cerere la serverul Web
Serverul procesează cererea
Serveru l trimite un răspuns ȋ napoi la pagina Web
Răspunsul este citi t de JavaScript
Acțiunea de mo dificare a pagini este realizată de JavaScript [23]
Un exemplul concret din proiect unde am folosit AJAX este funcționalitatea de
creare a unei ȋ ntrebari. Mai jos se poate vedea apelul AJAX din consola browserului.
Figură 4.5 AJAX creare ȋntrebare
Ȋn cadrul aplicației am folosit ș i libraria jQuery, o librarie de JavaScript . Aceasta
ajută la folosirea ușoară a JavaScript -ului pe pagin ă. Libraria jQuery conține următoarele
funcționalităț i:
Manipularea HTML/DOM
Manipulare a CSS
Metode de evenimente HTML
Animaț ii
AJAX
Ȋn plus , jQuery are plugin -uri p entru aproape orice task. O altă funcționalitate
oferită de jQuery este j Query UI (User Inter face) care reprezintă un set de interacțiuni cu
interfaț a utilizator. Dintre acestea am folosit Datepicker Widgets, Draggable ș i
Droppable Interactions.
Aplicația – Generator de chestionare
29
Figură 4.6 Datepicker din cadrul aplicației
4.2.2 Arhitect ura bazei de date
Pentru stocarea ș i organizarea datelor transmise ȋn interiorul aplicaț iei se
foloseste MySQL.
MySQL este un sistem de gestiune a bazelor de date relaț ional e care este foarte des
folosit ȋ mpreuna cu limbajul de programare PHP. El este cel mai popular S GBD open
source la ora actuală . [24]
Pentru administra rea bazel or de date MySQL se pot utiliza interfețe grafice, cum ar
fi MySQL Administrator și MySQL Query Browser sau se pot rula instrucțiuni folosi nd
modulul linie de comandă . Un alt instrument gratuit de management al acestor baze de
date este aplicația, scrisă în PHP, phpMyAdmin.
Ȋn proiect am folosit acest i nstrument de management phpMyAdmin pe care l -am
accesat ȋ n browser.
Aplicatia Generator de c hestionare are asociat ă baza de date questionnaires .
Aceasta bază de date va conține informațiile referitoare la ȋntrebari, răspunsuri și
chestionarele create.
Aplicația – Generator de chestionare
30
Figură 4.7 Baza de date questionnaires ȋn php MyAdmin
Principalele entit ăți și relaț ii dintre acestea sunt:
user – cuprinde informaț iile privind identificarea utilizatorilor (p rofes ori
sau administratori). Ȋ ntre tabelul user și tabelul question se stabile ște o
relație de 1:N, acela și tip de relație existând ș i cu tabelul questionnaire.
question – conține ȋ ntreaga lis tă de ȋntrebă ri din platform ă care v or putea fi
mai apoi asociate u nui chestionar. Entitatea este ȋ n relaț ie de 1:N cu
entitatea answer și ȋn același timp ȋ ntr-o relaț ie de 1:N cu tabela
question_quesionnaire .
answer – reprezintă un tabel ajutator unde se s tochează răspunsurile
ȋnchise posibile ale unor ȋntrebă ri.
questionnaire – acest tabel conține informaț ii particulare referitoa re la un
chestionar. Acest tabel se află ȋntr -o relaț ie de 1:N cu
question_questionnaire.
question_questionnaire – această entit ate este un tabel de legatură dintre
ȋntrebări ș i chestionare.
question naires _answer – acest tab el conține toate ră spunsurile date de
stud ent la chestionarele din aplicaț ie.
Aplicația – Generator de chestionare
31 Ȋn ceea ce priveș te arhitec tura bazei de date o voi evidenția ȋ n figura de mai jos:
Figură 4.8 Arhitectura bazei de date
Colecț ia User
Această colecție conține informaț iile de autentificare a profesorilor . Câmpurile
acestei colecț ii sunt :
id – este cheia primară a tabelului.
user_name – poate conț ine un nick name al utilizatorului.
password – reprezintă parola care este criptată ȋn baza de date, și este
folosită la autentificare.
name – reprezintă numele profesorului.
email – reprezintă adresa de email a profestorului ș i este fol osită la logare.
is_active – poate a vea valori 1 sau 0, 1 reprezintă că contul este activat.
acl_role – reprezint ă rolul pe care ȋ l are utilizatorul ȋn platform ă. Ȋn
moment ul de față există un singur rol dar p e viitor pot aparea noi roluri ȋ n
aplic ație.
Ȋn cadrul aplicaț iei se pot adaug ă câmpuri ȋn acest tabel doar prin intermediul
interfeț ei vizuale oferită de phpMyAdmin. Pe viitor se doreș te crearea unui rol
administrator care s ă poată introduce din platform ă noi utilizatori.
Aplicația – Generator de chestionare
32 Colecț ia Question
Această colecție conține toate informați ile legate de o ȋntrebare. Câmp urile acestei
colecț ii sunt:
id – reprezintă cheia primară a tabelului.
user_id – este cheia straină care se leagă cu cheia primară din tabelul user .
Am creat această legătură pentru a pu tea asocia ȋntrebă rile unui utilizator.
question_text – este textul ȋntrebă ri.
answer_type – reprezintă tipul de răspuns al unei ȋntrebări. Aplicația
suportă 3 tipuri de ȋntrebă ri:
o 0 – ȋntrebare deschisă
o 1 – ȋntrebare ȋnchisă cu un singur ră spuns posibil
o 2 – ȋntrebare ȋnchisă cu mai multe ră spunsuri posibile
Răspunsurile posibile ale ȋntrebărilor ȋnchise se regăsesc ȋn tabelul answer.
Pe baza tipului ȋ ntreb ării utilizatorul va av ea pe interfa ță diferite ele mente:
text area, radio button ș i check box.
is_used – aceasta este un identificator care dore ște s ă marcheze dacă o
ȋntrebare este folosită ȋn cel puțin un chestionar activ . Ace st identificator va
fi folosit ȋntr -o funcționalitate viitoare.
Colecț ia Answer
Colecția answer conține ră spunsurile posibile pe care le poate avea o ȋntrebare
ȋnchisă. Ea este formată din:
id – repezintă cheia primară a tabelului.
question_id – este cheia straină care face legătura cu cheia primară din
tabelul question .
answer_text – este textul ră spunsului posibil.
Colecț ia Questionnaire
Conține toate informațiile ce ț in de un ch estionar. Coloanele acestui tabel sunt
urmă toarele:
id – este cheia primară a tabelului.
user_id – este cheia st raină care se leagă cu cheia primară din tabelul user .
Prin aceasta legatură se ș tie utilizato rul care a creat chestionarul.
name – câmpul reprezintă numele chestionarului.
description – conține o sc urtă descriere a chestionarului această va ap ărea
ȋnaintea ȋntrebărilor propriu -zise ale chestionarului.
conclusion – conține textul care va apărea utilizatorului după ce acesta
răspunde la toate ȋntrebă rile.
start_ date – reprezintă data din care un chestionar devine activ.
end_date – reprezintă data pa nă la care un chestionar poate fi accesat.
Aplicația – Generator de chestionare
33 link – cuprinde un link unic la care chestionarul va fi vi zibil studenț ilor.
Colecț ia Question_Questionnaire
Tabelul rep rezintă o legatura ȋntre ȋntrebări și chestionar. Coloanele acestui tabel
sunt:
id – este ch eia primară a acestui table.
questionnaire_id – este cheia straină care se leagă cu cheia primar ă din
tabelul questionnaire.
question_id – este cheia straină care se leagă cu cheia primară din tabelul
question.
Colecț ia Questionnaires_Answer
Repezintă colecția unde sunt stocate ră spunsurile date de student. Coloanele
acestui tabel sunt:
id – cheia primară .
question_questionnaire_id – este cheia straină care se leagă cu cheia
primară din tabelul question_questionnaire .
answer – conține răspunsul dat de s tudent. Ȋn cazul răspunsurilor deschise
va conține textul respectiv iar ȋ n cazul r ăspunsurilor ȋ nchise va c onține id -ul
sau id -urile (answer.id) ră spunsului dat.
user_email – conține emailul studentului care ră spunde la chestionar.
Operaț iunile care se po t efectua asupra bazei de date sunt urmatoarele:
Introducerea de noi ȋntrebă ri
Modificarea ȋ ntreb ările deja existente
Ștergerea ȋ ntrebarilor
Crearea unui chestionar nou
Editarea unui chestionar deja existent ș i nepublicat
Ștergerea unui chestionar nepublic at
Adăugarea de ră spunsuri pentru chestionarele active
Extragerea de informații despre ră spunsurile date de c ătre student
4.2.3 Crearea paginilor și a formularelor ȋn ZF2
Proiectele ȋn ZF2 au o structură a fișierelor bine stabilită. Ȋn imaginea urm ătoare se
poate observa această structură:
Aplicația – Generator de chestionare
34
Figură 4.9 Structura fișiere lor ȋn ZF2
Pentru crearea paginii “creare ȋn trebare” am urmat urmatori pași:
din folder -ul module ->Application ->src ->Application ->Controller am ales
fișierul AdminController.php . Acest fișier este destinat paginilor create pe
partea de administrator. Fișierul este de fapt o clas ă PHP:
ȋn interiorul clasei AdminController am adăugat o nouă funcție
createQuestion Action (), ȋn interio rul căreia voi scrie codul PHP asociat
acestei pagini.
ȋn folder -ul module ->Application ->view ->application ->admin am creat un
fișier create -question.phtml , acesta reprezintă pagina HTML asociată Action –
ului.
ZF2 are un sistem bine definit de rutare a pag inilor. Mai exact pentru ruta
“/admin/creare -intrebare ” trebuie specificat controller -ul și action -ul care
se va apela. Acest lucru se specifică ȋn fișierul module.confing.php din
folderul module ->Application ->confing .
Aplicația – Generator d e chestionare
35
apoi ȋn acl.config.php din același folder se adaugă accesul la rută, mai pr ecis
doar un utilizator logat poate accesa această rută.
ZF2 are implementată clasa Form care te ajută la crearea unui formular.
Astfel pentru crearea unei ȋntrebări am creat urmatoarea clas ă:
Ȋn interiorul clasei QuestionForm am adaugat pe rând toate elementele
formularului:
o id – element de tip hidden
o user_id – element de tip hidden
o questione_text – element de tip textarea
o answer_type – element de tip radiobutton
o o colecție – aici avem answer_text + un buton stergere
o un buton de adăugare ră spunsuri posibile
o un buton de tip submit
Pentru fiecare element adăugat am specificat label -ul și toate atributele
necesare, cum ar fi clasele de bootstrap folosite.
revenind la funcția createQuestion Action () ȋn interiorul ei am creat o
instan ță a clasei formularului QuestionForm pe care am pus -o apoi pe view.
ȋn pagina de view asociată și anume create -question.phtml cu tagurile PHP
am parcurs fiecare element din formular. Codul PHP este transformat ȋn
HTML.
Aplicația – Generator de chestionare
36 La crearea pagini “creare chestionar” pe lângă etapele descrise mai sus care sunt
necesare oricărei pagini noi create ȋn aplicație, pe partea de client am folosit jQuery.UI
pentru a putea trage o ȋntrebare din lista de ȋntrebări posibile ȋn lista de ȋntreb ări a
chestionarului. La apăsarea pe una dintre ȋntrebari am deschis un modal ce cuprinde
textul detaliat al acesteia. Modalul este o funcționalitate oferită de bootstrap.
Ȋn cadul paginii “vizualizare răspunsuri” după fiecare ȋntrebare ȋnchisă am afișat
un grafic. Acest grafic a fost realizat folosind plugin -ul Chart.js. [25]
4.2.4 Interfeț ele utilizator
Fiind o aplicaț ie Web utilizatorii o vor accesa prin inter mediul browser -ului.
Pentru profesori va fi vi zibilă pagina de Acasă a aplicației unde ȋn partea dreaptă
sus vor putea accesa butonul de Login pentru autenti ficarea ȋ n platform ă.
Figură 4.10 Prima pagină din aplicație
După apă sarea butonului Login utilizatorul va trebui să iși introducă adresa de
email ș i parola pentru a se putea autentifica și intra ȋ n platform ă. Aceste informații vor fi
primite ȋ n prealabil. Ca o funcț ionalitate viitoare a a plicaț iei o sa fie crearea de noi
utilizatori de că tre un master. Tot pentru versiunea a doua a platformei va fi modificarea
parolei sau recuperarea parolei uitate.
Formularul de Login va valida dacă datele introduse se regăsesc ȋn tabelul user. Ca
o metodă de securitate parola din baza de date este criptat ă cu ajutorul cla sei din ZF2
Zend \Crypt \Password \Bcrypt .
Aplicația – Generator de chestionare
37 Ȋn figura de mai jos am exemplific at formularul de Login care afiș ează mesaje de
eroare ȋ n cazul unui insucces la logare.
Figură 4.11 Formularul de logare ȋn aplicaț ie
Dupa logarea cu succes profesorul va fi redirectat pe pagina de Acasa, unde va
vedea lista chestionarelor crea te de el. Mai jos este ilustrată această pagină .
Figură 4.12 Lista chestionarelor pe pagina acasa dupa logare
După cum se poate observa ȋn imaginea de mai sus ȋn partea stangă utilizator ul are
un meniu vertical care să ȋ l ajute la o mai buna utilizare a platformei.
Aplicația – Generator de chestionare
38 Acest meniu c onține urmă toare a structură :
Acasa – pentru a reveni la pagina inițială
Creare ȋntrebare – pagina destinată creări i de ȋntrebă ri
Listă ȋntrebă ri – pagina unde se pot vizualiza toate ȋntrebă rile din platform ă
adăugate de utilizatorul curent
Creare chestionar – pagina unde este formularul de adă ugare a unui nou
chestion ar
Listă chestionare – pagina unde se pot vedea c hestionare create de acel user
și unde va fi activat chestionarul prin Generare link
Ȋn partea dreaptă sus utilizatorul va găsi opț iunea de deloga re din platformă .
Figură 4.13 Formularul de creare ȋntrebare
Ȋn formularul de creare ȋntrebare utilizatorul are o pțiunea de a -și selecta tipul de
ȋntrebare dorit. Ȋn cazul ȋntrebărilor ȋ nchise el poate a dăuga ră spunsurile posib ile
indiferent de numarul l or. Ȋ n imaginea de mai jos se poate observa modalitate a de
adăugare/ștergere a unui ră spuns posibil.
Aplicația – Generator de chestionare
39
Figură 4.14 Ȋntrebări cu răspunsuri predefinite
Figură 4.15 Listă ȋntrebări
Ȋn imaginea de mai sus se poate observa lista cu ȋ ntreb ări a utiliza torului curent.
Acesta are la dispozi ție posibilitatea de modificare și ștergere a ȋntrebă rii. Ȋn momentul
ștergerii unei ȋ ntrebări utilizat orul este atenționat și ȋntrebat dacă este sigur de decizie.
Mai jos este exemplificată această situație.
Aplicația – Generator de chestionare
40
Figură 4.16 Ștergere ȋntrebrare
Ȋn imaginea de mai jos voi prezenta formula rul de adă ugare chestio nar. Aici
utilizatorul va trebui să completeze pe rând o serie de informaț ii specific e unui
chestionar. Ș i acest formular are implmentat validatoar e pe inputuri, pentru a -l obliga pe
utilizator s ă completeze toate c âmpurile.
Figură 4.17 Formular creare chestionar
Aplicația – Generator de chestionare
41 Ȋn imagine a ce urmează voi ilustra lista de chesti onare create de utilizatorul
curent. Aici ȋn dreptul fiecărui chestionar există o serie de butoane pe care utilizatorul
poat e să le folosească . Tot la nivelul aces tei pagini utilizatorul poate să activeze un
chestionar. Pri n activarea unui chestionar se ȋ ntelege generarea unui link unic care
poate fi transmis studentului. De menționat este faptul că un chestionar deja activat n u
mai po ate fi modif icat sau ș ters.
Ȋn dreptul chestionare lor care nu sunt activate există urmatoarele butoane:
“Generare link”, “Vizualizare”, “Editare”, “Sterge”.
Figură 4.18 Listă chestionare
La apă sarea butonului “Edit are” utilizatorul va fi redirecționat pe o nouă pagină
unde va p utea vizualiza formularul de adăugare dar de această dată va fi populat cu
toate informațiile. Ȋ n imaginea de mai jos voi exemplifica această pagină .
Figură 4.19 Editare chestionar
Aplicația – Generator de chestionare
42 Pe baza linkului generat stu dentul va putea accesa chestionarul adresat lui. Acest
chestionar poate fi vizualizat și de către profesor ȋ n cadrul platformei prin accesarea
butonului “Vizualizare” d in dreptul fiecărui chestionar. Ȋn cele ce urmează voi
exemplifica un astfel de chestionar.
Figură 4.20 Chestionar
Aplicația – Generator de chestionare
43 Pe partea de administrator profesorul are acces la vizualizarea răspunsurilor date
de către studenți. Pentru ȋ ntrebările de tip ȋnchis pentru o analiză mai ușoară am
adăugat o reprezentare grafică.
Utilizatorul are posibilitatea exportări ȋn CSV a tuturor răspunsurilor accesând
butonul “Descarc ă răspunsurile” din partea dreaptă sus.
Figură 4.21 Vizualizare răspunsuri
Manual de utilizare
44
5 Manual de utilizare
5.1 Utilizarea ca administrator
Utilizare a ca și administrator se efectueaz ă conform urmatorilor pași:
1. Login
Pentru logarea pe platformă administrat orul trebuie să acceseze aplicaț ia web. Ȋn
partea dreaptă sus se găsește butonul “Login”. Administratorul trebuie sa facă click pe
acesta.
Figură 5.1 Butonul de logare
Se deschide o nou ă pagină unde apare formularul de logare.
Figură 5.2 Formularul de logare
După completarea adresei de email și a parolei administratorul va apăsa pe
butonul verde “Logare”. După logarea cu succes administratorul va fi redirectat pe
pagina de Acasa destinată utilizatorilor logați.
2. Creare ȋntrebare
Din meniul din partea stângă a aplicației utilizatorul va selecta opțiunea “Creare
ȋntrebare”.
Manual de utilizare
45
Figură 5.3 Meniu administrator
După această selecție adminis tratorul va fi redirectat spre o altă pagină care
conține formularul de adăugare a unei noi intrebări.
Prima dată se comple tează “Textul ȋntrebării” iar apoi se va selecta tipul ȋntrebarii.
Platforma are defini te 3 tipuri de ȋntrebări.
Ȋntrebare deschisă – la această selecție administratorul nu ma i trebuie s ă
adauge nimic. Acest tip de ȋntrebare a șteaptă de la re spondenți un răspuns
liber.
Ȋntrebare ȋnchisă cu un singur răspuns corect posibil – acest tip de
ȋntrebare prezintă o serie de răspunsuri dintre care re spondentul poate
alege un singur răspuns.
Ȋntrebare ȋnchisă cu răspunsuri multipl e – acest tip de ȋntrebare ofer ă
posibilitatea re spondentului s ă aleag ă mai multe răspunsuri dintr -o listă
dată.
Pentru ultimele 2 tipuri de ȋntrebări administratorul t rebuie să adauge lista de
răspunsuri posibile precum ȋn imaginea de mai jos.
Figură 5.4 Răspunsuri ȋnchise
Manual de utilizare
46
Implicit , dacă administratorul selectează ultimele 2 tipuri de răspunsuri , se vor
deschide 2 inpu turi urmate fiecare de un buton ro șu cu semnul “ -”, după acestea
existând și butonul verde cu semnul “+”. La apăsarea butonului ro șu “-” inputul de
deasupra lui va fi șters. La apăsarea butonului verde “+” va apărea un nou input cu un
buton ro șu “-“ asociat. Aceste 2 butoane “ -” și “+” ȋl ajută pe administrator ȋn cre area
listei de răspunsuri posibile dorite.
După ce această listă este gata, sau după ce textul ȋntrebării este scris ȋn cazul
primului tip de ȋntrebare, administratorul va apăsa pe buton ul verde “Salveaza
ȋntrebare”. Dacă pe formular nu apare nici un mesaj de eroare , ȋntrebarea o s ă fie
adăugată ȋn baza de date. Acest fapt este anunțat și printr -un mesaj de notificare care
apare ȋn partea dreaptă jos.
Figură 5.5 Notificare cu success
3. Vizualizare listă ȋntrebări
După ce toate ȋntrebările chestion arului au fost adăugate, folosind pasul 2
administratorul are la dispoziție o pagină specială petru vizualizarea acestora. Aceasta
pagină poate acc esată din meniul din partea stângă “Listă ȋntrebări”.
Ȋn dreptul fiecărei ȋntrebări există 2 butoane: unu l albastru “Editare” și unul roșu
“Șterge”. Cu ajutorul lor , adminstratorul poate edita sau șterge o ȋntrebare. La apasare a
butonului editare administr atorul va fi redirectat pe o nou ă pagină unde va apărea
același formular ca și cel de adăugare ȋntrebare , dar de această dată, formularul va fi
prepopulat cu informațiile ȋntrebării curente. După modificările dorite aduse ȋntrebării
administratorul va apăs a butonul “Salvează ȋntrebarea”.
La apăsarea butonului roșu “Șterge” un modal va apărea pe mijlocul ecranului unei
administratorul este ȋntrebat dacă este sigur de decizia luată. Aici el are posibilitatea să
se răzgândească apăsând butonul “Cancel” sau “x -ul” ferestrei de modal, dar poate să iși
continue acțiune de șterge prin apăsarea butonului “Ok”.
Tot pe această pagină se regăsește ȋn partea dreaptă sus un buton verde “Adăugă
ȋntrebare” care ne va redirecțion spre formularul de la pasul 2.
4. Creare ches tionar
La pasul de creare chestionar se poate ajunge din meniul din partea stângă “Creare
chestionar”. Pe acest formular admnistratorul trebuie să adauge toate informațiile unui
chestionar și anume: Numele chestionarului , Descrierea chestionarului, Data de ȋncepere
a chestionarului, Data de final a chestionarului, Concluzia chestionarului, Lista de
ȋntrebă ri a chestionarului .
Manual de utilizare
47 Pentru comple tarea listei de ȋntrebări a chestionarul ui, administratorul se va folosi
de Lista de ȋntrebă rile posibile . Această listă de ȋntrebări posibile conține toate
ȋntrebările adăugate ȋn platformă de utilizatorul current. La click pe oricare dintre
ȋntrebări se va deschide un modal cu ȋntreg textul ȋntrebării, iar pentru ȋntrebările cu
răspunsuri ȋnchise și textul acestor r ăspunsuri.
Pentru ca o ȋntrebare posibilă să devină ȋntrebare a chestionarul ui, administratorul
va trebui să tragă cu mouse -ul ȋntrebarea din partea dreapta ȋn lista din partea stângă.
Această mutare din stânga ȋn dreapta a unei ȋntrebări poate fi facută de mai multe ori
până când administratorul se decide la lista finală a ȋntrebări lor.
Figură 5.6 Modal vizualizare ȋntrebare
La apăsarea butonului verde “Salvează chestionar” chestionarul va fi adăugat in
baza de date, iar administratorul va fi informat printr -un mesaj de notificare.
5. Listă chestionare
Din partea stângă a meniul ui se alege “Listă chestionare”. Administratorul este
redirectat pe o nou ă pagină unde sunt listate titlurile tuturor chestionarelor create de
acesta.
Figură 5.7 Listă chestionare
Manual de utilizare
48 Pe pagină există 2 tipuri de chestionare, chestionare publicate și chestionare
nepublicate. Pentru chestionarele publicate administratorul poate doar să aceseze linkul
acestui chestionar.
Pentru chestionarele nep ublicate administratorul poate:
să apese pe butonul verde “Generare link”. La apăsarea acestui buton
chestionarului i se va genera un link unic pe baza car uia va putea fi acc esat
și chestionarul devine astfel public.
să apese pe butonul albastru deschis “Vizualizare”. La apăsarea pe acest
buton administratorul este redirectat pe o nou ă pagină similară cu a unui
chest ionar public. Cu alte cuvinte , administratorul poate vizualiza formatul
chestionarului vazut de re spondent.
să apese pe butonul albastru ȋnchis “Editare”. Acesta ȋl va redirect a pe o
nouă pagin ă unde va avea posibilitatea modificări i chestionarului. El va
putea modifica de la numele chestionarului până la ȋntrebările care se afl ă
ȋn interiorul lui.
să ap ese pe butonul ro șu “Șterge”. La fel ca ȋn cazul ștergeri i unei ȋntr ebări ,
administratorul este ȋntrebat dacă este sigur ca vrea să șteargă acest
chestionar. La apasarea “Ok” chestionarul va fi șters.
6. Vizualizare răspunsuri
Pagina poate fi accesată prin apăsarea butonulu i verde “Vizualizare răspunsuri”
care apare pe pagina de “Acasă”. La ap ăsarea butonului , administratorul este redirectat
pe o alt ă pagină unde sunt listate ȋntreb ările chestionarului ȋmpreună cu răspunsurile
date de re spondenți. Pentru ȋntrebările de tip ȋnchis există și o interpretare grafică a
răspun surilor primite.
Tot aici se găsește butonul verde “Descarca Raspunsurile”. La apasarea acestui
buton un fiser CSV cu răspunsurile repondenților va fi descărcat pe calculator.
7. Delogare
Administratorul se poate deloga din sistem folosind butonul din partea dreapta sus
“Logout”.
5.2 Utilizarea ca student
Utilizare a ca și student se efectueaz ă conform urm ătorilor pa și:
1. Accesarea linkului
Studentul va primi un link pe baza căruia va putea răspunde la ȋntrebările
chestionarului.
Dacă linkul accesat este unul valid atunci studentul va vizualiza chstionarul.
Manual de utilizare
49 2. Completarea chestionarului
Studnetul este obligat să adauge răspunsuri la toate ȋntrebările ȋn funcție de tipul
ȋntrebării. După aceasta el va trebui să adauge o adresă de email validă și să apese pe
butonul verd e “Salvează răspunsurile”.
După apăsarea acestui buton studentul este redirectat pe o nou ă pagină unde va
apărea o scurtă concluzie a acestui chestionar.
Concluzii
50
6 Concluzii
6.1 Rezultate obținute
Ȋn lucrarea de față Generator de chestionare , am realizat o platform ă online care
să f aciliteze comunicarea ȋntre stu denți și profesori prin colectarea de date utile î n
diverse etape ale studiilor universitare, de exemplu date despre absolven ți.
Platforma este ușor de folosit, având o interfață simplă și intuitivă cu nu foarte
multe infor mații pe o singur ă pagină . Avantaj ul major al unei platform e online este
acesibilitatea, un b rowser Web fiind suficient pen tru a o putea accesa.
Un alt avan taj este cel legat de stocarea, centralizarea cât și securizarea datelor .
Astfel profesor ii vor avea acces la orice or ă la ră spunsurile studenț ilor.
Folosind Zend Framework 2 care este un framework construit pe arhitectura
Model -View -Controller (MVC) am asigurat securitatea aplicaț iei. Cu ajutorul
componentei ACL m -am asigurat că rutele din aplica ție vor fi accesibile doar de
utilizatorii cu aceste drepturi.
Cu ajutorul Bootstrap -ului, un framework de front -end, am realizat pent ru
utilizator interfeț e prietenoase care se pot accesa de pe orice dispozitiv. Utilizâ nd
JavaScript -ul mai precis jQuery am adus un plus de viteză ȋn cadrul aplicaț iei.
Comparativ cu aplicațiile deja existente pe piață , platforma Generator de
chestionare realizată se adresează Universității Tehnice. Un alt avantaj este că datele
sunt mult mai ȋn siguran ță fiind păstrate pe un serverul al institu ției și cadrele institului
au acces la codul sursă, ȋn comparație cu celelalte aplicații unde nu exist ă acces la codul
sursă .
6.2 Direc ții de dezvoltare
Ȋn ceea ce privește direcțiile viitoare , câteva funcționalitați care pot fi ad ăugate
platformei sunt :
Adăugarea de noi utilizatori, schimbarea parolei
Trimiterea automată de emailuri ce conțin linkul unui chestionar
Adăugarea de noi tipuri de ȋntr ebari, spre exemplu o ȋntrebare ȋnchisă la
care se poate adăuga și un r ăspuns liber
Bibliografie
51
7 Bibliogra fie
[1] B. Gillham, Developing a questionnaire, London: UK: Continuum International
Publishing Group Ltd., 2008.
[2] W. Foddy, Constructing questions for interviews and questionnaires: Theory and
practice in social research, Cambridge: UK: Cambridge University Press., 1994.
[3] Y. Ono, A. Nakajima and M. Ishihara, "Motivational Effects of a Game -Based
Automatic Quiz G enerator Using Online Educational Resources for Japanese EFL
Learners," in Proceedings of Society for Information Technology & Teacher Education
International Conference 2017 , Chesapeake, VA, 2017.
[4] A. Galvano Alazhar and N. B. H. Ahmad, "Web -based C ollaborative Question Bank
with Adaptive Quiz Generator," in UTM Computing Proceedings – Innovations in
Computing technology and Apllications , Malaysia, 2016.
[5] Y. Oikawa, R. Matsuba, T. Kita, K. Suzuki and H. Nakano, "Development of a Similar –
questio n Generator to Support Peer Teaching," International Journal for Educational
Media and Technology, vol. 7, no. 1, pp. 38 -49, 2013.
[6] M. Hoshi and V. Klyuev, "Questionnaire generator: Web application using cloud
computing," in Proceedings of the 2014 I nternational Conference on E -Commerce, E –
Business and E -Service , Hong Kong, 2014.
[7] A. Assila, T. Sfax and M. S. Bouhle, "A web questionnaire generating tool to aid for
interactive systems quality subjective assessment," in International Conference on
Control, Decision and Information Technologies (CoDIT) , Hammamet, 2013.
[8] S. Charfi, H. Ezzedine and C. Kolski, "RITA: a useR Interface evaluaTion frAmework,"
Journal of Universal Computer Science, vol. 21, no. 4, pp. 526 -560, 2015.
[9] "Survey Monkey. Pricing," [Online]. Available:
https://www.surveymonkey.com/pricing/
?ut_source=direct_to_pro&ut_source2=lo_home_d&ut_source3=sem -lp-5.
[10] "Typeform. Pricing," [Online]. Available: https://www.typeform.com/pricing/.
[11] "Client Heartbeat. Pricing," [Online]. Available:
https://www.clientheartbeat.com/pricing.
[12] "Zoho. Pricing," [Online]. Available: https://www.zoho.eu/survey/pricing.html.
[13] "Survey Gizmo. Pricing," [Online]. Available:
Bibliografie
52 https://www.surveygizmo.com/professionals/.
[14] "Survey Planet. Pricing," [Online]. Available: https://surveyplanet.com/features.
[15] "W3Schools. HTML," [Online]. Available: https://www.w3schools.com/.
[16] A. Olteanu, M. Anghel and R. Pietraru, "Baze de date și utilizarea acestora," Program
universitar de conversie profesională, 2005.
[17] T. Sanislav, L. Miclea and H. Vălean, Baze de date relaționale și nerelaționale, Cluj –
Napoca: EDITURA U.T.PRESS Universitatea Tehnică, 2015.
[18] "PHP. What can PHP do?," [Online]. Available: http://ph p.net/manual/en/intro –
whatcando.php.
[19] "Zend Framework & MVC Introduction," [Online]. Available:
https://framework.zend.com/manual/1.10/en/ learning.quickstart.intro.html.
[20] "Bootstrap. Getting started," [Online]. Available: http://getbootstrap.c om/.
[21] M. Hulea, "Curs diagrame de secventa," [Online]. Available:
http://control.aut.utcluj.ro/hmihai/.
[22] C. Cristescu, "De ce un framework?," 4 Mai 2011. [Online]. Available: http://ctrl –
d.ro/editorial/de -ce-un-framework/.
[23] "W3schools. Ajax," [Online]. Available: https://www.w3schools.com/
xml/ajax_intro.asp.
[24] MySQL, MySQL 5.6 Reference Manual. Oracle., 30 mai 2014.
[25] "Chart.js. Plugin," [Online]. Available: http://www.chartjs.org/.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Generator de chestionare [618961] (ID: 618961)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
