Sunteți pe pagina 1din 79

UNIVERSITATEA POLITEHNICA BUCURESTI FACULTATEA DE AUTOMATICA SI CALCULATOARE

DEZVOLTAREA UNEI PLATFORME E-LEARNING

Coordonator: Prof. dr. ing. Dorin Carstoiu

Absolvent:

- BUCURESTI 2008 1

Cuprins: DEZVOLTAREA UNEI PLATFORME.............................................................................1 E-LEARNING.........................................................................................................................1 CAP. 1: CONCEPTE E-LEARNING..................................................................................3 CAP. 2: PREZENTAREA TEHNOLOGIILOR UTILIZATE.......................................16 CAP. 3: PROIECTAREA BAZEI DE DATE...................................................................34 CONCLUZII.........................................................................................................................66 BIBLIOGRAFIE..................................................................................................................67 ANEXA 1 CLASA ADODB.............................................................................................68 ANEXA 2 - CLASA ADLDAP............................................................................................69 ANEXA 3 EXTENSII FPDF............................................................................................72 ANEXA 4 INSTALAREA SI CONFIGURAREA APLICATIEI................................79

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.

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.

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.

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 7

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)

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;

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

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.

10

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, 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

11

mod dual de organizare - acesta fiind dealtfel un model de educatie la distanta destul de frecvent ntlnit.

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,

12

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. 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.

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

13

scala perceptie simetrie interactivitate mijloace control integrare costuri timp flexibilitate TOTAL punctaj

3 4 4 4 4 4 4 3 4 4 38

4 4 3 4 2 3 4 3 3 2 32

3 4 0 2 3 2 4 3 4 1 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.

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

14

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.

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.

15

Cap. 2: Prezentarea tehnologiilor utilizate

2.1 Sisteme de Gestiune a Bazelor de Date (SGBD)


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

16

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: 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.

17

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? 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 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. Teoria relaional Relaie Tuplu Atribut

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.

18

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 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.

19

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. 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.

20

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. 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.;

21

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 Web-ului, 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. 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:

22

- 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. 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 Open Source Gratis/ Fara costuri pentru licenta ACID Compliant

SQL Server

Oracle

PostgreSQL PostgreSQL X X X X X X

23

ANSI SQL Compliant Referential Integrity Replication Reguli Vederi Triggers Unicode Secvente Mostenire Outer Join Sub-select Open API Proceduri stocate Native SSL Support Limbaj procedural Indecsi

X X X X X X X

X X X X X X

X X X X X X X X X X X X X X X

X X X X X X X X X X X

X X X X X X X X X X X X X X 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

24

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 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

25

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: 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.

26

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

27

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

28

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).

29

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:

30

<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

31

rol cheie 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

32

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.

33

Figura nr. 2.5

Cap. 3: Proiectarea bazei de date


Diagrama bazei de date

34

relatie_teste_categorii intrebari PK 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 teste_definite_supervizor PK id_test denumire data_start_interval data_stop_interval nr_intrebari activ data_sistem utilizator secunde_intrebare activare_hr PK PK FK1 id_test id_categorie pondere

relatie_intrebari _categorii

istoric_intrebari

FK2 FK1

id_categorie id_intrebare

FK1

relatie_categorii_supervizori categorii PK FK1 id_categorie id_parent nume activ FK2 FK1 utilizator id_categorie

FK2

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

utilizatori id_utilizator utilizator parola denumire email tip_utilizator id_categorie activ data_sistem relatie _teste_angajat _intrebari PK FK1 FK2 id_test _angajat id_intrebare raspuns _corect raspuns _angajat teste_angajat id_test _angajat id_test data_inceput _test data_sfarsit_test utilizator raspunsuri _corecte procentaj current _session anulat intrebari _quiz PK id_intrebare _quiz continut varianta _raspuns _1 varianta _raspuns _2 varianta _raspuns _3 varianta _raspuns _4 varianta _raspuns _5 id_curs activ utilizator data_sistem raspuns _corect

FK1

FK1

FK1

cursuri_continut _detaliat subiecte PK id_subiect denumire id_curs nivel utilizator data_sistem PK subiecte_detaliat PK id_comentariu comentariu id_subiect nivel utilizator data_sistem FK1 PK FK1 id_pagina id_curs nr_pagina continut FK1 cursuri_continut _detaliat 1 id_fisier id_curs fisier data_sistem cursuri PK id_curs denumire nr_slideuri descriere activ utilizator data_sistem FK1 FK2

