Sunteți pe pagina 1din 78

UNIVERSITATEA POLITEHNICA BUCURESTI

FACULTATEA DE AUTOMATICA SI CALCULATOARE

DEZVOLTAREA UNEI PLATFORME


E-LEARNING

Coordonator:
Prof. dr. ing. Dorin Carstoiu

Absolvent:

- BUCURESTI 2008 1

Cuprins:
CAP. 1: CONCEPTE E-LEARNING..........................................................................................
1.1 EDUCATIA LA DISTANTA DEFINITII...................................................................................................
1.2 E-LEARNING CADRU CONCEPTUAL..................................................................................................
1.3 MODELE DE EDUCATIE LA DISTANTA..................................................................................................
1.4 TIPURI DE EDUCATIE LA DISTANTA.....................................................................................................
1.5 INSTITUTII VIRTUALE........................................................................................................................
1.6 CERTIFICARI ONLINE........................................................................................................................
1.7 ALEGEREA UNEI SOLUTII E-LEARNING.............................................................................................
1.8 AVANTAJE SI DEZAVANTAJE..............................................................................................................

CAP. 2: PREZENTAREA TEHNOLOGIILOR UTILIZATE................................................


2.1 SISTEME DE GESTIUNE A BAZELOR DE DATE (SGBD).....................................................................
2.1.1 Istoric; comentarii......................................................................................................................................
2.1.2 Definirea sistemelor de gestiune a bazelor de date relaionale..................................................................
2.1.3 Criterii minimale de definire a unui SGBDR.............................................................................................

2.2 PHP....................................................................................................................................................
2.3 POSTGRESQL..................................................................................................................................
2.3.1 Alegerea pachetului PostgreSQL...............................................................................................................

2.4 AJAX (ASYNCHRONOUS JAVASCRIPT AND XML)...........................................................................


2.4.1 Prezentare generala....................................................................................................................................
2.4.2 Istoric..........................................................................................................................................................
2.4.3 Avantaje ale tehnologiei AJAX..................................................................................................................
2.4.4 Dezavantaje................................................................................................................................................

2.5 HTML SI CSS..................................................................................................................................


2.5.1 HTML (HyperText Markup Language).....................................................................................................
2.5.2 CSS (Cascading Style Sheets)....................................................................................................................

2.6 APACHE WEB SERVER......................................................................................................................


2.7 UML..................................................................................................................................................

CAP. 3: PROIECTAREA BAZEI DE DATE............................................................................


CAP. 4: PREZENTAREA APLICATIEI E-LEARNING.........................................................
4.1 LOGAREA/DELOGARE IN APLICATIE..................................................................................................
4.2 STRUCTURA APLICATIEI....................................................................................................................
4.2.1 utilizatorul Angajat.................................................................................................................................
4.2.2 utilizatorul Vanzari Directe.....................................................................................................................
4.2.3 utilizatorul Administrator.......................................................................................................................
4.2.4 utilizatorul Sef Departament...................................................................................................................
4.2.5 utilizatorul Supervizor............................................................................................................................
4.2.6 utilizatorul HR........................................................................................................................................

4.3 PROIECTAREA SISTEMULUI INFORMATIC...........................................................................................


4.4 DEZVOLTARI ULTERIOARE...............................................................................................................

CONCLUZII................................................................................................................................
BIBLIOGRAFIE..........................................................................................................................
ANEXA 1 CLASA ADODB..................................................................................................................
ANEXA 2 - CLASA ADLDAP................................................................................................................
ANEXA 3 EXTENSII FPDF................................................................................................................

ANEXA 4 INSTALAREA SI CONFIGURAREA APLICATIEI.......................................................

Cap. 1: Concepte e-Learning


Prefata
Abordarea nvmntului la distan ca modalitate alternativ sau complementar de a
face educaie pornete de la asigurarea i respectarea unor criterii de calitate n ce privete
aspectele pedagogice, academice, administrative, tehnice.
Conceptul pregtire pentru via, care a constituit mult vreme un obiectiv major al
sistemelor educative din ntreaga lume, a devenit redundant n perspectiva deschis de uriaele
transformri din societate datorate schimbrilor tehnologice i economice. Cu treizeci de ani n
urm, educaia pe tot parcursul vieii putea fi privit ca o opiune pentru o vrst cu mai mult
timp liber. Acum a devenit o necesitate. Ofertele de educaie i pregtire au devenit segmentate i
diversificate, n acord cu variatele cereri ale consumatorilor care pltesc pentru module educative
ajustate pe propriile nevoi.
Educaia la distan este doar o expresie a acestei noi orientri spre consumator a
diverselor instituii de pregtire. Acumularea de credite i transferul, modularizarea cursurilor
sunt pri ale aceleiai transformri de structur a sistemului de nvmnt.
Rezultatele cercetrilor de pn acum, realizate n rile cu tradiie n educaia prin
coresponden, relev faptul c nvmntul la distan este la fel de eficient ca formele
tradiionale de educaie, cu condiia unei proiectri corespunztoare. Spre exemplu, la cererea
Federaiei Americane a Profesorilor i Asociaiei Naionale pentru Educaie, Institutul pentru
Politici Educaionale din Statele Unite a iniiat o cercetare privind eficacitatea educaiei la
distan, care s-a dorit a fi o analiz a "ceea ce ne spun cercetrile n domeniu i ceea ce nu ne
spun" (The Institute for Higher Education Policy. Whats the Difference? A Review of
Contemporary Research on the Effectiveness of Distance Learning in Higher Education. 1999.
[online] http://www.ihep.com, p. 6.). Raportul sugereaz c multe dintre ntrebrile eseniale
despre modul n care se realizeaz predarea-nvarea la distan nu primesc rspuns. Este oare
mai potrivit educaia la distan pentru anumite obiecte de nvmnt dect pentru altele? Este
mai potrivit pentru anumii studeni? Care sunt cauzele abandonului n cadrul cursurilor la
distan? Sunt bibliotecile i sursele de informare suficiente? Ce elemente sunt necesare pentru ca
un student s absolve cu succes un curs la distan i cum pot fi evaluate acestea? Evaluarea
studenilor n clasele la distan este diferit de evaluarea tradiional? Problemele administrative
afecteaz calitatea instruirii la distan?
Demersul cercetrii asupra educaiei la distan este departe de a fi clarificat problemele
conturate de aceast form de predare-nvare mereu n expansiune.
Oricum, noile tehnologii ale informaiei i comunicrii au dat o mn de ajutor
instituiilor de nvmnt superior n concentrarea asupra scopului esenial al instruirii. Realitatea
ne indic o cerere masiv de cursuri n tehnologia nvmntului deschis i la distan, grefat pe
o nevoie tot mai mare de educaie continu. Problema care se pune n aceste condiii este aceea de
a crete eficiena programelor existente i proiectarea altora, pe baza unei teorii pedagogice a
educaiei la distan care s susin practica la toate nivelele.

1.1 Educatia la distanta definitii


Teoria pedagogic a nvmntului la distan pornete de la ncercrile de definire a
educaiei la distan. Istoric, educaia la distan nsemna studiul prin coresponden, ns
accepiunile actuale tind s fie mai apropiate de metode de transmitere a materialelor susinute de
tehnologii audio, video i (mai frecvent i deschiznd mai multe posibiliti) prin Internet.
n general, se vorbete despre educaie la distan atunci cnd profesorul i studentul
(studenii) sunt separai prin distan fizic i tehnologia (audio, video, reele de calculatoare,
material tiprit), mbinat uneori cu comunicarea fa n fa, este folosit pentru instruire
(Engineering Outreach Staff de la Universitatea Idaho - Distance Education at a Glance). Un alt
numitor comun al definiiilor de pn acum este caracteristica acestui sistem de a augmenta
oportunitile de nvare ale studenilor, prin eliminarea obstacolelor de ordin spaial, temporal
sau a impunerii unui ritm de nvare. Se asigur astfel posibiliti de studiu unor categorii largi
de persoane, fr ntreruperea activitii lor profesionale. Aceasta este de fapt i caracteristica
principal, care face ca sistemul s fie deosebit de viabil pentru ciclurile superioare, pentru
educaia permanent, pentru nvmntul vocaional, i l situeaz potenial printre cele mai
solicitate tipuri de sisteme de educaie ale viitorului.
O excelent definiie cu valoare operaional o d Consiliul pentru Educaie i Instruire la
Distan: "Educaia la distan presupune nscrierea i studiul la o instituie de instruire, care
asigur materialele didactice pregtite ntr-o ordine secvenial i logic pentru ca studenii s
studieze pe cont propriu. La sfritul fiecrei etape, studentul trimite prin fax sau e-mail, ctre
instructori calificai, produsul muncii sale spre corectare, clasare i orientare tutorial pe
problemele temei de studiu. Sarcinile corectate sunt napoiate, acest schimb asigurnd o relaie
student-profesor personalizat." (Consiliul pentru Educaie i Pregtire la Distan http://www.detc.org/)
Unii autori investesc cu semnificaii deosebite interaciunile dintre studeni, poate pentru c
aceasta este una din direciile spre care sistemul de instruire la distan i va depi limitele. Ali
autori accentueaz rolul mediator al profesionitilor educaiei - punerea n legtur a studenilor
cu resursele educaionale de oriunde din lume fiind considerat unul dintre cele mai importante
avantaje ale educaiei la distan prin Internet - n contextul actual al digitizrii culturii, varietii
surselor de informare i dificultii de orientare n cmpul informaional.
n sens larg, prin elearning (sau e-learning) se ntelege totalitatea situatiilor educationale
n care se utilizeaza semnificativ mijloacele tehnologiei informatiei si comunicarii. Termenul,
preluat din literatura anglo-saxona, a fost extins de la sensul primar, etimologic, de nvatare prin
mijloace electronice, acoperind acum aria de intersectie a actiunilor educative cu mijloacele
informatice moderne. Definit astfel, mai mult ca e-education, aria semantica a conceptului elearning interfereaza cu si se suprapune indefinit variabil pe o multitudine de termeni ce surprind
varietatea experientelor didactice ce pot beneficia de suport tehnologic: instruire asistata/ mediata
de calculator, digital/ mobile/ online learning/ education, instruire prin multimedia etc. Sub
denumirea de software didactic/ educational, o gama larga de materiale electronice (pe suport
digital/ multimedia) sunt dezvoltate pentru a simplifica procesul de educatie: harti, dictionare,
enciclopedii, filme didactice, prezentari n diverse formate, carti (e-books), teste, tutoriale,
simulari, software ce formeaza abilitati, software de exersare, jocuri didactice etc. Computerul si
materialele electronice/ multimedia sunt utilizate ca suport n predare, nvatare, evaluare sau ca
mijloc de comunicare (pentru realizarea unor sarcini individuale etc).

n sens restrns, elearning reprezinta un tip de educatie la distanta, ca experienta


planificata de predare-nvatare organizata de o institutie ce furnizeaza mediat materiale ntr-o
ordine secventiala si logica pentru a fi asimilate de studenti n maniera proprie. Medierea se
realizeaza prin noile tehnologii ale informatiei si comunicarii - n special prin Internet. Internetul
constituie att mediul de distributie al materialelor, ct si canalul de comunicare ntre actorii
implicati. Functional deocamdata doar la nivelul nvatamntului superior si n educatia adultilor,
sistemul de instruire prin Internet replica.

1.2 e-Learning cadru conceptual


Cele mai durabile si mai eficiente inovatii sunt acelea pe care beneficiarul le-a
asimilat, adica le-a adoptat pentru ca i satisfac nevoile sale specifice. Sa luam n
considerare ceea ce se ntmpla la nivelul concret al transformarilor produse de noile
tehnologii ale informatiei si comunicarii:
n primul rnd, observam convertirea continutului cultural din ntreaga lume ntr-o
forma digitala, facnd astfel produsele disponibile oricui, oriunde si oricnd. Retelele de
comunicatii cu arie larga si de mare viteza, legnd computerele din apartamente sau de pe
pupitrele elevilor la biblioteci digitale de mare capacitate schimba conditiile culturale n
care se desfasoara educatia. Izolarea este de domeniul trecutului si are loc o substitutie a
insuficientei si perimarii informatiilor cu amploarea si arhisuficienta lor. Problemele
educatiei se schimba profund, alternativa la o cunoastere insuficienta si costisitoare fiind
gasirea strategiilor ce permit accesul nelimitat la cultura.
n al doilea rnd, sunt dezvoltate multiple modalitati de a reprezenta informatii, de a
simula interactiuni si a exprima idei, extinznd achizitiile inteligentei, alternd astfel
spectrul civilizatiei, modificnd cerintele participarii la cultura. Dezvoltarea
epistemologica capata aspecte interesante. Gndirea relationeaza strns cu limbajul,
simbolizarea formala din matematica si logica fiind privita ca o extensie a variatelor
forme lingvistice curente. Mediul digital extinde evident sfera, fiind folosit pentru a
achizitiona informatii si pentru a exprima idei n diverse moduri - verbal, vizual, auditiv
sau mbinarea tuturor acestora. Ca rezultat, educatorilor le va fi din ce n ce mai dificil sa
favorizeze manipularea limbajului verbal n detrimentul celorlalte modalitati de expresie.
n al treilea rnd, oamenii exteriorizeaza diverse abilitati curente - de a calcula, de a
scrie corect, a memora, a vizualiza, a compara, a selecta - n instrumentele digitale cu
care lucreaza, dobndind astfel practic o adevarata maiestrie n ce priveste aceste abilitati,
cndva rezultate ale educatiei. Tehnologiile digitale largesc potentialitatile personale.
Procesoarele de texte, de exemplu, avertizeaza n cazul oricarui cuvnt scris incorect sau
n cazul greselilor gramaticale, foile de calcul permit oricui sa faca rapid si corect calcule
dupa formule extrem de complexe, bazele de date permit si celor cu slabe capacitati de
memorare sa manipuleze seturi ntregi de informatii. Diverse alte forme de instrumente
de lucru specializate reduc nivelul aptitudinal necesar pentru a participa efectiv la o gama
larga de activitati culturale.

Bibliotecile digitale, multimedia si abilitatile exteriorizate schimba sensibil


perspectiva asupra practicii educationale. Introducerea Internetului este evenimentul ce
precipita emergenta unei noi paradigme n educatie si formare. Convergenta, pe fondul
schimbarilor majore din social, a unor factori cum ar fi: 1. dezvoltarea tehnologica, 2.
noile teorii pedagogice si 3. mpartirea responsabilitatii pentru educatie cu diverse alte
institutii - duc la reliefarea unor caracteristici ce dau masura acestei paradigme:

fluiditatea rolurilor
curriculum orientat spre necesitatile particulare ale studentului
resurse distribuite
facilitati virtuale
lectii asincron.

Paradigma noua este strns legata de efectele depasirii culturii tiparului, ntr-o
societate a comunicarii generalizate. Internetul devine, pe zi ce trece, arbitrul accesului la
educatie si cultura, iar forma cea mai potrivita de a veni n ntmpinarea nevoilor de
cunoastere si formare continua este eLearning.

1.3 Modele de educatie la distanta


Spatiul limitat din institutii, precum si diverse dificultati ntmpinate de unii studenti, n
jonctiune cu necesitatea pregatirii pe tot parcursul vietii ce conduce la o cerere de educatie
sporita, conduc la luarea n considerare de catre institutiile traditionale a alternativelor
nvatamntului deschis si la distanta. Diverse modele de educatie la distanta pot fi adoptate, n
functie de scopul urmarit, cererea de educatie si resursele disponibile:

1. Model de sine statator


Presupune o institutie exclusiv virtuala, care va asigura urmatoarele functii:

Dezvoltarea programelor educationale (inclusiv proiectarea materialelor pentru nvatare)


Tutoriat si ndrumare
Producerea, stocarea si distribuirea materialelor pentru nvatare
Administrare si probleme financiare
Marketing
Evaluare si acreditare

Argumentele pentru un sistem educational constituit exclusiv pe criteriul instruirii la distanta sunt
urmatoarele:

Structurile administrative ale sistemelor educationale conventionale nu corespund


dezvoltarii si managementului sistemelor la distanta.
Institutiile traditionale considera adesea educatia la distanta ca avnd rezultate
inadecvate, asadar sunt rezervate n a le aloca resurse.

Cerintele studentilor la distanta pot fi mai bine satisfacute daca institutia este dedicata n
ntregime cerintelor acestora.
Caracteristicile populatiei tinta sunt total diferite n sistemul conventional fata de cel la
distanta.
Pedagogia educatiei la distanta difera de cea a nvatamntului traditional.

Aceste institutii se clasifica n doua tipuri: multi-sectional - asigura pregatire n mai multe
domenii si uni-sectional - asigura pregatire ntr-un singur domeniu.

2. Departament de educatie la distanta n cadrul unei institutii de nvatamnt


existente.
Argumentele pentru un asemenea sistem bimodal sunt:

Materialele suport pentru nvatare pregatite de cadrele didactice pot servi n egala masura
studenti interni si externi de campus.
Materialele de autoinstruire ncurajeaza nvatarea independenta a ambelor categorii de
studenti.
Studentii pot opta pentru unul sau altul dintre sisteme.
Studentii la distanta beneficiaza de traditia si renumele institutiei si se supun standardelor
acesteia.
Cadrele didactice sunt ncurajate pentru practicarea unui nvatamnt mai interactiv.

3. Structuri cooperative
Diverse institutii lucreaza n comun, att n activitatea de educare ct si n ndeplinirea celorlalte
functii ce le revin (productie si distributie de suport pentru nvatare, administrative etc.). Aceste
institutii nu nscriu studenti n mod direct, ci ofera servicii pentru institutiile de nvatamnt
propriu-zise.

4. Structuri hibride
Ca rezultat al mbinarii diverselor structuri din modelele descrise anterior.
n afara descriptorilor modelelor de educatie la distanta de mai sus, care poarta cu sine
gradul de aplicabilitate practica n varii situatii, se mai pot enumera ctiva factori care
influenteaza alegerea unei structuri:

Scopul educatiei. Daca se urmareste pefectionarea cadrelor didactice n sensul


familiarizarii cu prevederile reformei nvatamntului, atunci optiunea ar putea fi pentru
un model de sine statator sau dual, unisectional.
Necesitatile pentru educatie. O universitate deschisa este cea mai buna solutie pentru
cerinte mari.
Resurse disponibile - umane, fizice si financiare.
Gradul autonomiei si controlului - dependente de orientarea si sustinerea de la nivelul
politicilor educationale.

n general, institutiile educative prefera adoptarea unui sistem bimodal de organizare,


prin proiecte specifice care creaza o institutie virtuala n cadrul uneia traditionale. Efectele sunt

evidente n timp relativ scurt - o universitate nscriind de zeci de ori mai multi studenti dect pot
ncape n salile sale de curs - dar efectele pe termen lung sunt cele vizate, institutiile cu traditie
ocupnd un loc n spatiul educativ de mine, spatiul virtual, catre un viitor al "universitatilor fara
sedii, legate (mai nti) de oameni si de idei". (Dumitru Oprea, rectorul Universitatii "Al.I.Cuza"
din Iasi - martie 2000)

1.4 Tipuri de educatie la distanta


Educatia la distanta nu este un fenomen nou n cmpul educational, ci constituie o
modalitate de predare si nvatare cunoscuta si practicata de cel putin o suta de ani.

Educatia prin corespondenta


