v3k7ko
CUPRINS
1. INRODUCERE
1.1. LOCUL EXPLOATARII APLICATIEI
1.2. SPECIFICATII DE DEFINITIE
1.3. NECESITATEA ELABORARII APLICATIEI
1.4. SPECIFICAREA CERINTELOR
2. MEMORIU TEHNIC
2.1. APLICATIE CENTRATA PE BAZE DE DATE
2.2. ABORDAREA METODICA A ACTIUNII DE PROIECTARE A APLICATIEI
ANALIZA
PROIECTARE
Diagrama Entitate-Relatie
Diagrama Functionala
Tipul arhitecturii pentru aplicatia creata
IMPLEMENTARE
TESTARE
DOCUMENTARE
3. MEMORIU JUSTIFICATIV
3.1. SCHEMA BAZEI DE DATE
3.2. CONTRIBUTII PERSONALE
4. CAIET DE SARCINI
5. MANUAL DE OPERARE
5.1 INSTALARE
5.2 UTILIZARE
6. DEZVOLTARI ULTERIOARE
CONCLUZII
BIBLIOGRAFIE
ANEXE
1. ANEXA TABELE SI CAMPURI DIN TABELE
2. ANEXA COD SQL VEDERI
3. ANEXA COD
4. ANEXA TABELE
5. ANEXA FIGURI
1. INTRODUCERE
In prima parte a lucrarii voi prezenta limbajul de programare PHP, functionarea
acestuia, de ce este mai avantajos si mai putin costisitor acest mediu de programare
in comparatie cu alternativele lui (CGI, ASP.NET sau JSP), precum si motivele
din care s-a ales acest mediu de programare drept mediu de realizare al proiectului,
cauzele care m-au determinat sa aleg acesta aplicatie pentru proiectul de diploma.
1.1 CE ESTE “PHP”?
Initial, PHP a reprezentat abrevierea de la Personal Home Page (pagina de baza
personala). Limbajul a fost creat in anul 1994 de catre Rasmus Lerdolf, pentru
a-si indruma vizitatorii spre curriculum vitae-ul personal, publicat in Internet.
Pe masura ce utilitatea si caracteristicile sale s-au dezvoltat, pe masura ce
programul a inceput sa fie utilizat in situatii cu un caracter mai profesional,
PHP a ajuns sa aiba semnificatia PHP: Hypertext Preprocessor (procesor de hipertext).
In esenta, semnificatia acestei definitii consta din aceea ca PHP manipuleaza
datele inainte ca acestea sa se transforme in HTML (HyperText Markup Language).
A afirma ca PHP este inglobat in HTML este echivalent cu faptul ca poate fi
scris in interiorul programului dumneavoastra HTML -; acesta fiind programul
in care sunt construite toate paginile dumneavoastra web.
De asemenea, HTML este un limbaj de redactare a scripturilor si nu un limbaj
de programare. Aceasta inseamna ca PHP este conceput sa efectueze o anumita
operatie numai dupa producerea unui eveniment.
Trebuie sa intelegem ca PHP este o tehnologie pe parte de server. Aceasta se
refera la faptul ca toate operatiile pe care le executa PHP se produc pe server
(nu pe client, care este un teminal, calculatorul folosit de persoana care vizualizeaza
siteul Web). Un server este un calculator special care stocheaza paginile pe
care le vizualizati cand va deplasati la o adresa Web cu browserul dumneavoastra
(Netscape Navigator, Microsoft Internet Explorer, Mozilla, etc.).
De asemenea, PHP are caracter inter-platforma, acest lucru insemnandca poate
fi utilizat pe sisteme de operare diferite precum: UNIX, Windows, Macintosh
si altele. Spre deosebire de majoritatea celorlalte limbaje de programare care
fac parte din categoria lui, permite si transpunerea fisierelor dintr-o platforma
in alta cu modificari reduse sau chiar inexistente.
1.2. CUM FUNCTIONEAZA “PHP”?
PHP este un limbaj de programare pe parte de server, ceea ce inseamna ca liniile
pe care le scrieti in PHP sunt rezidente intr-un calculator gazda care serveste
pagini browserelor Web.
Cand faceti o cerere catre un site Web (www.forum.edu.ro, de exemplu), furnizorul
dumneavoastra de servicii Internet (ISP) directioneaza cerea spre serverul care
gazduieste informatiile din siteul respectiv. Serverul citeste codul PHP si
il prelucreaza in conformitate cu instructiunile continute in script. Pe scurt,
PHP creeaza instantaneu o pagina HTML, pe baza parametrilor doriti de utilizator.
1.3. DE CE SA UTILIZAM “PHP”?
PHP este mai bun, mai rapid si mai usor de invatat decat alternativele sale.
Pentru proiectarea unui site Web, pricipalele alternative la PHP sunt limbajul
HTML simplu, scripturile CGI (Common Gateway Interface -; interfata comuna
de tip poarta, scrisa de obicei in Perl), ASP (Active Server Pages) si mai recentul
ASP.NET, Macromedia ColdFusion si JSP (Java Server Pages). Java script nu reprezinta
o alternativa efectiva la PHP si nici invers deoarece JavaScript este o tehnologie
pe parte de client. Avantajul PHP in raport cu HTML simplu consta din aceea
ca ultimul este un sistem limitat, care nu permite nici flexibilitate, nici
responsivitate. De asemenea PHP poate interactiona cu baze de date si fisiere,
poate manipula mesaje de posta electronica (e-mail) si este capabil de multe
alte operatii inaccesibilie limbajului HTML.
Tehnologiile pe parte de server, precum si scripturile CGI, si-au castigat o
popularitate mare din cauza ca aceste sisteme permit proiectantilor de pagini
Web sa creeze aplicatii Web care sunt generate dinamic, luand in considerare
toate elementele dorite de programator. Deseori conduse de bazele de date, aceste
siteuri complexe pot fi actualizate si intretinute cu mai mare usurinta decat
paginile HTML statice.
1.4. DE CE LIMBAJUL “PHP” SI NU “CGI”, “ASP.NET”
SAU “JSP”?
? PHP este mult mai usor de invatat si utilizat.
? PHP este gratuit.
? PHP este inter-platforma.
? PHP provine dintr-o sursa deschisa, utilizatorii PHP sunt cei care determina
evolutia, nu o entitate corporatisca sau alta.
? PHP a fost scris special pentru crearea de pagini Web dinamice.
? in prezent PHP este cel mai popular instrument pentru realizarea de siteuri
Web dinamice.
? si nu in ultimul rand pentru ca am invatat acest limbaj de programare in anul
III de colegiu, avand curs si proiect in PHP.
1.5. NECESITATEA ELABORARII APLICATIEI
Pentru a explica necesitatea elaborarii aplicatiei, care vine in sprijinul
cadrelor didactice dar in egala masura si al elevilor (studentilor), voi aduce
ca argument principal necesitatea inlocuirii muncii manuale -intr-o pondere
cat mai mare - cu munca automatizata si utilizarea tehnicilor moderne, care
aduc o imbunatatire considerabila in procesul instructiv-educativ al elevilor.
Insa, eficienta aceasta si necesitatea existentei unei aplicatii trebuie calculata
in termenii contextului prezent si viitor.
Important pentru un profesor faptul de a avea la indemana instrumente moderne
si eficiente de evaluare, deoarece evaluarea se face foarte simplu cu economie
de timp, eleiminand-se corectarile clasice, astfel incat evaluarile se pot face
foarte des realizand o evaluare continua in acest fel profesorul are o viziune
clara, obiectiva asupra nivelului de pregatire si evolutie al elevului.
De mentionat este faptul ca in institutiile de invatamant preuniversitar exista
de cativa ani o platforma care vine in sprijinul cadrelor didactice, secretariatului
si elevilor care se numeste “Asistent educatioanl pentru licee”
(A.E.L.) care este foarte bine realizata dar care este foarte stufoasa, in sensul
ca pentru functionarea normala a aplicatiei este necesar sa fie parcursi o multime
de pasi, exemplu: declararea institutiei de invatamant, declararea nivelurilor
de invatamant existente in institutie (liceu, scoala profesionala, S.A.M., ucenici),
crearea componentelor pentru fiecare nivel de invatamant, dupa fiecare an scolar
trebuie ca toti elevii sa fie promovati in anul urmator si lista poate continua
cu foarte multe exemple. Si fiint toata ziua prezent intr-o astfel de institutie
am avut contacte cu numerosi profesori care doreau sa foloseasca sistemul “A.E.L.”
dar din cauza ca este prea dificil pentru ei sa-l foloseasca, am ajuns la concluzia
sa pot concepe eu o platforma asemanatoare, care sa vina in sprijinul cadrelor
didactice si al elevilor, dar aplicatia rezultata sa fie usor de utilizat atat
de catre elevi precum si de profesori, usor accesibila, usor de intretinut,
sa poata fi accesata de la orice terminal conectat la Internet 24 de ore pe
zi, 7 zile din saptamana.
Aplicatia este orientata stict pentru profesori si elevi si vine in ajutorul
acestora pentru partea de testare a elevilor precum si urmarirea rezultatelor
elevilor atat de catre profesor cat si de catre elev, avand posibilitatea de
a-si urmari din contul sau evolutia la toate disciplinile la care a sustinut
test.
1.6. SPECIFICAREA CERINTELOR
Mi-am propus sa realizez o aplicatie care sa se poata rula in conditiile de
dotare existente in institutie. Drept pentru care am optat la tipul de aplicatie
cu arhitectura multistrat, deoarece in aproape toate institutiile de invatamant
din Romania exista cel putin un server, fie cu un sistem de operare Windows
fie cu o versiune de Linux, precum si o retea de cel putin 25 de statii impartite
fie intr-un singur laborator fie in doua laboratoare de informatizare. Aceste
laboratoare au fost concepute in asa fel sa satisfaca cerintele profesorilor
de mai multe discipline, deci in aceste laboratoare se tin ore, pe langa orele
clasice de “Informatica” si „Tehnologia informatiei si comunicarii”
si ore de „Bilogie”, „Chimie”, „Fizica”,
„Laborator tehnologic”, „Geografie”, „Istorie”,
„Limbi straine”, etc. Scopul aplicatiei s-a dorit a fi o culegere
de discipline, la fiecare disciplina putandu-se declara un numar nelimitat de
tematici, pentru fiecare tematica un set de intrebari, preferabil sa fie peste
18 la numar, iar o intrebare poate avea 3 variante de raspuns si numai una corecta.
Elevii care doresc sa-si evalueze cunostintele, acest lucru putand fi impus
de catre profesorul lor, se inscriu pe site (isi creaza cont gratuit) si sa-si
urmareasca in evoluatia pe diferite discipline si tematici la care parcurge
teste.
Un profesor poate avea cont doar pentru o disciplina, iar la o disciplina pot
fi inscrisi mai multi profesori, deci pot folosi acelasi material educational
pentru disciplina in cauza.
Deasemenea profesorul are la dispozitie instrumente de urmarire a rezultatelor
elevilor pentru disciplina la care cont, aceasta consta in faptul ca pentru
fiercare tematica inregistrata profesorul are posibilitatea de a vizualiza rezultatele
unui anumit elev, avand chiar instrumente de cautare a elevilor dupa cateva
creiterii (nume de utilizator, numele elevului precum si prenumele). Vizualizarea
evolutiei elevilor pe diferite tematici este posibila prin intermediul unor
grafice care arata profesorului, dar in acelasi timp si elevului, datele calendaristice
la care a fost parcurs testele, nota obtinuta, numarul de intrebari din care
este compus testul, nota de la care a pornit testul (care poate sa fie nota
„0”, „1”, „2”, „3” si nota „4”)
in functie de preferintele elevului, precum si numarul de intrebari pentru fiecare
grad de dificultate „I”, grad „2” si „III”
care deasemenea ramane la latitudinea elevului inainte de pornirea testului.
Testele (intrebarile cu raspunsurile) sunt concepute numai de catre profesori,
in functie de obiectivele urmarite de fiecare profesor in parte pentru tematica
sau lectia pentru care sunt inregistrate, insa elevul are posibilitate sau privilegiul
de a-si alege singur numarul de intrebari din care sa fie compus testul precum
si gradele de disficultate al intrebarilor. Altfel spus daca elevul „X”
doreste sa parcurga un test la disciplina „Engleza”, daca pentru
aceasta disciplina nu sunt inregistrate tematici sau lectii, va pri mesaj ca
nu poate sa parcurga test, deasemenea in cazul in care sunt inregistrate intrebari
dar prea putine, adica un numar mai mic de 3 intrebari pentru fiecare grad de
dificultate ( „I”, „II”, „III”), elevul
nu poate sa-si evalueze cunostintele pentru aceasta disciplina. In cazul in
care sunt indeplinite aceste dependente functionale, elevului i se da posibilitate
sa-si alega tematica din care doreste sa se evalueze, numarul de intrebari pentru
fiecare grad de dificultate in parte si in cele din urma elevului i se va genera
un teste cu numarul de intrebari dorit de catre acesta, si afisarea intrebarilor
se face in mod aleator pentru fiecare grad de dificultate in parte, astefel
incat daca testul se da la cur unei clase intregi si elevii sunt postati alaturi
nu pot comunica in vafoarea lor, in sensul sa se ajute reciproc, deoarece testul
generat unui elev nu va corespunde exact cu testul generat colegului sau de
alaturi, cu toate ca toti elevii au ales acelasi tip de test si numar de intrebari
din aceasi categorie de dificultate.
2. MEMORIU TEHNIC
Aplicatia este abordata ca aplicatie baze de date.
2.1. APLICATIE CENTRATA PE BAZE DE DATE
Notiunea de baza de date este strans legata de notiunea de date, care refera
„fapte culese din lumea reala” a1i. Baza de date se refera la un
volum mare de date, care sunt stocate pe suport fizic; ea reprezinta, in cazul
sistemului computerizat, echivalentul arhivei din viata reala. Mai poate fi
inteleasa ca o colectie de fisiere de date intr-un sistem de calcul a2i.
Pentru o baza de date cel mai important lucru este manipularea datelor continute
in acea baza de date. Aceasta „manipulare” refera operatiile care
se pot efectua asupra datelor: operatii de adaugare a unor date noi, operatii
de regasire, de modificare, de stergere a datelor existente a2i.
In continuare voi rezuma argumentele care au stat la temelia alegerii pe care
am facut-o -; alegerea unei aplicatii centrata pe baze de date.
Aveam nevoie ca aplicatia sa permita stocarea unui volum mare de date, la care
sa existe acces tot timpul. Se stie ca in cazul bazelor de date, accentul este
pus pe operatiile de memorare si regasire, efectuate asupra unor volume mari
de date si mai putin asupra operatiilor de prelucrare a datelor, care este domeniul
altor categorii de aplicare a informaticii. Acest aspect a constituit pentru
mine argumentul principal, care m-a determinat sa aleg acest tip de aplicatie.
Securitatea datelor este o problema actuala. ea este tratata in cazul unora
din SGBD-uri (sisteme de gestiune de baze de date), care ofera accesul la date
prin intermediul numelui de utilizator si al parolei, sub forma unor restrictii
asupra operatiilor care se doresc a fi executate si asupra tabelelor care privesc
aceste operatii (exemple MSSQL Server 2000, ORACLE9i, DB2).
Doresc ca baza de date pe care o utilizez in aplicatia mea, mTest, sa memoreze
toate datele cu privire la discipline, tematicile aferente acestora precum si
rezultatele elevilor la teste. Evident ca pentru a realiza acest lucru este
nevoie sa se pastreze si date care nu au fost enumerate mai sus, dar care fac
parte din elementele componente ale aplicatiei. De exemplu informatiile cu privire
la datele personale ale utilizatorilor.
2.2 ABORDAREA METODICA A ACTIUNII DE PROIECTARE A APLICATIEI
Pentru a ajunge la un rezultat satisfacator am parcurs etapele de analiza
si proiectare, care sunt independente de o implementare anume, urmate de etapele
de implementare, testare si documentare.
ANALIZA
Tabel 1
LISTA CU ENTITATI SI ATRIBUTE PENTRU CONSTRUIREA DIAGRAMEI ER
TERMEN
CALITATE
Entitate (E) / Atribut (A) users E userId A username A password A intrebareRecuperare A raspunsRecuperare A nume A prenume A adresa A varsta A email A securityLevel A disciplinaId A activ A disciplina E disciplinaId A disciplina A tematica E tematicaId A tematica A disciplinaId A
acontinuare tabeli
TERMEN
CALITATE
Entitate (E) / Atribut (A)
intrebari E intrebId A intrebare A grad_dificultate A tematicaId A disciplinaId A raspunsuri E raspunsId A raspuns A corectLogic A intrebId A tematicaId A disciplinaId A raspunsTest E raspunsTestId A data A calificativ A grad1 A grad2 A grad3 A notaPlecare A disciplinaId A tematicaId A userId A
Tabel 2
ENTITATILE CARE INTRA IN SCHEMA BAZEI DE DATE
DENUMIRE ENTITATE TIPUL ENTITATII ENTITATI CU CARE ARE LEGATURA user entitate de baza - disciplina
- teste disciplina entitate de baza - users
- tematica
acontinuare tabeli
DENUMIRE ENTITATE TIPUL ENTITATII ENTITATI CU CARE ARE LEGATURA tematica entitate de baza - intrebari intrebari entitate de baza - raspunsuri raspunsuri entitate de baza - raspunsTest raspunsTest entitate de baza - users
- raspunsuri
Pentru schema BD am nevoie ca sa fac analiza fiecarui atribut pentru a stabili
tipul si lungimea maxima pe care o admite. Pentru aceasta am intocmit un tabel
cu atribute (vezi tabelul 3).
Tabel 3
ATRIBUTELE DIN SCHEMA BAZEI DE DATE
DENUMIRE ATRIBUT TIPUL ATRIBUTULUI LUNGIME MAXIMA username sir de caractere 25 password sir de caractere 25 intrebareRecuperare sir de caractere 255 raspunsRecuperare sir de caractere 255 nume sir de caractere 50 prenume sir de caractere 100 adresa sir de caractere 255 varsta numeric 2 email sir de caractere 150 securityLevel numeric 1 disciplina longtext tematica longtext intrebare longtext grad_dificultate numeric 1 raspuns longtext corectLogic numeric 1 data data grad1 numeric 2 grad2 numeric 2 grad3 numeric 2 notaPlecare numeric 2
Pentru a construi diagrama Entitate-Relatie care conduce la crearea bazei de
date, trebuie sa stabilesc ce relatie exista intre entitati.
Intre entitati pot exista trei tipuri de relatii: relatie 1:1 (unei instante
din stanga relatiei ii corespunde o instanta din dreapta relatiei),
relatie 1:N (unei instante din stanga relatiei ii corespunde una
sau mai multe instante din dreapta relatiei) si relatie M:N (unei instante din
stanga relatiei ii corespunde una sau mai multe instante din dreapta
relatiei si unui instante din dreapta relatiei ii corespunde una sau mai
multe instante din stanga relatiei).
Pentru a remarca mai usor ce tip de legatura exista intre entitati am
folosit tehnica grilajului deoarece imi permite o buna vizualizare a relatiilor
dintre entitati prin modul de aranjare al acestora - sub forma unui „grilaj”.
Sunt prezentate legaturile directe dintre entitati, cele indirecte se deduc.
Tab. 4
TIPUL LEGATURILOR DINTRE ENTITATI FOLOSIND TEHNICA GRILAJULUI
Nr crt ENTITATE
ENTITATE utilizator
1. utilizator - elev
2. elev - - profesor
3. profesor - - - administrator
4. administrator - - - - disciplina
5. disciplina - - 1:N 1:1 - tematica
6. tematica - - - - 1:N - intrebari
7. intrebari - - - - - 1:N - raspunsuri
8. raspunsuri - - - - - - 1:N - raspunsTest
9. raspunsTest - 1:N - - - - - 1:N -
Voi da doua exemple de citire a tabelului de mai sus.
Fig. 1 EXEMPU DE CITIRE A RELATIILOR INTRE ENTITATILE DIN GRILAJ
profesordisciplina 1 : N
Un profesor poate administra o disciplina si pentru o disciplina poat exista
mai multi profesori.
disciplina tematica 1 : N
O disciplina are mai multe tematici si mai multe tematici pot exista pentru
o disciplina.
Toate aceste atribute si entitati iau viata in prezenta unor evenimente
si a unor functii; functii care sunt apelate de evenimentele respective. Doresc
sa arat, referitor la prezenta aplicatie, lista cu evenimentele care ar putea
surveni si functiile corespunzatoare acestor evenimente.
Tabel 5
LISTA CU EVENIMENTE SI FUNCTII
EVENIMENT FUNCTIA ATASATA
EVENIMENTULUI EXPLICATIE
(Ce presupune functia atasata evenimentului ?)
1 Profesorul apeeaza administratorul pentru un cont. Intocmirea formularului
de catre administratorul aplicatiei. - preluarea datelor de la profesor
- completarea formularului de inregistrare cu numele de utilizator dorit de
profesor, adresa de mail al profesorului si disciplina pentru care opteaza profesorul
- inregistrarea noului cont, cont care este inactiv
- se genereaza un mail automat cu numele de utilizator al profesorului
- se completeaza de catre profesor formularul de inscriere cu datele personale,
nume, prenume, adresa, varsta, intrebarea de securitate si raspunsul la intrebarea
de securitate
acontinuare tabeli
EVENIMENT FUNCTIA ATASATA
EVENIMENTULUI EXPLICATIE
(Ce presupune functia atasata evenimentului ?)
2 Tematica noua. Creare tematica noua. - completarea formularului cu tematica
dorita, daca aceasta mai este deja inregistrata se afiseaza mesaj de eroare
- daca tematica nu mai este inregistrata pentru disciplina respectiva, tematica
va fi inregistrata
3 Intrebare noua. Inregistrarea unei intrebari pentru o tematica. - completarea
formularului cu datele dorite pentru intrebare
- alegerea tematicei pentru care se doreste inregistrarea
- alegerea gradului de dificultate al intrebarii
- inregistrarea datelor
4 Raspuns nou. Inregistrarea unui raspuns nou pentru o intrebare. - alegerea
intrebarii pentru care se doreste inregistrarea raspunsului
- completarea formularului cu enuntul raspunsului, alegerea variantei de raspuns
corect / incorect
- inregistrarea raspunsului
5 Rezultate elevi. Vizualizarea evolutiei elevilor pentru fiecare tematica in
parte. - alegerea tematicii pentru care se doreste vizualizarea rezultatelor
elevilor
- vizualizarea elevilor care au parcurs teste pentru o tematica aleasa
- alegerea unui elev pentru care se doreste vizualizarea rezultatelor la teste
acontinuare tabeli
EVENIMENT FUNCTIA ATASATA
EVENIMENTULUI EXPLICATIE
(Ce presupune functia atasata evenimentului ?)
6 Cautarea de rezultate a unui elev. Cautare rapida a rezultatelor elevilor.
- completarea formularului cu numele de utilizator, numele sau prenumele cursantului
care se doreste a fi cautat
- apasarea butonului de cautare
- returnarea sau nu de date in functie de criteriul cautat
7 Un profesor doreste sa parcurga un test pentru verificarea intrebarilor. Alegerea
tematicei din care se doreste a se da testul. - selectarea tematicii prin apasarea
unui radiobuton aferent tematicii respective
- completarea formularului pentru a genera testul, prin alegerea de intrebari
din fiecare grad de dificultate (I, II si III)
- se afiseaza in mod aleator intrebari care corespund setarilor de la pasul
anterior
- se raspunde la intrebari prin bifarea raspunsurilor care se cred corecte dupa
care se verifica corectitudinea raspunsurilor prin validarea formularului
- se afiseaza rezultatul testului printr-o nota in functie de raspunsurile corecte
precum si variantele corecte ale intrebarilor din componenta testului
8 Profesorul doreste cautarea rapida a unor intrebari sau a unor raspunsuri
Scrierea cheii de cautare. - se completeaza cuvantul sau fraza dupa care se
doreste efectuarea cautarii
- se aleg parametrii de cautare, care consta in: cautare dupa intrebare sau
raspuns, dupa gradul de dificultate al intrebarii, tipul de sortare (ASC sau
DESC) precum si criteriul de cautare
acontinuare tabeli
EVENIMENT FUNCTIA ATASATA
EVENIMENTULUI EXPLICATIE
(Ce presupune functia atasata evenimentului ?)
9 Se doreste modificarea datelor personale ale profesorului. Actualizarea datelor
personale ale profesorului. - completarea formularului cu noile date despre
persoana in cauza (profesorul).
- testarea datelor completate in formular prin actionarea butonului de inregistrare.
- actualizarea datelor personale.
10 Un elev doreste sa parcurga un test pentru verificarea cunostintelor. Alegerea
disciplinii si tematicii din care se doreste evaluarea. - selectarea disciplinii
din lista disciplinelor inregistrate pana la acea ora.
- alegerea unei tematici pentru disciplina aleasa prin apasarea unui radiobuton
aferent tematicii respective.
- completarea formularului pentru a genera testul, prin alegerea de intrebari
din fiecare grad de dificultate (I, II si III) .
- se afiseaza in mod aleator intrebari care corespund setarilor de la pasul
anterior.
- se raspunde la intrebari prin bifarea raspunsurilor care se cred corecte dupa
care se verifica corectitudinea raspunsurilor prin validarea formularului.
- se afiseaza rezultatul testului, se acorda o nota care tine cont de raspunsurile
corecte ale elevului.
- inregistrarea rezultatului testului.
acontinuare tabeli
EVENIMENT FUNCTIA ATASATA
EVENIMENTULUI EXPLICATIE
(Ce presupune functia atasata evenimentului ?)
11 Un elev doreste sa-si urmareasca evolutia la o anumita disciplina. Alegerea
disciplinii pentru care se doreste vizualizarea rezutatelor. - selectarea disciplinii
din lista de discipline disponibile, pentru care se doreste afisarea rezultatelor.
- alegerea tematicii pentru care se doreste afisarea rezultatelor.
- afisarea rezultatelor pentru tematica aleasa.
12 Se doreste modificarea datelor personale ale elevului. Administrarea contului
de elev. - completarea formularului cu noile date personale ale elevului
- testarea datelor completate in formular prin actionarea butonului de inregistrare
- actualizarea datelor personale ale elevului prin inregistrarea lor
PROIECTARE
In aceasta etapa voi tine cont de cea ce am specificat pana acum la punctele
de dinainte si anume: de lista cu entitati si atribute pentru a crea diagrama
Entitate-Relatie, de lista cu evenimente si functii pentru a realiza diagrama
de funtii cu evenimentele corespunzatoare.
Diagrama Entitate-Relatie este o forma intermediara intre „schita”
de entitati si atribute, descrisa anterior si schema bazei de date. Aceasta
diagrama este independenta de sistemul de baza de date ales.
Anticipez ca in implementare voi folosi ca sistem de baza de date produsul
MySQL.
La implementarea propriuzisa a schemei bazei de date am folosit utilitarul bine
cunoscut, phpMyAdmin versiunea 2.6.1- pl3, care este o aplicatie Web foarte
complexa construita in limbajul de programare PHP, si care face posibila comunicarea
cu serverul de daze de date prin intermediul browserului astfel usurandu-ne
mult munca, nefiind obligati sa interogam serverul de baze de date in linia
de comanda.
Schema bazei de date se obtine foarte usor odata ce avem la dispozitie diagrama
Entitate-Relatie. Aceasta diagrama este independenta de metoda de dezvoltare
aleasa. Ea are rolul de a repartiza atributele la entitatile corespunzatoare
si de a stabili legaturile care exista intre entitati asa cum se observa in
figura 2.
In diagrama, in fata atributelor apare unul din simbolurile: # (diez), * (asterix);
ele au o anumita semnificatie pentu atributul pe care il preceda. Semnul diez
(#) indica faptul ca atributul este parte a elementului de identificare al entitatii
de care apartine atributul si semnul asterix (*) semnifica un atribut obligatoriu.
Pentru a concepe structura bazei de date trebuie sa intelegem diagrama; pentru
a o intelege si pentru a ne folosi de ea ulterior, este foarte important sa
stim cum se citeste diagrama. Mai jos voi reda citirea diagramei intr-un tabel.
Tab. 6 CITIREA DIAGRAMEI ENTITATE - RELATIE
O DISCIPLINA poate fi pentru unul sau mai multi PROFESORI. si Un PROFESOR,
care este subtip de USER, trebuie sa aiba o DISCIPLINA si numai una.
Pentru o DISCIPLINA poate exista una sau mai multe TEMATICI. si O TEMATICA
trebuie sa fie pentru o DISCIPLINA si numai una.
Un ELEV, care este subtip de USER, poate parcurge unul sau mai multe TESTE.
si Un TEST trebuie sa fie al unui ELEV si doar unui ELEV.
O TEMATICA poate avea inregistrata una sau mai multe INTREBARI. si O INTREBARE
trebuie sa fie pentru o TEMATICA si doar unei TEMATICI.
O INTREBARE poate avea inregistrata unul sau mai multe RASPUNSURI. si Un RASPUNS
trebuie sa fie pentru o INTREBARE si doar unei INTREBARI.
Un RASPUNS poate exista in mai multe TESTE. si Un TEST trebuie are un tip de
RASPUNS si doar unul.
In tabel am folosit cuvinte italice pentru exprimarea tipului de relatie din
diagrama: relatie optionala (redata in diagrama prin linie intrerupta) si relatie
obligatorie (redata in diagrama prin linie continua). Am folosit cuvinte ingrosate
pentru cuvintele din diagrama corespunzatoare legaturilor dintre entitati. Cuvintele
scrise cu litere mari reprezinta entitatile.
Se observa din diagrama ca avem o relatie de tip-subtip intre entitatile: user
(cu rol de supertip) si elev, profesor si administrator (cu rol de subtip),
ceea ce inseamna ca un user poate sa joace un singur rol: de elev, de profesor
sau de administrator.
Diagrama functionala (diagrama de functii) exprima modul in care se comporta
sistemul la aparitia unui eveniment. Pentru construirea diagramei de functii
am luat in calcul lista cu evenimente si funtii din tabelul 5.
In diagrama de functii evenimentele sunt redate cu sageti etichetate, iar functiile
sunt date prin dreptunghiuri cu colturi rotunjite, deasemenea etichetate.
In figura 3 am reprezentat diagrama de functii.
Fig. 3
Continuare diagrama functionala profesor.
Continuare diagrama functionala elev.
Tipul arhitecturii pentru aplicatia creata
Pentru a argumenta tipul arhitecturii utilizate in aplicatie voi mentiona tipurile
arhitecturilor de aplicatie existente la ora actuala.
Exista trei tipuri de arhitecturi de aplicatie. Le voi prezenta pe scurt in
ordinea dezvoltarii.
Prima arhitectura numita desktop se distinge prin faptul ca atat baza
de date (BD) cat si aplicatia sunt pe acelasi sistem de calcul.
Fig. 4 PREZENTAREA ARHITECTURII DESKTOP
Sistem de calcul
APLICATIE
BAZA DE DATE
In arhitectura client-server sunt implicate doua tipuri de sisteme de calcul
asa cum reiese din denumirea arhitecturii: unul client si altul server. Pe sistemul
client ruleaza „aplicatia client” care comunica cu baza de date
situata pe alt sistem de calcul -; server de baze de date (serverul BD).
Fig. 5 PREZENTAREA ARHITECTURII CLIENT-SERVER
CLIENT SERVER
APLICATIE BAZA DE DATE
Al treielea tip de arhitectura -; arhitectura multistrat - se caracterizeaza
prin existenta, generic vorbind, a trei sisteme de calul: clientul, serverul
de aplicatii si serverul de BD. In realitate pot exista o multime de sisteme
de calcul la fiecare strat.
Clientul are un browser de Internet, serverul de aplicatii este WEB server-ul
care contine definitiile claselor ce descriu regulile de business (adica lucrurile
care se schimba in timp) si exista, separat, serverul de BD. Aici se dovedeste
importanta programarii obiectuale prin proprietatile ei de incapsulare a datelor
(ascunderea detaliilor), mostenire (reutilizarea unei clase in modelarea altei
clase care este o specializare a celei dintai) si polimorfism (proprietatea
unei metode de a se adapta in functie de tipul obiectului care o apeleaza).
Fig. 6 PREZENTAREA ARHITECTURII MULTISTRAT (INTERNET)
CLIENT -WEB SERVER SERVER DE APLICATII
SERVER BD
APLICATIE CARE RULEAZA
REGULILE DE BUSINESS
ALE APLICATIEI BAZA DE DATE
BROWSER INTERNET
DEZVOLTARE
Ca si la orice aplicatie care se respecta, voi mentiona in randurile care urmeaza,
ce voi imbunatatii in versiunea noua a aplicatiei „Mediu de testare”.
Un element principal si o noutate, cred ca va fi bine salutata, in special de
catre profesorii care fac parte din ariile curriculare stintifice si tehnice
cum ar fi: matematica, fizica, chimie, tehnologie si altele, va fi posibilitatea
atasarii de imagini la intrebari si raspunsuri oferindu-le astfel posibiltatea
de a atasa imagini cu formule sau grafice si care cred ca va usura mult formularea
intrebarilor si a raspunsurilor care la acet monent se rezuma doar la o descriere
textuala, dar si acest fel de descriere este bine salutat mai ales de catre
profesorii din ariile curriculare om si societate (istorie, limba romana, limbile
straine si altele).
Ramanand la modulul de intrebari si raspunsuri, o alta dezvoltare ar fi posibilitatea
inregistrarii a mai mult de 3 raspunsuri pentru o intrebare, precum si mai multe
variante de raspuns, in sensul ca o intrebare poate avea mai multe raspunsuri
corecte.
O alta dezvoltare care va avea impact mai mare asupra elevilor si profesorilor
va fi posibilitatea comunicarii prin mesaje scrise intre profesor si elev, putand
astfel discuta direct din conturile lor despre evolutia elevului.
Venind in sprijinul adinistratorului aplicatiei va fi creat module de vizualizare
online a numarului de utilizatori precum si a numelor utilizatorilor aflati
online.
In speranta ca acest produs, acesta aplicatie, in viitorul apropriat sau indepartat
va putea intra pe „piata” educationala m-am gandit ca o varianta
in limba engleza va fi bine venita.
IMPLEMENTARE
La implementarea aplicatiei „mTest” am folosit limbajul de programare
„PHP”, cu care am realizat partea dinamica a aplicatiei, care cred
ca a fost foarte bine descris in prima parte a lucrarii de fata, cu avantajele,
dezavantajele pe care le ofera.
Deasemenea ca sa lucrezi cu limbajul de programare „PHP” este absolut
necesar sa lucrezi cu limajul „HTML”, fiindca se completeaza reciproc.
La verificarea si validarea formularelor s-a folosit limbajul „Java Script”
fiindca acest limbaj ofera posibilitatea de a verifica formularele fara ca acestea
sa fie incarcate intr-o noua pagina. Tot cu ajutorul „Java Script”
s-a realizat efectele pentru tabele, facandu-le astfel mai estetice, mai primitoare
la impactul cu ochiul utilizatorului. Tot in „Java Script” este
realizat si meniul aflat in stanga ecranului sus, pentru toate tipurile de utilizatori:
elev, profesor si administrator.
Sereverul de baze de date este serverul „MySQL”, este un server
de baze de date cu care limbajul „PHP” lucreaza foarte bine, de
fapt pentru acest limbaj a fost creat, si deasemenea s-a tinut cont la alegerea
acestor instrumente de realizare a proiectului, de faptul ca aceste aplicatii
nu necesita licenta deci sunt gratuite, nemaivorbind de faptul ca daca alegeam
varianta „Ms SQL” pentru serverul de baze de date si „ASP”
limabajul de manipulare a datelor si de interactiune cu datele din serverul
„Ms SQL” ar fi necesare licente care totusi sunt costisitoare pentru
o institutie de invatamant.
TESTARE
Am folosit aceasta etapa pentru a-mi verifica rezultatele obtinute atat
pe fiecare componenta in parte cat si pentru produsul final.
Pentru aceasta etapa, atat pentru testarea pe componente cat si
pentru testarea produsului final, am folosit seturi de date virtuale, alese
special in acest scop.
O monstra de test pentru produsul final o reprezinta exemplele din cadrul acestei
lucrari si cele din partea de documentatie -; Instruire - pusa la dispozitia
utilizatorului printr-o optiune de meniu.
Este demn de mentionat faptul ca pentru testarea aplicatiei am avut sprijinul
unor colegi profesori din institutia unde lucrez, si astfel s-a realizat o testare
efectiva cu profesorii care au completat tematici si intrebari cu raspunsurile
aferente intrebarilor, pentru disciplinele la care au fost inregistrati. Pe
de alta parte modulul de elev a fost testat pe langa mine, la fiecare pas in
parte, si de catre elevi care au completat formularul de instriere in aplicatie,
si astfel avand cont deschis au avut acces la modulele pe care aplicatia o pune
la dispozitia lor si anume: modulul de testare propriuzisa unde isi evalueaza
cunostintele, modulul de statistici unde poate vizualiza numarul de tematici,
de intrebari si raspunsuri pentru fiecare disciplina in parte, precum si date
despre numarul de utilizatori cu cont activat sau nu si alte statistici utile
in orientarea lor, modul de vizualizare a evolutiei lor si modului de actualizare
a datelor personale.
DOCUMENTARE
Pentru documentarea aplicatiei am folosit produsul Html Help Workshop. Acesta
permite creare si asamblarea componentelor html. Eu am folosit produsul doar
pentru asamblarea componentelor pe care le creasem anterior.
Utilizatorul are acces la partea de documentare prin intermediul unei optiuni
din meniul principal al aplicatiei.
Interfata documentatiei o reprezinta o fereastra din care utilizatorul poate
accesa doua pagini: pagina de index cu informatie organizata alfabetic si pagina
de continut cu capitole corespunzatoare modului de lucru cu aplicatia, instalarii,
exemplificarii.
3. MEMORIU JUSTIFICATIV
Pentru implementarea aplicatiei am ales produsul Macromedia Dreamweaver MX
2004 deoarece acest produs este destinat aplicatiilor Web, a limbajelor de programare
dinamice centrate pe baze de date, dar si statice cum este „HTML”,
si pune la dispozitia dezvoltatorului un set de unelte care-i usureaza foarte
mult munca.
3.1. SCHEMA BAZEI DE DATE
Luand in considerare etapele anterioare de analiza si proiectare pot defini
schema bazei de date. Aceasta contine 6 tabele conform entitatilor definite
in tabelul nr. 2.
Fig. 7 BAZA DE DATE mTest CU TABELELE AFERENTE
Tabelele au intre ele legaturi de tipul 1 : N sau 1 : 1, legaturi care rezulta
din tabelul nr. 4 in care am utilizat tehnica grilajului.
3.2. STRUCTURA BAZEI DE DATE mTest
Mentionez faptul ca in baza de date, mTest, nu am stabilit reguli de integritate
referentiala pentru operatiile de: modificare, stergere si inserare, deoarece,
am tinut cont de regulile intergritatii referentiale la implementarea acestor
operatii in cod.
Fig. 8 Tabela „disciplina”
Fig. 9 Tabela „intrebari”
Fig. 10 Tabela „raspunsTest”
Fig. 11 Tabela „raspunsuri”
Fig. 12 Tabela „tematica”
Fig. 13 Tabela „users”
3.3. CONTRIBUTII PERSONALE
Exista mai multe posibilitati de abordare a unei aplicatii: pornind de la functii
sau pornind de la date. In ambele cazuri exista diferite modalitati de realizare
a operatiilor propuse. Eu am ales a doua varianta de implementare: pornind de
la date.
Interfata cu utilizatorul este cea mai importanta, deoarece, ea este aceea care
convinge utilizatorul de necesitatea unei astfel de aplicatii si de faptul ca
munca lui devine astfel mult mai usoara si mai atractiva. Nu am optat pentru
o grafica extraordinara si multe imagini din cauza ca acestea aduc aplicatiei
o incarcare prea mare si deci in consecinta viteza de lucru va avea de suferit,
dat fiind faptul ca aplicatie este orientata spre internet, unde fiecare utilizator
are la dispozitie diferite viteze (trafic), am optat pentru a nu incarca prea
mult paginile pentru a castiga la viteza de accesare a paginilor.
Aceasta aplicatie a fost conceputa pentru a veni in sprijinul profesorilo si
ai ajuta pe elevi sa se evalueze continuu si mai eficient. Pentru accesul la
aplicatie este nevoie de o autentificare pe baza unui nume de utilizator si
a unei parole. Ce trebuie facut pentru a face rost de un nume de utilizator?
Foarte simplu, din cauza ca aplicatia este pe trei niveluri de securitate, contul
de profesor va fi elaborat de catre administratorul aplicatiei; exemplu: profesorul
X din institutia Y doreste un cont pentru a crea tematici si astfel teste pentru
elevi, el se adreseaza administratorului alpicatiei care ii creaza un cont partial
doar cu numele de utilizator si adresa de mail al profesorului pentru disciplina
la care a optat, astfel se genereaza un mail automat care va fi trimis la profesorul
care a solicitat contul, el va urmari linkul generat in mail pentru asi finaliza
inregistrarea. La finalizarea inregistrarii va primi un mesaj care ii transmite
ca poate sa se autentifice in aplicatie deoarece toti pasii necesri inregistrarii
au fost efectuati.
In cazul in care cel care doreste inregistrarea este elev el poate sa faca acest
lucru din pagina principala de autentificare, unde scrie “Cont nou”.
Tot de pe pagina de start a aplicatiei exista linkuri pentru recuperarea parolei
campuri pentru completarea numelui de utilizator si a parolei acestuia precum
si butonul pentru validarea datelor completate in cele doua campuri.
In functie de contul cu care se face autentificarea utlizatorul este directionat
spre pagina de start unde in partea superioara stanga se afla meniul aplicatiei
de unde se poate face navigarea spre modulele pe care le pune la dispozitie
aplicatia. Aplicatia de fata are in dotare un meniu care difera in functie de
niveul de securitate, astfel exista un numar de trei meniuri: unul pentru elev,
unul diferit pentru profesor si un altul care la fel este diferit de celelalte
doua, pentru administrator.
In figura urmatoare voi exemplifica meniurile:
Fig. 15 Meniurile aplicatiei.
Meniul elevului Meniul profesorului Meniul administratorului
De mentionat este faptul ca pentru realizarea meniurilor a fost nevoie de limbajul
„Java Script” si ca nu este creatie a mea ci preluat de pe site-ul
firmei „Soft Complex” aSoftCom2005i si adaptat aplicatiei de fata.
1. Meniul elevului
Dupa cum se poate observa meniul elevului refera mai multe operatii cum ar fi:
a. „Parcurgere test” -; acest modul este pagina implicita care
apare daca autentificarea este facuta fara erori si de aici se lanseaza evaluarea
pentru disciplina aleasa conform figurii 16. b. “Rezultate teste” -; este modulul in care se pot vizualiza
rezultatele la testele parcurse, conform Anexei 1. c. “Statistici” -; este pagina in care sunt afisate diferite
statistici referitoare la materialul educational inregistrat, la utilizatori,
etc, conform Anexei 2. d. “Editare profil” -; este modulul unde se afiseaza intr-un
formular datele personale declarate la inregistrarea contului, avand posibilitatea
de a modifica si deci actualiza atat parola de acces cat si datele personale
ca de exemplu: numele, prenumele, adresa, adresa de mail precum si intrebarea
de securitate cu raspunsul acesteia, care ne ajuta la recuperarea parolei in
cazul in care s-a uitat, conform Anexei 3. e. “Vizualizare profil” -; afiseaza informatiile declarate
in formularul de la pagina de “Editare profil” sub forma tabelara,
conform Anexei 4.
2. Meniul profesorului
Modulele principale ale profesorului: a. “Inregistrari” -; este pagina pricipala (implicita) a profesorului
daca atentificarea s-a facut cu succes. In acesta pagina se pot face mai multe
operatii dupa cum se pot observa in Anexa 5 , printre ele amintesc declarare
de tematici sau altfel spus lectii pentru o disciplina, introducerea de intrebari
pentru o lectie selectata, directionare spre un modul de inregistrare intrebare
direct dintr-un select, si un select in care se afla tematicile declarate care
afiseaza un alt select ascuns in care sunt toate intrebarile inregistrate pe
tematica repectiva, putand apoi selecta o intrebare pentru ai putea inregistra
raspunsuri. b. “Tematici” -; in acest modul profesorul are posibilitatea
de a administra tematicile inregistrate pentru disciplina, adica poate vizualiza
sub forma tabelara tematicile, poate vizualiza numarul de intrebari inregistrate
pentru fiecare tematica in parte, are link pentru directionarea spre modulul
de inregistrare intrebari pentru tematica selectata, deasemenea are link pentru
directionarea spre modulul de vizualizare a intrebarilor pentru tematica in
cauza, dar are posibilitatea de a modifica numele tematicii si in acelasi timp
are instrumente de a sterge una sau mai multe tematici, acest lucru fiind posibil
de care butoanele “checkbox” care pot fi selectate unul cate unul
cu ajutorul mousului sau prin selectarea unui “select” care are
functia de a bifa (selecta) toare inregistrarile (tematicile) din tabel, iar
stergerea se poate face prin actionarea butonului de “Sterge inregistrari
selectate”. Daca se opteaza pentru stergerea unei tematici sau chiar mai
multe trebuie stiut faptul ca odata stersa o tematica va fi sters toate intrebarile,
toate raspunsurile precum si rezultetele elevilor care au fost testati din tematica
sau tematicile respective. De mentionat este faptul ca functiile care fac posibila
selectarea automata prin bifarea butoanelor “checkbox”, a tuturor
inregistrarilor dintr-un tabel nu este creatie proprie ci este copiata de pe
site-ul Inspectoratului Scolar Judetean Cluj: “https://isjcj.ro/webmail”
. Un exemplu al acetui modul cu instructiunile de vigoare il puteti gasi in
Anexa 6. c. “Intrebari” -; acest modul refera operatii ca vizualizarea
tabelara a intrebarilor inregistrate pentru disciplina pe care esti conectat,
posibilitatea sortarii intrebararilor dupa enut si gradul de dificultate al
intrebarilor, contine linkuri care face directionarea spre module cum ar fi:
inregistrare raspunsuri pentru intrebarea aleasa, vizualizarea raspunsurilor
inregistrate pentru intrebarea aleasa, modificarea intrebarii precum stergerea
de intrebari prezentat anterior la modulul “Tematici”. Acest modul
are si o posibilitate de a naviga mai radid insensul daca exista un numar mare
de intrebari pentru o disciplina, dupa cum se si intentioneaza, am facut posibila
impartirea intrebarilor pe o pagina in functie de optiunea dorita de administratorul
aplicatiei care va seta numarul preferat de intrebari per pagina din fisierul
de configurare “function.php” setand variabila $maxPerPage, implici
acesata variabila este setata la 14. Functia care face posibila navigarea din
pagina in pagina (aproape din apropape) este displayPrevNxtLinks($pageNumber,
$totalEntries, $maxPerPage). Dar am realizat deasemenea tot la acest modul,
venin astfel in ajutorul profesorului, un lucru zic eu util, acela de a afisa
numarul de pagini cu link la fiecare numar, astfel putandu-se sari oricand la
pagina dorita fara a mai parcurge pagina dupa pagina. Acest modul este exemplificat
in Anexa 7. d. “Raspunsuri” -; acest modul pune la dispozitia utilizatorului
aceleasi module casi modulul precedent, “Intrebari” cu deosebirea
ca datele de manipulat nu sunt intrebari ci raspunsuri. O explicatie in imagini
va putea fi consultata in Anexa 8. e. “Statistici” -; este pagina in care sunt afisate diferite
statistici referitoare la materialul educational inregistrat, la utilizatori,
etc, conform Anexei 2. f. “Rezultate elev” -; este modulul in care profesorul poate
vizualiza rezultatele elevilor care au parcurs teste la disciplina in cauza.
Aceste grafice care arata evolutia elevului pot fi generate fie prin alegerea
unei tematici si apoi prin alegerea elevului pentru care se doreste vizualizarea
evolutiei, fie prin cautarea unui elev dupa cateva criterii de cautare. Acest
modul poate fi zizualizat in proiect la Anexele 9 si 10. g. “Parcurge test” -; acest modul este acelasi modul ca cel
descris la meniul elevului, cu deosebirea ca profesorul nu poate parcurge test
doar la disciplina pentru care este autentificat, si o alta deosebire este faptul
ca la generarea notei pentru profesor aceasta nu va fi inregistrata in baza
de date fiind doar afisata. Acest modul a fost introdus pentru a putea verifica
si vizualiza cum va arata testele care urmeaza a fi parcurde de catre elevi.
O descriere in imagini va fi disponibila in Anexa 11. h. “Cautare avansata” -; este modulul in care profesorul gaseste
instrumente de cautare rapida a intrebarilor si raspunsurilor dupa anumite criterii
de cautare si sortare. Se pot cauta intrebari dupa: enuntul intrebarii, dupa
gradul de dificultate, si datele rezultate sa fie sortate deasemenea ascendent
sau descendent, dupa alegerea utlizatorului. La cautarea raspunsurilor deasemenea
se pot alege urmatoarele criterii de cautare: dupa enuntul raspunsului si atributului
raspunsului (care poate fi corect (TRUE) sau incorect (FALSE)) si deasemenea
instrumente de sortare. O imagine mai clara despre acest modul se poate consulta
in Anexel 12 si 13. i. “Editare profil” -; este modulul unde se afiseaza intr-un
formular datele personale declarate la inregistrarea contului, avand posibilitatea
de a modifica si deci actualiza atat parola de acces cat si datele personale
ca de exemplu: numele, prenumele, adresa, adresa de mail precum si intrebarea
de securitate cu raspunsul acesteia, care ne ajuta la recuperarea parolei in
cazul in care s-a uitat, conform Anexei 3. j. “Vizualizare profil” -; afiseaza informatiile declarate
in formularul de la pagina de “Editare profil” sub forma tabelara,
conform Anexei 4.
La inregistrarea datelor, la modificarea si la stergerea datelor in si din baza
de date am folosit formulare.
Un exemplu de formular este acela pe care elevii trebuie sa-l completeze pentru
a putea folosi aplicatia, este formularul in care isi alege numele de utilizator,
o parola si apoi isi declara datele personale necesare inscrierii pe site precum
in figura 17.
Fig. 17. Formularul de inregistrare cont elev.
Dupa cum se poate vedea in figuar 17 datele necesre inregistrarii unui elev
sunt: numele de utilizator, parola, o intrebare de securitate, raspunsul la
intrebarea de securitate, numele, prenumele, adresa, varsta si adresa de e-mail.
Este necesara adresa de e-mail pentru ca se va genera un mail de catre aplicatie,
pe care il va primi solicitantul contului (in cazul de fata d-sorul Ionescu).
Acest mail va contine un link care va directiona elevul spre pagina de activare
a contului. Aceasta activare este necesara pentru a putea folosi contul proaspat
creat. Daca urmariti in figura 17 la campurile de “Parola” si “Confirmare
parola” intentionat am completat campul de “Confirmare parola”
cu un caracter mai putin pentru a arata felul in care se genereaza erorile la
validarea formularelor (fig 18), bineinteles daca acestea exista, in cazul in
care nu exista erori la completarea formularelor se va genera un mesaj de succes
(figura 19).
Fig. 18. Afisarea erorilor la formulare.
Fig. 19. Afisarea mesajului de succes operatie la formulare.
Formularul elevului
Elevul nu trebuie sa foloseasca multe formulare, deci are doar unul care se
refera la modificarea detelor contului si se aseamana foarte mult cu formularul
care il completeaza in momentul inscrierii pe site. Singura deosebire este faptul
ca nu are dreptul sa modifice numele de utilizator dar in schimb poate modifica
parola si datele personale. Pentru o vizualizare mai deaproape a formularului
se poate consulta sectiunea cu anexe la Anexa 14.
Formularul administratorului
Singurul formular al administratorului este formularul cu ajutorul caruia administratorul
creaza cont de profesor. Exemplu figura 20.
Fig. 20 Formular de inregistrare cont profesor.
Formularele profesorului
Formularul de inregistrare a tematicilor
Primul formular asupra caruia voi insista este formularul in care se inregistreaza
o tematica noua sau altfel spus lectie noua pentru o disciplina.
Fig. 21 Formularul de inregistrare a tematicilor
Pentru o disciplina poate exista un numar nelimitat de tematici (prefer sa folsesc
mai mult acest termen). Dar exista niste restrictii date prin programare, acela
ca nu pot exista pentru o disciplina mai multe tematici identice, precum si
lungimea unei tematici trebuie sa fie mai mare de 5 caractere. Acest lucru a
fost realizat in felul urmator: dupa validarea formularului, se citeste intr-o
variabila datele introduse in campul text, se face o scanare a tabelei “Tematica”
cu comanda:
$sqlS="SELECT COUNT(*) AS nrTematica FROM tematica WHERE tematica='$tematica'
AND disciplinaId='$disciplinaId'"; //se introduce in variabila $sqlS interogarea
ce //contorizeaza tematicile cu numele tematicii care se doreste introdusa.
$tematica -; este //variabila care prea valoarea introdusa in formular;
$disciplinaI -; este variabila in care este numarul de indentificare a
disciplinii in cauza
$resultS = mysql_query($sqlS) or die ("Nu poate executa comanda de caunt.
"); // se executa interogarea.
In nrTematica se va inregistra rezultatul interogarii, daca acesta valoare este
mai mare decat “0” inseamna ca exista inregistrata o tematica cu
numele dorit si se va afisa un mesaj de eroare corespunzator, conform figurii
22. Daca rezultatul interogarii este “0” atunci se va inregistra
tematica pentru disciplina in cauza, bineinteles afisandu-se un mesaj corespunzator
de succes al operatiei.
Fig. 22
Formularul de inregistrare a intrebarilor
Acest formular este impartit in doua, in sensul ca se pot introduce intrebari
in doua moduri: a. inregistrare intrebare pentru o tematica, tematica fiind aleasa dintr-o lista
de tematici, conform figurii 23. b. inregistrare intrebare pentru o singura tematica, singura deosebire este
aceea ca la aceasta optiune se introduc intrebari noi intr-o pagina separata,
in care in partea inferioara a formularului se si afiseaza intrebarea inregistrata,
si tematica este selectata o singura data, stindu-se astfel ca intrebarile vor
fi inregistrate pentru tematica in cauza nu ca in cazul “a” cand
trebuie facuta selectarea tematicii pentru fiecare intrebare care se doreste
inregistrata, conform Anexei 15.
Fig. 23 Formularul de inregistrare intrebare