FK1

FK1 FK2

Figura nr 3.1 Tabela categorii

35

CAMP id_categorie id_parent Nume Activ

TIP Integer Integer varchar(255) integer

NULL Nu Nu Nu Nu

SETARE DE BAZA 0 1

36

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 SETARE DE BAZA

id_intrebare integer Nu Continut text Nu varianta_raspuns_1 text Nu varianta_raspuns_2 text Nu varianta_raspuns_3 text Nu varianta_raspuns_4 text Nu varianta_raspuns_5 text Nu id_raspuns_1 char(1) Nu id_raspuns_2 char(1) Nu id_raspuns_3 char(1) Nu id_raspuns_4 char(1) Nu id_raspuns_5 char(1) Nu Activ integer Nu Utilizator varchar(100) Nu data_sistem timestamp Nu raspuns_corect char(1) Nu Scop: In tabela intrebari vor fi stocate intrebarile introduse variante de raspuns, raspuns corect etc...) Observatii:

A B C D E 1 now() de catre utilizatori (continut,

37

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 id_istoric 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 TIP integer integer text text text text text text char(1) char(1) char(1) char(1) char(1) integer varchar(100) timestamp char(1) NULL Nu 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()

Scop: In tabela istoric_intrebari vor fi stocate istoricul modificarilor pentru intrebarile introduse de catre utilizatori (continut, variante de raspuns, raspuns corect etc...) Constrangeri: CONSTRAINT istoric_intrebari_pkey PRIMARY KEY (id_istoric),

38

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);

Indecsi:

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

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:

39

Indecsi:

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) 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) Indecsi: CREATE INDEX id_intrebare_r_t ON relatie_teste_angajat_intrebari USING btree (id_intrebare);

40

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

Scop: In tabela teste_angajat se vor salva detaliile unui test efectuat de catre angajatul Credit Europe Bank.

41

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. 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)

42

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 descriere utilizator activ data_sistem TIP integer varchar(300) integer text varchar(100) integer timestamp NULL Nu Nu Nu Da Nu Nu Nu SETARE DE BAZA 0 0 1 now()

43

Scop: In tabela cursuri se vor stoca datele statice referitoare la cursuri introduse de catre utilizatorii Sef-Departament. Observatii: 1. denumire reprezinta denumirea cursului introdus de catre utilizator. 2. nr_slideuri reprezinta numarul de slideuri ce caracterizeaza cursul. 3. 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:

CREATE INDEX id_curs_1 ON cursuri_continut_detaliat USING btree (id_curs);

Tabela cursuri_materiale_auxiliare

44

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 id_intrebare_quiz Continut varianta_raspuns_1 varianta_raspuns_2 varianta_raspuns_3 varianta_raspuns_4 varianta_raspuns_5 id_curs Activ Utilizator data_sistem raspuns_corect TIP Integer Text Text Text Text Text Text Integer Integer varchar(100) Timestamp char(1) NULL Nu Nu Nu Nu Nu Nu Nu Nu Nu Nu Nu Nu SETARE DE BAZA

0 1 now()

45

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:

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) Indecsi: 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: 1. id_curs reprezinta id-ul cursului pentru care se vor posta subiecte 2. nivel reprezinta nivelul de acces al utilizatorului care posteaza subiectele.

46

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:

CREATE INDEX id_subiect ON subiecte_detaliat USING btree (id_subiect);

47

Cap. 4: Prezentarea aplicatiei E-Learning 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 Administrator Supervizor Sef Departament HR (Departamenul Resurse Umane)

48

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:
Stabilirea conexiunii cu server-ul Autentificare cu username si parola Inchiderea conexiunii

ldap_connect() ldap_bind() ldap_close()


Figura nr. 4.2 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.

49

Diagrama de activitate:
Autentificare

Logat

Validare

Mesaj avertizare

Figura nr. 4.3

Structura aplicatiei
Structura si functionalitatea aplicatiei deriva din rolurile utilizatorilor acesteia

4.2.1 utilizatorul Angajat


Cazul de utilizare general pentru utilizatorul Angajat

Logare aplicatie Efectuare test activ Vizualizare rezultat test Parcurgere cursuri Participare la discutii
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:

Angajat

50

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. In cadrul unui test, angajatul va trebui sa 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 eLearning va trece automat mai departe, in schimb nu se va lua in considerare nici un raspuns corect.
Logare e -Learning

1.

Diagrama de activitate:
Exista test activ ? DA DA NU

A fost efectuat testul ? NU Raspunde intrebare curenta

Nr curent <Nr intreb test ? NU Afisare rezultat test

DA

51

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:

52

Logare E -Learning

Exista curs activ ?

NU

Selectare curs

Cursul a fost parcurs in totalitate ?

DA

NU Parcurgere pagina curenta

Vizualizare notite

Creare notite

Exprima opinia prin vot

DA

Nr curent <Nr pagini curs

NU

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.

53

4.2.3 utilizatorul Administrator


Cazul de utilizare general pentru utilizatorul Administrator
Logare aplicatie

Adaugare /editare utilizator Vizualizare istoric intrebari Activare / inactivare test Schimbare setari cont

Administrator

Rulare rapoarte

Figura nr. 4.7 Utilizatorul Administrator, reprezentat printr-unul sau mai multi angajati din cadrul Logare -Learning departamentului IT, se logheazaein 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 ?

Cu ajutorul acestui meniu, Administratorul aplicatiei e-Learning poate crea noi utilizatori NU sau edita utilizatorii deja existenti in 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 acces =Sef nivelul de NU cazul in care acces este Sef Departament, va trebui specificat de asemenea departamentul pe care il coordoneaza. OBS. Departament NU Utilizatorul Sef Departament va coordona un singur departament. Nivel acces =Supervizor in cazul in DA nivelul de acces este Supervizor, va trebui specificat care unul sau mai multe departamente pe care acest tip de utilizator le are in Selecteaza Departament subordine.
DA

DA

Editeaza utilizator

Diagrama de activitate:
Selecteaza Departamentele

Salveaza utilizator

54

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

55

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

56

Logare aplicatie

Adaugare /Editare capitole Adaugare /Editare Intrebari Sef Departament Administrare cursuri

Participare la discutii legate de cursuri

Setari Cont

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
Departament nr 1 Departament nr 2 Departament nr 3

Cap 1

Cap 2

Cap 3

Cap 4

Cap 5

Cap 6

Subcap 1

Subcap 2

Subcap 3

Subcap 4

Subcap 5

Subcap 6

Subcap 7

...

...

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).

57

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.

58

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.

59

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
Logare aplicatie

Adaugare/Editare capitole

Adaugare/Editare Intrebari

Adaugare Teste

Rulare Rapoarte Supervizor

Setari Cont

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

60

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.

61

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:

Alegerea de noduri frunza Stabilirea numarului total de intrebari Stabilirea numarului de secunde per intrebare Stabilirea intervalului de timp pentru test Introducerea ponderilor pentru fiecare nod frunza

Suma ponderi != 100 DA

NU

Nr intreb nod frunza_i< pondere_i*nr_total_intreb

NU

DA

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

62

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 1 2 3 4 5 7 8 Corecte Durata

ID intrebare

63

bogdan.ciocan Total intrebari Total gresite Raspuns A(%) Raspuns B(%) Raspuns C(%) Raspuns D(%) Raspuns E(%) Fara raspuns(%)

C 0 0 0 0 0 0 0 0 1 1 0.00 0.00 100.0 0 0.00 0.00 0.00

D 1 1 0.00 0.00 0.00 100.00 0.00 0.00

E 1 1 0.00 0.00 0.00 0.00 100.00 0.00

C 1 0 0.00 0.00 100.00 0.00 0.00 0.00 0 0 0 0 0 0 0 0

B 1 1 0.00 100.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

64

Angajati Credit Europe Bank

Baza de Date

Aplicatia E-Learning

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

Client

Baza de Date

Server

Figura nr 4.16

4.4 Dezvoltari ulterioare

65

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

66

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;

67

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

68

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";

69

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){

70

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(); }

71

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

72

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

73

$this->_out(sprintf('%.2f %.2f m',($xc)*$k,($hp-$yc)*$k)); //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

74

$this->_out($op); } 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');

75

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;

76

for($i=0; $i<$this->NbVal; $i++) { $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');

77

$i++; } //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); } } } ?>

78

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

79