nainte de aparitia si folosirea n masa a noilor tehnologii ale informatiei si comunicarii,
educatorii foloseau materialul tiparit si serviciile postale pentru ceea ce se numea educatie prin
corespondenta. nca din 1910, un studiu dedicat unei institutii de instruire la distanta ne da
masura a ceea ce se petrecea n Statele Unite si Canada: "Nu mai putin de 1600 de persoane sunt
antrenate n activitati de instruire de catre Scoala Internationala prin Corespondenta, a carei
misiune principala este de a patrunde n masa eterogena a umanitatii pentru a descoperi,
directiona si convinge indivizii de beneficiile educatiei. Nu cunosc o alta inovatie printre
metodele existente mai revolutionara si mai radicala dect aceasta. Avem de-a face aici cu o
institutie care cheltuieste anual peste doua milioane de dolari pentru a crea o cerere de
educatie.".
Aceasta forma a educatiei la distanta ramne nca o modalitate de instruire viabila acolo
unde nu sunt nca dezvoltate infrastructurile necesare unei abordari moderne si mai eficiente.
Mai trebuie semnalate aici unele dintre formele actuale ale educatiei prin corespondenta,
n care materialele pentru nvatare sunt n format electronic si pot fi livrate pe dischete, CD-ROM
sau direct prin e-mail. Se obtin astfel unele avantaje fata de nvatamntul la distanta prin
corespondenta postala: reducerea costurilor, personalului si spatiilor de depozitare.

Educatie prin radio


Educatia la distanta prin radio a avut o popularitate mai scazuta, fiind folosita odata cu
dezvoltarea extraordinara a acestui nou purtator de informatie si dizolvndu-se n celelalte functii
ale comunicarii prin mass-media: promovarea culturii, informarea, socializarea si chiar
divertismentul. Imediat dupa obtinerea primei licente de educatie prin radio de catre Universitatea
din Salt Lake City, n 1921, apareau si n Romnia primele aprecieri cu privire la metodele
pedagogice noi oferite de radiodifuziune. La sugestia lui Dimitrie Gusti, n calitate de presedinte
al Societatii Romne de Radiodifuziune, s-au organizat ncepnd cu 1930 doua conferinte prin
radio pentru clasele inferioare si superioare. Fara ndoiala, radioul si-a avut perioada lui de
predominanta pozitiva n perimetrul instructiei si educatiei scolare de tip informal.

Educatie prin televiziune

Similar este cazul educatiei prin televiziune, care preia, de asemenea, la un moment dat,
de la carte/manual si presa, multiple sarcini de stocare si transfer a informatiei aflate ntr-o
adevarata explozie. Prin mijloacele sale ample si variate si beneficiind de avantajul familiaritatii,
televiziunea contribuie la informarea culturala, dar poate fi utilizata si pentru educatie,
mentinndu-se ca alternativa pedagogica n centrul de interes al educatorilor din 1945 (cnd
Universitatea de Stat din Iowa obtine prima licenta) si pna spre mijlocul deceniului al optulea.
Cercetarile au demonstrat ca rezultatele obtinute prin televiziunea scolara nu sunt inferioare celor
obtinute prin nvatamntul traditional. Distinctia ce se impune este ntre 1. emisiunile TV cu
caracter educational general, care urmaresc obiective instructive prin influenta educativa difuza si
2. emisiunile proiectate si realizate n functie de programe de tip scolar, ca forma alternativa de
nvatamnt, ce beneficiaza de avantajele specifice educatiei la distanta: un profesor poate conduce
situatii de nvatare pentru un numar mai mare de elevi; sunt prezentate elevilor realitati
inaccesibile observatiei directe; atractivitatea materialelor prin mbinarea imaginii cu sunetul;
continuturile transmise pot avea girul unor personalitati prezente la lectie; anularea
impedimentului distantei; reutilizarea ulterioara a materialelor etc.
n ciuda raspndirii lor pe arie larga si fortei de seductie pe care o au pentru educatori
pentru acest atu, aceste mijloace moderne de comunicare n masa se abat de la prezenta n rndul
mijloacelor educative eficiente prin doua neajunsuri majore:
1. Receptorul fiind o masa mare si eterogena de oameni, a te adresa oricui comporta riscul
de a nu te adresa nimanui; nu exista siguranta receptarii mesajului de catre cei carora le
este adresat n mod special (nu putem fi siguri ca elevii vor recepta o emisiune despre
literatura, pregatita special pentru ei).
2. Comunicarea prin radio si televiziune are, n esenta, un caracter unidirectional, lipsind
conexiunea inversa; ntre emitator si receptor nu exista un dialog permanent si real.

Educatie prin Internet


Un alt tip de predare-nvatare la distanta, care cstiga teren pe zi ce trece, este educatia
prin Internet. Cursurile suport sunt stocate pe un computer ntr-o forma specifica si un navigator
uzual pentru Internet sau, n unele cazuri rare, un program special, permite cursantilor sa acceseze
informatiile n ritmul propriu de asimilare. Materialele de nvatare sunt prezentate ntr-o forma
multimedia - prin mbinare de text, sunet, imagine si chiar scurte filme - si n modul hyperlink un model structural n care accesul la alte informatii se realizeaza prin legaturi multiple de la o
singura pagina; la rndul lor alte pagini permit revenirea, aprofundarea prin accesarea altor pagini
cu subiect similar sau saltul la alte tipuri de informatii.
Acest tip de materiale 'fara suport pe hrtie' au o serie de avantaje:

se nlatura necesitatea spatiilor de depozitare si personalului numeros;


costuri de expediere reduse;
flexibilitate pentru student n sensul posibilitatii alegerii portiunilor care se tiparesc si
care ramn n format electronic;
expedierea la student exact la timp n sensul accesului la material exact cnd si unde este
necesar;
integrarea unei varietati de medii de nvatare: text, grafica, imagine statica si animata,
sunet, scurte filme;
acces la materiale din alte sute de mii de surse, unele prin linkuri (legaturi ) directe din
situl de origine;

10

integrarea legaturilor cu tutorii si cu alti studenti, prin intermediul Web sitului.

1.5 Institutii virtuale


O institutie de educatie virtuala poate fi definita ca:
a. O institutie implicata n activitati de tip educativ care si promoveaza programa si cursurile
direct celor interesati prin intermediul tehnologiilor informatice si de comunicare, furniznd si
suport tutorial.
b. O organizatie creata prin parteneriat pentru a facilita predarea si nvatarea fara implicare
directa ca furnizor de programe educative.
Exemplele de institutii virtuale pot include att sectorul public ct si privat, la nivel
elementar, secundar, liceal, universitar etc., ca si forme de educatie non-formala, educatie
permanenta, educatie vocationala de perfectionare.
Emergenta institutiilor virtuale are patru surse diferite:

Institutii care au fost implicate n educatia deschisa si la distanta.


Institutii traditionale, de la scoli la universitati, care nu au mai fost implicate n educatia
la distanta. Aceste institutii ncep sa aplice noile tehnologii informatice ca suport pentru
un plus de calitate, o productivitate si flexibilitate crescute, cu premisa ca astfel reduc
costurile si atrag venituri prin atragerea de noi studenti. Aceasta tranzitie apare n situatia
tipica a unor proiecte specifice care creaza o institutie virtuala n cadrul uneia
traditionale.
Sectorul corporatiilor sau al organizatiilor mari care dezvolta programe de pregatire
pentru uz intern avnd ca suport si mijloc de distribuire tehnologiile informatice si de
comunicare si purtnd eticheta de virtual.
Persoane individuale care, din motive variind de la altruism la profit, folosesc
tehnologiile pentru a crea oportunitati de nvatare pentru oricine interesat.

Dupa o analiza a educatiei la distanta din 11 regiuni (Canada, SUA, Caraibe, America
Latina, Europa, Africa, India, Korea, Australia, Noua Zeelanda si Insulele Pacificului),
Departamentul pentru Dezvoltare Internationala din Londra a dat publicitatii, n 1999,
urmatoarele observatii generale privind educatia virtuala si institutiile virtuale :

Eticheta virtual este folosita n sens larg si nediscriminat n toata lumea,


interschimbabila cu alti termeni cum ar fi: nvatare deschisa si la distanta,
nvatare distribuita (distributed learning), nvatare n retea, nvatare prin Web
(Web-based learning) si nvatare prin computer. Mai mult, uneori termenul este
folosit cu referire la sisteme care combina tehnologii TV si teleconferinte
interactive n timp real.
n ciuda folosirii din ce n ce mai frecvente a termenului virtual, sunt foarte
putine exemple de institutii care utilizeaza tehnologiile informatice si de
comunicare pentru a acoperi toate functiile incluse n definitia educatiei virtuale.
Cele mai comune aplicatii ale noilor tehnologii se regasesc n administrare,

11

pregatirea si distribuirea materialelor suport si, acolo unde exista posibilitatea,


activitati de tutorat n forma interactiunilor student-student si student-profesor.

Desi sunt foarte putine exemple de institutii virtuale n sensul pur, numarul
activitatilor de acest tip, n toate tipurile si la toate nivelele organizatiilor
instructiv-educative, publice sau private, este considerabil n toate partile lumii.
Nimeni nu pare sa se ndoiasca de faptul ca dezvoltarea tehnologiilor informatice
si de comunicare va avea un impact profund asupra accesului, functionarii
institutionale si proceselor predarii si nvatarii.

Dezvoltarea institutiilor virtuale este nca n faza experimentala n majoritatea


tarilor; n mod obisnuit se foloseste World Wide Web-ul doar ca mediu
publicistic, fara a se apela la potentialul real al tehnologiilor. Aceasta datorita
lipsei de importanta ce se acorda pregatirii si perfectionarii personalului didactic.

Sunt remarcabile cteva exemple (Korea) de transformari care pot avea loc atunci
cnd este dezvoltata o viziune clara asupra unui sistem educational si
implementarea acestuia este sustinuta de factorii de decizie.

Emergenta institutiilor virtuale este n relatie directa cu dezvoltarea si accesul la


infrastructura tehnologiilor informatice si de comunicare. Oricum, majoritatea
decalajelor socio-economice si geografice rezida din acest acces si constituie
punctul critic al educatiei la distanta deoarece lipsa accesului dezavantajeaza din
ce n ce mai mult achizitia de aptitudini si cunoastere. n ciuda acestei relatii
directe evidente, se pare ca planurile strategice de dezvoltare a infrastructurii
tehnologiilor informatice si de comunicare nu iau n considerare aplicativitatea n
educatie.

Se considera n general ca vom fi martorii dezvoltarii unui numar relativ mic de


institutii internationale care domina piata educationala prin retele vaste de
distributie si parteneriate strategice. Oricum, la acest stadiu al evolutiei
institutiilor virtuale, aceasta observatie este mai mult retorica dect reala.

Reducerea costurilor este des citata ca obiectiv pentru introducerea noilor


tehnologii informatice n institutiile de educare si formare. Dar date valide n
problema costurilor sunt insuficiente.

Cresterea continua a capacitatilor si flexibilitatii noilor tehnologii informatice cu


aplicabilitate n situatiile educative, dublata de o continua descrestere n cost a echipamentelor,
precum si capacitatea tehnologiilor de a facilita functionarea anumitor structuri traditionale ale
institutiilor - sunt argumente ce conving factorii decizionali sa adopte schimbarea si sa accepte un
mod dual de organizare - acesta fiind dealtfel un model de educatie la distanta destul de frecvent
ntlnit.

12

1.6 Certificari online


n ciuda obstacolelor n stabilirea avantajelor reale, tehnologiile de predare-nvatare la
distanta au un pondere din ce n ce mai mare n toata lumea, n mare parte datorita eforturilor
profesorilor, parintilor si studentilor care considera accesul la o forma de nvatamnt deschis la
distanta un drept la educatie, sau ca rezultat al eforturilor bine-intentionate ale unor guverne, care
considera educatia la distanta un panaceu n ntmpinarea cererii crescnde de formare pe tot
parcursul vietii.
Sistemul eLearning a fost asociat teoretic cu termenii efectelor sale dezirabile, transpuse si
la nivelul obiectivelor, care incorporeaza valori dificil de negat, cum ar fi centrarea pe student si
autonomia. nsa acceptarea la nivelul comun a diverselor tipuri de educatie si formare la distanta,
de la studiul prin corespondenta si terminnd cu eLearning, este departe de a fi deplina.
Includerea cursurilor la distanta n practica obisnuita de formare va avea loc doar dupa multiple
eforturi de ridicare a standardelor de calitate, sustinute de cercetari n domeniu.
Va accepta un potential angajator o diploma care atesta absolvirea unui curs la distanta?
Pentru moment, este dificil de raspuns la o asemenea ntrebare. Perceptia comuna a cursurilor la
distanta a constituit obiectul unor cercetari n Statele Unite (Vault.com, octombrie 2000),
ajungndu-se la urmatoarele rezultate:

30% dintre profesionistii n departamentele de resurse umane au intervievat aplicanti cu


diplome obtinute online;
77% considera ca "o diploma care atesta absolvirea unor cursuri la distanta n cadrul unei
institutii acreditate (Duke, Stanford)" este mai credibila dect o diploma obtinuta de la o
institutie virtuala (Jones International);
26% cred ca o diploma de curs la distanta este tot att de credibila ca o diploma
conventionala;
61% sustin ca o diploma de curs la distanta nu este att credibila, dar este acceptabila.

Este cert ca n privinta cursurilor la distanta perceptia comuna este tributara multor
prejudecati. Revine practicienilor educatiei rolul de a mbunatati imaginea programelor de
formare la distanta printr-un efort sustinut de clarificare teoretica pe de o parte, iar pe de alta parte
de ridicare a standardelor n practica curenta. Cu att mai mult cu ct, prin eliminarea
obstacolelor de ordin spatial, temporal sau a impunerii unui ritm de nvatare, se asigura astfel
posibilitati de studiu unor categorii sociale largi, fara ntreruperea activitatii lor profesionale.
Aceasta este de fapt si caracteristica principala, care face ca sistemul sa fie deosebit de viabil
pentru ciclurile superioare, pentru educatia permanenta, pentru educatia vocationala si l situeaza
potential printre cele mai solicitate tipuri de sisteme de educatie ale viitorului.
Majoritatea rapoartelor de evaluare publicate puncteaza succint meritele reale si valoarea
sistemelor de eLearning. n schimb, acorda o mare atentie satisfactiei cursantilor (ca si
consumatori), impactului tehnologiilor utilizate sau conditiilor de ndeplinit pentru mentinerea
studentilor n programul de formare la distanta. Unele studii compara cursurile la distanta cu
formele traditionale. Dar, daca educatia la distanta nseamna eliminarea barierelor institutionale,
mai este nevoie sa-i demonstram eficienta, cnd este att de evident aspectul negativ al acestor
bariere? Nu, dar numai n privinta accesibilitatii. Ct priveste factorii pedagogici ce constribuie la
succesul unui program de educatie la distanta si modurile n care aceste programe pot fi
ameliorate - acestea sunt subiecte mai putin abordate sau detaliate.

13

n mod sigur, ncrederea deplina ntr-o astfel de inovatie va veni doar dupa stabilirea ct mai
exacta a gradului n care scopurile sunt atinse si asteptarile justificate. nsa deocamdata, eforturile
de clarificare a domeniului eLearning n Romnia sunt demersuri individuale. Toate referintele la
studii aprofundate se fac la surse straine. Baza teoretica si sustinerea legislativa pentru solutiile de
eLearning romnesti merg pe acelasi drum sinuos, prelungit pna n ultimul moment. Instruirea
pe tot parcursul vietii, nevoia de formare continua - sunt probabil realitati ale unor tari mai
dezvoltate si cu decidenti mai responsabili.

1.7 Alegerea unei solutii e-Learning


Mai mult dect un tip nou de educaie i formare la distan, un sistem eLearning este o
soluie de business, o opiune de succes pentru instituiile care ofer cursuri de formare.
La un studiu de fezabilitate n vederea implementrii unei sistem de eLearning, comparaia
ntre diversele soluii de pe pia poate fi fcut printr-o serie de indicatori definitorii pentru un
sistem de formare la distan:

scal - numrul participanilor implicai ntr-o activitate de nvare pe o durat


determinat; include i distana dintre participani, acoperit de sistem;
percepie - calitatea tehnic a materialelor primite de participani (de la realism grafic, la
rezoluie);
simetrie - gradul n care se poate focaliza atenia pe fiecare participant (invers
proporional cu mrimea clasei);
interactivitate - durata de timp minim n care se poate obine un rspuns ntr-o
interaciune;
mijloace - evantaiul de mijloace/ instrumente de lucru de care dispun participanii pentru
nvare i comunicare;
control din partea cursantului - gradul n care cursantul poate fi activ, poate colabora
cu ali cursani sau cu profesorii pentru atingerea obiectivelor de nvare;
capacitatea de integrare - posibilitatea de a prezenta informaii n diverse moduri i din
diverse surse;
costuri - cheltuielile unui cursant pentru atingerea unui set stabilit de obiective;
timp - nivelul de control al timpului necesar unui cursant pentru a atinge un obiectiv de
nvare (posibilitatea parcurgerii coninutului n ritm propriu);
flexibilitate - uurina cu care se pot aduce ameliorri pe parcursul programului.

O analiz comparativ poate fi urmrit printr-un instrument simplu de tip gril. Se acord un
punctaj de la 0 la 4 pentru fiecare item luat n calcul, unde 0 nseamn absena caracteristicii, iar 4
nseamn c indicatorul satisface deplin ateptrile:
Solutia de eLearning:

Click2learn

Macromedia

Solutia X

scala

perceptie

simetrie

interactivitate

14

mijloace

control

integrare

costuri

timp

flexibilitate

TOTAL punctaj

38

32

26

Totalul pe fiecare coloan exprim, sintetic i aproximativ, diferenele dintre soluiile analizate.
n funcie de importana pe care instituia o acord unor anumii itemi, se poate trece la
analiz pe caracteristici. Dac flexibilitatea unui sistem este de maxim importan, datorit
cererii n continu schimbare de pe piaa de formare sau datorit perimrii rapide a informaiilor
n domeniul vizat, atunci se poate chiar renuna la ceilali itemi. Sau se poate alctui o alt gril,
cu punctaje maxime difereniate: pentru flexibilitate se acord o not ntre 0 i 20.

1.8 Avantaje si dezavantaje


Avantaje
Prin raportare la educatia traditionala, se pot reliefa cteva avantaje ale educatiei la distanta prin
Internet, considernd-o aplicabila, cel putin deocamdata, la nivelul nvatamntului universitar si
n educatia permanenta, dupa modelul universitatilor deschise si la distanta din tarile
tehnologizate:

n primul rnd, toate resursele care constituie obiectul cursului pot fi accesibile ubicuu.
Scopul curriculumului va fi mai cuprinzator dect cel curent, curriculumul oferind
modalitati multiple pentru achizitii de cel mai nalt nivel n toate domeniile culturii.
Audienta este considerabil crescuta, educatia la distanta putnd cuprinde si studenti care
nu pot participa la cursurile din sistemul traditional. Accesul la retele locale, regionale si
nationale leaga studentii din diferite medii sociale, culturale, economice, si cu experiente
variate.
Este facilitata nvatarea ntr-un ritm propriu, ntr-un stil personal, parcurgerea sau
audierea cursurilor putnd fi facuta treptat si repetat. Computerele ncorporeaza variate
pachete de softuri extrem de flexibile, studentul avnd un control maxim al informatiilor
de continut.
Interactiunile sincrone si cele asincrone dintre profesor si studenti se pot
complementariza. Un corolar important aici l-ar constitui posibilitatea constituirii unui
grup pedagogic (team teaching) pentru transmiterea cunostintelor unui anumit domeniu si
antrenarea n activitati a unor educatori care n mod curent nu sunt disponibili din variate
motive.
Tehnologiile sunt interactive, permitnd un feed-back total, n timp real, si evaluari
formative sau sumative, cantitative sau calitative ntr-un mod facil si de catre evaluatorii
cei mai avizati.

