Licenta 2019 V1.2 [307193]

[anonimizat]-NAPOCA

FACULTATEA DE MATEMATICǍ ȘI INFORMATICǍ

SPECIALIZAREA MATEMATICǍ-INFORMATICǍ

LUCRARE DE LICENȚĂ

Millenium E-Learning

Conducător științific

Chira Camelia

[se va completa și gradul didactic și titlul conducătorului științific]

Malai Victor

Figuri

Fig. 1 Protocolul HTTP 7

Fig. 2 Exemplu de pagina HTML 8

Fig. 3 Exemplu de pagina CSS 9

Fig. 4 Exemplu de pagina PHP 10

Fig. 5 Modul de lucru a serverului Apache 11

Fig. 6 Aplicatia “Sistem Educațional Informatizat” 16

Fig. 7 Forum SEI 17

Fig. 8 Aplicația “Didactic.ro” 18

Fig. 9 Forum Didactic.ro 19

Fig. 10 Statistica aplicației Didactic.ro 19

Fig. 11 [anonimizat] 21

Fig. 12 [anonimizat] 22

Fig. 13 [anonimizat] 22

Fig. 14 Arhitectura MVC a aplicației Milennium E-Learning 23

Fig. 15 Formularul de inserare a întrebării din aplicația Milennium e-learning 24

Fig. 16 Codul pentru formularul de inserare 24

Fig. 17 Butonul de trimitere a intrebarii 24

Fig. 18 Codul JavaScript ce trimite datele catre serverul Apache 25

Fig. 19 Interogarea ajax către server 25

Fig. 20 Crearea rutelor si redirectionarea lor catre controller 25

Fig. 21 Alta metoda de a crea rute 25

Fig. 22 Metoda de stocare a datelor 26

Fig. 23 Modelul Question 26

Fig. 24 Codul ce returnează întrebarea înapoi către browser 27

Fig. 25 Diagrama de utilizare a aplicației Millenium E-Learnig 28

Fig. 26 Pagina principala a aplicației 30

Fig. 27 Formularul de logare 31

Fig. 28 Pagina principală 32

Fig. 29 Secțiunea Translator 33

Fig. 30 Secțiunea Top Utilizatori 33

Fig. 31 Pagina Chat 34

Fig. 32 Pagina resurse 35

Fig. 33 Formularul interactiv. Domeniul de căutare 35

Fig. 34 Formularul interactiv. Detalii 36

Fig. 35 37

Fig. 36 Formularul interactiv. Căutare 38

Capitolul 1. Introducere

1.1 Contextul proiectului

Între tehnologiile din zilele noastre și educație există o [anonimizat] o consecință a forței și a educației, [anonimizat]. Orice proces educațional este atent la componenta tehnică nu numai printr-o pregătire a [anonimizat]. [anonimizat] o [anonimizat]. [anonimizat]-a [anonimizat]. [anonimizat].

Relația dintre tehnologie și educație devine din ce în ce mai dinamică. Pe de o parte, asistăm la o permanentă evoluție a [anonimizat] o înnoire de la o [anonimizat], [anonimizat], atitudini. [anonimizat] a [anonimizat]. [anonimizat] „dinamici” devine mult mai complexă. [anonimizat]-un mod „natural”, ingenuu (calculatorul, tableta, telefonul), alteori acestea sunt modelate încă de la bun început pentru o uzanță explicit didactică.

Lumea exterioară se tehnicizează și se artificializează într-un ritm foarte rapid, iar școala, într-o anumită măsură, trebuie să țină pasul cu această dinamică. Până la un punct, ea este nevoită să le absoarbă și să le folosească în profitul propriu. În același timp, ea trebuie să conserve și zone de naturalitate, să ocazioneze elevilor cunoașterea directă prin observarea lumii reale, să creeze situație de acțiune și inter-relaționare normale (prin exersarea manevrabilității, prin operarea directă cu obiectelor, prin stimularea unor deprinderi psihomotorii etc.).

1.2 Ideea și scopul proiectului

Copii din această generație digitală își doresc ceva mai mult atunci când vine vorba de învățare, de școală, poate din cauza neînțelegerii lecțiilor, sau refuzarea realizării temelor de casă sau poate doar din simpla plăcere de a sta permanent conectați cu device-urile lor preferate.[37]

Învățarea online a fost în creștere în ultimii ani, și nu este greu de văzut de ce. Pe de o parte, cursurile de e-learning au devenit extrem de populare prin simpla virtute de a fi mult mai convenabile decât cursurile tradiționale față în față. Din acest motiv, platformele online de învățare sunt tot mai des implementate în școli pentru a simplifica procesul de învățare și a stimula elevii să combine plăcutul cu utilul, învățând.

Scopul acestei lucrări este proiectarea și implementarea unei platforme e-learning pentru facilitarea învățării, schimbului de cunoștințe și interacțiunii între profesori și elevi. Frumusețea acestei aplicații și ceea ce o face plăcută de tinerii elevi este în primul rând forumul implementat pentru a oferii un sprijin âîn realizarea temelor la diferite discipline, dar și ideea de like-uri cu care sunt familiarizați din celelalte aplicații virale pe care le folosesc zilnic.

În acest sens a fost creat proiectul Millenium E-Learning care are la bază principiul de a realiza o interacțiune strânsă între elevi și profesori pentru a spori eficiența cursurilor la școală și pentru a simplifica procesul de dobândire a cunoștințelor. Ca precondiții, se presupune că atât elevii, cât și profesorii posedă câte un dispozitiv mobil, tableta sau calculator. De asemenea este necesara o conexiune la internet. Unul dintre beneficiile platformei este conceptul de social learning care este maximizat, astfel, elevii interacționează între ei prin forumul de discuții învățând unii de la ceilalți.

Funcționalitatea aplicației pornește de la posibilitatea elevilor de a se înregistra și de a își completa profilul. După ce elevul s-a autentificat, acesta are acces la inima aplicației care este un mic forum. Acest forum vine în ajutor elevilor ca să-și poată rezolva cerințele, temele, să pună întrebări din domeniul învățământului, iar cel mai important, este mereu la îndemână. Colegii mai mari sau care știu răspunsul pot veni în ajutor. O asemenea comunicare simplă ajută la evoluarea morală și psihologică a copilului, dezvoltă autonomia și curiozitatea.

