Sunteți pe pagina 1din 31

Anexa 8

MINISTERUL EDUCAŢIEI NAȚIONALE


UNIVERSITATEA PETROL – GAZE DIN PLOIEŞTI

FACULTATEA: LITERE ŞI ŞTIINŢE


DEPARTAMENTUL: INFORMATICĂ, TEHNOLOGIA INFORMAŢIEI,
MATEMATICĂ ŞI FIZICĂ
PROGRAMUL DE STUDII: INFORMATICĂ
FORMA DE ÎNVĂȚĂMÂNT: IF

Vizat Aprobat,
Facultatea Litere şi Ştiinţe Director de departament,

LUCRARE DE LICENŢĂ

TEMA:

Conducător ştiinţific: Absolvent:

PLOIEŞTI
2020

F 271.13/Ed.3 Document de uz intern


UNIVERSITATEA PETROL - GAZE DIN PLOIESTI Anexa 9
FACULTATEA: LITERE ŞI ŞTIINŢE
DOMENIUL: INFORMATICĂ
PROGRAMUL DE STUDII: INFORMATICĂ
FORMA DE ÎNVĂȚĂMÂNT: IF

Aprobat, Declar pe propria răspundere că voi elabora


Director de departament, personal lucrarea de licenţă şi nu voi folosi alte
Conf. dr. inf. Gabriela Moise materiale documentare în afara celor prezentate la
capitolul „Bibliografie”.

Semnătură student(ă):
DATELE INIŢALE PENTRU LUCRARE LICENŢĂ

Proiectul a fost dat studentului/studentei:

1) Tema proiectului / lucrării

2) Data eliberării temei:


3) Tema a fost primită pentru îndeplinire la data:
4) Termenul pentru predarea proiectului/ lucrării:
5) Elementele iniţiale pentru proiect / lucrare:

6) Enumerarea problemelor care vor fi dezvoltate:

7) Enumerarea materialului grafic (acolo unde este cazul):

8) Consultaţii pentru proiect / lucrare, cu indicarea părţilor din proiect care necesită consultarea:

Conducător ştiinţific: Student(ă)

Semnătura: Semnătura:

UNIVERSITATEA PETROL - GAZE DIN PLOIESTI Anexa 10


FACULTATEA: LITERE ŞI ŞTIINŢE
DOMENIUL: INFORMATICĂ
PROGRAMUL DE STUDII: INFORMATICĂ
FORMA DE ÎNVĂȚĂMÂNT: IF

F 272.13/Ed.2 Document de uz intern


APRECIERE
privind activitatea absolventului:

în elaborarea lucrării de licenţă cu tema:

Nr. CRITERIUL DE APRECIERE CALIFICATIV


crt.
1. Documentare, prelucrarea informaţiilor din bibliografie
2. Colaborarea ritmică şi eficientă cu conducătorul temei /lucrării
de licenţă
3. Corectitudinea calculelor, programelor, schemelor, desenelor,
diagramelor şi graficelor
4. Cercetare teoretică, experimentală şi realizare practică
5. Elemente de originalitate (dezvoltări teoretice sau aplicaţii noi
ale unor teorii existente, produse informatice noi sau adaptate,
utile în aplicaţiile inginereşti)
6. Capacitate de sinteză şi abilităţi de studiu individual
CALIFICATIV FINAL
Calificativele pot fi: nesatisfăcător/satisfăcător/bine /foarte bine /excelent.

Comentarii privind calitatea proiectului/lucrării:


_______________________________________________________________________
_______________________________________________________________________
_______________________________________________________________________
_______________________________________________________________________
____________

Data Conducător științific

Cuprin

F 272.13/Ed.2 Document de uz intern


s
1. Capitolul 1. Introducere................................................................................................2
1.1 Avantajele evaluării online.......................................................................................3
2. Capitolul 2. Tehnologii utilizate...................................................................................5
2.1 Protocolul HTTP...........................................................................................................5
2.1.1 Coduri de raspuns HTTP...............................................................................7
2.2 PHP (Hypertext Preprocessor)....................................................................................10
2.3 HTML..........................................................................................................................13
2.4 CSS..............................................................................................................................15
2.5 Stack-ul MEAN...........................................................................................................16
2.6 NodeJS.........................................................................................................................16
2.7 Express.js.....................................................................................................................17
2.8 JavaScript....................................................................................................................18
2.9 MongoDB...............................................................................................................20
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

1
1. Capitolul 1. Introducere

Sistemul de învățământ este în continuă dezvolate, iar modul în care informația


ajunge la elevi și studenți nu mai este limitată la sălile de clasă ale instituțiilor de
învățământ, deoarece tehnologia avansează pe zi ce trece.

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.