15

Limite
Printre dificultatile la implementare, ce pot fi considerate si limite ale noului sistem se numara:

Costurile ridicate ale dezvoltarii sistemului, incluznd cheltuieli cu: tehnologia (hard si
soft); transmiterea informatiilor n retea; ntretinerea echipamentului; producerea
materialelor necesare.
Dificultatea sustinerii la implementarea sistemului a unui efort consistent si sustinut al
studentilor, profesorilor, intermediarilor ce ofera suport tehnic si personalului
administrativ.
Necesitatea experientei cursantilor n domeniul computerelor. ntretinerea propriului
computer va fi probabil una dintre responsabilitatile curente.
Studentii trebuie sa fie extrem de motivati pentru participare. Fenomenul de abandon
scolar este mult mai frecvent n educatia la distanta dect n cadrele traditionale ale
educatiei, interrelatiile instituite fiind relativ impersonale, facnd optiunea mai usoara
pentru cursant.
Relativa "dezumanizare" a cursurilor pna la dezvoltarea unor strategii optime de
interactiune si a focalizarii pe student si nu pe sistem.

nsa experienta sistemelor deja functionale ne asigura de faptul ca participantii la educatia prin
intermediul noilor tehnologii se familiarizeaza n scurt timp cu mediul virtual si intra relativ
curnd n ritmul natural al transmiterii si, respectiv, nsusirii de cunostinte.

16

Cap. 2: Prezentarea tehnologiilor utilizate

2.1 Sisteme de Gestiune a Bazelor de Date (SGBD)


2.1.1 Istoric; comentarii
Evoluia metodelor i tehnicilor de organizare a datelor a fost determinat de necesitatea
de a avea un acces ct mai rapid i mai uor la un volum din ce n ce mai mare de informaii
precum i de perfecionarea echipamentelor de culegere, memorare, transmitere i prelucrare a
datelor.
Exist afirmaii conform crora sistemul de baze de date i are rdcinile n anii '60, n
proiectul de aselenizare Apollo. Deoarece pe atunci nu exista un astfel de sistem, North American
Aviation (actualmente Rockwell International) a dezvoltat, n calitate de principal colaborator la
proiect, un pachet de programe cunoscut sub numele GUAM (Generalized Update Access
Method), care se baza pe date organizate n mod ierarhic. Modelul de date ierarhic i are originea
n acest proiect.
La mijlocul anilor '60, un pas napoi s-a facut prin elaborarea sitemului IMS (Information
Management System), de ctre IBM n colaborare cu NAA, pornind de la sistemul GUAM. Pasul
napoi se datoreaza faptului c manipularea ierarhiilor de date a fost restrns la organizarea
secvenial a datelor (o cerin dictat de piaa la acel moment).
In aceeai perioada General Electric a dezvoltat sistemul IDS (Integrated Data Store).
Conducator de proiect: Charles Bachmann. Proiectul a condus la modelul de date reea (numele
se datoreaza ca i n modelul precedent, modului de organizare a datelor).
n acea perioada se cuta eficientizarea manipulrii datelor i se ncerca stabilirea unor
standarde. n 1965 CODASYL (the Conference On Data SYstems Languages) care reunise
reprezentani ai guvernului USA i reprezentani ai lumii afacerilor i comerului, a reuit s
stabileasc un grup de lucru (care a avut iniial numele List Processing Task Force) cunoscut din
1967 sub numele Data Base Task Group (DBTG). Sarcina acestui grup era s stabileasc
specificaii cu rol de standarde pentru un mediu care ar permite crearea de baze de date i
manipularea datelor.
Conceptul de baz de date s-a definit n 1969 cu ocazia prezentrii primului proiect de
raport CODASYL (Raportul final s-a prezentat n 1971). Ideea principal n organizarea datelor
se baza pe existena a trei componente de baz:

17

schema de reea - care reprezenta organizarea logica a ntregii baze de date


subschema - care reprezenta o parte a bazei de date aa cum e vazut de
utilizator sau de programele de aplicaie
un limbaj de gestionare a datelor - care definea caracteristicile datelor,
structura lor i care manipula datele
Pentru standardizare, s-au propus trei limbaje:
un limbaj de definire a datelor (LDD) la nivel de schem
un limbaj ajuttor la nivel de subschem
un limbaj de manipulare a datelor (LMD)
Cu toate c nu a fost adoptat formal de ANSI (American National Standard Institute)
propunerea DBTG a fost aplicat ntr-o serie de sisteme dezvoltate ulterior i ea st la baza
conceptului modern de baz de date. Proiectul ierarhic i cel prezentat de CODASYL reprezint
prima generaie de Sisteme de Gestiune a Bazelor de Date (SGBD).
n 1978 E.F.Codd de la IBM Research Laboratory a elaborat o lucrare care a avut o
influen covritoare n dezvoltarea bazelor de date. Lucrarea trata despre modelul de date
relaional. De aici ncolo s-au proiectat multe sisteme dintre care mentionam System R dezvoltat
la IBM's San Jose Research Laboratory din California, la sfritul anilor '70. Acest proiect a dus
la:
dezvoltarea unui limbaj structurat de interogare (numit SQL) care de atunci a
devenit un standard pentru sistemele relaionale;
producerea n anii '80 de sisteme comerciale arhicunoscute dintre care
menionm: DB2 i SQL/DS de la IBM i ORACLE de la ORACLE
Corporation.
Alte exemple de sisteme relaionale: INGRES de la Relational Technology Inc., Informix
de la Informix Sofware Inc., Sybase de la Sybase Inc.. Dintre sitemele relaionale pentru
microcalculatoare enumerm aici: Paradox i dBase IV de la Borland, Access de la Microsoft,
FoxPro i R:base de la Microrim. Toate acestea constituie generatia a doua de SGBD.

2.1.2 Definirea sistemelor de gestiune a bazelor de date relaionale


ntr-o prim ncercare de definire, se poate considera un sistem de gestiune a bazelor de
date relaionale (SGBDR) ca reprezentnd un SGBD care utilizeaz drept concepie de organizare
a datelor modelul relaional. Astfel spus, un SGDBR reprezint un sistem care suport modelul
relaional.
Definiia de mai sus este prea general pentru a putea fi operaional, deoareca modul de
implementare a modelului relaional difer, de regul att ntre diferitele SGBDR, ct i n raport
cu modelul teoretic, cel definit n cadrul teoriei relaionale, datorit eforturilor productorilor
de a realiza sisteme ct mai perfomante care s satisfac cerinele i exagerrile utilizatorilor. Ct
de aproape (sau de departe) de modelul relaional teoretic trebuie s fie modelul datelor efectiv
utilizat de SGBD pentru a putea afirma c SGBD-ul respectiv utilizeaz sau nu modelul
relaional, deci este sau nu SGBDR?

18

Diversitatea modelelor relaionale operaionale au determinat, n mod natural existena


unei mari diversitii de SGBDR, pentru a cror prezentare a fost necesar nuanarea
terminologiei. Au aprut o serie de sintagme precum: sisteme cu interfa relaional, sisteme
pseudorelaionale, sisteme complet relaionale.
Conceptele specifice organizrii datelor n fiiere, SGBDR i teoriei relaionale ntre care
se pot stabili analogii
Organizarea datelor n fiiere
Fiier
Record(nregistrare)
Cmp

SGBDR
Tabel
Linie
Coloan

Teoria relaional
Relaie
Tuplu
Atribut

Tabel 2.1
n general, conceptele utilizate la prezentarea SGBDR i a modelelor relaionale
operaionale difer de cele din cadrul teoriei relaionale. Tabelul de mai sus prezint comparativ
conceptele organizrii datelor n fiiere, concepte SGBDR i ale teoriei relaionale.
Faptul c se pot stabili analogii ntre conceptele organizrii datelor n fiiere i
conceptele relaionale, i-au determinat pe unii productori s prezinte sisteme fr nici o legtur
cu modelul relaional drept SGBDR, n scopul asigurrii succesului comercial al acestor sisteme.

2.1.3 Criterii minimale de definire a unui SGBDR


Pentru caracterizarea unui SGBD sunt formulate o serie de cerine minimale pe care
trebuie s la satisfac un sistem de gestiune a bazelor de date pentru a putea fi considerat
relaional.
Un SGBD este minimal relaional dac satisface urmtoarele condiii:
1. Toate datele din cadrul relaiei sunt reprezentate prin valori n tabele,
2. Nu exist pointeri observabili de ctre utilizatori n tabele, n sensul c operaiile
cu relaii nu fac apel la pointeri, indeci, fiiere inverse, etc.
3. Sistemul suport operatori relaionali de proiecie, selecie i joing natural, fr
limitri mpuse de considerente interne (cum ar fi de exemplu, necesitatea
indexrii atributelor). Unitatea de informaie cu care se lucreaz n cadrul acestor
operaii trebuie s fie relaia.
Un SGBD este complet relaional dac este minimal relaional i satisface n plus
urmtoarele condiii:
4. Sistemul suport toate operaiile de baz ale algebrei relaionale, fr limitri
npuse de considerente interne.
5. Sistemul suport dou dintre restriciile de integritate de baz al modelului
relaional i anume unicitatea cheii unei relaiii restricia referenial.
Un SGBD este pseudorelaional dac satisface numai condiiile 1. i 3.
Un SGBD cu interfa relaional este un SGBD are satisface condiiile 1. i 3., cu
observaia c cerina 3. Este ndeplinit numai n raport cu funcia de interogare

n ultimii ani, ca rspuns la necesitatea de a crete complexitatea aplicaiilor cu baze de


date (ncurajat i de progresele aprute n programare odata cu programarea orientata obiect) au

19

aprut modelul de date orientat obiect (Object-Oriented Data Model - OODM) i modelul de date
relaional extins (Extended Relational Data Model - ERDM). Cu toate ca modelul de date ce sta
la baza noilor modele nu este atat de clar ca n cazul modelului relaional, se poate considera ca
aceste din urma dezvoltari reprezinta generatia a treia de SGBD.
In esenta, conceptul de baza de date poate fi definit ca fiind o colectie partajata de date
aflate n interdependenta logica (impreuna cu o descriere a acestor date i a relatiilor dintre ele),
colectie desemnata pentru a rezolva nevoia de informatizare a unei intreprinderi (sau organizatii).
Baza de date trebuie sa ndeplineasca urmatoarele conditii:
- sa asigure o independenta sporita a datelor fata de programe i invers;
- structura bazei de date trebuie astfel conceputa ncat sa asigure informatiile necesare i
suficiente pentru cerintele de informare i decizie;
- sa asigure o redundanta minima i controlata a datelor;
- sa permita accesul rapid la informatiile stocate n baza.
Bazele de date sunt extrem de variate n functie de criteriile luate n considerare. Prezentam
cateva criterii de clasificare:
- dupa orientare: generalizate, specializate;
- dupa modelul de date: ierarhice, retele, relaionale, orientate obiect;
- dupa amploarea geografica: locale, distribuite;
Numim SGBD (Sistem de Gestiune al Bazelor de Date) un sistem software care permite,
pe de o parte, definirea, crearea i n tretinerea bazei de date i pe de alta parte, permite accesul
controlat la informatiile din baza de date n cauza. SGBD este format din programe de software
care interactioneaza cu programele de aplicaie ale utilizatorilor i cu baza de date. Sistemul de
gestiune al bazei de date asigura realizarea urmatoarelor activitati:
- definirea structurii bazei de date;
- ncarcarea datelor n baza de date;
- accesul la date (interogare, actualizare);
- ntretinerea bazei de date (colectarea i reutilizarea spatiilor goale, refacerea bazei de
date n cazul unui incident);
- reorganizarea bazei de date (restructurarea i modificarea strategiei de acces);
- integritatea datelor;
- securitatea datelor.
Asadar, sistemul de gestiune al bazei de date apare ca un sistem complex de programe care
asigura interfata n tre o baza de date i utilizatorii acestuia.
Clasificarea SGBD se poate realiza din mai multe puncte de vedere.
1. Din punctul de vedere al sistemelor de calcul pe care se implementeaza. SGBD pot fi:
sisteme de gestiune pentru calculatoarele mari; sisteme de gestiune pentru
minicalculatoare; sisteme de gestiune pentru microcalculatoare.

20

In prezent se manifesta tendinta ca marea majoritate a sistemelor de gestiune a bazelor de


date sa fie compatibile pe platforme cat mai largi de sisteme de calcul.
2. Din punctul de vedere al limbajului pe care il utilizeaza, sunt: sisteme cu limbaj gazda;
sisteme cu limbaj autonom.
Sistemele cu limbaj gazda realizeaza activitatile de creare, actualizare i interogare a bazei
de date, utilizand limbajele de nivel nalt sau extensii ale acestora, proprii sistemului de
calcul pe care se implementeaza baza de date. Avantajul acestor sisteme consta n
posibilitatile sporite ce le ofera limbajele de nivel nalt la elaborarea unor proceduri
complexe. Sistemele cu limbaj gazda prezinta dezavantajul ca formularea cerintelor nu este
atit de simplificata ca n cazul sistemelor cu limbaj autonom.
3. Din punctul de vedere al conceptiei de organizare a datelor pe care le gestioneaza,
SGBD se clasifica n : sisteme de gestiune a bazelor de date cu structuri ierarhice i retea;
sisteme de gestiune a bazelor de date relaionale; sisteme de gestiune a bazelor de date
orientate obiect.
4. Din punctul de vedere al modului de localizare a bazelor de date avem: sisteme de
gestiune a bazelor de date centralizate; sisteme de gestiune a bazelor de date distribuite.
Marea majoritate a sistemelor de gestiune aprute n ultima perioada dispun i de o
componenta de gestiune distribuita a datelor.

2.2 PHP
Internet-ul a intrat deja in al treilea stadiu de dezvoltare, iar notiuni si facilitati precum
site-uri web dinamice si interactive au devenit atributele esentiale ale oricarei afaceri online de
succes implicand comert electronic (dar nu numai). Un studiu al Cyberatlas cu privire la comertul
prin Internet releva faptul ca activitatile de vanzari online au cel mai mare potential de dezvoltare
din intreg sectorul economic.
Principalul avantaj al unui site dinamic asupra unuia static este usurinta in administrare
(actualizare). Adaugarea sau modificarea de continut este foarte simpla datorita faptului ca acest
continut este stocat intr-o baza de date sau in fisiere text, astfel incat cei care se ocupa de continut
nu au nevoie sa posede cunostinte de HTML, CSS, JavaScript sau alte tehnologii specifice
domeniului "web design" si utilizate intens la construirea paginilor de prezentare. De asemenea,
daca trebuie sa schimbam logo-ul pe fiecare pagina a site-ului, este de ajuns sa facem modificarea
intr-un singur fisier in loc sa luam fiecare pagina in parte, sa o modificam si sa o uploadam inapoi
pe server.
Pe langa manipularea continutului paginilor web, PHP poate trimite headere HTTP pentru
autentificare, seta cookie-uri, redirectiona utilizatorii. Mai mult, cu ajutorul bibliotecilor externe
de functii poate parsa fisiere XML, crea si manipula imagini, animatii Shockwave, Flash, PDF-uri
sau se poate conecta la un server de mail. Iar acestea sunt doar cateva din functiile pe care le
poate indeplini.
Dezvoltarea exploziva a limbajului PHP din ultimii ani este in cea mai mare parte
datorata usurintei cu care acesta lucreaza cu bazele de date in Internet. Din multitudinea de solutii
de dezvoltare site-uri web, PHP ofera programatorului o multime de functii predefinite pentru
lucrul cu bazele de date in Internet. Aceasta inseamna ca din cadrul PHP putem executa toate
operatiunile aferente comenzilor Sql.

21

O prima pagina atractiva este vitala pentru succesul unui site. Menirea ei este sa ofere
utilizatorului motivele pentru a continua sa vada mai mult si eventual sa fie imediat interesat sa
cumpere un produs.
PHP este un limbaj de programare pe parte de server (in engleza "server-side") care
poate, printre altele, sa interactioneze cu o baza de date pentru a afisa sau a modifica informatiile
din ea. Mai exact, serverul stie sa furnizeze browser-ului clientului doar pagini HTML. Paginile
HTML pot fi deja pe server sau create tot acolo de catre alte aplicatii la cererea server-ului de
web, fiind apoi servite ca HTML browser-ului clientului.
PHP este un limbaj de programare destinat n primul rnd Internetului, aducnd dinamic
unei pagini de web. Este unul din cele mai importante limbaje de programare web open-source i
server-side.
PHP a fost nceput n 1994 ca o extensie a limbajului server-side Perl, i apoi de o serie
de CGI-uri compilate de ctre Rasmus Lerdorf, pentru a genera un curriculum vitae i pentru a
urmri numrul de vizitatori ai unui site. Apoi a evoluat n PHP/FI 2.0, dar proiectul open-source
a nceput s ia amploare dup ce Zeev Suraski i Andi Gutmans, de la Technion au lansat o nou
versiune a interpretorului PHP n vara anului 1998, aceast versiune primind numele de PHP 3.0.
Tot ei au schimbat i numele n acronimul recursiv de acum (Hypertext Preprocessor), pn
atunci PHP fiind cunoscut ca Personal Home Page Tools. Apoi Suraski i Gutmans au rescris baza
limbajului, producnd astfel i Zend Engine n 1999. n mai 2000 a fost lansat PHP 4.0, avnd la
baz Zend Engine 1.0. Pe 13 iulie 2004 a fost lansat PHP 5, cu Zend Engine II, ce a adus i o
orientare obiect mai pronunat i suportnd mai multe caracteristici ale acestui tip de
programare.
Exemple faimoase de utilizare a acestui limbaj sunt PhpBB (forum), PhpNuke(CMS),
chiar i MediaWiki, software-ul din spatele Wikipedia. Folosirea PHP poate fi vzut ca o
alternativ gratuit la utilizarea unor limbaje comerciale cum sunt ASP de la Microsoft,
ColdFusion de la Macromedia, sau chiar JSP de la Sun Microsystems.
PHP-ul este unul din cele mai folosite limbaje de programare server-side, conform unui
studiu efectuat de Netcraft n aprilie 2002, aprnd pe 9 din cele 37 milioane de domenii cercetate
n studiu. De asemenea, exist un grafic al creterii folosirii PHP-ului pe site-ul oficial.
Popularitatea de care se bucur acest limbaj de programare se datoreaz urmtoarelor
caracteristici :
Familiaritatea : sintaxa limbajului este foarte uoar combinnd sintaxele unora din cele
mai populare limbaje Perl sau C;
Simplitatea : sintaxa limbajului este destul de liber. Nu este nevoie de includere de
biblioteci sau de directive de compilare, codul PHP inclus ntr-un document executnduse ntre marcajele speciale;
Eficiena : PHP-ul se folosete de mecanisme de alocare a resurselor, foarte necesare
unui mediu multiuser, aa cum este Web-ul;
Securitatea : PHP-ul pune la dispoziia programatorului un set flexibil i eficient de
msuri de siguran;
Flexibilitatea : fiind aprut din necesitatea dezvoltrii Web-ului, PHP a fost modularizat
pentru a ine pasul cu dezvoltarea diferitelor tehnologii. Nefiind legat de un anumit server
web, PHP-ul a fost integrat pentru numeroasele servere web existente: Apache, IIS, Zeus,
etc.;
Gratuitatea : este probabil cea mai important caracteristic a PHP-ului. Dezvoltarea
PHP-ului sub licena open-source a determinat adaptarea rapid PHP-ului la nevoile Webului, eficientizarea i securizarea codului.
PHP este simplu de utilizat, fiind un limbaj de programare structurat, ca i C-ul, Perl-ul
sau ncepnd de la versiunea 5 chiar Java, sintaxa limbajului fiind o combinaie a celor trei.

