Documente Academic
Documente Profesional
Documente Cultură
Vizat Aprobat,
Facultatea Litere şi Ştiinţe Director de departament,
LUCRARE DE LICENŢĂ
TEMA:
PLOIEŞTI
2020
Semnătură student(ă):
DATELE INIŢALE PENTRU LUCRARE LICENŢĂ
8) Consultaţii pentru proiect / lucrare, cu indicarea părţilor din proiect care necesită consultarea:
Semnătura: Semnătura:
Cuprin
1
1. Capitolul 1. Introducere
Multmiță avansului tehnologic rapid, învățarea online face parte din foarte multe
universități din toată lumea. De la certificate, diplome, aplicații pentru învățarea
limbilor străine online și multe altele, învățarea nu a fost niciodată mai ușoară.
Odată cu avansul tehnologic, oamenii au acces la internet mult mai ușor fie că
folosesc telefoane, tablete sau computere iar o consecință a acestei noi realități a făcut
ca și modul de învățare și testare să fie adaptat la cerințele actuale. Foarte multe școli și
universități au deja programe de predare și testare online ca urmare a dezvoltării de
instrumente software create pentru acest scop.
Tema aleasă a fost “ Instument software pentru evaluarea studenților sub formă
de test grilă ”. Am ales această temă, deoarece este o oportunitate de a învăța cum se
dezvoltă o aplicație web și având în vedere că tot mai multe cursuri trec în online, să
ofer o alternativă profesorilor pentru a crea foarte ușor teste grilă pentru studenți.
2
1.1 Avantajele evaluării online
3
Aplicatia este structurată pe cinci capitole:
Capitolul 1. Introducere
Are rolul de a descrie domeniul de activitate în care aplicația doreștesă își facă
simțită prezența, scopul lucrării, obiectivele propuse și o scurtă descriere a capitolelor
acesteia.
În acest capitol, este descris modul de utilizare a aplicației atât din punctul de
vedere al utilizatorului cat si al administratorului.
4
2. Capitolul 2. Tehnologii utilizate
În acest capitol voi prezenta tehnologiile care au fost utilizate în realizarea
aplicației cum ar fi: HTML, CSS, PHP, MongoDB, JavaScript, protocolul HTTP.
World Wide Web sau pe scurt web care tradus din limba engleză înseamna
“pânză”, este definit ca totalitatea site-urilor și informațiilor de tip hipertext ce pot fi
accesate prin rețeaua de Internet.
HTTP este un protocol de tip text și apare la nivelul aplicației pentru a facilita
comunicarea dintre sisteme și este fundația webului modern.
Mesjae de tip cerere (request) trimise de către client, care declanșează o acțiune
pe server.
5
Mesaje de tip răspuns (responses) care sunt trimise înapoi de către server, după
ce a fost făcuta cererea.
Url-urile stau la baza comunicațiilor web și sunt o serie de caractere care au rolul
de a denumi, identifica și localiza resursele pe Internet, cum ar fi documente, imangini,
videoclipuri, etc. Structura url-urilor este una simplă formată din următoarele
componente:
<protocol>://<nume_DNS>/<nume_local>
6
POST: creează o nouă resursă. Request-urile POST de obicei cară/au
incorporate un payload (date utile) ce specifică datele pentru noua
resursă;
PUT: face update unei resurse deja existentă. Pyloadul (datele utile) pot
conține datele aduse la zi pentru toată resursa;
Cele patru metode de mai sus, sunt cele mai utilizate iar majoritatea framwork-
urilor folosesc aceste verbe pentru a face solicitări.
HEAD: este similar cu GET, dar fără corpul mesajului. Este folosit
pentru a primi head-urile de la server pentru o resursă particulară, în
general pentru a verifica dacă resursa s-a schimbat, prin marcaje de timp;
1. Răspunsuri informaționale
100 – continuă:
7
receptată. Poate fi și ignorat atunci când informația a fost transmisă în
întregime;
2. Raspuns reușit
206 Partial Content: Acesta apare când Range header este trimis de la
client pentru a cere doar o parte din resursă/resurse.
3. Redirecționare
300 Multiple choice: Această clasa apare atunci când există mai multe
alegeri. Utilizatorul are dreptul de a alege una dintre ele.
302 Found: Acest raspuns apare când URI-ul cerut a fost schimbat
temporar și pot fi facute schimbări în URI pe viitor. Dar se poate folosi
același URI in viitoarele cereri;
8
ul conținutului. Serverul compară aceasta cu ETag-ul calculat de acesta
pentru a verifica modificările.
402 Payment Required: Apare atunci când este rezervat pentru folosire
ulterioară ;
404 Not Found: Serverul nu poate găsi sursa cerută. În browser , acest
lucru înseamnă că URL-ul nu este recunoscut. Într-un API, acest lucru
poate însemna că resursa nu există;
405 Method Not Allowed: folosirea unui verb HTTP invalid în cerere,
sau serverul nu suportă acest verb ;
408 Request Timeout: acest raspuns este trimis atunci când conexiunea la
server nu este folosită de ceva vreme și serverul vrea sa o închidă. ;
500 Internal Server Error: apare când serverul nu știe cum sa rezolve
aceasta situație ;
9
502 Bad Gateway: acest raspuns de eroare înseamnă că serverul,în
timp ce funcționa ca portal pentru a obține un raspuns necesar pentru
a gestiona solicitarea, a primit un raspuns nevalid ;
`PHP este un limbaj de prgramare utilizat pentru crearea de site-uri web. Este
opensource, reflexiv (adică poate observa și modifica structura și comportamentul), este
folosit în principal pentru dezvoltarea aplicațiilor server-side ( se referă la operații
efectuate de server într-o relație client-server într-o rețea de calculatoare. Acest limbaj
de programare a fost creat original de Rasmus Lerdorf în 1994. Dar în prezent este
dezvoltat de The PHP Group. Codul PHP poate fi înglobat în codul HTML și poate fi
folosit în combinație cu numeroase sisteme de șabloane web, CMS-uri și framework-
uri. Codul PHP este de obicei precesat de un interpretor PHP utilizat ca modul într-un
server web sau un executabil CGI.
Putem distinge două tipuri de pagini web: pagini web statice și pagini web
dinamice. Paginile web dinamice sunt diferite de paginile web statice prin faptul că,
cele dinamice își schimbă dinamic conținutul cu ajutorul unor scripturi. Rezultatul
scripturilor conțin tot tag-uri HTML. Diferența principală între PHP și JavaScript, se
află la nivelul codului executat pe server. Clinetul poate observa doar rezultatul
executării scriptului, dar nu poate determina codul.
Scopul acestui limbaj este de oferi programatorilor o unealtă prin care pot
dezvolta aplicații web rapid și dinamic. Fișierele PHP pot conține text dar și cod
HTML, CSS, JavaScript și PHP. Fișierele PHP au extensia „ .php ”.
10
PHP-ul este utilizat în mare parte de programele server-side. Acest limbaj de
programare este simplu de utilizat, deoarece este structurat, ca și C-ul, Pearl dar chiar și
Java. Începând cu versiunea 5, sintaxa limbajului fiind asemanatoare cu a celor trei.
PHP poate genera pagni cu conținut dinamic, poate crea, șterge și închide fișiere
pe server. Acest poate colecționa date, poate trimite și primi cookie-uri. Are dreptul de
a accesa baza de date unde este posibilă adăugarea, ștergerea, modificarea informațiilor,
cât și criptarea acestora. (Nixon, 2014)
-scripturi ce ruleaza pe server. Acesta este cel mai tradiţional şi cel mai
important pentru PHP. Sunt necesare trei lucruri pentru a face sa meargă: interpretorul
PHP. E nevoie ca serverul de web să fie pornit, cu o conexiune PHP instalată. Se poate
accesa rezultatul programelor PHP cu un navigator print intermediul serverului de web.
11
clientului se poate totuşi folosi PHP-GTK pentru a scrie astfel de programe.De
asemenea există posibilitatea de a se scrie aplicaţii ce ruleaza pe platforme diferite
folosind această metoda. PHP-GTK este o extensie a PHP-ului, nedisponibilă în
distribuţia principală de PHP.
Câţiva dintre competitorii principali ai PHP sunt Perl, Microsoft ASP.NET, Java
Server Pages (JSP) şi ColdFusion.
Prin comparaţie cu aceste produse, PHP are multe puncte forte, printre care:
performanţă ridicată;
cost scăzut;
disponibilitatea suportului.
Boolean – este un tip de dată care reprezintă valorile adevărat sau fals;
Array – conține un grup de elemente (ex: vectori, serii, liste ordonate, matrici);
12
Obiecte – acestea sunt instanțe ale unei clase. Clasele sunt colecții de proprietăți și
funcții care au o logică comună;
2.3 HTML
HTML este unul dintre primele elemente care stau la baza WWW (World Wide
Web) care are rolul de a descrie felul în care documentele sunt văzute și distribuite pe
Internet.
Limbajul HTML poate fi atât citit cât și modificat cu orice editor de text, dar
scrierea codului HTML este consumatoare de timp și necesită cunoștinte. Astefel, au
apărut programe care au ca scop ușurarea procesului de creație a paginilor web.
În prezent, ultima versiune a HTML este versiunea 5, iar pentru a arăta acest
lucru trebuie să precizăm la începutul documentului <!DOCTYPE HTML>.
Documentele HTML încep cu notația <html> și se termină cu </html>. Acestea se
numesc tag-uri. Toate informațiile HTML trebuie să înceapă cu o paranteză unghiulară
deschisă “<” și trebuie sa fie închise cu o paranteză unghiulară închisă “>” .
13
Având în vedere că toate paginile web conțin HTML, JavaScript cât și diferite
forme de stilizare, au apărut diferite legi nescrise sau cele mai bune practici, atunci când
scriem cod.
Utilizarea CSS pentru a stiliza pagina. Este mai bine să folosim fișire css pentru
a stiliza pagina, chiar dacă se poate face acest lucru și în interiorul codului html (
ex stilizare inline:<p style="color:#abc; font-size:12px; font-family:arial,sans-
serif;"> Aici este un text </p> )
1. Taguri pereche, adică un tag pentru început și unul pentru închidere (de
exemplu: <head></head>);
14
<h1>…</h1> – Titlurile (sunt 6 elemente h1, h2, h3, h4, h5, h6 );
<p>…</p> paragraful;
<a>..</a> link-uri;
2.4 CSS
Cascading Style Sheets (CSS) este un limbaj folosit pentru a descrierea stilurilor
în paginile web care conțin HTML. Stabilește culoarea de fundal, dimensiunile fontului,
culorile elementelor din paginile web.
Stilurile se pot atașa elementelor HTML prin intermediul unor fișiere externe
sau în cadrul documentului, prin elementul <style> și/sau atributul style. CSS se poate
utiliza și pentru formatarea elementelor XHTML, XML și SVGL.
Un stil se poate atașa elementelor HTML prin intermediul fisierelor .css externe,
sau folosirea lor în interiorul paginii utilizănd <style> (deși nu este recomandată
folosirea stilurlor complexe în interiorul paginii).
15
2.5 Stack-ul MEAN
2.6 NodeJS
16
scripturi pe server pentru a produce conținut dinamic pe paginile web înainte ca pagina
să fie trimisă în browserul utilizatorului. În consecință, Node.js reprezintă o paradigmă
„JavaScript pretutindeni”, unificând dezvoltarea aplicațiilor web în jurul unui singur
limbaj de programare, mai degrabă decât limbaje diferite pentru scripturile din partea
serverului și a clientului.
Node.js a fost scris inițial de Ryan Dahl in 2009, la 13 ani dupa ce a fost
introdus primul mediu JavaScript pe server, LiveWire Pro Web de Netscape. Versiunea
inițială accepta doar Linux si Mac OS X. Dezvoltarea ți întreținerea sa a fost condusă de
Dahl și mai târziu fiind sponsorizat de Joyent.
Node.js este este folsit în primul rând pentru a consturi soluții web. Cea mai
semnificativă diferență între Node.js și PHP este că majoritatea funcțiilor din PHP sunt
blocate până la finzalizare (comenzile se execută numai după terminarea comenzilor
anterioare), în timp ce funcțiile din Node.js nu sunt blocate (funcțiile sunt executate
concomitent sau chiar în paralel) și sunt folosite mesaje “callback” pentru a semnala
finalizarea sau eșecul.
2.7 Express.js
Express.js, sau pur și simplu Express, este un cadru de aplicații web pentru
Node.js, lansat ca software gratuit și open-source sub Licența MIT. Este proiectat
pentru crearea de aplicații web și API-uri. A fost numit cadrul de server standard de
facto pentru Node.js.
17
Integrarea unor motoare de redare “view” pentru a genera raspunsuri prin
introducerea datelor în sabloane (templates);
2.8 JavaScript
JavaScript este un limbaj de script de obiecte ușor de utilizat, conceput pentru
crearea de aplicații online live care leagă obiecte și resurse atât server-side cât și
client-side. În timp ce Java este folosit de programatori pentru a crea obiecte și
appleturi noi, JavaScript este proiectat pentru a fi utilizat de către autorii paginilor
HTML și dezvoltatorii de aplicații enterprise pentru a scrie în mod dinamic
comportamentul obiectelor care rulează fie pe client, fie pe server.
integrat cu Java;
open platform;
cross-platform.
18
Ca un limbaj multiparadigmă JavaScript suportă stilurile de programare bazat pe
evenimente, funcțional, și imperativ( incluzând cel orientat pe obiecte și bazat pe
prototip). Acesta are incluse API-uri pentru lucrul cu text, tablouri, date, expresii
regulate și DOM, însă limbajul nu include nici un dispozitiv de intrare-ieșire, cum ar fi
de rețea, stocare sau facilități grafice. Acesta se bazează pe mediul hostului în care este
inclus să furnizeze aceste caracteristici.
O pagină poate conține scripturi JavaScript care rulează atât pe server cât și pe
client. Pe server, scripturile ar putea să compună și să formateze dinamic conținutul
HTML bazat pe preferințele utilizatorului stocate într-o bază de date relațională sau
nerelaționale, iar pe client, scripturile ar compila împreună un sortiment de applet Java
și elemente de formă HTML într-o interfață de utilizator interactivă.
În primul rând, scripturile rulează într-un “sandbox” în care pot efectua doar
acțiuni legate de Web, nu și sarcini de programare cu scop general, cum ar fi crearea de
fișiere.
19
Fig 2. Arborele de obiecte DOM HTML
DOM este prescurtare de la Document Object Model. Atunci când o pagină web
este încărcată, browserul creează un Document Object Model al paginii HTML iar
DOM este construit ca un arbore de obiecte.
2.9 MongoDB
20
BASE (Basically Available, Soft state, Eventual consistency)
Datele se vor propaga mai devreme sau mai târziu în toate punctele în care ar
trebui să se propage, dar sistemul va continua să primească operații de scriere și nu va
verifica pentru consistență la fiecare tranzacție înainte de a trece la următoarea
tranzacție (așa cum se face în SBD relaționale).
21
Caracteristici ale MongoDB
22
MongoDB Compass este un GUI pentru MongoDB și este folosit pentru
vizualizarea structurii bazelor de date și pentru a performa interogări ad-hoc fara a
cunoaște limbajul de interogare. Compass facilitează luarea deciziilor de indexare,
validarea a documentelor și multe altele .
23
3. Capitolul 3. Dezvoltarea aplicatiei
24
4. Capitolul 4. Utilizarea aplicatiei
25
5. Capitolul 5. Concluzii si idei de dezvoltare ulterioara
26
6. Bibliografie
27
28