Învățarea online oferă toate avantajele participăraii la cursurile universității unde


dorești să studiezi, adăugând avantajul că poți să îți creezi singur programul de învățare.
Cursurile sunt disponibile la aproape orice subiect și programul flexibil pentru orice stil
de viață. Din ce în ce mai mulți studenți optează pentru învățatul online. Cu ajutorul
instrumentelor online se poate studia și în străinătate fără a părăsi țara și confortul de
acasă.

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.

Mutarea cursurilor și organizarea examinării online aduce și numeroase beneficii


elevilor și studenților, atât din punct de vedere financiar cât și pentru că pot economisi
atât bani cât și timp important pentru a desfășura alte activități.

2
1.1 Avantajele evaluării online

 Securitatea hârtiei de examinare


Odată ce toate întrebările au fost încărcate în sistem, întrebările și răspunsurile
grilelor pot fi distribuite într-o ordine aleatoare unor studenți, minimizând astfel șansele
de a trișa.

 Rezultate procesate foarte repede


Răspunsurile sunt procesate instant și precis de către sistem, iar studenții
primesc rezultatele pe loc. Pe când la un examen pe hârtie, timpul pentru corectare
depinde de profesor și uneori pot apărea erori în corectare.

 Reducerea costurilor logistice


La examenele online costurile logistice sunt minime deoarece examenul este
gestionat folosind tehnologie, pe când la examenele pe hârtie costurile sunt ridicate
implicând distribuția hârtiilor pentru examen, angajarea de supervizori și apoi
colectarea acestora.

 Se poate evita anumite scurgeri de informații


Folosind tehnologia de testare online, putem evita riscul ca unele întrebări să fie
aflate pe parcurs deoarece se poate accesa examenul folosind un user și o parolă doar în
momentul în care examenul începe, pe când la examenul pe hârtie, scurgerile pot aparea
în timpul distibuției acestor examene.

Această lucrare, are scopul de a veni în ajutorul profesorilor universitari cu o


modalitate eficientă și rapidă de a genera teste grilă pentru examinarea studenților. Site-
ul este ușor de utilizat, nu necesită foarte multe cunoștințe pentru a fi utilizat. Profesorul
poate crea întrebări și poate adaugă răspunsuri pentru grile, utilizând contul specific
profesorului și poate vedea ce rezultate au studenții.

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.

Capitolul 2. Tehnologii utilizate


În acest capitol sunt descrise tehnologiile care au fost folosite pentru realizarea
aplicației, cum ar fi: HTML, CSS, PHP, MongoDB, JavaScript, Bootstrap.

Capitolul 3. Dezvoltarea aplicatiei

În acest capitol, este descris modul în care am construit aplicația, cum am


realizat baza de date și cum diferite tehnologii informatice au contribuit la crearea
instrumentului software pentru a crea teste grilă.

Capitolul 4. Utilizarea aplicatiei

În acest capitol, este descris modul de utilizare a aplicației atât din punctul de
vedere al utilizatorului cat si al administratorului.

Capitolul 5. Concluzii si idei de dezvoltare ulterioara

În acest capitol sunt prezentate concluziile finale legate de dezvoltarea


proiectului, ceea ce am reușit să realizez din cerințele inițiale și cum ar trebui site-ul
dezvoltat ulterior.

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.

2.1 Protocolul HTTP

Denumirea de HTTP vine de la Hypertext Transfer Protocol. Este utilizat pentru


a accesa informații din internet, informații care sunt păstrate pe servere WWW (World
Wide Web).

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.

HTTP permite comunicarea între diferite hosturi și clienți și suportă un mixt de


configurații de rețea. Acesta este un protocol de sine stătător, adică serverul nu
păstreaza date când sunt relizare schimburile de informații. În mod normal, portul de
bază pentru TCP/IP este 80, dar pot fi folosite și alte porturi, administratorul rețelelor
poate opta pentru schimbarea sau închidere porturilor pentru a minimiza breșele de
securitate. Antete custom pot fi de asemenea create și trimise de clienți.

Protocolul http poate fi întalnit și de asemenea se HTTPS (Secure Hyper Text


Transfer Protoco), utilizat pentru transferul de informații într-un mod securizat.

Comunicarea între gazdă (host) și client se face prin perechi de mesaje


cerere/raspuns. Sunt două tipuri de mesaje care pot fi trimise și anume:

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 (Uniform Resource Locator)

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>

 Protocol – este protocolul folosit (http sau https),

 Nume_DNS – numele domeniului,

 Nume_local – numele resursei și calea.