22

Datorit modularitii sale poate fi folosit i pentru a dezvolta aplicaii de sine stttoare, de
exemplu n combinaie cu PHP-GTK sau poate fi folosit ca Perl sau Python n linia de comand.
Probabil una din cele mai importante faciliti ale limbajului este conlucrarea cu majoritatea
bazelor de date relaionale, de la PostgreSQL i pn la Oracle, trecnd prin MS Sql Server,
MySQL, sau DB2.
PHP poate rula pe majoritatea sistemelor de operare, de la UNIX, Linux, Windows, sau Mac OS
X i poate interaciona cu majoritatea servereler web. Codul dumneavoastr PHP este interpretat
de serverul WEB i genereaz un cod HTML care va fi vzut de utilizator (clientului
-browserului- fiindu-i transmis numai cod HTML).

Figura 2.1

2.3 PostgreSQL
PostgreSQL este un sistem de administrare al bazelor de date relationale folosit pentru
dezvoltarea aplicatiilor web. In acest subcapitol trebuie sa raspundem la intrebarea: De ce am
folosit PostgreSQL (in loc de MySQL,Oracle, FoxPro etc.) pentru a dezvolta aplicatia ELearning?. Tinand cont de faptul ca exista disponibile multe alte optiuni populare, este indicat sa
precizam de ce am facut aceasta alegere particulara. Pentru acest lucru, vom compara
PostgreSQL cu alte pachete de baze de date folosite pentru dezvoltarea aplicatiilor web: MySQL,
Oracle sau Microsoft SQL Server.
De asemenea, sunt disponibile baze de date desktop folosite pentru implementarea
aplicatiilor web: Access, FoxPro, FileMaker Pro si altele. Din moment ce aceste pachete de baze
de date sunt foarte ieftine si prietenoase pentru aplicatii desktop, ele sunt foarte rar utilizate in
dezvoltarea aplicatiilor web. Pentru a demonstra aceasta afirmatie, trebuie precizate urmatoarele
motive:
- bazele de date desktop permit unul sau un numar foarte mic de utilizatori. Din aceasta
cauza, ele sunt neutilizabile pentru aplicatiile web, unde este necesara conectarea simultana a
unui numar mare de utilizatori.
- bazele de date desktop nu sunt foarte sigure securitatea fiind un criteriu important in
alegerea pachetului de baze de date pentru aplicatiile web.
- arhitectura, scalabilitatea si performantele bazelor de date desktop nu sunt optimizate
pentru a fi folosite in dezvoltarea aplicatiilor web.

23

Tinand cont de aspectele de mai sus, sistemele desktop de baze de date nu sunt tocmai
potrivite pentru implementarea unei aplicatii complexe, asa cum este e-Learning, de aceeasi
parerea fiind mare majoritate a profesionistilor din domeniul IT.

2.3.1 Alegerea pachetului PostgreSQL


In momentul alegerii pachetului PostgreSQL pentru dezvoltarea aplicatiei e-Learning am
tinut cont de mai multe aspecte, printre care enumeram:

Avantaje generale
Caracteristici
Performante
Suport comercial
Larga utilizare a pachetului
Experienta folosirii PostgreSQL

1. Avantaje generale
-

PostgreSQL este gratis, software Open Source


PostgreSQL are un excelent suport comercial
PostgreSQL este fiabil si stabil
PostgreSQL este scalabil si extensibil
PostgreSQL este platforma de tip cross (incrucisat)
PostgreSQL este dezvoltat pentru aplicatii cu un volum mare de date
PostgreSQL este usor de administrat

2. Caracteristici
In tabelul de mai jos sunt prezentate caracteristicile pentru cele mai importante pachete RDBMS
(Relational Database Management System)

Caracteristici

SQL Server

Oracle

PostgreSQL PostgreSQL

Open Source

Gratis/ Fara costuri pentru licenta

ACID Compliant

ANSI SQL Compliant

Referential Integrity

Replication

Reguli

24

Vederi

Triggers

Unicode

Secvente

Mostenire

X
X

X
X

Outer Join

Sub-select

Open API
Proceduri stocate

Native SSL Support

Limbaj procedural

Indecsi

X
X

Tabel 2.2 Caracteristici ale pachetelor RDBMS


Majoritatea caracteristicilor sunt importante pentru dezvoltarea robusta, scalabila a aplicatiilor iar
pachetul PostgreSQL cu siguranta ofera valori excelente in aceasta privinta.
3. Performante
PostgreSQL, ca si celelalte pachete, va necesita intotdeauna optimizari bazate pe aplicatii
particulare. Astfel, fiecare sistem SQL Server, Oracle, MySQL si PostgreSQL are arie de
performanta unde exceleaza.
PostgreSQL este optimizat si rapid fata de celelalte sisteme pentru scenarii care implica
tranzactii cu volum mare de date, un numar ridicat de utilizatori si interogari complexe. Celelalte
caracteristici (vederi, indecsi) contribuie deasemenea la performanta generala a pachetului
PostgreSQL.
4. Suport comercial
Exista o serie de companii si profesionisti in domeniu care ofera consultanta si suport
pentru PostgreSQL. O lista cu asemenea furnizori poate fi gasita la urmatorul link:
http://techdocs.postgresql.org/companies.php. De asemenea, pe internet se gasesc liste de mailuri, grupuri pentru suport sau colaboratori online care pot oferi informatii despre orice problema
aparuta in utilizarea pachetului PostgreSQL.
5. Larga utilizare a pachetului
In dezvoltarea oricarei aplicatii web sau chiar desktop, este foarte important sa ne asiguram ca
tehnologiile folosite sunt acceptate de catre industria IT. O lista cu organizatiile care accepta
PostgreSQL poate fi gasita la : http://techdocs.postgresql.org/techdocs/supportcontracts.php
6.Experienta folosirii PostgreSQL

25

In momentul in care am inceput dezvoltarea aplicatiei e-Learning, un rol important in alegerea


pachetului pentru baza de date a fost experienta de lucru cu PostgreSQL. Sistemul se instaleaza
foarte usor atat pe Windows cat si pe Linux, oferind ca interfete grafice doua aplicatii:

pgAdmin III aplicatie desktop


PhpPgAdmin aplicatie web.

Concluzii

Figura nr. 2.2


PostgreSQL este un sistem de gestiune a bazelor de date, foarte rapid si robust.
O baza de date va permite sa stocai, sa cautati, sa sortai si sa va regasiti datele in mod
eficient. Serverul PostgreSQL controleaz accesul la datele dumneavoastr pentru a garanta ca
mai muli utilizatori pot lucra simultan cu acestea. Deci, PostgreSQL este un server multi-user
(mai muli utilizatori) si multi-thread (mai multe fire de execuie).

2.4 AJAX (Asynchronous JavaScript and XML)


2.4.1 Prezentare generala
AJAX este prescurtarea pentru Asynchronous JavaScript and XML (JavaScript si XML
asincron) si reprezinta o colectie de tehnologii utilizate in dezvoltarea site-urilor Internet. Intentia
este de a adauga o interactivitate mai mare in paginile web si de a micsora timpul de incarcare al
acestora. In masura in care Internetul este in continua dezvoltare, unde numarul de pagini web se
dubleaza la o perioada de cateva luni, si se dezvolta foarte mult servicii de comert electronic,
magazine virtuale sau site-uri sociale, tehnologia AJAX devine o componenta de baza pentru
orice astfel de site.
AJAX presupune un schimb mic de date intre browser si server, astfel incat sa nu mai fie
necesara reincarcarea intregii pagini web de fiecare data cand userul face o schimbare in aceasta.
AJAX reprezinta o colectie de tehnologii, fiecare utilizata si in mod de sine-statator, dar care
combinate permit obtinerea unei unelte foarte puternice:

26

Prezentarea in mod standard a paginilor, prin HTML sau mai noul XHTML, si
CSS (Cascading Style-Sheets) pentru aranajrea in pagina a continutului;
Afisare dinamica si interactiune folosind DOM (Document Object Model),
accesat printr-un limbaj de scripting, pentru a modifica in mod dinamic si a
asigura interactiunea cu informatia prezentata;
Schimb bidirectional de date si manipulare prin XML intre client si server, desi
orice format poate fi folosit, inclusiv HTML, XSLT sau text simplu;
Schimbul de date asincron se realizeaza prin obiectul XMLHttpRequest, desi in
unele implementari AJAX se poate folosi un IFrame pentru schimbul de date, sau
chiar tag-uri <script> adaugate dinamic.
JavaScript folosit pentru a lega toate aceste elemente intr-un pachet puternic.

Modelul clasic al aplicatiilor web este urmatorul: actiunile utilizatorilor in interfata din
browser conduc la o cerere HTTP catre serverul web. Serverul efectueaza niste procesari (extrage
date din baze de date, efectueaza calcule, interogheaza alte sisteme) si apoi returneaza o pagina
HTML catre client. Este modelul clasic, sincron, dezvoltat odata cu aparitia Internetului ca retea
la nivel mondial. Este calea cea mai simpla, dar in timp ce serverul proceseaza cererea,
utilizatorul asteapta si nu poate interactiona in alt mod cu pagina web.
AJAX elimina aceasta modalitate de interactiune start-stop-start-stop a Web-ului
introducand un nivel intermediar intre utilizator si server motorul AJAX. Adaugarea unui nou
nivel intr-o aplicatia de obicei o face sa lucreze mai greu, dar in acest caz este adevarata afirmatia
opusa. In loc sa incarce pagina la inceputul sesiunii, browserul incarca un motor AJAX, scris in
JavaScript si plasat de obicei intr-un cadru (frame) invisibil. Acest motor este apoi responsabil
atat cu interfata pe care o afiseaza utilizatorului, cat si cu comunicatia cu serverul pentru folosul
utilizatorului. Motorul AJAX permite interactiunea utilizatorului cu aplicatia in mod asincron,
independent de comunicatia cu serverul. Prin urmare utilizatorul nu mai priveste o fereastra
goala, asteptand ca aceasta sa se incarce direct de pe server.

27

Figura nr. 2.3 diferenta dintre modelul clasic si cel AJAX, se observa nivelul suplimentar al
motorului AJAX in browserul clientului

2.4.2 Istoric
Prima utilizare a termenului AJAX in mod public a fost in februarie 2005. Jesse James
Garrett sustine ca a gandit aceasta denumire realizand necesitatea unui termen simplu, scurt si
usor de pronuntat in momentul cand urma sa prezinte unor clienti o suita de tehnologii propuse
pentru implementare.
Desi termentul AJAX are mai putin de trei ani, istoria tehnologiilor care au dus la
implementarea acestuia incepe acum 10 ani, cand Microsoft avea initiativa in a dezvolta Remote
Scripting. Tehnici pentru incarcarea asincrona a continutului intr-o pagina web, fara necesitatea
reincarcarii totale, au aparut de pe vremea elementului IFRAME (introdus in Internet Explorer 3
in 1996) si a elementului LAYER (introdus in Netscape 4 in 1997 si abandonat la aparitia
browserului Mozilla). Ambele elemente aveau campul src pentru incarcarea unui URL extern, si
prin utilizarea JavaScript se putea manipula pagina mama, obtinandu-se un efect asemanator cu
AJAX. Astfel de tehnici au fost implementate in DHTML, si chiar si produsul Macromedia Flash
putea incarca fisiere XML sau CSV de pe un server fara a necesita un refresh in browser. Remote
Scripting de la Microsoft functiona ca un inlocuitor mai elegant al acestor tehnologii, datele fiind

28

extrase de un applet Java cu care clientul comunica prin JavaScript, tehnica disponibila in IE
versiunea 4. Microsoft a creat pentru Internet Explorer 5 obiectul XMLHttpRequest si a aratat
avantajele lui in Outlook Web Access, care face parte din pachetul Microsoft Exchange Server
2000.
Comunitatea Web, suficient de dezvoltata la inceputul anilor 2000, a preluat initiativa in
dezvoltarea acestui tip de tehnologie. Prin colaborare publica, s-a imbunatatit tehnica de scripting
pentru a permite utilizarea pe alte browsere. In 2002 a fost modificat Remote Scripting pentru a
inlocui applet-ul Java cu XMLHttpRequest, care a devenit modelitatea preponderenta de
comunicare cu serverul. Microsoft a introdus tehnologia Callback in ASP.NET, dar
XMLHttpRequest a rmas cel mai folosit deoarece este bine implementat in toate browserele,
celelalte tehnologii nefiind folosite decat in cazuri de incompatibilitate.

2.4.3 Avantaje ale tehnologiei AJAX


Utilizarea eficienta a benzii disponibile
Prin generarea de HTML local, in browser, si aducand de pe server doar apelari
JavaScript si date, paginile realizate cu AJAX se incarca mai repede deoarece informatia necesara
este mai mica. De exemplu se pot aduce doar datele dintr-un tabel, iar afisarea tabelului in sine,
tag-urile <TABLE>, <TR> si <TD> se genereaza local, in browser, nefiind necesar si transferul
acestora de pe server. Structura generala a unei pagini, titlu, meniu lateral, subsolul paginii, se
genereaza o singura data, iar la navigarea acelui site se aduc doar datele noi din continutul paginii
respective, titlul si meniurile ramanand neschimbate.
Interactivitate
Aplicatiile AJAX sunt in principal executate in computerul utilizatorului, prin
manipularea paginii curente de catre browser folosind metode de document object model (DOM).
AJAX poate fi utilizat pentru o serie de functii precum actualizarea inregistrarilor, expandarea
formularelor, returnarea unor cautari simple, editarea de elemente, toate fara nevoia de a reincarca
intreaga pagina web in momentul cand aceasta este modificata. Se trimit doar cereri scurte catre
server si se primesc raspunsuri de dimensiuni mici. Acest lucru creste interactivitatea si apropie
paginile web de posibilitatile aplicatiilor desktop. Pentru magazinele virtuale, site-uri de
eBanking sau eCommerce, sau pentru implementarea unui chat intr-o pagina web tehnologia
AJAX este foarte importanta. In conditiile in care un studiu recent a aratat ca un client paraseste
site-ul unui magazin online in favoarea altuia, daca incarcarea unei pagini dureaza mai mult de 4
secunde, interactiunea oferita de AJAX, posibilitatea de a modifica doar anumite aspecte ale
paginii (de ex aparitia parerilor altor cumparatori despre un anumit produs, sau calculul sumei
totale din cosul de cumparaturi fara a reincarca toata pagina, ci doar acea zona) este foarte
importanta.

2.4.4 Dezavantaje
Utilizarea butoanelor de Back si Forward, si a link-urilor
Paginile web ce utilizeaza AJAX pot sa impiedice functionarea comportamentului
normal, obisnuit si asteptat al butoanelor de Back dintr-un browser. Utilizatorii se asteapta ca
apasand aceste butoane sa fie dusi la aspectul anterior al paginii, dar acest lucru nu este mereu

29