Un alt avantaj al acestei aplicații este secțiunea Translator care asigură înțelegerea și asimilarea informației de către toți utilizatorii, indiferent de ce limbă vorbesc, sau de a traduce anumite texte în orice limbă. Acesta funcție a programului simplifică necesitatea implicării profesorilor și elevilor în procesul de predare și înțelegere a informației, dar și minimalizarea efortului în traducerea unor surse informative.

Secțiunea Top Utilizatori este o altă diviziune din care fac parte utilizatorii care participă cel mai des în discuții. Orice răspuns poate fi apreciat de alți elevi printr-un like sau un dis like. La fiecare like rating-ul copilului creste, astfel este motivat sa ajute și alți colegi fiindcă răspunsul lui corect este apreciat. Școala poate exploata aceste informații generate de platforma propusa prin premierea celor mai activi elevi și stimularea în acest fel a schimbului de cunoștințe și învățării prin interacțiuni sociale.

Formularul interactiv este un alt instrument util prin care elevii pot efectua căutări personalizate de informații legate de studii fără a ieși din aplicație. În acest mod, utilizatorii au acces la orice tip de documentare pentru materiile pe care le studiază.

1.3 Structura lucrării

Lucrarea prezintă în capitolele următoare tehnologiile folosite în dezvoltarea platformei e-learning propuse, aplicațiile relevante existente, arhitectura sistemului și mai multe scenarii de utilizare. Astfel, structura lucrării este următoarea:

Capitolul 1: Tehnologii folosite. În această secțiune sunt prezentate limbajele și serviciile folosite în dezvoltarea aplicației. Am folosit în special tehnologiile destinate aplicațiilor web cum ar fi: PHP[17], JavaScript[13], Bootstrap[29], CSS[10], MySQL[19].

Capitolul 2: Arhitectura sistemului. În capitolul dat se urmărește structurala și viziunea arhitecturală asupra sistemului. Sunt prezentate diagramele client-server, diagrama cazurilor de utilizare. La fel în această porțiune este și prezentarea aplicației pe module.

Capitolul 3: Scenarii de utilizare. Aici este prezentată aplicația din punctul de vedere al utilizatorului. Se arată interacțiunea omului cu aplicația prin exemple și imagini.

Capitolul 4: Concluzii. Capitolul dat este un rezumat la întreaga lucrare de licența, ce scop a avut aplicația și cum ar putea fi dezvoltată în continuare

Capitolul 2. Tehnologii folosite

2.1 Protocolul HTTP

Hyper Text Transfer Protocol, pe scurt HTTP este un protocol de transfer de date pe scară largă, destinat inițial transferului de documente hipertext (adică documente care pot conține link-uri care vă permit să organizați trecerea la alte documente).

Protocolul HTTP presupune utilizarea unei structuri de transfer de date client-server. Cererea client formulează o solicitare și o trimite către server, după care software-ul server procesează cererea, generează un răspuns și îl trimite clientului. Apoi, aplicația client poate continua să trimită alte cereri care vor fi procesate în același mod.

Sarcina care este rezolvată în mod tradițional utilizând protocolul HTTP este schimbul de date între o aplicație de utilizator care accesează resurse web (de obicei un browser web) și un server web. În prezent, datorită protocolului HTTP, este activată rețeaua World Wide Web.

Fig. Protocolul HTTP

Pentru a înțelege mai bine ce înseamnă HTTP, facem o simplă analogie. Ne imaginăm că comunicăm cu un străin într-o rețea socială. El trimite un mesaj în limba engleză, înțelegem. Dar nu putem înțelege conținutul, deoarece nu cunoaștem suficient limba. Pentru a decripta mesajul, utilizăm dicționarul. După ce am înțeles esența, răspundem străinului în limba româna și trimitem răspunsul. Străinul primește răspunsul și decriptează mesajul cu ajutorul unui traducător. Cu ajutorul lor, browserul poate traduce conținutul criptat al paginilor web și poate afișa conținutul acestora.

O cerere HTTP conține următoarele :

o linie de request, de exemplu GET /questions/1 HTTP/1.1 care formulează o cerere pentru resursa /question/1 de la server.

Headere HTTP, cum ar fi Accept-Language: en-US, Accept-Charset: utf-8, etc

O linie goală

Un corp al mesajului care poate fi opțional

Un răspuns HTTP conține următoarele:

linie de Status (spre exemplu HTTP/1.1 200 OK, care arata finalizarea cu succes a cererii. Un status 3xx indică necesitatea unei redirectări, 4xx și 5xx sunt status-uri de eroare (4xx – eroare la client, 5xx- eroare la server).

Headere HTTP, cum ar fi Content-Type: text/html

O linie goală

Un corp al mesajului care poate fi opțional

Pentru că avem nevoie să trimitem tipuri de conținute prin mesaje HTTP am folosit în cadrul aplicației setarea header-ului Content-Type prin care se specifică mime-type-ul conținutului. Un mime-type (Multipurpose Internet Mail Extension) este un standard Internet care a pornit de la descrierea seturilor de caractere folosite la formatul email, ajungând să fie utilizat ca standard de descriere al unui mesaj web.

2.2 HTML

Dezvoltat inițial de Tim Berners-Lee în 1990, HTML[11] semnifică HyperText Markup Language. HTML este folosit pentru a crea documente electronice (numite pagini) care sunt afișate pe World Wide Web. Fiecare pagină conține o serie de conexiuni la alte pagini numite hyperlink-uri. Fiecare pagină web este scrisă utilizând o singură versiune a codului HTML sau alta. Codul HTML asigură formatarea corectă a textului și a imaginilor, astfel încât browserul de

internet să le poată afișa așa cum ar trebui să arate. Fără HTML, un browser nu știe cum să afișeze textul ca elemente sau să încarce imagini sau alte elemente. HTML oferă, de asemenea, o structură de bază a paginii, pe care Cascading Style Sheets sunt suprapuse pentru a schimba aspectul.

Mai jos este prezentat un exemplu de pagină web scrisă în HTML, precum și o descriere a fiecărei secțiuni și a funcției acesteia. În figură se observă componentele cheie pentru o pagină web. Prima linie (DOCType) descrie ce versiune a HTML-ului a fost scrisă, astfel, un browser de Internet să poată interpreta textul care urmează. Apoi, eticheta de deschidere HTML permite browserului să știe că citește cod HTML. Eticheta HTML este urmată de secțiunea head, care conține informații despre pagină, cum ar fi titlul, meta tag-urile și locul unde se află fișierul CSS.

Fig. 2 Exemplu de pagina HTML

Secțiunea body cuprinde tot conținutul care poate fi vizualizat în browser. De exemplu, tot textul afișat aici este conținut în etichetele body. În cele din urmă, etichetele de închidere înfășoară fiecare element pentru o sintaxă adecvată.

2.3 CSS

Cascading Style Sheets, CSS[10] este un concept creat inițial de Håkon Wium Lie în 1994. În decembrie 1996, CSS permite dezvoltatorilor web să modifice aspectul paginilor lor web. De exemplu, CSS poate fi folosit pentru a schimba fontul folosit în anumite elemente HTML, precum și dimensiunea și culoarea sa. Un singur fișier CSS poate fi conectat la mai multe pagini, ceea ce permite unui dezvoltator să schimbe aspectul tuturor paginilor în același timp.

Figura 3 conține un exemplu de bază pentru utilizarea codului CSS pentru a defini fonturile, culoarea de background și culoarea unei legături. În acest exemplu specific, schimbăm nu doar etichetele HTML <a>, <canvas> și <body>, ci se crează noi selectori de clase sau id.

Fig. 3 Exemplu de pagina CSS

2.4 BOOTSTRAP

Bootstrap[29] este un framework front-end, care ajută dezvoltatorii să accelereze procesul de dezvoltare web. Bootstrap ușurează activitatea de dezvoltare a programatorilor web, integrând facilitățile oferite de CSS și JavaScript.

Toate clasele CSS și codul JavaScript necesar sunt deja incluse în pachetul Bootstrap. De exemplu, folosind clasa btn (<button></button>) ele apar ca un buton. În plus, folosind clasa btn-primary se va face un buton albastru închis.

Bootstrap este mai mult decât design-ul de legături, imagini și template-uri. Unul dintre

caracteristicile cele mai importante ale sale este sistemul de grilă (grid system).

2.5 PHP

PHP[17] (oficial 'Personal Home Page: Hypertext Preprocessor') este un limbaj de programare inclus practic în HTML. Initial, PHP[17] era acronimul de la Personal Home Page, dar a fost modificat pentru a se alinia la conversia de numire recursiva GNU (GNU = Gnu`s Not Unix) și acum este acronimul pentru PHP Hypertext Preprocessor.

Istoria PHP-ului începe la sfârșitul anului 1994, când Rasmus Lerdorf dezvolta prima versiune, ca proiect personal. PHP-ul este făcut public în debutul anului 1995 sub denumirea de Personal Home Page Tools, fiind considerat un analizor simplist care interpreta câteva macrouri ce puteau fi incluse în cadrul documentelor HTML, permițând contorizarea accesului la paginile Web sau accesarea unei cârti de oaspeți (guestbook). Analizorul a fost rescris la mijlocul aceluiași an si denumit PHP/FI 2.0, unde FI era o alta aplicație scrisa de Rasmus Lenford, un interpreter de formulare HTML. A fost adăugat și suportul pentru bazele de date mSQL și astfel PHP/FI a început sa aibă succes, fiind disponibil gratuit pe Web. Se estimează ca la sfârșitul lui 1996 cel puțin 15 mii de site-uri Web utilizau PHP/FI, iar în anul 1997 numărul acestora era de 50 de mii.

Acest limbaj s-a dovedit a fi destul de flexibil și puternic, astfel, a câștigat o mare popularitate și este folosit în proiecte de orice amploare: de la un blog simplu la cele mai mari aplicații web de pe Internet:

Beneficiile PHP:

Este un software gratuit distribuit sub o licență specială (licență PHP)

Ușor de învățat în toate etapele

Susținută de o mare comunitate de utilizatori și dezvoltatori

Are o bază de date avansată

Există un număr mare de biblioteci și extensii

Pot fi implementat pe aproape orice server

Dezavantajele PHP

Nu este potrivit pentru crearea de aplicații desktop

Aplicațiile web scrise în PHP de obicei au probleme de securitate

Fig. Exemplu de pagina PHP

Ce poate face PHP?

Limbajul PHP poseda aceleași funcții ca alte limbaje și poate să se scrie scripturi, să adune date și să trimită, să primească cookies și să genereze dinamic pagini web.

Una dintre cele mai puternice facilități ale PHP este susținerea unui larg domeniu de baze de date. Scrierea unei pagini web ce accesează o bază de date este foarte simplă utilizând una din extensiile de lucru cu baze de date (de ex. pentru MySQL), sau utilizând un nivel de abstractizare precum PDO, sau conectarea la orice bază de date ce susține standardul "Open Database Connection.

Fig. Modul de lucru a serverului Apache

Un framework este o aplicație ce are o colecție de scripturi cu ajutorul căreia programatorii pot realiza mult mai rapid un site complex. Majoritatea framework-urilor sunt open-source, adică se pot descărca și folosi fără costuri suplimentare.

Ce feature-uri aduce un framework?

Abstractizarea bazei de date: Framework-urile vin cu un nivel de abstractizare al bazei de date SQL. Astfel, putem schimba baza de date de exemplu din MySQL în MSSql, fără a fi nevoie să rescriem codul.

Management-ul form-urilor: Form-urile pot fi definite și în PHP. Apoi framework-ul se ocupă de generarea codului HTML, securitate și validare.

Autentificarea: Majoritatea framework-urilor vin cu un modul de autentificare. Acestea se ocupă de sign in și sign out, înregistrare, permisiuni management de sesiuni. Aceste module sunt ușor de modificat pentru a crea formulare customizate pentru înregistrare și logare.

Depanare usoară: Unele framework-uri vin în ajutorul programatorului cu unelte care fac depanarea mai ușoară. Acestea permit inspectarea variabilelor, a duratei de timp în care rulează script-ul, a query-urilor etc.

Ce avantaje am folosind un framework?

Portabilitate: Abstractizarea cache-ului și a bazei de date fac ca aplicațiile construite să poată rula pe servere, având diferite configurații fără a fi necesară codului.

Timp de dezvoltare mai scurt: Asta se datorează în primul rând faptului că nu mai trebuie să scriem codul pentru form-uri, înregistrare, log în și log-out etc.

Standard de codare: Framework-urile „forțează” într-un anume fel programatorii să urmeze principiul Model->View->Controller. Asta înseamnă că vom gândi mai întâi structura codului, pentru ca apoi ne apucăm de scris.

Framework-ul folosit în aplicația data este Laravel. De ce am ales Laravel? Pentru că timpul de dezvoltare în Laravel este mai scurt, având o documentație mai ușor de înțeles și care se parcurge mai repede, iar un programator care se întâlnește prima dată cu Laravel va înțelege codul foarte repede, deoarece framework-ul este conceput tocmai pentru a simplifica scrierea codului.

2.6 JAVASCRIPT

JavaScript[13] a fost creat inițial pentru a face paginile web "live". Programele în acest limbaj sunt numite scripturi. În browser, se conectează direct la HTML și, de îndată ce se încarcă pagina, acestea sunt executate imediat.

JavaScript a apărut din nevoia ca logica sa fie și pe partea de client, nu doar pe partea de server. Dacă toată logica este pe partea de server, întreaga prelucrare este făcuta la server, chiar și pentru lucruri simple, asa cum e validarea datelor. Astfel, JavaScript îl înzestrează pe client și face ca relația sa fie un adevărat sistem client-server.

Limbajul HTML oferă autorilor de pagini Web o anumita flexibilitate, dar statica. Documentele HTML nu pot interacționa cu utilizatorul în alt mod mai dinamic, decât pune la dispoziția acestuia legături la alte resurse (URL-uri). Crearea de CGI-uri (Common Graphics Interface) – [programe care rulează pe serverul Web și care accepta informații primite din pagina de web și returnează cod HTML] – a dus la îmbogățirea posibilităților de lucru. Astfel, un pas important spre inter activizare a fost realizat de JavaScript, care permite inserarea în paginile web a script-urilor care se executa în cadrul paginii web, mai exact în cadrul browser-ului utilizatorului, ușurând astfel și traficul dintre server și client. De exemplu, într-o pagina pentru colectarea de date de la utilizator se pot adaugă scripturi JavaScript pentru a valida corectitudinea introducerii și apoi pentru a trimite serverului doar date corecte spre procesare.

JavaScript conține o lista destul de ampla de funcții și comenzi menite sa ajute la operații matematice, manipulări de șiruri, sunete, imagini, obiecte și ferestre ale browser-ului, link-urile URL și verificări de introduceri ale datelor în formulare. Codul necesar acestor acțiuni poate fi inserat în pagina web și executat pe calculatorul vizitatorului.

În general se consideră că există zece aspecte fundamentale ale limbajului JavaScript pe care

orice programator în acest limbaj ar trebui să le cunoască :

JavaScript poate fi introdus în HTML – De obicei codul JavaScript este găzduit în documentele HTML și executat în interiorul lor. Majoritatea obiectelor JavaScript au etichete HTML pe care le reprezintă, astfel încât programul este inclus pe partea de client a limbajului. JavaScript folosește HTML pentru a intra în cadrul de lucru al aplicațiilor pentru web.

JavaScript este dependent de mediu – JavaScript este un limbaj de scriptare; software-ul care rulează de fapt programul este browser-ul web (Firefox, Opera, Netscape Navigator, Internet Explorer, Safari, etc.) Este important să luăm în considerare această dependență de browser atunci când utilizăm aplicații JavaScript.

JavaScript este un limbaj în totalitate interpretat – codul scriptului va fi interpretat de browser înainte de a fi executat. JavaScript nu necesită compilări sau preprocesări, ci rămâne parte integranta a documentului HTML. Dezavantajul acestui limbaj este că rularea durează ceva mai mult deoarece comenzile JavaScript vor fi citite de navigatorul Web și procesate atunci când user-ul apelează la acele funcții (prin completare de formulare, apăsare de butoane, etc). Avantajul principal este faptul că putem mult mai ușor să actualizăm codul sursă.

JavaScript este un limbaj flexibil – în aceasta privință limbajul diferă radical de C++ sau Java. În JavaScript putem declara o variabilă de un anumit tip, sau putem lucra cu o variabilă deși nu-i cunoaștem tipul specificat înainte de rulare.

JavaScript este bazat pe obiecte – JavaScript nu este un limbaj de programare orientat obiect, ca Java, ci mai corect, este "bazat pe obiecte"; modelul de obiect JavaScript este bazat pe instanță și nu pe moștenire.

JavaScript este condus de evenimente – mare parte a codului JavaScript răspunde la evenimente generate de utilizator sau de sistem. Obiectele HTML, cum ar fi butoanele, sunt îmbunătățite pentru a accepta Handler de evenimente.

JavaScript nu este Java – Cele doua limbaje au fost create de companii diferite, motivul denumirii asemănătoare este legat doar de marketing.

JavaScript este multifuncțional – limbajul poate fi folosit într-o multitudine de contexte pentru a rezolva diferite probleme: grafice, matematice, și altele.

JavaScript evoluează – limbajul evoluează, fapt pozitiv care însă poate genera și probleme, programatorii trebuind să verifice permanent ce versiune să folosească pentru ca aplicațiile să poată fi disponibile unui număr cât mai mare de utilizatori de browsere diferite.

JavaScript acoperă contexte diverse – programarea cu acest limbaj este îndreptată mai ales către partea de client, dar putem folosi JavaScript și pentru partea de Server. JavaScript este limbajul nativ pentru unele instrumente de dezvoltare web, ca Borland IntraBuilder sau Macromedia Dreamweaver.

2.7 MySQL

MySQL[19] este un sistem de gestiune a bazelor de date relațional, produs de compania suedeză MySQL AB și distribuit sub Licență Publică Generală GNU. Este cel mai popular SGBD open-source la ora actuală, fiind o componentă cheie a stivei LAMP(Linux, Apache, MySQL, PHP).

Deși este folosit foarte des împreună cu limbajele de programare JAVA,PHP, cu MySQL se pot construi aplicații în orice limbaj major. Există multe scheme API disponibile pentru MySQL ce permit scrierea aplicațiilor în numeroase limbaje de programare pentru accesarea bazelor de date MySQL, cum are fi: C, C++, C#, Borland Delphi, Java, Perl, PHP, Python, FreeBasic, etc., fiecare dintre acestea folosind un tip specific API. O interfața de tip ODBC denumită MyODBC permite altor limbaje de programare ce folosesc această interfața, să interacționeze cu bazele de date MySQL cum ar fi ASP sau Visual Basic.

În multe cărți de specialitate este precizat faptul că MySQL este mult mai ușor de învățat și folosit decât multe din aplicațiile de gestiune a bazelor de date, ca exemplu comanda de ieșire fiind una simplă și evidentă: „exit” sau „quit”.

Pentru a administra bazele de date MySQL se poate folosi modul linie de comandă sau, prin descărcare de pe internet, o interfața grafică: MySQL Administrator și MySQL Query Browser. Un alt instrument de management al acestor baze de date este aplicația SQL Manager.

MySQL poate fi rulat pe multe dintre platformele software existente: AIX, FreeBSD, GNU/Linux, Mac OS X, NetBSD, Solaris, SunOS, Windows 9x/NT/2000/XP/Vista.

Serverul de baze de date MySQL este foarte rapid, fiabil și ușor de utilizat. Inițial a fost dezvoltat pentru a manipula baze de date de dimensiuni mari mult mai rapid decât soluțiile existente.

MySQL Database Software este un sistem client/server ce constă într-un server MySQL multi threaded care suportă diferite programe client și biblioteci, unelte administrative și o gamă largă de interfețe pentru programarea aplicațiilor (Application Programming Interfaces – APIs)

Câteva dintre caracteristicile de bază ale MySQL sunt:

Funcționează pe diferite platforme

Dispune de API pentru C, C++, Eiffel, Java, Perl, PHP, Pyton, Ruby și Tcl

Complet multi-threaded folosind thread-uri de kernel. Acest lucru înseamnă că poate lucra cu ușurință pe mai multe procesoare dacă sunt disponibile

Un sistem de alocare a memoriei foarte rapid și bazat pe thread-uri

Folosește tabele temporare stocate în memorie

Funcțiile SQL sunt implementate folosind o bibliotecă de clase optimizată și sunt foarte rapide. De obicei, nu are loc alocare a memoriei după inițializează interogărilor.

Serverul este disponibil ca program separat ce poate fi folosit într-un mediu de rețea de tip client/server. De asemenea, este disponibil și ca bibliotecă ce poate fi inclusă în aplicații de sine stătătoare

Oferă motoare tranzacționale și non-tranzacționale de stocare a datelor

Capitolul 3. Aplicații existente

Acest capitol prezintă cele mai relevante aplicații existente în contextul facilitării procesului de învățare și comunicare a elevilor.

Astfel sunt prezentate aplicațiile Sistem Educational Informatizat (SEI) și Forumul didactic, precum și o comparație intre acestea și aplicația propusa în aceasta lucrare.

3.1 SEI – Sistem Educational Informatizat

Portalul educațional SEI portal.edu.ro este un portal ce oferă oamenilor un sir de mijloace de comunicare, știri și informații referitoare la sistemul de învățământ din țară, problemele profesorilor și elevilor, examene olimpiade, conținut educațional electronic multimedia și altele. Astfel toate aceste categorii sunt prezentate în prima pagina în meniu Secțiuni.

Prima pagina. Aici sunt arătate ultimele modificări ale modulelor: noutăți, proiecte, forum s.a

Noutăți și evenimente. Sunt prezentate ultimele știri oferite de SEI.

Proiecte. Se arata proiecte ale programului SEI.

Resurse. În aceasta secțiune sunt prezentate manuale, programe școlare, tutoriale

Forum. Este locul unde utilizatorii ai posibilitate de a adresa și a răspunde la întrebări din domeniul educației.

Fig. Aplicatia “Sistem Educațional Informatizat”

Forumul acestei aplicații unul dezvoltat cu o gama mare de întrebări și răspunsuri pe mai multe categorii cum ar fi: “General”, “Examene”. Fiecare categorie având și o subcategorie care conține întrebări. În dreptul fiecărei subcategorii exista o mica statistica cum ar fi numărul subiectelor discutate, numărul răspunsurilor și ultimul răspuns. În așa mod sistemul da de înțeles cat de activ este subiectul propus.

Întrebările și răspunsurile la fel sunt bine definite și organizate. În pagina pe lângă întrebare și răspuns exista și data trimiterii mesajului, autorul și statistice lui. Pe lângă aceasta utilizatorul poate sa citește un alt utilizator (Quote) ceea ce face urmărirea subiectului foarte ușor.

Fig. Forum SEI

3.2 Forum Didactic

Didactic.ro este un proiect ce sprijină elevii, studenții și profesorii cu materiale didactice. Acest portal oferă peste 300000 de materiale didactice. Este cea mai mare comunitate a profesorilor. Acest portal la fel dispune de un forum cu o varietate mare de subiecte. Practic acest forum este identic cu SEI, astfel aici utilizatorii pot propune subiecte la discuție, adaugă întrebări și a răspunde la ele.

Fig. Aplicația “Didactic.ro”

Didactic.ro este mai aproape de elevi și studenți deoarece oferă mai multe materiale pentru învățământ. După cum se vede ele sunt grupate pe învățământ preșcolar, primar, gimnazial, liceal, profesional și tehnic. Dar toate secțiunile sunt dedicate mai mult profesorilor decât elevilor însa s-a ales acest proiect deoarece dispune de un forum educational ceea ce are și aplicația Milennium e-learning.

Fig. Forum Didactic.ro

Forumul dat dispune de o statistica interesanta și utila. Rezultatul acestora arata ca mult oameni folosesc și sunt activi. La fel și aici, aplicația are numărul de mesaje, subiecte, ultimul mesaj. O parte interesanta o prezintă “Statistica generala” care arata membrii activi total și numărul lor online.

Fig. Statistica aplicației Didactic.ro

3.3 Comparația aplicațiilor existente cu Milennium e-learning

Millenium E-Learning aduce câteva îmbunătățiri aplicațiilor deja existente, precum:

Sistemul de evaluare cu aprecieri atât la întrebare, cât și la răspunsurile oferite de ceilalți utilizatori, pe baza căruia se creează un top al celor mai “populari” utilizatori

Formularul interactiv care ajută elevii la diferitele discipline (matematică, fizică, română, informatică, chimie, sport, istorie, geografie), un fel de google incorporat

Translatorul care anexează google translate [38], traducând instantaneu cuvinte sau expresii între romana și alte peste 100 de limbi

Chat-ul care facilitează comunicarea între utilizatori și în care elevii pot cere eventuale informații suplimentare legate de rezolvările oferite în răspunsuri sau în care se pot cunoaște mai bine, în care pot lega chiar prietenii sau discuta diverse subiecte.

În tabelul de mai jos sunt principalele diferențe intre cele 3 aplicații.

Diferențele dintre aplicația Milennium E-learning și celelalte doua descrise în acest capitol constă în secțiunile informative de care dispun acestea, respectiv știrile și evenimentele. Didactic.ro dispune de asemenea de un sistem de votare, care permite crearea de sondaje. Așadar aplicația propusă este destinata unui grup de oameni mai restrâns, mai exact ea are ca scop doar de a ajuta elevii în rezolvarea temelor.

Capitolul 4. Arhitectura Sistemului

4.1 Arhitectura aplicației

De regulă, computerele și programele care fac parte dintr-un sistem informatic nu sunt egale. Unele dintre ele dețin resurse (sistem de fișiere, procesor, imprimantă, bază de date etc.), altele au capacitatea de a accesa aceste resurse. Computerul (sau programul) care controlează resursa se numește serverul acestei resurse (server de fișiere, server de baze de date, server de calcul). Clientul și serverul unei resurse pot fi localizate pe un singur computer sau pe diferite computere conectate printr-o rețea.

Fig. Interacțiunea Client-Server

De asemenea, trebuie remarcat faptul că interacțiunea client-server se bazează pe principiul că clientul inițiază această interacțiune, serverul răspunde doar clientului și informează dacă poate furniza serviciul clientului și, dacă da, în ce condiții. Software-ul clientului și software-ul de server sunt, de obicei, instalate pe diferite mașini, dar pot funcționa și pe același computer.

Există două tipuri de arhitectură de interacțiune client-server: prima se numește arhitectură de interacțiune client-server pe două niveluri, a doua este arhitectura client-server multi-nivel.

Principiul arhitecturii de interacțiune client-server pe două niveluri este că cererea este procesată pe o singură mașină fără utilizarea unor resurse terțe. Arhitectura pe două niveluri impune cerințe stricte de performanță a serverului, dar în același timp este foarte fiabilă. Modelul de interacțiune client-server pe două niveluri este prezentat mai în figura de mai jos.

Fig. Interacțiunea Client-Server pe două nivele

Aici se observă în mod clar că există un client (primul nivel), care permite unei persoane să facă o solicitare și există un server care procesează solicitarea clientului.

Dacă vorbim despre arhitectura de interacțiune client-server pe mai multe niveluri, putem lua ca exemplu orice DBMS modern (cu posibila excepție a bibliotecii SQLite, care în principiu nu utilizează conceptul client-server). Esența arhitecturii în strat este că cererea clientului este procesată simultan de mai multe servere. Această abordare poate reduce semnificativ încărcarea serverului datorită faptului că există o distribuție a operațiunilor, dar, în același timp, această abordare nu este la fel de fiabilă ca arhitectura pe două nivele. În figura de mai jos puteți vedea un exemplu de arhitectură client-server stratificat.

Fig. Interacțiunea Client-Server pe mai multe nivele

Arhitectura aplicației Millenium E-Learning este de tip client-server, clienții fiind elevii si profesorii. Clienții au în general două posibilități: să trimită date către server, sau să interogheze serverul pentru resurse.

Serverul aplicației are rolul de a stoca resursele. Aceste resurse pot fi statice cum ar fi imagini sau pot fi dinamice, cum e cazul elementelor de întrebări și răspunsuri. În ambele cazuri, serverul are rolul de a centraliza datele și de a le transmite utilizatorilor prin adrese URL.

Limbajul PHP, mai bine spus framework-ul LARAVEL implementează o arhitectură Model-View-Controller, care se caracterizează prin separarea funcționalităților celor trei module:

Modelul este responsabil cu gestionarea datelor din aplicație. Modelul reprezintă nucleul aplicației – aici se face și legătura cu baza de date

View – este partea în care se afișează datele (înregistrările din baza de date). View-ul conține de cele mai multe ori limbajul HTML și este partea ce interacționează cu utilizatorul.

Controller-ul este partea aplicației care se ocupă de procesarea datelor primite de la utilizator. În controller se citesc datele utilizatorului, se trimit către model, se execută operațiunile, după care se trimite răspunsul înapoi către view.

În cele ce urmează este prezentat fluxul aplicație în momentul când utilizatorul postează o întrebare. În figura de mai jos se arata schematic traseul datelor în aplicație.

Fig. Arhitectura MVC a aplicației Milennium E-Learning

Fig. Formularul de inserare a întrebării din aplicația Milennium e-learning

Codul este pentru text input:

Fig. Codul pentru formularul de inserare

Observam ca avem un Handler pentru input. Acesta stochează datele introduse de utilizator într-o variabile care ulterior va fi trimisa către server.

Fig. Butonul de trimitere a intrebarii

Când utilizatorul apasă butonul Trimite se apelează o funcție JavaScript care trimite mai departe datele către model.

Fig. Codul JavaScript ce trimite datele catre serverul Apache

Metoda store din modelul Question face o interogare Ajax către server pe ruta “/questions”.

Fig. Interogarea ajax către server

Partea de server procesează URL-ul respectiv și apelează Controller-ul și metoda necesara.

Fig. Crearea rutelor si redirectionarea lor catre controller

Route::resource este o prescurtare a metodelor RESTful API. Adică generează rute pentru acțiunile de tip GET, POST, DELETE, PUT. Mai pe lung ele ar fi trebuit sa arate un felul următor:

Fig. Alta metoda de a crea rute

Structura ‘QuestionController@{acțiune}’ – acțiune aici indica metoda din controller care trebuie apelata. În cazul nostru noi am făcut o interogare de tip post așa ca se va apela funcția store din QuestionController care arata în felul următor:

Fig. Metoda de stocare a datelor

Am ajuns la partea de Controller, aici de obicei se validează datele, se procesează și se transmit mai departe. Mai departe avem modelul Question care extinde Model class.

Fig. Modelul Question

Observăm 3 metode: user, category, comments. Aceste metode definesc relațiile in baza de date. O întrebare are un utilizator (autorul), relația one-to-one, o categorie la fel este o relație one-to-one. Întrebarea are mai multe comentarii, relația one-to-many. Variabila $table definește numele tabelei din baza de date iar variabila $fillable arata proprietățile modelului care pot fi accesate și sunt publice.

În interacțiunea cu baza de date intervine Eloquent.

Instrumentul ORM care oferă o implementare simplă pentru lucrul cu baza de date. Fiecare tabelă de baze de date are un model corespunzător care este utilizat pentru a interacționa cu tabelul respectiv. Modelele permite sa cautam date în tabelele, precum și sa introducem noi înregistrări în tabel.

După cum se vede noi transmitem datele către metoda ::create și modelul automat salvează datele după are returnam întrebarea creata înapoi către View.

Fig. Codul ce returnează întrebarea înapoi către browser

Aici avem o interogare către baza de date, luam întrebarea cu id-ul respectiv împreuna cu relația category.

4.2 Conectarea la sistem

Având în vedere că proiectul implementează o aplicație web, prima condiție este reprezentată de existența conexiunii la internet a utilizatorului. Astfel, în scopul de a utiliza aplicația web, este nevoie de o versiune recentă a unuia dintre următoarele browsere (fiind dată și versiunea minimă recomandată a acestora pe care va putea rula aplicația):

Google Chrome (de la versiunea 60);

Mozilla Firefox (versiunea 48, de preferat pe toate platformele);

Microsoft Internet Explorer (începând cu versiunea 11);

Safari (începând de la versiunea 6.1).

Edge (începând de la versiunea 40).

Pentru a realiza conexiunea la sistem din browser, se scrie adresa URL a aplicației care a fost furnizată de administratorul platformei.

4.3 Prezentarea aplicației

Acest capitol prezintă aplicația cu toate modulele ei. Diagrama de interacțiune este:

Fig. Diagrama de utilizare a aplicației Millenium E-Learnig

Le luam pe fiecare în parte:

Adaugă și răspunde la întrebări: se referă la secțiunea Forum, unde elevul poate cere sfaturi sau poate ajuta alți elevi în a găsi un răspuns corect.

Da like / dis like la răspunsuri și întrebări: aceasta caracteristica nu neapărat ajuta elevul dar mai degrabă motivează elevul sa ajute colegii prin răspunsuri corecte ca în final sa fie onorat cu un premiu din partea școlii.

Trimite mesaj în chat privat: aplicația dispune de un chat privat în care 2 utilizatori pot discuta problemele mai detaliat. Detalii capitolul 5.6

Cauta răspunsuri cu ajutorul formularului interactiv: acest modul ajuta elevii de a găsi informații din afara aplicației, mai exact găsește răspunsuri pe platforma YouTube, Wolphram sau https://phet.colorado.edu, urmând pe viitor sa fie extinsa aria de căutare.

Accesează cărțile disponibile: aici utilizatorului sunt propuse o serie de cărți ce pot fi achiziționate. Aceste cărți sunt puse la dispoziție chiar de profesori, ceea ce înseamnă cărțile respective sunt de mare ajutor.

Accesează lista tuturor elevilor și profesorilor: aceasta lista vine cu un modul de căutare ceea ce ușureaza elevul de a cauta prietenii sau colegii care pot sa-l ajute.

Traduce textul în orice limba: este destinat elevilor ce au probleme cu limba străina, este ușor de utilizat, asemănător cu Google Translate, dar avantajul consta în faptul utilizatorul direct din aplicație poate sa traducă fără a fi nevoie sa părăsească fereastra.

Capitolul 5. Scenarii de utilizare

5.1 Pagina principala

În momentul pornirii aplicației, utilizatorii sunt întâmpinați cu prima pagina (Fig. 26). Aici vedem o scurta descriere a aplicației și un meniu în care exista butonul de înregistrare și autentificare.

Fig. Pagina principala a aplicației

Formularele de înregistrare și autentificare sunt simple și practic la fel.

Formularul de înregistrare

Fig. Formularul de logare

După autentificare utilizatorul este redirecționat către miezul aplicației (Pagina principală) (Fig. 21). Aici avem următoarele secțiuni:

5.3 Pagina Principală

Fig. Pagina principală

Formularul de adăugare a întrebărilor și domeniul / materia la care se refera.

Mai jos este lista de întrebări deja existente în sistem care are un modul de filtrare pe materii și la fel un modul de sortare a acestora. Observam ca fiecare întrebare are Likes, Dislikes, Answers, o mică statistica pentru fiecare întrebare.

Un alt modul al aplicație este prezentat în secțiunea Translator (Fig.22). Aici utilizatorii au posibilitate de a traduce textul în orice limba au nevoie.

5.4 Secțiunea Translator

Fig. Secțiunea Translator

Secțiunea din dreapta numita “Top Utilizatori” (Fig. 23) este secțiunea unde apar utilizatorii cu cele mai multe steluțe, aceste steluțe le acumulează răspunzând corect la cat mai multe întrebări. Steluțele sunt practic diferența dintre like-uri și dislike-uri. În dreptul fiecărui utilizator este indicat și numărul

de steluțe.

5.5 Secțiunea Top Utilizatori

Fig. Secțiunea Top Utilizatori

Observam ca fiecare utilizator are o bulina în dreapta fie de culoare neagra fie de culoare verde. Dacă bulina este de culoare neagra atunci utilizatorul nu este online, dar dacă este verde atunci el este online și poate fi contactat apăsând click pe numele utilizatorului și este redirecționat către pagina Chat (Fig.24). Aici 2 utilizatori pot comunica intre ei în timp real fără a fi nevoie de refresh a paginii. La fel în stânga este lista utilizatorilor și status-ul lor dacă sunt online sau nu.

5.6 Pagina Chat

Pagina respectivă permite utilizatorilor să comunice între ei, comunicarea se realizează în timp real fără a fi nevoie de a reîncărca pagina. Pe viitor aș dori să implementez și funcția de a putea transmite fișiere în chat-ul respectiv.

Fig. Pagina Chat

5.7 Pagina resurse

Aceasta secțiune este un simplu motor de căutare a cărților. Aici utilizatorii au un formular de căutare unde introduc denumirea cărții de care are nevoie. Când elevul dă click pe cartea respectivă este redirecționat către pagina de unde poate achiziționa manualul.

Fig. Pagina resurse

5.8 Formularul interactiv

Formularul interactiv este un instrument foarte util ce ajuta elevii sa caute răspunsuri în mediul online fără a fi nevoie sa iasă din aplicație. Astfel formularul este inclus din 3 părți:

Fig. Formularul interactiv. Domeniul de căutare

Domeniul de căutare: Aici elevii selectează materia pe care îi interesează cum ar fi Româna, Matematica, Fizica s.a.

Partea a 2-a este partea “Detalii”. Aici utilizatorii scriu mai detaliat ce ajutor au nevoie. Spre exemplu, pentru fizica pot introduce cuvinte cheie, cum ar fi: “Mecanica fluidelor, Newton” s.a

Fig. Formularul interactiv. Detalii

Partea a 3-a este rezultatul căutării. Momentan am realizat 3 tipuri de rezultate.

Pentru secțiunea de matematica este afișat un rezultat din renumitul portal Wolphram. Spre exemplu am introdus un calcul matematic. Iar rezultatul este afișat astfel:

Fig.

Pentru secțiunea de Fizica s-a elaborat un script ce permite vizualizarea fenomenelor fizice printr-un joc distractiv oferit de site-ul https://phet.colorado.edu. De exemplu am introdus în câmpul detalii cuvântul cheie “faraday”. Rezultatul obținut este un joc ce arata “Efectul Faraday”.

Aici utilizatorul prin schimbarea variabilelor, prin a experimenta, poate învață și înțelege mult mai bine.

Fig. Formularul interactiv. Căutare

Capitolul 6. Concluzii

În această teză de licență care a presupus abordarea unei teme din domeniul învățământului s-a reușit abordarea educației într-un mod mai distractiv și util, prin aplicarea tehnologiilor de ultima ora, printre ele fiind:

HTML

CSS

Bootstrap

JavaScript

MySQL

Aplicația software implementată este complet funcțională. În urma acestei lucrări de licență am constatat faptul că limbajele de programare javascript și php sunt foarte puternice, având aplicabilitatea în domenii diverse, fiind printre cele mai populare limbaje la momentul actual.

Spre deosebire de aplicațiile desktop, sistemele web sunt accesibile oricând, oriunde și prin orice PC sau dispozitiv mobil cu conexiune la Internet. Se deschid posibilități mari și moderne, cum ar fi echipele globale, munca la domiciliu și colaborarea în timp real.

Instalarea și întreținerea aplicației web e relativ simplă. Odată ce o nouă versiune sau o actualizare este instalată pe serverul gazdă, toți utilizatorii o pot accesa imediat și nu este nevoie să se realizeze un upgrade la PC-ul fiecărui utilizator potențial. Rularea noului software poate fi realizată mai ușor, necesitând doar ca utilizatorii sa aibă browserele și pluginurile actualizate.

De asemenea aplicația software realizată poate fi dezvoltată în continuare spre mai multe direcții cum ar fi:

Implementarea modulului formularului interactiv (Capitolul 5.8), mai exact pentru celelalte discipline. Astfel fiecare elev ar avea posibilitate sa găsească răspunsuri mult mai ușor și interesant.

Posibilitatea profesorilor sa monitorizeze activitățile elevilor, mai exact sa aibă acces la mesajele personale pentru a urmări evoluția utilizatorului

Un alt tip de utilizatori pentru părinți unde la fel și ei vor avea posibilitate sa monitorizeze activitatea elevului dar și de a vorbi cu alți părinți sau profesori pentru a stabili întâlniri sau de a rezolva o problema.

Posibilitatea elevilor de a încărca materiale. La momentul actual elevii pot doar sa adreseze întrebări fără a atașa fișiere sau poze, aceasta caracteristica este una primordiala ce trebuie implementata.

Bibliografie

Anghel, Traian. Dezvoltarea aplicațiilor web folosind PHP și AJAX. București: Edusoft, 2008, 256 pag.

Connor, J., Programming : computer programming for beginners : learn the basics of HTML5, JavaScript & CSS, North Charleston, SC USA: CreateSpace Independent Publishing Platform, 2016.

Duckett, J., Gilles R., Moore J., JavaScript & jQuery : interactive front-end web development. Indianapolis, IN: Wiley, 2014.

Duckett, J., Web design with HTML, CSS, JavaScript and jQuery set, Indianapolis, IN: John Wiley & Sons, Inc, 2014

Hawramani, I., HTML and CSS for complete beginners / A step by step guide to learning HTML and CSS3, Middletown, DE: Stewards Publishing, 2018.

Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin)

Кухарчик A. PHP: обучение на примерах, Минск: Новое Издание, 2004

Modern PHP: New Features and Good Practices

WHATWG (Web HyperText Application Working Group) HTML(5) Specification (@ https://html.spec.whatwg.org/multipage/index.html).

CSS 2.1 Specification W3C Recommendation Revised 17 December 2014 (@ http://www.w3.org/TR/CSS21/).

W3School HTML/CSS Tutorials, References and Examples @ http://www.w3schools.com/.

Matthew MacDonald, "Creating a Website – The Missing Manual", 3rd ed, 2011, O’Reilly. (A good introductory book on HTML/CSS. A new version is expected in July 2015.)

Mozillla MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript.

jQuery mother site @ http://jquery.com.

jQuery Tutorial @ https://learn.jquery.com.

Jonathan Chaffer and Karl Swedbery, "Learning jQuery", 4th ed, 2013, Packt Publishing.

PHP mother site @ http://php.net/.

PHP Manual @ http://php.net/manual/en/.

MySQL Mother Site @ www.mysql.com.

MySQL 5.7 "Reference Manual" @ http://dev.mysql.com/doc/.

Codd E. F., "A Relational Model of Data for Large Shared Data Banks", Communications of the ACM, vol. 13, issue 6, pp. 377–387, June 1970.

Crockford, Douglas. JavaScript: The Good Parts, O'Reilly & Associates, 2008.

Heilmann, Christian. Beginning JavaScript with DOM Scripting and Ajax: From Novice to Professional, Apress, 2006.

Nixon, Robin. Learning PHP, MySQL, JavaScript, and CSS: A Step-by-Step Guide to Creating Dynamic Websites, O'Reilly, 2012

Layon, Kristofer. The Web Designer's Guide to iOS Apps: Create iPhone, iPod touch, and iPad apps with Web Standards (HTML5, CSS3, and JavaScript), New Riders, 2010

Hammerich, Irene, and Harrison. Developing Online Content: The Principles of Writing and Editing for the Web, John Wiley & Sons, 2001.

Castro, Elizabeth and Hyslop . HTML5, and CSS, Eight Edition: (Visual QuickStart Guide), Peachpit Press, 2013

Devlin, Ian. HTML5 Multimedia: Develop and Design, Peachpit Press, 2011

Bootstrap https://getbootstrap.com/

http://www.sjuneamt.ro/wp-content/uploads/2013/10/Initiere-in-PHP-MySQL-Romana.pdf

http://portal.edu.ro/index.php

http://forum.portal.edu.ro/

https://www.didactic.ro/

https://forum.didactic.ro/

https://en.wikipedia.org/wiki/Client%E2%80%93server_model

https://ccm.net/contents/151-networking-3-tier-client-server-architecture

https://www.scoalaintuitext.ro/blog/invatarea-online-completeaza-invatarea-clasica/

https://translate.google.ro/?hl=ro

Similar Posts