În cazul protocoalelor server-client ca HTTP, conectarea se face în 3 faze:

1. Se stabilește o legătură TCP;

2. Clientul trimite o cerere și asteaptă raspunsul;

3. Serverul procesează cererea și trimite înapoi un răspuns, furnizând un cod


de stare și datele cerute.

HTTP definește o serie de metode de solicitare care indică ce acțiune trebuie


efectuată asupra unei resurse. Aceste metode de solicitare se mai numesc și verbe
HTTP.

Cele mai frecvente solicitări sunt:

 GET: aduce o resursă deja existentă. URL-ul conține toate informațiile


necesare pe care serverul trebuie sa le localizeze și sa le returneze;

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;

 DELETE: șterge o resursă existentă.

Cele patru metode de mai sus, sunt cele mai utilizate iar majoritatea framwork-
urilor folosesc aceste verbe pentru a face solicitări.

Există și alte verbe, mai puțin utilizate precum:

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

 TRACE: folosit pentru a primi numărul de hopuri pe care un request le


parcurge pentru a ajunge la server. Fiecare proxy intermediar sau
gateway își va injecta IP-ul sau numele DNS-ului în câmpul via al
header-ului. Acesta poate fi folosit în scop de diagnoză (troublshooting);

 OPTIONS: folosit pentru a primi înapoi capacitățile serverului. Este


folosit pe partea clientului, poate fi folosit pentru a modifica requestul pe
baza a ceea ce suportă serverul.

2.1.1 Coduri de raspuns HTTP

1. Răspunsuri informaționale

 100 – continuă:

Utilizatorul trebuie sa continuie solicitarea,acesta este un răspuns


provizoriu, folosit pentru a informa utilizatorul ca prima parte a cererii a fost

7
receptată. Poate fi și ignorat atunci când informația a fost transmisă în
întregime;

2. Raspuns reușit

 200 – ok: Cererea a fost executată cu succes;

 202: Accepted: cererea a fost acceptaă, dar s-ar putea să nu includă


resursa în răspuns. Aceasta este utilă pentru procesarea asincronă pe
partea serverului. Serverul ar putea să aleagă să trimită informații pentru
sincronizare;

 204: No Content: nu există un corp ale mesajului în răspuns;

 205 Reset Content: Indică clientului să își reseteze vizualizarea


documentului;

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

 301 Moved Permanently: Apare când URL-ul a fost schimbat permanent


și este oferit în raspuns.

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

 304 Not Modified: serverul a determinat că resursa nu s-a modificat și


clientul ar trebui să folosească copia din cache. Aceasta se bazează pe
faptul că clientul trimite informații ETag(Entity Tag) ce reprezintă hash-

8
ul conținutului. Serverul compară aceasta cu ETag-ul calculat de acesta
pentru a verifica modificările.

4. Erori ale clienților

 400 Bad Request: cerere incorectă;

 401 Unauthorized: Apare atunci când clientul trebuie sa se autentifice;

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

 409 Conflict: serverul nu poate completa cererea deoarece clientul


încearcă să modifice o resursă care este mai nouă decât timestamp-ul
clientului. Conflictele apar de obicei din cauza cererilor PUT ce se
realizează în editările colaborative asupra unei resurse. .

5. Erori ale serverului

 500 Internal Server Error: apare când serverul nu știe cum sa rezolve
aceasta situație ;

 501 Not Implemented: serverul nu suportă încă funcționalitate cerută;

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 ;

 503 Service Unavailable: aceasta s-ar putea întâmpla dacă un sistem


intern de pe server a eșuat sau serverul este supraîncărcat.;

2.2 PHP (Hypertext Preprocessor)


PHP (Personal Home Page) este un limbaj de programare. Prescurtarea de PHP
provine de la o versiune anterioară - Personal Home Page, iar în prezent provine de la
PHP: Hypertext Preprocessor.