adevarat cand se utilizeaza AJAX, deoarece browserul nu poate tine mereu socoteala
modificarilor produse in mod dinamic si asincron.
Dezvoltatorii de site-uri au introdus diverse rezolvari pentru aceasta problema, folosind
IFRAME-uri invizibile pentru a retine continutul paginii anterioare. Google Maps, de exemplu,
face cautarile intr-un IFRAME invizibil si apoi aduce rezultatele in partea vizibila a paginii. In
recomandarea XHTML 1.1 a World Wide Web Consortium, organismul care standardizeaza
metodele si limbajele utilizate in Internet, se recomanda folosirea elementului object.
O alta problema a paginilor dinamice este dificultatea crearii unui link sau bookmark
catre o stare particulara a aplicatiei. Solutii au fost gasite prin utilizarea de identificatoare de
fragmente URL (portiunea unui URL de dupa un semn #), deoarece prin JavaScript se poate
modifica adresa paginii prin schimbarea acestui identificator de fragment (se modifica nu doar
informatii si portiuni dintr-o pagina, ci si adresa ei). Aceasta solutie ajuta si la problema butonului
Back, dar nu este una completa.
Griji pentru timpul de raspuns
Modificarea doar a unor portiuni din pagini poate creste totusi timpul aparent de raspuns,
deoarece utilizatorul observa mai greu modificarile facute intr-o portiune mica a unei pagini deja
incarcate. Se recomanda utilizarea unor indicatori de activitate de procesare, de exemplu celebra
clepsidra.
Optimizarea paginilor pentru motoarele de cautare
Website-urile care utilizeaza pagini incarcate prin AJAX trebuie sa fie atente sa ofere
aceeasi informatie si intr-un format clasic, pentru a putea fi indexat de robotii de citire ai
motoarelor de cautare pe Internet. Daca anumite informatii (date, text, imagini) nu apar decat la
apelarea unor functii JavaScript prin AJAX, aceste informatii nu vor fi gasite de un motor de
cautare deoarece acestea citesc doar textul existent in pagina si nu ruleaza si functiile din ea.

2.5 HTML si CSS


2.5.1 HTML (HyperText Markup Language)
HyperText Markup Language (HTML) este un limbaj de marcare utilizat pentru
crearea paginilor web ce pot fi afiate ntr-un browser (sau navigator). Scopul HTML este mai
degrab prezentarea informaiilor paragrafe, fonturi, tabele .a.m.d. dect descrierea
semanticii documentului.
HTML este o form de marcare orientat ctre prezentarea documentelor text pe o
singura pagin, utiliznd un software de redare specializat, numit agent utilizator HTML, cel mai
bun exemplu de astfel de software fiind browserul web. HTML furnizeaz mijloacele prin care
coninutul unui document poate fi adnotat cu diverse tipuri de metadate i indicaii de redare.
Indicaiile de redare pot varia de la decoraiuni minore ale textului, cum ar fi specificarea faptului
c un anumit cuvnt trebuie subliniat sau c o imagine trebuie introdus, pn la scripturi
sofisticate, hri de imagini i formulare. Metadatele pot include informaii despre titlul i autorul
documentului, informaii structurale despre cum este mprit documentul n diferite segmente,
paragrafe, liste, titluri etc. i informaii cruciale care permit ca documentul s poat fi legat de alte
documente pentru a forma astfel hiperlink-uri (sau web-ul).

30

HTML este un format text proiectat pentru a putea fi citit i editat de oameni utiliznd un
editor de text simplu. Totui scrierea i modificarea paginilor n acest fel solicit cunotine solide
de HTML i este consumatoare de timp. Editoarele grafice (de tip WYSIWYG) cum ar fi
Macromedia Dreamweaver, Adobe GoLive sau Microsoft FrontPage permit ca paginile web sa fie
tratate asemntor cu documetele Word.
HTML se poate genera direct utiliznd tehnologii de codare din partea serverului cum ar
fi PHP, JSP sau ASP. Multe aplicaii ca sistemele de gestionare a coninutului, wiki-uri i
forumuri web genereaz pagini HTML.

2.5.2 CSS (Cascading Style Sheets)


CSS (Cascading Style Sheets) este un standard pentru formatarea elementelor unui
document HTML. Stilurile se pot ataa elementelor HTML prin intermediul unor fiiere externe
sau n cadrul documentului, prin elementul <style> i/sau atributul style. CSS se poate
utiliza i pentru formatarea elementelor XHTML, XML i SVGL.
Fisierul CSS (cascading style sheet - foi de stil in cascada) va permite separarea
continutului (X)HTML de stilul de afisare in pagina. Ca de obicei, utilizati codul (X)HTML
pentru aranjarea continutului in pagina, insa toata prezentarea (fonturi, culori, fundaluri, borduri,
etc) se realizeaza din fisierul CSS. In acest moment, puteti folosi CSS-urile in doua moduri, si
anume interne sau externe.

Stilurile interne
Mai intai vom aborda metoda stilurilor interne. Aceasa metoda inseamna ca veti plasa
codul CSS in interiorul fiecarei pagini html pe care doriti sa folositi stilurile respective, intre
tagurile <head> </head> .Acest lucru se face ca in exemplul ce urmeaza:
<head>
<title>titlu pagina</title>
<style type="text/css">Aici se definesc stilurile CSS</style>
</head>
Folosind aceasta metoda (stilurile interne), fiecare fisier (X)HTML va contine codul CSS
folosit la stilizare. Asta inseamna ca atunci cand doriti sa faceti o schimbare de stil (marimea
fontului, culoare, etc) va trebui sa operati modificarea in toate paginile ce contin acel stil. Metoda
descrisa pana acum este buna atunci cand avem de stilizat doua, trei pagini, insa cand avem de a
face cu siteuri de zeci sau sute de pagini este destul de neplacut sa modificam toate paginile.

Stilurile externe
In continuare vom explora metoda stilurilor externe. Un fisier CSS extern poate fi realizat
cu orice editor simplu de text (Notepad, Wordpad, etc) sau cu editoare avansate gen
Dreamweaver. Fisierul CSS nu contine sub nici o forma cod (X)HTML, ci doar cod CSS. Fisierul
trebie salvat cu extensia .css. Inserarea fisierului extern in paginile (X)HTML se face foarte usor,
prin plasarea unui link (legatura) in sectiunea <head> </head> a fiecarei pagini pe care dorim sa
folosim stilul respectiv. Iata un exemplu de inserare a unui fisier extern .css intr-o pagina
(X)HTML:

31

<link rel="stylesheet" type="text/css" href="Calea catre fisierul.css" />


sau puteti folosi metoda de import dupa cum urmeaza:
<style type="text/css">@import url( Calea catre fisierul.css )</style>
Oricare dintre metode este buna si se obtine plasand unul dintre codurile de mai sus in
sectiunea <head> </head> a paginii, dupa cum exemplificam mai jos:
<head>
<title> titlu pagina </title>
<link rel="stylesheet" type="text/css" href="stil.css" />
</head>
sau
<head>
<title> titlu pagina </title>
<style type="text/css"> @import url( Calea catre fisierul.css ) </style>
</head>
Folosind metoda fisierelor CSS externe, toate paginile (X)HTML vor folosi acelasi fisier
de stil. Asta inseamna ca dca doriti sa faceti o schimbare care sa aiba efect in toate paginile, este
de ajuns sa modificati un singur fisier, si anume cel de stil (.css), si efectul se va observa pe toate
paginile (X)HTML ce folosesc acel fisier. Astfel faceti schimbari in tot siteul, indiferent de cate
pagini are, fara efort si mai ales foarte repede.
Iata cateva motive pentru care aceasta metoda este mai buna.

Intretinere mai usoara


Dimensiuni reduse ale paginilor
Economie de banda internet
Flexibilitate

2.6 Apache Web Server


Apache este principalul tip de server folosit pe Internet la ora actuala, constituind o
componenta cheie a infrastructurii acestuia. Cea mai importanta caracteristica a unui server web
este de traduce un URL intr-un nume de fisier si apoi sa-l trimita inapoi prin Internet, sau intr-un
nume de program, apoi sa ruleze programul si sa transmita datele de iesire catre calculatorul
sursa.
Apache este un server web foarte complex, in principal datorita numeroaselor facilitati pe
care le ofera: fiabilitate (fiind un program open-source este permanent testat si imbunatatit),
rapiditate, consum mic de resurse hardware, multitasking, virtual hosts, securitate sporita, ruleaza
pe diferite platforme, usor de configurat.
Apache HTTP Server este un web server pentru sisteme ca si Unix, Microsoft Windows,
Novell NetWare si alte sisteme de operare . Apache este remarcabil pentru ca joaca un rol cheie

32

in cresterea initiala a Internetului din lumea intreaga. Cand a fost pentru prima data eliberat,
Apache a fost singura sursa alternativa viabila la Netscape Communications Corporation web
server ( in mod current cunoscut ca si Sun Java System Web Server ). De atunci a evoluat la
rivalul Unix- servere web in termeni de functionalitate si performanta. Din Aprilie 1996 Apache
a fost cel mai popular server HTTP din intreaga lume a internetului, servind ca platforma de
referinta impotriva careia alte server web sunt intentionate si apreciate; ca si in Ianuarie 2007,
Apache a servit la 60% din toate website-urile. Apache continua sa fie cel mai popular server web
care este utilizat.
Apache este dezvoltat si mentinut de o comunitate deschisa de dezvoltatori de aplicatii sub
auspiciile Fundatiei Apache Software. Eliberata sub licenta Apache, serverul Apache HTTP este
un program gratis.
Istoria
Prima versiune a web serverului Apache a fost creeata de Robert McCool, care a fost
serios implicat in Centru National pentru Supercomputing Applications web server, cunoscut
simplu ca si NCSA HTTPd . Cand Rob a parasit NCSA la mijlocul anului 1994 a lasat o varietate
de modele pentru a imbunatati circulatia prin email. Rob McCool nu a fost singur in eforturile
sale. Multi alti dezvoltatori de aplicatii au ajutat la formarea originalului "Apache Group": Brian
Behlendorf, Roy T. Fielding, Rob Hartill, David Robinson, Cliff Skolnick, Randy Terbush,
Robert S. Thau, Andrew Wilson, Eric Hagberg, Frank Peters, si Nicolas Pioch. FAQ afirma pe
site-ul oficial al proiectului: Numele Apache a fost ales din respect pentru Tribul nativ indian
American al apasilor , bine cunoscut pentru indemanarile superioare in strategia lor si
inepuizabila anduranta. Cea mai raspandita interpretare este aceea ca numele provine din faptul ca
atunci cand a aparut la inceputul anului 1995, web serverul a constat intr-un set de patches la
codul de baza al NCSA HTTPd 1.3 si de aceea a fost "a patchy" server .Aceasta a fost explicatia
initiala a website-ului acestui proiect.
Versiunea 2 a serverului Apache a fost o rescriere substantiala din codul Apache 1.x, cu o
mare concentrare asupra ulterioarei modulatii si dezvoltarea unei retele portabile ,Apache
Portable Runtime. Partea centrala din Apache 2 x are mai multe intensificari majore fata de
Apache 1.x . Acestea include filetarea UNIX, suport mai bun pentru platforme non-UNIX , (cum
ar fi Microsoft Windows), un nou Apache API, si suport IPv6 . Prima eliberare a Apache 2 a fost
in Martie 2000 cu prima disponibilitate generala in Mai 2002.

2.7 UML
Tendina actual din industria software impune dezvoltarea de sisteme extrem de
complexe i n cel mai scurt timp posibil. Se impune cu necesitate adaptarea procesului de
dezvoltare a sistemelor informatice la cerinele din ce n ce mai complexe fa de produsele
informatice.
n plus, odat cu impunerea pe pia a limbajelor orientate obiect i a mediilor vizuale de
programare, au aprut n ultimii ani mai multe propuneri de procese de dezvoltare orientat obiect
a sistemelor informatice, ceea ce a introdus nc o pictur de haos n ecuaie.
UML-ul reprezint o sintez a celor mai multe notaii i concepte utilizate n proiectarea
orientat obiect. A nceput ca o coroborare a activitii lui Grady Booch, James Rumbaugh, i Ivar
Jacobson, creatorii a trei dintre cele mai cunoscute metodologii orientate obiect.
UML propune notaii standard i semantic corespunztoare pentru modelarea sistemelor
orientate obiect. nainte de aceasta un proiect orientat obiect putea fi descris utiliznd una dintre
zecile de metodologii disponibile, ceea ce fcea ca n cazul unei revizuiri cei responsabili de

33

aceasta s piard mult timp cu analiza notaiilor i semanticii metodologiei nainte de a ptrunde
logica proiectrii. n acest moment, utiliznd UML, diferii proiectani ce lucreaz la diverse
sisteme pot nelege cu uurin munca celuilalt.
UML-ul prescrie un set standard de diagrame i notaii pentru analiza i proiectarea
orientat obiect a diverselor tipuri de sisteme (sisteme software, sisteme hardware sau
organizaii), descriind totodat i semantica acestor diagrame i simboluri.
Limbajul unificat de modelare ofer pentru aceasta zece tipuri de diagrame ce pot fi
grupate astfel:
Diagram pentru modelarea proceselor de afaceri, respectiv:
Diagrama cazurilor de utilizare n cazul metodologiilor orientate pe cazuri de
utilizare, aceast diagram dirijeaz ntreg procesul de dezvoltare al sistemului
Diagrame pentru modelarea structurii statice, respectiv:
Diagrama claselor pentru modelarea structurii statice a claselor sistemului
Diagrama obiectelor pentru modelarea structurii statice a obiectelor sistemului
Diagrame pentru modelarea dinamicii:
Diagrame de interaciune, respectiv:
Diagrama de secven pentru modelarea circuitului mesajelor ntre obiecte
Diagrama de colaborare pentru modelarea interaciunilor ntre obiecte
Diagrame de comportament, respectiv:
Diagrama de stare pentru modelarea comportamentului obiectelor din sistem
Diagrama de activitate - pentru modelarea comportamentului cazurilor de utilizare,
obiectelor sau operaiilor
Diagrame de implementare, respectiv:
Diagrama componentelor pentru modelarea componentelor
Diagrama de desfurare pentru modelarea distribuirii sistemului
Diagrama pachetelor mijloc de grupare a elementelor diagramelor n pachete
n figura de mai jos se prezint grafic aceast clasificare a diagramelor UML.
Mecanismele de extensibilitate incluse permit ca n UML s poat fi abordate aspecte
care nu sunt specificate n standard. Aceste mecanisme permit extinderea notaiilor i semanticii
UML.
Stereotipul este cel mai utilizat dintre mecanismele de extensibilitate ale UML-ului. Un
stereotip reprezint un mecanism de calificare din punct de vedere al utilizrii. El se poate aplica
oricrui element de modelare, inclusiv claselor, pachetelor, relaiilor de motenire, etc. De
exemplu, o clas cu stereotipul <<actor>> este o clas utilizat ca agent extern n modelarea
proceselor de afaceri. O clas ablon (template) este modelat ca o clas cu stereotipul
<<parameterized>>, cu semnificaia c aceasta cuprinde parametrii.

34

Figura nr. 2.5

Cap. 3: Proiectarea bazei de date


Diagrama bazei de date

35

Figura nr 3.1
Tabela categorii
CAMP
id_categorie
id_parent
Nume
Activ

TIP
Integer
Integer
varchar(255)
integer

NULL
Nu
Nu
Nu
Nu

SETARE DE BAZA
0
1

Scop: In tabela categorii vor fi stocate departamentele(sub-departamentele) intr-o structura


arborescenta.
Observatii:
1. id_categorie este cheie primara.
2. id_parent reprezinta id-ul parintelui departamentului in cauza (id_parent=0
reprezinta primul nivel).
3. nume denumirea departamentului (sub-departamentului).
Constrangeri:
CONSTRAINT categorii_pkey PRIMARY KEY (id_categorie)
CONSTRAINT activ_categorii CHECK (activ = 0 OR activ = 1)
Indecsi:

CREATE INDEX id_parent ON categorii USING btree (id_parent);

Tabela intrebari
CAMP

TIP

NULL

id_intrebare
Continut
varianta_raspuns_1
varianta_raspuns_2
varianta_raspuns_3
varianta_raspuns_4
varianta_raspuns_5
id_raspuns_1
id_raspuns_2
id_raspuns_3
id_raspuns_4
id_raspuns_5
Activ
Utilizator
data_sistem

integer
text
text
text
text
text
text
char(1)
char(1)
char(1)
char(1)
char(1)
integer
varchar(100)
timestamp

Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu

SETARE DE BAZA

A
B
C
D
E
1
now()

36

raspuns_corect
char(1)
Nu
Scop: In tabela intrebari vor fi stocate intrebarile introduse de catre utilizatori (continut,
variante de raspuns, raspuns corect etc...)
Observatii:
1. id_intrebare este cheie primara;
2. continut reprezinta continutul intrebarii;
3. varianta_raspuns_1 .. varianta_raspuns_5 reprezinta variantele de raspuns;
4. activ in momentul in care o intrebare devine inactiva, ea nu va fi stearsa din baza
de date, in schimb campul activ va lua valoarea 0.
5. utilizator reprezinta username-ul utilizatorului care a introdus intrebarea.
6. raspuns_corect - reprezinta varianta de raspuns corespunzatoare
Constrangeri:
CONSTRAINT intrebari_pkey PRIMARY KEY (id_intrebare)
CONSTRAINT check_activ CHECK (activ = 0 OR activ = 1),
CONSTRAINT check_intrebari CHECK (raspuns_corect = 'A'::bpchar OR
raspuns_corect = 'B'::bpchar OR raspuns_corect = 'C'::bpchar OR
raspuns_corect = 'D'::bpchar OR raspuns_corect = 'E'::bpchar)
Indecsi:

CREATE INDEX utilizator_intr ON intrebari USING btree (utilizator);

Tabela istoric_intrebari
CAMP

TIP

NULL

id_istoric

integer

Nu

id_intrebare
Continut
varianta_raspuns_1
varianta_raspuns_2
varianta_raspuns_3
varianta_raspuns_4
varianta_raspuns_5
id_raspuns_1
id_raspuns_2
id_raspuns_3
id_raspuns_4
id_raspuns_5
Activ
Utilizator
Data_sistem
raspuns_corect

integer
text
text
text
text
text
text
char(1)
char(1)
char(1)
char(1)
char(1)
integer
varchar(100)
timestamp
char(1)

Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu

SETARE DE BAZA

A
B
C
D
E
1
now()

37

Scop: In tabela istoric_intrebari vor fi stocate istoricul modificarilor pentru intrebarile


introduse de catre utilizatori (continut, variante de raspuns, raspuns corect etc...)
Constrangeri:

Indecsi:

CONSTRAINT istoric_intrebari_pkey PRIMARY KEY (id_istoric),


CONSTRAINT fk_istoric_intrebari FOREIGN KEY (id_intrebare) REFERENCES
intrebari (id_intrebare) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE
NO ACTION,
CONSTRAINT check_activ_istoric CHECK (activ = 0 OR activ = 1),
CONSTRAINT check_istoric_intrebari CHECK (raspuns_corect = 'A'::bpchar OR
raspuns_corect = 'B'::bpchar OR raspuns_corect = 'C'::bpchar OR raspuns_corect =
'D'::bpchar OR raspuns_corect = 'E'::bpchar)
CREATE INDEX id_intrebare_istoric ON istoric_intrebari USING btree
(id_intrebare);
CREATE INDEX utilizator_istoric ON istoric_intrebari USING btree (utilizator);

Tabela relatie_categorii_supervizori
CAMP
Utilizator
id_categorie

TIP
varchar(100)
integer

NULL
Nu
Nu

SETARE DE BAZA
0

Scop: In tabela relatie_categorii_supervizori vor fi stocate id-urile departamentelor care se afla


in subordinea unui supervizor.
Constrangeri:
CONSTRAINT fk_categorii FOREIGN KEY (id_categorie) REFERENCES
categorii (id_categorie) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE
CASCADE
Indecsi:

CREATE INDEX id_categorie_r_c ON relatie_categorii_supervizori USING btree


(id_categorie);
CREATE INDEX utilizator_r_c ON relatie_categorii_supervizori USING btree
(utilizator);

Tabela relatie_intrebari_categorii
CAMP
id_intrebare
id_categorie

TIP
integer
integer

NULL
Nu
Nu

SETARE DE BAZA
0
0

38

Scop: In tabela relatie_intrebari_categorii vor fi stocate legaturile dintre intrebari si


departamente(sub-departamente etc...). O intrebare poate salvata pentru unul sau mai multe
departamente.
Constrangeri:
CONSTRAINT fk_id_categorie FOREIGN KEY (id_categorie) REFERENCES
categorii (id_categorie) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE
CASCADE;
CONSTRAINT fk_id_intrebare FOREIGN KEY (id_intrebare) REFERENCES
intrebari (id_intrebare) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE
NO ACTION;
CONSTRAINT relatie_intrebari_categorii_id_categorie_key UNIQUE (id_categorie,
id_intrebare)
Indecsi:

CREATE INDEX id_categorie_r_i ON relatie_intrebari_categorii USING btree


(id_categorie);
CREATE INDEX id_intrebare_r_i ON relatie_intrebari_categorii USING btree
(id_intrebare);

Tabela relatie_teste_angajat_intrebari
CAMP
id_test_angajat
id_intrebare
raspuns_corect
raspuns_angajat

TIP
integer
integer
char(1)
char(1)

NULL
Nu
Nu

SETARE DE BAZA
0
0

Scop: In tabela relatie_teste_angajat_intrebari vor fi stocate raspunsurile la intrebarile unui test


efectuat de catre angajat.
Observatii: Pentru fiecare intrebare se vor salva raspunsul corect al intrebarii si raspunsul
efectuat de catre angajat.
Constrangeri:

CONSTRAINT fk_id_test_angajat FOREIGN KEY (id_test_angajat)


REFERENCES teste_angajat (id_test_angajat) MATCH SIMPLE ON UPDATE NO
ACTION ON DELETE CASCADE;

CONSTRAINT
fk_intrebari_angajat
FOREIGN
KEY
(id_intrebare)
REFERENCES intrebari (id_intrebare) MATCH SIMPLE ON UPDATE NO
ACTION ON DELETE NO ACTION;

CONSTRAINT check_raspuns_angajat CHECK (raspuns_angajat = 'A'::bpchar


OR raspuns_angajat = 'B'::bpchar OR raspuns_angajat = 'C'::bpchar OR
raspuns_angajat = 'D'::bpchar OR raspuns_angajat = 'E'::bpchar);

CONSTRAINT check_raspuns_corect CHECK (raspuns_corect = 'A'::bpchar OR


raspuns_corect = 'B'::bpchar OR raspuns_corect = 'C'::bpchar OR raspuns_corect =
'D'::bpchar OR raspuns_corect = 'E'::bpchar)

39

Indecsi:

CREATE INDEX id_intrebare_r_t ON relatie_teste_angajat_intrebari USING btree


(id_intrebare);
CREATE INDEX id_test_angajat_r_t ON relatie_teste_angajat_intrebari USING
btree (id_test_angajat);

Tabela relatie_teste_categorii
CAMP
id_test
id_categorie
Pondere

TIP
integer
integer
float

NULL
Nu
Nu
Nu

SETARE DE BAZA
0
0
0.00

Scop: In tabela relatie_teste_categorii se vor stoca id-urile categoriilor din care este compus
un test definit de catre supervizor.
Observatii: In momentul care se defineste un test de catre supervizor, pentru fiecare categorie se
va preciza pondere (in procente), suma ponderilor fiind egala cu 100.
Constrangeri:
CONSTRAINT fk_id_categorie FOREIGN KEY (id_categorie) REFERENCES
categorii (id_categorie) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE
CASCADE;
CONSTRAINT
fk_id_test
FOREIGN
KEY
(id_test)
REFERENCES
teste_definite_supervizor (id_test) MATCH SIMPLE ON UPDATE NO ACTION
ON DELETE CASCADE;
Indecsi:

CREATE INDEX id_categorie_r_t ON relatie_teste_categorii USING btree


(id_categorie);
CREATE INDEX id_test_r_t ON relatie_teste_categorii USING btree (id_test);

Tabela teste_angajat
CAMP
id_test_angajat
id_test
Data_inceput_test
Data_sfarsit_test
Utilizator
raspunsuri_corecte
Procentaj
current_session
Anulat

TIP
integer
integer
timestamp
timestamp
varchar(100)
integer
float
varchar(100)
integer

NULL
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu

SETARE DE BAZA
0
now()
now()
0
0.00
0

40

Scop: In tabela teste_angajat se vor salva detaliile unui test efectuat de catre angajatul Credit
Europe Bank.
Observatii:
1. id_test reprezinta id-ul testului definit de catre Supervizor
2. data_inceput_test, data_sfarsit_test reprezinta data inceperii si terminarii testului.
3. utilizator username-ul angajatului care efectueaza testul.
4. raspunsuri_corecte numarul de raspunsuri corecte.
5. anulat default este setat pe 0. In momentul care un angajat doreste anularea testului,
atunci campul anulat va lua valoarea 1.
Constrangeri:
CONSTRAINT teste_angajat_pkey PRIMARY KEY (id_test_angajat);
CONSTRAINT teste_angajat_id_test_fkey FOREIGN KEY (id_test) REFERENCES
teste_definite_supervizor (id_test) MATCH SIMPLE ON UPDATE NO ACTION
ON DELETE NO ACTION;
Indecsi:

CREATE INDEX id_test_t_a ON teste_angajat USING btree (id_test);

Tabela teste_definite_supervizor
CAMP
id_test
Denumire
data_start_interval
data_stop_interval
nr_intrebari
Activ
data_sistem
Utilizator
secunde_intrebare
activare_hr

TIP
integer
varchar(100)
date
date
integer
integer
timestamp
varchar(100)
integer
integer

NULL
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu

SETARE DE BAZA
(now::text)::date
(now::text)::date
0
0
now()
60
0

Scop: In tabela teste_definite_supervizor se vor stoca setarile testelor definite de catre


Supervizor.
Observatii:
1. denumire reprezinta denumirea testului definit de catre Supervizor.
2. data_start_interval, data_stop_interval reprezinta perioada cat timp va fi activ
testul.
3. nr_intrebari reprezinta numarul de intrebari din care va fi compus testul
4. secunde_intrebare numarul de secunde per intrebare. In cazul in care
utilizatorul nu va raspunde in timp util aplicatia va trece automat mai departe.

41

5. activare_hr in cazul in care Supervizor va bifa acest camp atunci utilizatorii


Departamentului HR vor avea posibilitatea sa vizualizeze rezultatele testelor
efectuate de catre angajati.
Constrangeri:
CONSTRAINT id_test PRIMARY KEY (id_test)
Indecsi:

CREATE INDEX utilizator_t_d ON teste_definite_supervizor USING btree


(utilizator);

Tabela utilizatori
CAMP
id_utilizator
utilizator
parola
denumire
email
tip_utilizator
id_categorie
activ
data_sistem

TIP
integer
varchar(100)
varchar(100)
varchar(100)
varchar(100)
integer
integer
integer
timestamp

NULL
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu

SETARE DE BAZA

0
0
1
now()

Scop: In tabela utilizatori se vor stoca datele referitoare la conturile utilizatorilor care vor
folosi aplicatia e-Learning.
Observatii:
1. tip_utilizator reprezinta nivelul de acces al utilizatorului
2. id_categorie reprezinta id-ul departamentului in cazul in care nivelul de acces
este Sef Departament, in caz contrar campul va lua valoarea 0.
3. activ 1- utilizator activ
2- utilizator inactiv.
Constrangeri:
CONSTRAINT utilizatori_pkey PRIMARY KEY (id_utilizator);
CONSTRAINT utilizatori_tip_utilizator_key UNIQUE (tip_utilizator, utilizator);
Indecsi:

CREATE INDEX id_categorie_u ON utilizatori USING btree (id_categorie);

Tabela cursuri
CAMP
id_curs
Denumire
nr_slideuri

TIP
integer
varchar(300)
integer

NULL
Nu
Nu
Nu

SETARE DE BAZA
0

42

descriere
utilizator
activ
data_sistem

text
varchar(100)
integer
timestamp

Scop: In tabela cursuri se vor


utilizatorii Sef-Departament.
Observatii:
1.
utilizator.
2.
cursul.
3.

Da
Nu
Nu
Nu

0
1
now()

stoca datele statice referitoare la cursuri introduse de catre


denumire reprezinta denumirea cursului introdus de catre
nr_slideuri reprezinta numarul de slideuri ce caracterizeaza
descriere reprezinta o scurta descriere a cursului.

Constrangeri:

CONSTRAINT cursuri_pkey PRIMARY KEY (id_curs)


CONSTRAINT activ_cursuri_check CHECK (activ = 0 OR activ = 1)

Tabela cursuri_continut_detaliat
CAMP
id_pagina
id_curs
Continut
nr_pagina

TIP
integer
integer
text
integer

NULL
Nu
Nu
Nu
Nu

SETARE DE BAZA
0
1

Scop: In tabela cursuri_continut_detaliat se va stoca continutul fiecarui slide


corespunzator cursului
Observatii:
1.

continut reprezinta continutul


fiecarui slide.

2.

id_curs reprezinta id-ul cursului


pentru care se administreaza continutul detaliat
3.
nr_pagina valori posibile intre 1 si
numarul de slide-uri corespunzator cursului.
Constrangeri:
CONSTRAINT cursuri_continut_detaliat_pkey PRIMARY KEY (id_pagina)
CONSTRAINT cursuri_continut_detaliat_id_curs_fkey FOREIGN KEY
(id_curs) REFERENCES cursuri (id_curs) MATCH SIMPLE ON UPDATE NO
ACTION ON DELETE CASCADE
Indecsi:

43

CREATE INDEX id_curs_1 ON cursuri_continut_detaliat USING btree


(id_curs);

Tabela cursuri_materiale_auxiliare
CAMP
id_fisier
id_curs
Fisier
data_sistem

TIP
integer
integer
varchar(500)
timestamp

NULL
Nu
Nu
Nu
Nu

SETARE DE BAZA
0
now()

Scop: In tabela cursuri_materiale_auxiliare se vor stoca fisierele auxiliare uploadate


pentru fiecare curs.
Observatii:
1. fisier reprezinta numele fisierului uploadat.
2. id_curs reprezinta id-ul cursului pentru care se uploadeaza fisiere auxiliare.
Constrangeri:
CONSTRAINT cursuri_materiale_auxiliare_pkey PRIMARY KEY (id_fisier)
CONSTRAINT cursuri_materiale_auxiliare_id_curs_fkey FOREIGN KEY
(id_curs) REFERENCES cursuri (id_curs) MATCH SIMPLE ON UPDATE NO
ACTION ON DELETE CASCADE
Indecsi:

CREATE INDEX id_curs_2 ON cursuri_materiale_auxiliare USING


btree (id_curs);

Tabela intrebari_quiz
CAMP

TIP

NULL

SETARE DE BAZA

id_intrebare_quiz
Continut
varianta_raspuns_1
varianta_raspuns_2
varianta_raspuns_3
varianta_raspuns_4
varianta_raspuns_5
id_curs
Activ

Integer
Text
Text
Text
Text
Text
Text
Integer
Integer

Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu
Nu

0
1

44

Utilizator
data_sistem
raspuns_corect

varchar(100)
Timestamp
char(1)

Nu
Nu
Nu

now()

Scop: In tabela intrebari_quiz vor fi stocate intrebarile introduse de catre utilizatorii Sef
Departament (continut, variante de raspuns, raspuns corect etc...) intrebarile vor alcatui testul
de verificare pentru fiecare curs.
Observatii:
1. id_intrebare_quiz este cheie primara;
2. continut reprezinta continutul intrebarii;
3. varianta_raspuns_1 .. varianta_raspuns_5 reprezinta variantele de raspuns;
4. activ in momentul in care o intrebare devine inactiva, ea nu va fi stearsa din baza
de date, in schimb campul activ va lua valoarea 0.
5. utilizator reprezinta username-ul utilizatorului care a introdus intrebarea.
6. raspuns_corect - reprezinta varianta de raspuns corespunzatoare
Constrangeri:

Indecsi:

CONSTRAINT intrebari_quiz_pkey PRIMARY KEY (id_intrebare_quiz),


CONSTRAINT intrebari_quiz_id_curs_fkey FOREIGN KEY (id_curs)
REFERENCES cursuri (id_curs) MATCH SIMPLE ON UPDATE NO
ACTION ON DELETE CASCADE,
CONSTRAINT check_activ CHECK (activ = 0 OR activ = 1),
CONSTRAINT check_intrebari CHECK (raspuns_corect = 'A'::bpchar OR
raspuns_corect = 'B'::bpchar OR raspuns_corect = 'C'::bpchar OR
raspuns_corect = 'D'::bpchar OR raspuns_corect = 'E'::bpchar)
CREATE INDEX id_curs_3 ON intrebari_quiz USING btree (id_curs);

Tabela subiecte
CAMP
id_subiect
id_curs
denumire
data_sistem
nivel
utilizator

TIP
integer
integer
varchar(500)
timestamp
Integer
Varchar(100)

NULL
Nu
Nu
Nu
Nu
Nu
Nu

SETARE DE BAZA
0
now()
1

Scop: In tabela subiecte se vor stoca subiectele postate de catre utilizatori.


Observatii:

45

1.

id_curs reprezinta id-ul cursului pentru care se vor posta


subiecte

2.

nivel reprezinta nivelul de acces al utilizatorului care


posteaza subiectele.

Constrangeri:
CONSTRAINT subiecte_pkey PRIMARY KEY (id_subiect),
CONSTRAINT
subiecte_id_curs_fkey
FOREIGN
KEY
(id_curs)
REFERENCES cursuri (id_curs) MATCH SIMPLE ON UPDATE NO ACTION ON
DELETE CASCADE
Indecsi:

CREATE INDEX id_curs_4 ON subiecte USING btree (id_curs);

Tabela subiecte_detaliat
CAMP
id_comentariu
id_subiect
Comentariu
data_sistem
Nivel
Utilizator

TIP
integer
integer
text
timestamp
Integer
Varchar(100)

NULL
Nu
Nu
Nu
Nu
Nu
Nu

SETARE DE BAZA
0
now()
1

Scop: In tabela subiecte_detaliat se vor stoca comentariile introduse pentru fiecare subiect in
parte.
Observatii:
1.

id_subiect reprezinta id-ul


subiectului pentru care se vor posta comentarii
2.
comentariu reprezinta continutul
comentariului introdus de utilizator
3.
nivel reprezinta nivelul de acces al utilizatorului care
posteaza comentariile.
Constrangeri:
CONSTRAINT subiecte_detaliat_pkey PRIMARY KEY (id_comentariu)
CONSTRAINT subiecte_detaliat_id_subiect_fkey FOREIGN KEY (id_subiect)
REFERENCES subiecte (id_subiect) MATCH SIMPLE ON UPDATE NO ACTION
ON DELETE CASCADE
Indecsi:

46

CREATE INDEX id_subiect ON subiecte_detaliat USING btree


(id_subiect);

Cap. 4: Prezentarea aplicatiei E-Learning


4.1 Logarea/delogare in aplicatie
Tinand cont de faptul ca in cadrul aplicatiei e-Learning intalnim mai multe nivele de
acces, in momentul logarii, utilizatorul va specifica, pe langa username si parola, grupul de care
apartine.

Figura nr. 4.1


Optiunile definite pentru Grup sunt urmatoarele:

Angajat
Vanzari directe

47

Administrator
Supervizor
Sef Departament
HR (Departamenul Resurse Umane)

Daca pentru ultimile cinci optiuni (Vanzari Directe ... HR), in momentul logarii
utilizatorul isi va introduce username-ul si parola(default este 123456) asa cum au fost definite
in tabela specifica utilizatorilor aplicatiei, pentru optiunea Angajat este necesara introducerea
username-ului si a parolei de windows.
Tinand cont de cele prezentate mai sus, pentru logarea in aplicatia e-Learning distingem
doua cazuri din punctul de vedere al functionalitatii:
a) logarea folosind username-ul si parola de windows (Active Directory)
Pentru a implementa aceasta functionalitate s-a folosit prin intermediul PHP-ului serviciul
LDAP care a fost configurat in prealabil in fisierul php.ini deoarece extensia php_ldap.dll este
default dezactivata.
LDAP (Lightweight Directory Access Protocol) este un protocol standard, stabilit de
Internet Engineering Task Force (IETF), care ofer utilizatorilor unei reele, posibilitatea de a
cuta i modifica informaiile dintr-un Directory Service. LDAP gestioneaz o baz de date
object-oriented. ntr-o astfel de baz de date, diferenierea se face cu ajutorul claselor de obiecte
si a obiectelor n sine. Baza de date are o structur de tip arbore, iar nivelul de pe cea mai nalt
poziie se numeste root. n cazul LDAP, root-ul este numit Root DN(Root Distinguished Name).
De regul, se adaug un sufix la acest root, pentru a defini numele companiei si un cod de ar.
Ex: DC=int, DC=finansbank, DC=ro
Pentru a putea utiliza acest serviciu, pe langa definirea DN-ului va trebui specificat si numele sau
adresa serverului pe care il vom folosi.
Ex: buc-ho-dc.int.finansbank.ro
Secventa tipica care trebuie folosita pentru a apela serviciul LDAP este urmatoarea:

ldap_connect()

Stabilirea
conexiunii cu
server-ul

ldap_bind()

Autentificare
cu username
si parola

ldap_close()

Inchiderea
conexiunii

Figura nr. 4.2

48

b) logarea folosind contul existent in baza de date


Utilizatorul va introduce username-ul si parola. Daca verificarea are loc cu succes, se va
autentifica utilizatorul in functie de grupul de acces ales, in caz contrar, i se va afia un mesaj de
eroare.
Diagrama de activitate:
Autentificare

Logat

Validare

Mesaj avertizare

Figura nr. 4.3

4.2 Structura aplicatiei


Structura si functionalitatea aplicatiei deriva din rolurile utilizatorilor acesteia

4.2.1 utilizatorul Angajat


Cazul de utilizare general pentru utilizatorul Angajat

49

Figura nr. 4.4


Utilizatorul Angajat, reprezentat prin personalul bancii Credit Europe Bank, se
logheaza in cadrul aplicatiei e-Learning prin intermediul user-ului si parolei de windows. Dup
logare intra intr-un panou de administrare care ii ofer urmtoarele facilitai:
1.

vizualizarea testelor pe care angajatul le-a efectuat de-a lungul


timpului. Prin vizualizare se intelege urmatoarele lucruri:
vizualizarea procentajului obtinut la testul respectiv (de asemenea utilizatorul
poate vizualiza numarul de raspunsuri corecte si gresite);
vizualizarea datei efectuarii testului si a timpului de raspuns;
vizualizarea starii unui test (starea unui test poate lua doua valori:
Efectuat corect si Anulat. Un test poate trece in starea Anulat in
momentul in care administratorul IT anuleaza rezultatul obtinut la testul in
cauza. Motivele pentru care un test se poate anula sunt determinate de cauze
externe aplicatiei e-Learning (blocarea calculatorului, intreruperea curentului
etc...)
vizualizarea raspunsurilor date de catre angajat precum si a raspunsurilor
corecte la intrebarile ce au fost gresite.
Testele salvate in istoric vor fi generate pdf, astfel angajatul avand posibilitatea printarii
si salvarii pe disk. Trebuie mentionat faptul ca aceeasi intrebare poate avea continut diferit de la
un test la altul. Pentru a implementa aceasta functionalitate, se foloseste o tabela pentru a stoca
istoricul modificarilor unei intrebari. Astfel, utilizatorul va vizualiza detaliile intrebarilor exact
cum au fost generate in test.
2. efectuarea testului activ
In cadrul aplicatiei e-Learning un singur test va fi activ la un moment dat pentru a evita
angajarea persoanelor examinate in teste care nu le sunt destinate. In cazul in care angajatul a
efectuat testul respectiv, el va avea posibilitatea sa efectueze inca o data testul doar daca
administratorul IT ii va anula in baza de date rezultatul anterior.
Logaresa
e-Learning
In cadrul unui test, angajatul va trebui
raspunda la un numar de intrebari(diferit de la
un test la altul) stabilit de catre utilizatorul Supervizor. Fiecare intrebare are cinci variante de
raspuns, fiind corect doar un singur raspuns. In cazul in care angajatul nu va raspunde in timp util
la fiecare intrebare(pentru fiecare test este alocat un numar de secunde per intrebare), aplicatia eExista test activ?
Learning va trece automat mai departe, in schimb nu se va luaNU
in considerare nici un raspuns
corect.
DA
Diagrama de activitate:
A fost efectuat
testul?

DA

NU
Raspunde intrebare curenta

Nr curent<Nr
intreb test?

DA

NU
Afisare rezultat test

50

Figura nr. 4.5


In cazul in care testul este efectuat de catre un utilizator Angajat care are drepturi de
Supervizor, acesta va putea sa isi stearga rezultatele testelor doar daca acestea au fost definite
de catre el. Scopul efectuarii propriilor teste este de a se asigura ca continutul intrebarilor si
variantele de raspuns sunt generate corespunzator.
In momentul in care doi sau mai multi utilizatori Angajat dau simultan testul, ei nu vor
raspunde la aceleasi intrebari, deoarece intrebarile sunt generate aleator din aria corespunzatoare
testului.
3. parcurgerea cursurilor existente
Utilizatorul Angajat va avea posibilitatea sa parcurga si sa acceseze toate cursurile
existente in aplicatie. Prin parcurgerea unui curs existent in aplicatia e-Learning se intelege
urmatoarele lucruri:
parcurgerea cursului detaliat pagina cu pagina. Finalizarea cursului consta in
parcurgerea tuturor paginilor. De asemenea, pe masura ce utilizatorul parcurge
cursul, va avea posibilitatea sa isi faca notite pentru fiecare pagina citita.
Ulterior, dupa finalizarea cursului, utilizatorul isi va putea accesa notitele create
pentru cursul respectiv.
descarcarea materialelor existente pentru fiecare curs (in format .pdf, .doc etc)
dupa parcurgerea integrala a cursului.
exprimarea opiniei despre continutul cursului prin vot.
Diagrama de activitate:

51

Figura nr. 4.6


4. participarea la discutii legate de cursuri
Utilizatorul Angajat are posibilitatea participarii la discutii legate de continutul
cursurilor. Fiecare utilizator poate deschide un nou subiect legat de un curs sau poate interveni la
discutiile deja existente. Cei ce vor raspunde la intrebarile cursantilor (in cazul nostru cursantii
sunt angajatii Credit Europe Bank) sunt utilizatorii Sef-Departament. Supervizorii au
posibilitatea sa intervina oricand in discutiile dintre angajati si sefii de departament.

4.2.2 utilizatorul Vanzari Directe


Utilizatorul Vanzari Directe, reprezentat prin personalul departamentului de Vanzari al
Credit Europe Bank, va avea aceleasi drepturi ca si utilizatorul Angajat (vizualizare rezultate
teste, efectuarea testelor active, parcurgerea cursurilor,participarea la discutii), singura diferenta
constand in faptul ca acesti angajati nu au cont de windows. Pentru a se putea loga in aplicatia eLearning, administratorul IT le va crea un cont special pe baza de username si parola.

52

4.2.3 utilizatorul Administrator


Cazul de utilizare general pentru utilizatorul Administrator
Logare aplicatie

Adaugare/editare
utilizator
Vizualizare
istoric intrebari
Activare/
inactivare test

Administrator

Schimbare
setari cont

Rulare rapoarte

Figura nr. 4.7


Utilizatorul Administrator, reprezentat printr-unul sau mai multi angajati din cadrul
Logare in
e-Learning
departamentului IT, se logheaza
cadrul aplicatiei e-Learning prin intermediul unui cont special
bazat pe username si parola. Dup logare intra intr-un panou de administrare in cadrul caruia
poate efectua urmatoarele operatii:
1. adaugare/editare utilizatori
Exista utilizator?

DA

Editeaza utilizator

Cu ajutorul acestui meniu, Administratorul aplicatiei e-Learning poate crea noi utilizatori
sau edita utilizatorii deja existentiNUin baza de date. Pentru crearea unui utilizator nou,
Administratorul va trebui sa completeze urmatoarele informatii:
username (denumirea utilizatorului)
Completare username, nume angajat, nivel acces
nume, prenume angajat
nivel acces (Sef Departament, Supervizor, HR si Vanzari
Directe)
in Nivel
cazulacces=Sef
in care nivelul de NU
acces este Sef Departament, va trebui
Departament
specificat
de asemenea departamentul pe care il coordoneaza. OBS.
NU
Utilizatorul Sef Departament va coordonaNivel
un singur
departament.
acces=Supervizor
in cazul in DA
care nivelul de acces este Supervizor, va trebui specificat
unul sau mai multe departamente pe care acest tip de utilizator le are in
Selecteaza Departament
subordine.
DA

Diagrama de activitate:

Salveaza utilizator

Selecteaza Departamentele

53

Figura nr. 4.8


2. vizualizare istoric intrebari
Utilizatorul Administrator va avea posibilitatea vizualizarii istoricului modificarilor
intrebarilor. Informatiile ce vor fi afisate utilizatorului sunt urmatoarele:

ID si continut intrebare
Variante de raspuns precum si raspunsul corect
Categoria de care apartine intrebarea
Utilizatorul care a adaugat intrebare
Data ultimei modificari.

In cazul in care o intrebare a suferit modificari de-a lungul timpului, utilizatorul


va avea posibilitatea vizualizarii tuturor modificarilor fiind evidentiata ultima modificare
efectuata asupra intrebarii.
3. activare/inactivare test

54

Utilizatorul Administrator este responsabil cu activarea sau inactivarea testelor definite


de catre Supervizor. Administratorul va vizualiza toate testele existente in baza de date, avand
posibilitatea activarii/inactivarii unui test. Informatiile care definesc un test sunt urmatoarele:

Denumire test
Data inceput perioada test
Data sfarsit perioada test
Numar de intrebari
Numar de secunde per intrebare
Utilizatorul care a creat testul

4. rulare rapoarte
Administratorul va avea posibilitatea rularii unor rapoarte pentru fiecare test existent in
aplicatia e-Learning. Vom descrie functionalitatea acestor rapoarte in sectiunea dedicata
utilizatorului Supervizor, singura diferenta intre Administrator si Supervizor constand in
faptul ca utilizatorul Administrator va putea rula rapoartele pentru fiecare test, in schimb
utilizatorul Supervizor fiind restrictionat doar la testele introduse de el.
5. schimbare setari cont
Tinand cont de faptul ca in afara de utilizatorul Angajat, pentru celelalte nivele de
acces utilizatorii vor folosi pentru logarea in aplicatia e-Learning conturi existente in baza de date
(username si parola), este necesara existenta unei optiuni pentru schimbarea parolei si denumirii
utilizatorului.

4.2.4 utilizatorul Sef Departament


Cazul de utilizare general pentru utilizatorul Sef Departament

55

Figura nr. 4.9


Utilizatorul Sef Departament, reprezentat prin managerii departamentelor sau sefii de
echipa din cadrul Credit Europe Bank, se logheaza in cadrul aplicatiei e-Learning prin
intermediul unui cont special bazat pe username si parola.
Acest tip de utilizator va avea urmatoarele optiuni:
1. adaugarea/editarea/inactivarea de capitole/subcapitole

Figura nr. 4.10


Semnificatie Diagrama:
-

primul nivel este format din departamente ce vor fi predefinite, fiecare departament
avand unul sau mai multi utilizatori (nivel acces - Sef Departament).

56

Incepand de la nivelul 2 structura diagramei va fi administrata de fiecare utilizator


pentru ramura sa (department). Pentru a adauga un nou nod la structura
arborescenta, utilizatorul Sef Departament va trebui sa precizeze numele nodului
si parintele.
Prin nod frunza se intelege urmatorul lucru: nodul care nu prezinta nici un fiu.
Exemple noduri frunza: Cap3, Subcap1, Subcap3, Subcap5, Subcap6, Subcap7, in
schimba Subcap2 si Subcap4 NU sunt noduri frunza.

2. adaugarea/editarea/(in)activarea/stergerea de intrebari
-

utilizatorii Sef Departament vor adauga/edita intrebari doar pentru departamentul


lor si vor avea posibilitatea sa lege intrebarile doar de nodurile frunza..
pentru a adauga o intrebare noua, utilizatorul va trebui sa specifice nodul frunza
precum si continutul intrebarii, cele cinci variante de raspuns si varianta raspunsului
corect.
Fiecarei intrebari nou introduse i se va aloca automat un ID (astfel vom putea
diferentia intrebarile identice dar cu raspunsuri diferite, situatie ce poate aparea in
urma schimbarilor normelor/procedurilor).
De asemenea utilizatorii vor putea sa copieze intrebarile dintr-un nod frunza
(capitol, subcapitol etc...) intr-un alt nod frunza.
Legat de editarea/(in)activarea/stergerea intrebarilor, utilizatorii vor avea urmatoarele
restrictii:
o Pentru stergerea unei intrebari este obligatoriu ca aceasta sa nu fi fost folosita
la nici un test.
o (in)activarea unei intrebari este posibila in orice moment, cu mentiunea ca
intrebarile active se vor vizualiza din alta fereastra.
o In cazul in care utilizatorul va edita o intrebare, continutul va fi salvat in
tabela istoric precum si data modificarii. In cazul in care un angajat va
efectua un test iar continutul unor intrebari din cadrul testului respectiv vor fi
modificate, atunci angajatul va avea posibilitatea vizualizarii intrebarilor asa
cum au fost generate in test.
Utilizatorii Sef Departament vor avea posibilitatea sa genereze pdf-uri cu toate
intrebarile din fiecare nod frunza pentru o mai buna vizualizare a acestora.

In figura de mai jos este prezentata un exemplu de ramura pentru utilizator Sef Departament.

57

Figura nr. 4.11


3. administrare continut cursuri
Utilizatorul Sef Departament este cel responsabil de administrarea continutului unui
curs. In cazul in care se doreste introducerea unui curs se vor specifica urmatoarele campuri:

denumirea cursului
o scurta descriere a cursului (prefata)
prezentarea detaliata a cursului.Utilizatorul va fi nevoit sa introduca cursul
slide cu slide, ulterior avand posibilitatea editarii slide-urilor
introducerea testului de verificare.Fiecare intrebare va avea, ca si in cazul
testelor reale, 5 variante de raspuns si un singur raspuns corect, cu precizarea
ca se va indica si pagina unde se gaseste raspunsul. Scopul acestui test este
de a veni in sprijinul angajatilor pentru o rapida asimilare a cunostintelor.

58

uploadarea de fisiere (in format .pdf, .doc etc...) care sa vina in completarea
cursului.

Tinand cont de faptul ca angajatii au posibilitatea de a-si exprima opiniile legate de


continutul cursurilor, utilizatorii Sef-Departament vor vizualiza rezultatele voturilor legate de
cursurile pe care le administreaza.
4. participare la discutii
Pe langa faptul ca sunt responsabili de administrarea continutului unui curs, utilizatorii
Sef-Departament vor avea ca sarcina sa raspunda la intrebarile venite din partea angajatilor. De
asemenea, sefii de departament vor putea deschide subiecte noi legate de anumite aspecte ale
continutului unui curs.

4.2.5 utilizatorul Supervizor


Cazul de utilizare general pentru utilizatorul Supervizor

Figura nr. 4.12


Utilizatorul Supervizor, reprezentat prin senior managerii din cadrul Credit Europe
Bank, se logheaza in cadrul aplicatiei e-Learning prin intermediul unui cont special bazat pe
username si parola.
Acest tip de utilizator va avea urmatoarele optiuni:
1. verificarea activitatii utilizatorului Sef-Departament

59

utilizatorul Supervizor va avea in subordine unul sau mai multe departamente


descrise in figura nr. .Astfel, utilizatorul are posibilitatea sa verifice datele introduse
in aplicatie de catre utilizatorul Sef-Departament: capitole, intrebari etc...
Supervizor are aceleasi optiuni ca si seful de departament cu mentiunea ca el
controleaza unul sau mai multe departamente. In cazul in care informatiile introduse
de catre utilizatorul Sef Departament sunt gresite, Supervizorul va avea
posibilitatea sa le editeze.

2. definirea unui test


Utilizatorul Supervizor are posibilitatea definirii testelor ce urmeaza sa fie parcurse de
catre angajati. Initial testele sunt inactive, fiind ulterior activate de catre utilizatorul
Administrator.
Prin definirea unui test se intelege urmatoarele:
-

alegerea de noduri frunza (capitole, subcapitole etc...)

Figura nr. 4.13


-

Definirea de ponderi pentru fiecare nod frunza, suma tuturor ponderilor fiind
100%.
Stabilirea numarului total de intrebari ce va contine testul.
Stabilirea numarului de secunde per intrebare.
Specificarea faptului daca utilizatorii din cadrul departamentului de Resurse Umane
au sau nu acces la rezultatele acestui test.

60

Intervalul de timp ales pentru test va fi doar o sugestie pentru programarea de catre
administrator a testelor, deoarece exista posibilitatea ca in acelasi interval sa fie
mai multe teste cerute pentru activare.
In momentul realizarii structurii unui test (prin structura ne referim la nodurile
frunza alese), utilizatorul Supervizor va avea posibilitatea sa genereze un pdf cu
totalitatea intrebarilor ACTIVE din categoriile ales pentru test.

Diagram de activitate:

Figura nr. 4.13


3. rularea de rapoarte
Utilizatorul Supervizor poate rula in cadrul aplicatiei e-Learning urmatoarele rapoarte:

61

lista teste - In cadrul acestui raport, utilizatorul are posibilitatea vizualizarii tuturor
testelor efectuate de catre angajati precum si a detaliilor pentru fiecare test: nume
angajat, denumire test, numar total intrebari, procentaj obtinut, data incepere test,
durata. In cazul in care se doreste, lista poate fi filtrata dupa: interval de timp,
username angajat si denumire test. Utilizatorul Supervizor poate exporta rezultatele
filtrate intr-un fisier .csv. De asemenea pentru fiecare test efectuat de catre angajat,
Supervizorul are posibilitatea generarii unui pdf detaliat cu intrebarile
corespunzatoare testului in cauza. Pentru fiecare intrebare se prezinta raspunsul
corect si raspunsul dat de catre angajat.

evolutie angajat Utilizatorul Supervizor poate vizualiza pentru fiecare angajat


evolutia activitatii (atat sub forma grafica cat si sub forma de raport generat in pdf).

Figura nr. 4.14

raport detaliat per test

ID intrebare

Corecte

Durata

62

bogdan.ciocan
Total intrebari
Total gresite
Raspuns A(%)

0
0
0

C
1
1
0.00

D
1
1
0.00

E
1
1
0.00

C
1
0
0.00

0
0
0

B
1
1
0.00

Raspuns B(%)

0.00

0.00

0.00

100.00

Raspuns C(%)
Raspuns D(%)
Raspuns E(%)
Fara
raspuns(%)

0
0
0

0.00
100.0
0
0.00
0.00

0.00
100.00
0.00

0.00
0.00
100.00

100.00
0.00
0.00

0
0
0

0.00
0.00
0.00

0.00

0.00

0.00

0.00

0.00

00:00:12

Tabel nr 4.1
Semnificatie tabel:
-

pe prima linie se vor genera id-urile tuturor intrebarilor corespunzatoare categoriilor


ce definesc testul in cauza (in cazul nostru avem intrebarile cu id-urile de la 1 la 8).
pe liniile urmatoare se vor genera raspunsurile oferite de catre angajatii care au
completat testul (in cazul de fata avem un singur angajat care a efectuat testul)
precum si a numarului de raspunsuri corecte si durata testului.
OBS. In cazul in care in cadrul unei intrebari nu avem nici un raspuns dat de
catre angajat , se va complate X iar daca intrebarea nu a fost generata in testul
respectiv atunci se lasa spatiu liber.
total intrebari pentru fiecare intrebare se va calcula numarul aparitiilor in testele
date de catre angajati.
total gresite pentru fiecare intrebare se va calcula numarul de raspunsuri gresite.
raspuns A ... E, fara raspuns pentru fiecare intrebare se va calcula ponderea fiecarei
variante de raspuns (de la A la E) precum si ponderea pentru intrebarile la care nu s-a
dat nici un raspuns.

Rapoartele prezentate mai sus pot fi rulate doar pentru testele ce au fost definite de
catre supervizorul respectiv, neexistand posibilitatea rularii rapoartelor pentru teste
definite de catre alti supervizori.

4.2.6 utilizatorul HR
Utilizatorul HR reprezentat de catre angajati din cadrul departamentului de Resurse
Umane are posibilitatea rularii in aplicatia e-Learning de rapoarte similare celor destinate
utilizatorului Supervizor, cu mentiunea ca utilizatorul HR va rula rapoartele pentru testele care
au bifata optiunea Test prin HR. Utilizatorul HR va avea acces la toate testele care au bifata
aceasta optiune, indiferent de utilizatorul care a definit testul.

4.3 Proiectarea sistemului informatic


Diagrama de componente

63

Figura nr 4.15
Sistemul conceput are urmtoarele componente:
- baza de date cu informaiile despre utilizatori, intrebari, teste si cursuri;
- proceduri ce sunt responsabile cu validarea datelor;
- formulare ce asigura nregistrarea intrebari,teste si cursuri noi, cat si formulare
specifice partii de administrare a aplicatiei(inregistrarea de utilizatori noi,
modificarea setarilor contului);
- interfaa prietenoasa cu utilizatorii, fie ca sunt angajati care efectueaza testele sau
parcurg cursurile existente sau administratorii aplicatiei care seteaza continutul
testelor sau a cursurilor;
- generatoare de rapoarte.
Diagrama de desfasurare

Figura nr 4.16

4.4 Dezvoltari ulterioare

64

Exista numeroase imbunatatiri care pot fi aduse aplicatiei. Tinand cont de faptul ca
aplicatia e-Learning prezentata mai sus contine doar doua componente folosite la managementul
unui sistem de educatie la distanta:
- componenta e-Testing (administrarea continutului intrebarilor, variantelor de raspuns,
administrarea continutului unui test etc...);
- componenta de management a continutului educational;
se pot dezvolta si alte componente cum ar fi:
-

Sisteme pentru managementul informaiilor (Management Information System


MIS).Acestea se refer la diferite activiti efectuate de secretariat, bibliotec i
sistemul administrativ;
crearea unui mediu virtual interactiv, de exemplu o clas de cursuri, n care
participanii s se simt ct mai aproape de una real. n acelai timp, chiar anumite
obiecte parte dintr-un curs tehnic de exemplu, pot fi vizualizate 3D.

Pe langa adaugarea de noi module, se pot aduce imbunatatiri celor existente:


-

implementarea unei facilitati pentru uploadarea continutului unui test sau a unui curs
prin intermediul unui fisier XML.
Integrarea in cadrul aplicatiei a unui messenger online disponibil pentru cursanti.
Implementarea de noi rapoarte care sa evidentieze informatii precum: numarul si
timpul utilizarii aplicatiei de catre cursanti, timpul parcurgerii unui curs etc...

CONCLUZII
Cresterea continua a volumului de informatii si utilizarea tehnologiilor moderne necesita
acumularea si intelegerea unui numar tot mai mare de cunostinte si de informatii, de catre tot mai

65

multi oameni. Tehnicile moderne de invatare, pentru a fi eficiente, trebuie sa aiba un anumit grad
de interactivitate cu subiectul uman si sa transmita informatia pe mai multe canale (text, sunet si
imagine) intr-o maniera asociata. Forma nu trebuie sa fie excesiv de variata, dar suficient de
adaptata continutului, pentru a transmite ideile ct mai firesc.
Dezvoltarea exploziva a Internetului si a tehnologiilor Web a creat premisele unor
oportunitati si unor noi provocari pentru relatiile dintre oameni. In aceasta noua economie
digitala, exista pericolul ca o institutie sa constate ca nu poate face fata avalansei se informatii si
ca propria retea Intranet a ajuns la un nivel de saturare, care nu ii mai poate asigura gestionarea
eficienta a datelor. Pentru a ramne in business, o astfel de organizatie nu trebuie dect sa
implementeze un portal care sa ii permita optimizarea sigura si scalabila a accesului la informatie,
precum si o administrare centralizata a tuturor serviciilor prin intermediul unui simplu Browser.
Intr-un studiu IDC (International Data Corporation), se estimeaza ca din ce in ce mai
multe companii mari si de marime medie isi vor construi portaluri de corporatie. Astfel, aplicatiile
e-Learning vor deveni mai viabile si mai utile.
Particularitile specifice tehnologiilor de e-Learning aduc noi dimensiuni n educaie i
pot fi complementare sau alternative fa de metodele tradiionale din domeniul educaiei. Aceste
particulariti ofer posibilitatea organizrii nvmntului online pe subiecte sau teme, n timp
ce nvmntul tradiional este organizat pe grupe/clase de vrst.
Procesul de predare-nvare-examinare capt noi dimensiuni i caracteristici prin
utilizarea tehnologiilor e-Learning. Sistemul de nvmnt din ara noastr este n mod direct i
determinant implicat n fundamentarea i construirea societii informaionale. O societate
informaional se nate ntr-un mediu n care marea majoritate a membrilor ei are acces la
tehnologii IT&C i utilizeaz frecvent tehnologiile informaionale privind rezolvarea
unor probleme economice, sociale, etc.
Construirea unei societi informaionale, ce va reprezenta trecerea la societatea
cunoaterii, nu se poate realiza fr cercetare i proiecte de investiii, att n domeniul IT&C, ct
i n domeniul educaiei. Dezideratul final fiind competena, nici o tehnologie, nici o teorie, nici o
abordare nu va elimina sau neglija relaia profesor-elev/student. Toate vor fi instrumente comode
i eficiente la ndemn, att a profesorului, ct i a studentului.

BIBLIOGRAFIE
-

Welling, Luke Thomson, Laura, Dezvoltarea aplicaiilor Web cu PHP SI


MySQL, ediia a II-a, Editura Teora, Bucureti, 2005;

66

Meloni, Julie C., PHP, MySQL si Apache, Editura Corint, Bucureti, 2005.

Darie, Cristian, PHP 5 si Mysql pentru comer electronic, Editura Teora,


Bucureti, 2006.

Sabau, Gheorghe Velicanu , Manole Lungu, Ion Muntean, Mihaela - Sisteme


informatice. Analiza, proiectare si implementare, Editura Economica,
Bucureti, 2003

LDAP LDAP Functii - http://www.php.net/manual/ro/ref.ldap.php

ADODB - ADOdb Database Abstraction Library for PHP


-http://adodb.sourceforge.net/

Wikipedia - Why PostgreSQL Instead of MySQL: Comparing Reliability and


Speed in 2007 - http://wiki.postgresql.org/wiki/Why_PostgreSQL_Instead
_of_MySQL:_Comp aring_Reliability_and_Speed_in_2007

Ajax - A library of DHTML and Ajax scripts - http://www.dhtmlgoodies.com/

www.php.net

www.postgresql.org

ANEXA 1 CLASA ADODB


ADODB este o clasa PHP care asigur control asupra unei baze de date, dar fr a cere o
anumit baz de date. Asta nseamn c acelasi cod poate fi folosit pentru a accesa MySQL,
Oracle si PostgreSQL. Cum funcioneaz? Abstractizare! Aceasta este capacitatea de a generaliza

67

un sistem sau API, astfel nct detaliile s fie ascunse. Cei mai muli dintre noi folosim
abstractizri, fr s ne dm seama. Chiar si programatorii n C, si fac viaa mai usoar cu
ajutorul abstractizrilor. Fiecare funcie, expresie si afirmaie abstractizeaz anumite detalii
hardware ale procesorului fa de programator, prin intermediul limbajului C. Aceasta e o
abstractizare de nivel inferior.
Programarea de baze de date cu SQL este o abstractizare de nivel superior. Baza de date
(fie MySQL, PostgreSQL sau Oracle) poate funciona n orice mod, poate s aib orice algoritm
si pote folosi orice fisiere doreste. Alegnd un limbaj comun (SQL) pentru comunicare, nu mai
trebuie s ne facem griji pentru anumite detalii specifice. n schimb, ne putem dedica timpul unor
sarcini mai importante, cum ar fi crearea unor chestionare inner joins si select ct mai eficiente!
Aceast abstractizare nu se extinde la modul n care programm baza de date, deoarece
fiecare are propriul API. n PHP, putei iniia un dialog cu o baz de date MySQL numit
fredbloggs folosind,
$db = mysql_connect(localhost, myuser, mypass);
mysql_select_db(fredbloggs);
n timp ce PostgreSQL cere,
$db = pg_connect(host=localhost dbname=fredbloggs user=myuser password=mypass);
Desi cei mai muli dintre acesti parametrii sunt opionali, transferarea de cod ntre baze
de date este destul de dificil, deoarece fiecare handler connect, select si error trebuie rescris
pentru a corespunde bazei de date. i asta de fiecare dat cnd sunt folosite. Nu doar o modificare
a numelui funciei, ci si a structurii si a formatului argumentelor. La fel ca si codurile de eroare.
Soluia este abstractizarea funciei specifice database_connect dintr-o anumit baz de date si
folosirea unui apel API comun.

Exemplu conectare la baza de date de tip PostgreSQL


<?php
include('adodb/adodb.inc.php');
$db_host="localhost";
$db_user="postgres";
$db_pass="postgres";
$db_name="e-testing";
$db_type="postgres";
$db = ADONewConnection($db_type);
$db->debug = false;
$db->Connect($db_host, $db_user, $db_pass, $db_name);
?>

ANEXA 2 - CLASA adLDAP


<?php
class adLDAP{
var $_account_suffix="@int.finansbank.ro";
var $_base_dn = "DC=int,DC=finansbank,DC=ro";

68

var $_domain_controllers = array ("buc-ho-dc.int.finansbank.ro");


var $_ad_username=NULL;
var $_ad_password=NULL;
var $_user_dn;
var $_user_pass;
var $_conn;
var $_bind;
// default constructor
function adLDAP(){
//conectarea la serverul LDAP
$this->_conn = ldap_connect($this->random_controller());
ldap_set_option($this->_conn, LDAP_OPT_PROTOCOL_VERSION, 3);
return true;
}
function random_controller(){
mt_srand(doubleval(microtime()) * 100000000);
$rand=mt_rand(1,count($this->_domain_controllers));
$rand--;
return $this->_domain_controllers[$rand];
}
function authenticate($username,$password){
$returnval=false;
if ($username!=NULL and $password!=NULL){ //prevent null bind
$this->_user_dn=$username.$this->_account_suffix;
$this->_user_pass=$password;
$this->_bind = @ldap_bind($this->_conn,$this->_user_dn,$this>_user_pass);
if ($this->_bind){ $returnval=true; }
}
return $returnval;
}
function rebind(){
$ad_dn=$this->_ad_username.$this->_account_suffix;
$this->_bind = @ldap_bind($this->_conn,$ad_dn,$this->_ad_password);
if ($this->_bind){
return true;
} else {
return false;
}
}
function user_info($user,$fields){

69

if ($user!=NULL){
if ($this->_ad_username!=NULL){ $this->rebind(); }
if ($this->_bind){
$filter="samaccountname=".$user;
if ($fields==NULL)
{ $fields=array("samaccountname","mail","memberof","department","displayname","telephonen
umber"); }
ldap_set_option($this->_conn, LDAP_OPT_REFERRALS, 0);
$sr=ldap_search($this->_conn,$this->_base_dn,$filter,$fields);
$entries = ldap_get_entries($this->_conn, $sr);
return $entries;
}
}
return false;
}
function user_groups($user){
if ($this->_ad_username!=NULL){ $this->rebind(); }
if ($this->_bind){
$info=@$this->user_info($user,array("memberof"));
$groups=$info[0][memberof];
$group_array=array();
for ($i=0; $i<$groups["count"]; $i++){
$line=$groups[$i];
$group_name="";
$line_length=strlen($line);
for ($j=3; $j<$line_length; $j++){
if ($line[$j]==","){
$j=$line_length;
} else {
$group_name.=$line[$j];
}
}
$group_array[$i]=$group_name;
}
return $group_array;
} else {
return false;
}
}
function user_ingroup($user,$group){
if (($user!=NULL) && ($group!=NULL)){
if ($this->_ad_username!=NULL){ $this->rebind(); }

70

if ($this->_bind){
$groups=$this->user_groups($user,array("memberof"));
if (in_array($group,$groups)){ return true; }
}
}
return false;
}
}
?>

Exemplu:
include ("lib/class/adLDAP.php");
//se creeaza o conexiune LDAP
$adldap = new adLDAP();
//autentificare utilizator
if ($adldap -> authenticate($user,stripslashes($password)))
{
$HTTP_SESSION_VARS['username'] = true;
session_register('username');
$_SESSION['username'] = $user;
$HTTP_SESSION_VARS['password'] = true;
session_register('password');
$_SESSION['password'] = md5($password);
$HTTP_SESSION_VARS['timplogin'] = true;
session_register('timplogin');
$_SESSION['timplogin'] = time();
$HTTP_SESSION_VARS['nivel'] = true;
session_register('nivel');
$_SESSION['nivel'] = 4;
header("Location:utilizatori/index.php");
}
else
{
$eroare_login="<font color=red>Parola este gresita</font><br>";
}

ANEXA 3 EXTENSII FPDF


CLASA Sector

71

Descriere
Acest script PHP permite desenarea unui sector de cerc. De asemenea poate fi folosit pentru
generarea de grafice de tip pie.
function Sector(float xc, float yc, float r, float a, float b [, string style [, boolean cw [, float o]]])
xc: abscisa centrului.
yc: coordonata centrului.
r: raza.
a: unghi initial (in grade).
b: unghi final (in grade).
style: D, F, FD or DF (draw, fill, fill and draw). Default: FD.
cw: indica daca se foloseste sensul acelor de ceas (default: true).
<?php
require('fpdf.php');
class PDF_Sector extends FPDF
{
function Sector($xc, $yc, $r, $a, $b, $style='FD', $cw=true, $o=90)
{
if($cw){
$d = $b;
$b = $o - $a;
$a = $o - $d;
}else{
$b += $o;
$a += $o;
}
$a = ($a%360)+360;
$b = ($b%360)+360;
if ($a > $b)
$b +=360;
$b = $b/360*2*M_PI;
$a = $a/360*2*M_PI;
$d = $b-$a;
if ($d == 0 )
$d =2*M_PI;
$k = $this->k;
$hp = $this->h;
if($style=='F')
$op='f';
elseif($style=='FD' or $style=='DF')
$op='b';
else
$op='s';
if (sin($d/2))
$MyArc = 4/3*(1-cos($d/2))/sin($d/2)*$r;
//first put the center
$this->_out(sprintf('%.2f %.2f m',($xc)*$k,($hp-$yc)*$k));

72

//put the first point


$this->_out(sprintf('%.2f %.2f l',($xc+$r*cos($a))*$k,(($hp-($yc-$r*sin($a)))*$k)));
//draw the arc
if ($d < M_PI/2){
$this->_Arc($xc+$r*cos($a)+$MyArc*cos(M_PI/2+$a),
$yc-$r*sin($a)-$MyArc*sin(M_PI/2+$a),
$xc+$r*cos($b)+$MyArc*cos($b-M_PI/2),
$yc-$r*sin($b)-$MyArc*sin($b-M_PI/2),
$xc+$r*cos($b),
$yc-$r*sin($b)
);
}else{
$b = $a + $d/4;
$MyArc = 4/3*(1-cos($d/8))/sin($d/8)*$r;
$this->_Arc($xc+$r*cos($a)+$MyArc*cos(M_PI/2+$a),
$yc-$r*sin($a)-$MyArc*sin(M_PI/2+$a),
$xc+$r*cos($b)+$MyArc*cos($b-M_PI/2),
$yc-$r*sin($b)-$MyArc*sin($b-M_PI/2),
$xc+$r*cos($b),
$yc-$r*sin($b)
);
$a = $b;
$b = $a + $d/4;
$this->_Arc($xc+$r*cos($a)+$MyArc*cos(M_PI/2+$a),
$yc-$r*sin($a)-$MyArc*sin(M_PI/2+$a),
$xc+$r*cos($b)+$MyArc*cos($b-M_PI/2),
$yc-$r*sin($b)-$MyArc*sin($b-M_PI/2),
$xc+$r*cos($b),
$yc-$r*sin($b)
);
$a = $b;
$b = $a + $d/4;
$this->_Arc($xc+$r*cos($a)+$MyArc*cos(M_PI/2+$a),
$yc-$r*sin($a)-$MyArc*sin(M_PI/2+$a),
$xc+$r*cos($b)+$MyArc*cos($b-M_PI/2),
$yc-$r*sin($b)-$MyArc*sin($b-M_PI/2),
$xc+$r*cos($b),
$yc-$r*sin($b)
);
$a = $b;
$b = $a + $d/4;
$this->_Arc($xc+$r*cos($a)+$MyArc*cos(M_PI/2+$a),
$yc-$r*sin($a)-$MyArc*sin(M_PI/2+$a),
$xc+$r*cos($b)+$MyArc*cos($b-M_PI/2),
$yc-$r*sin($b)-$MyArc*sin($b-M_PI/2),
$xc+$r*cos($b),
$yc-$r*sin($b)
);
}
//terminate drawing
$this->_out($op);

73

}
function _Arc($x1, $y1, $x2, $y2, $x3, $y3 )
{
$h = $this->h;
$this->_out(sprintf('%.2f %.2f %.2f %.2f %.2f %.2f c',
$x1*$this->k,
($h-$y1)*$this->k,
$x2*$this->k,
($h-$y2)*$this->k,
$x3*$this->k,
($h-$y3)*$this->k));
}
}
?>

CLASA Diagrams
Descriere
Acest script permite generarea graficelor de tip pie si a diagramelor. Necesita clasa prezentata
mai sus.
PieChart(float w, float h, array data, string format [, array colors])
w: latimea maxima a diagramei.
h: inaltimea maxima a diagramei.
data: vector asociativ care contine etichetele si datele corespunzatoare.
format: folosit pentru legenda. Sir de caractere care poate contine urmatoarele valori: %l
(eticheta), %v (valoare) and %p (procent).
colors: vector ce contine culorile.
BarDiag(float w, float h, array data, string format [, array colors [, int maxVal [, int nbDiv]]])
w: latimea diagramei.
h: inaltimea diagramei.
data: vector asociativ care contine etichetele si datele corespunzatoare.
format: folosit pentru legenda. Sir de caractere care poate contine urmatoarele valori: %l
(eticheta), %v (valoare) and %p (procent).
color: vector ce contine culorile.
maxVal: valoarea maxima a scalei.
nbDiv: numar de subdiviziuni pentru scala.(default:4).

<?php
require('sector.php');

74

class PDF_Diag extends PDF_Sector {


var $legends;
var $wLegend;
var $sum;
var $NbVal;
function PieChart($w, $h, $data, $format, $colors=null)
{
$this->SetFont('Courier', '', 10);
$this->SetLegends($data, $format);
$XPage = $this->GetX();
$YPage = $this->GetY();
$margin = 2;
$hLegend = 5;
$radius = min($w - $margin * 4 - $hLegend - $this->wLegend, $h - $margin * 2);
$radius = floor($radius / 2);
$XDiag = $XPage + $margin + $radius;
$YDiag = $YPage + $margin + $radius;
if($colors == null) {
for($i = 0;$i < $this->NbVal; $i++) {
$gray = $i * intval(255 / $this->NbVal);
$colors[$i] = array($gray, $gray, $gray);
}
}
//Sectors
$this->SetLineWidth(0.2);
$angleStart = 0;
$angleEnd = 0;
$i = 0;
foreach($data as $val) {
$angle = floor(($val * 360) / doubleval($this->sum));
if ($angle != 0) {
$angleEnd = $angleStart + $angle;
$this->SetFillColor($colors[$i][0], $colors[$i][1], $colors[$i][2]);
$this->Sector($XDiag, $YDiag, $radius, $angleStart, $angleEnd);
$angleStart += $angle;
}
$i++;
}
if ($angleEnd != 360) {
$this->Sector($XDiag, $YDiag, $radius, $angleStart - $angle, 360);
}
//Legends
$this->SetFont('Courier', '', 10);
$x1 = $XPage + 2 * $radius + 4 * $margin;
$x2 = $x1 + $hLegend + $margin;
$y1 = $YDiag - $radius + (2 * $radius - $this->NbVal*($hLegend + $margin)) / 2;
for($i=0; $i<$this->NbVal; $i++) {

75

$this->SetFillColor($colors[$i][0], $colors[$i][1], $colors[$i][2]);


$this->Rect($x1, $y1, $hLegend, $hLegend, 'DF');
$this->SetXY($x2, $y1);
$this->Cell(0, $hLegend, $this->legends[$i]);
$y1+=$hLegend + $margin;
}
}
function BarDiagram($w, $h, $data, $format, $color=null, $maxVal=0, $nbDiv=4)
{
$this->SetFont('Courier', '', 10);
$this->SetLegends($data, $format);
$XPage = $this->GetX();
$YPage = $this->GetY();
$margin = 2;
$YDiag = $YPage + $margin;
$hDiag = floor($h - $margin * 2);
$XDiag = $XPage + $margin * 2 + $this->wLegend;
$lDiag = floor($w - $margin * 3 - $this->wLegend);
if($color == null)
$color=array(155, 155, 155);
if ($maxVal == 0) {
$maxVal = max($data);
}
$valIndRepere = ceil($maxVal / $nbDiv);
$maxVal = $valIndRepere * $nbDiv;
$lRepere = floor($lDiag / $nbDiv);
$lDiag = $lRepere * $nbDiv;
$unit = $lDiag / $maxVal;
$hBar = floor($hDiag / ($this->NbVal + 1));
$hDiag = $hBar * ($this->NbVal + 1);
$eBaton = floor($hBar * 80 / 100);
$this->SetLineWidth(0.2);
$this->Rect($XDiag, $YDiag, $lDiag, $hDiag);
$this->SetFont('Courier', '', 10);
$this->SetFillColor($color[0], $color[1], $color[2]);
$i=0;
foreach($data as $val) {
//Bar
$xval = $XDiag;
$lval = (int)($val * $unit);
$yval = $YDiag + ($i + 1) * $hBar - $eBaton / 2;
$hval = $eBaton;
$this->Rect($xval, $yval, $lval, $hval, 'DF');
//Legend
$this->SetXY(0, $yval);
$this->Cell($xval - $margin, $hval, $this->legends[$i], 0, 0, 'R');
$i++;

76

}
//Scales
for ($i = 0; $i <= $nbDiv; $i++) {
$xpos = $XDiag + $lRepere * $i;
$this->Line($xpos, $YDiag, $xpos, $YDiag + $hDiag);
$val = $i * $valIndRepere;
$xpos = $XDiag + $lRepere * $i - $this->GetStringWidth($val) / 2;
$ypos = $YDiag + $hDiag - $margin;
$this->Text($xpos, $ypos, $val);
}
}
function SetLegends($data, $format)
{
$this->legends=array();
$this->wLegend=0;
$this->sum=array_sum($data);
$this->NbVal=count($data);
foreach($data as $l=>$val)
{
$p=sprintf('%.2f', $val/$this->sum*100).'%';
$legend=str_replace(array('%l', '%v', '%p'), array($l, $val, $p), $format);
$this->legends[]=$legend;
$this->wLegend=max($this->GetStringWidth($legend), $this->wLegend);
}
}
}
?>

77

ANEXA 4 INSTALAREA SI CONFIGURAREA APLICATIEI


Pentru utilizarea aplicatiei e-Learning, va trebui configurat pe un server (sistem de operare
windows):
-

Apache versiunea 2.0.59


PHP versiunea 5.2.0
PostgreSQL versiunea 8.1

Dupa instalarea celor trei soft-uri de mai sus va rugam sa urmati urmatorii pasi:
1. Editarea fisierului php.ini
-

register_globals = Off (in cazul in care default este On va trebui setat pe Off)
short_open_tag = On
extension=php_ldap.dll
extension=php_pgsql.dll (in cazul in care aceaste linii sunt comentate, va trebui
decomentate)

Dupa editarea fisierului php.ini, serverul apache trebuie restartat.


2. Crearea bazei de date:
Pentru a crea baza de date necesara aplicatiei E-Learning va trebui rulate urmatoarele comenzi
din linia de comanda:
create database database_name;
psql U postgres f file_path database_name;
Vezi exemplu:
create database e-learning;
psql U postgres f c:/e-learning.sql e-learning;
3. Copierea folderului e-learning in directorul de lucru (exemplu:c:/www)
4. Editarea fisierului e-learning/lib/inc/config.inc.php

78

S-ar putea să vă placă și