`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 rula pe majoritatea sistemelor de operare existente, de la UNIX


Microsoft Windows sau Mac OS și poate interacționa cu foarte multe dintre serverele
web. Este compatibil cu aproape toate serverele folosite în ziua de astăzi (Apache, IIS).
Una dintre caracteristicile sale cele mai importante și ceea ce a făcut ca acest limbaj să
fie foarte cunoscut și folosit este faptul că este gratuit.

Deci cu PHP există libertatea de a alege un sistem de operare şi un server de


web. Chiar mai mult, există posibilitatea de a alege programarea procedurală sau
programarea orientată obiect sau chiar ambele.

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)

Există trei domenii principale unde sunt folosite scripturile PHP:

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

-scripting la linia de comandă. Se poate ca PHP să ruleze fără a fi nevoie de


server şi de browser, ci doar de interpretorul PHP. Această metodă este ideală pentru
scripturile ce se vor a fi executate (ex: cron sau sarcini simple de procesare a textelor).

-scrierea de aplicaţii ce rulează de partea clientului în mod grafic (GUI).


Probabil că PHP nu este limbajul cel mai potrivit pentru scrierea de aplicaţii cu ferestre
pentru Windows sau alte sisteme de operare, dar dacă se cunoaşte PHP foarte bine şi se
doreşte folosirea unor facilităţi avansate a PHP-ului în aplicaţiile ce rulează de partea

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

 interfeţe pentru multe sisteme sisteme de baze de date diferite;

 biblioteci încorporate pentru multe din taskurile Web obişnuite;

 cost scăzut;

 uşurinţă în învăţare şi utilizare;

 suport puternic orientat spre obiecte;

 portabilitatea, una dintre caracteristicile cele mai importante acestuia;

 disponibilitatea codului sursă;

 disponibilitatea suportului.

Tipuri de date interne

 Boolean – este un tip de dată care reprezintă valorile adevărat sau fals;

 Integer – reprezintă numerele întregi;

 Float – reprezintă valori reale;

 String – șiruri de caractere;

 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ă;

 NULL – acesta semnifică faptul ca variabila nu a fost definită și nu are o valoare


cunoscută sau valoare;

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.

Motoarele de căutare au rolul de a citi documentele HTML și de a le reprezenta


într-o formă cât mai vizibilă pentru filșierele cu text sau imagini și audibilă pentru
fișierele audio sau video.

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ă “>” .

HTML poate încorpora programe scrise în limbaje de scripting cum ar fi


JavaScript, care afectează comportamentul și conținutul paginii web. World Wide Web
Consortium (W3C), este fostul întreținător al HTML și întreținatorul curent al
standardului CSS, acesta a încurajat folosirea CSS-ului în locul prezentării explicite cu
HTML încă din 1997.

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.

 Folosirea titlurilor semnificative pentru relevanța în motoarele de căutare;

 Folosirea div-urilor <div> </div> pentru a împărți pagina în secțiuni pentru a


putea citi mai ușor codul când apar erori sau în general când este foarte mult
cod. Este recomandat să nu folosim div-urile in exces.

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

 Mutarea codului JavaScript chiar înainte de închiderea tagului <body>, pentru a


evita încărcarea lentă a paginii.

Tagurile HTML pot fi de două feluri:

1. Taguri pereche, adică un tag pentru început și unul pentru închidere (de
exemplu: <head></head>);

2. Taguri simple, adică nu au tag de închidere, se mai numesc și elemente


vide deoarece nu au conținut (exemplu: <br/> <hr/ >).

Cele mai utilizate taguri în HTM sunt:

 <html> …</html> este elementul principal;

 <head>...</head> conține informații despre site;

 <title>…</title> titlul paginii;

 <body>…</body> aici intră conținutul pagnii;

14
 <h1>…</h1> – Titlurile (sunt 6 elemente h1, h2, h3, h4, h5, h6 );

 <p>…</p> paragraful;

 <div></div> pentru a împarți pagina în diferite secțiuni;

 <a>..</a> link-uri;

 <img> </img> pentru inserarea de imagini.

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.

CSS este folosit pentru a permite o separare a prezentării și a conținutului,


inclusiv aspectul, culorile și font-urile. Această separare poate îmbunătați accesul la
conținut, oferă flexibilitate și control asupra caracteristicilor prezentării, permite mai
multor pagini web sa folosescă același tip de stilizare specificând in fișierul .css
elementele care vor împărți tipul de stilizare și reduce complexitatea și repetitia
conținutului.

Cuvântul cascadă din denumire vine de la schema de prioritate ce determină care


regulă de stil se aplică dacă mai mult de o regulă se potrivește pe un element particular,
schema de prioritate în cascadă este predictibilă.

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

Fig 1. Logo MEAN stack

MEAN(MongoDB, Express.js, Angular.js si Node.js) este un software gratuit,


open-source, full-stack. Acesta combină Express.js, Angular.js si Node.js într-o singură
solutie fullstack pentru a dezvolta aplicații JavaScript.

Având în vedere că toate componentele programelor de asistență a stivei MEAN,


sunt scrise în JavaScript, aplicațiile MEAN pot fi scrise atât pentru mediile de execuție
server-side cât si client-side.

Evaluată pentru versatilitatea de a construi aplicații web de producție robuste,


rapide si ușor de întreținut, MEAN are o cerere mare pe piață cu o mulțime de
angajatori și startup-uri.

2.6 NodeJS

Node.js este un mediu de rulare JavaScript, open-platform, multiplă


latformă, care execută cod JavaScript în afara unui browser web. Node.js permite
dezvoltatorilor să utilizeze JavaScript pentru a scrie scripturi server-side, rulând

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.

În inauarie 2010 a fost introdus un manager de pachete pentru mediu Node.js


denumit -npm. Acesta avea rolul de a facilita publicarea și partajarea codului sursă a
pachetelor Node.js și de a simplifica instalarea, actualizarea sau dezinstalarea
pachetelor.

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.

Express.js a fost creat de TJ Holowaychuk. Prima lansare conform GitHub


Repository pe data de 22 mai 2010 cu versiunea 0.12.

Acest framework oferă mecanisme pentru:

17
 Integrarea unor motoare de redare “view” pentru a genera raspunsuri prin
introducerea datelor în sabloane (templates);

 Adăugarea unor prelucrări ale proceselor “middleware” în orice punct al


“conductei” de gestionare a cererilor;

 Adăugarea unui port comun pentru conectare a aplicațiilor web și locația


șabloanelor folosite pentru redarea conținutului.

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.

Designul JavaScript reprezintă următoarea generație de software conceput


special pentru Internet și este:

 construit pentru a crea aplicații web;

 integrat cu Java;

 complementar și integrat cu HTML;

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

Cu JavaScript, o pagină HTML poate conține o formă inteligentă care efectuează


plăți de împrumut sau calcule de schimb valutar chiar pe client ca răspuns la accesarea
paginii de către utilizator. O aplicație multimedia pentru crearea de teste scrisă în Java
poate fi scriptată de JavaScript pentru a afișa imagini. Un script JavaScript din partea
serverului poate scoate datele dintr-o bază de date relațională și ar putea să le formateze
în format HTML.

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

JavaScript și DOM-ul oferă persoane rău intenționate potențialul de a livra


scripturi pentru a rula pe un computer client prin intermediul web. Autorii browserului
reduc la minimum acest risc folosind două restricții.

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

În al doilea rând, scripturile sunt limitate de politica de aceeași origine:


scripturile de pe un site Web nu au acces la informații precum nume de utilizator, parole
sau cookie-uri trimise pe alt site. Majoritatea erorilor de securitate legate de JavaScript
sunt încălcări ale aceleiași politici de origine sau ale sandbox-ului.

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

Bazele de date reprezintă un instrument indispensabil pentru sistemele


informatice. O bază de date reprezintă un ansamblu structurat de fişiere care grupează
datele prelucrate in aplicaţii informatice ale unei persoane, grup de persoane, instituţii,
etc. De asemenea, este definită ca o colecţie de date aflate in interdependenţă, împreună
cu descrierea datelor si a relaţiilor dintre ele.

MongoDB este o bază de date cross-platform, orientată pe document și se


încadrează in clasa bazelor de date NoSQL. Bazele de date NoSQL, nu stochează datele
sub forma unor tabele precum la bazele de date relaționale ci sub forma documentelor
JSON cu scheme dinamice.

Tranzacțiile în SBD NoSQL nu îndeplinesc cerințele ACID (Atomic,


Consistent, Izolat și Durabil) specifice SBD relaționale. Pentru acest tip de baze de
date tranzacțiile trebuie să fie BASE (Basically Available, Soft state, Eventual
consistency).

20
BASE (Basically Available, Soft state, Eventual consistency)

 disponibilitate de bază = Sistemul garantează disponibilitatea datelor așa cum


este ea definită în teorema CAP. Oricare cerere va primi un răspuns. Dar, spre
deosebire de SBD relaționale, răspunsul poate fi și afirmarea incapacității
temporare de a furniza datele cerute – datele pot fi la momentul respectiv într-o
stare inconsitentă sau în curs de modificare;

 stare labilă = Starea sistemului se poate schimba chiar în perioadele în care nu se


fac scrieri de date, lucru datorat mecanismelor specifice consistenței “în cele din
urmă”;

 consitență în cele din urmă = Sistemul va deveni cu siguranță consistent după un


interval în care nu mai au loc operații de scriere.

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

Comparație între bazele de date relaționale (MySql) și NoSQL (MongoDB)

Fig 3. Comparatie între bazele de date relaționale si nerelațiomale

21
Caracteristici ale MongoDB

 a fost lansat în 2009 de 10gen;

 este open source

 se poate instala pe Windows, Linux, OS X,

 Tipurile de date predefinite sunt: string, integer, double, boolean, date,


object;

 Scriptare server-side prin JavaScript

 Replicare de tip master-slave

Fig 4. Organizarea datelor în 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

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