Licenta2018 Paulsimea [309287]

UNIVERSITATEA DIN ORADEA

FACULTATEA DE INGINERIE ELECTRICĂ ȘI TEHNOLOGIA INFORMAȚIEI

PROGRAMUL DE STUDIU CALCULATOARE

FORMA DE ÎNVĂȚĂMÂNT IF

Proiect de diplomă

COORDONATOR ȘTIINȚIFIC

Șef lucrări dr.ing. Maștei Daniela

ABSOLVENT: [anonimizat]

2018

UNIVERSITATEA DIN ORADEA

FACULTATEA DE INGINERIE ELECTRICĂ ȘI TEHNOLOGIA INFORMAȚIEI

PROGRAMUL DE STUDIU CALCULATOARE

FORMA DE ÎNVĂȚĂMÂNT IF

PROIECTAREA ȘI IMPLEMENTAREA UNUI MAGAZIN PENTRU O SALĂ DE JOCURI

COORDONATOR ȘTIINȚIFIC

Șef lucrări dr.ing. Maștei Daniela

ABSOLVENT: [anonimizat]

2018

UNIVERSITATEA DIN ORADEA

FACULTATEA DE INGINERIE ELECTRICĂ ȘI TEHNOLOGIA INFORMAȚIEI

DEPARTAMENTUL CALCULATOARE ȘI TEHNOLOGIA INFORMAȚIEI

TEMA___

Proiectul de finalizare a studiilor a student: [anonimizat]

1). Tema proiectului de finalizare a studiilor:

Proiectarea și implementarea unui magazin pentru o sală de jocuri

2). Termenul pentru predarea proiectului 3.07.2018

3). Elemente inițiale pentru elaborarea proiectului de finalizare a studiilor

HTML5,CSS3,Bootstrap, PHP, MySql, JavaScript, jQuery.

4). Conținutul proiectului de finalizare a studiilor

Introducere

Capitolul I. Teorie fundamentală

Capitolul II. Tehnologii și limbaje de programare utilizate

Capitolul III. Prezentarea aplicației

Concluzii

Bibliografie

5). Material grafic: prezentare Power Point

6). Locul de documentare pentru elaborarea proiectului:

[anonimizat], internet, lucrări de laborator.

7). Data emiterii temei 20.10.2017

Coordonator științific

ș.l. dr. ing. Maștei Daniela

Cuprins

Introducere

Tema lucrării este “Proiectarea și implementarea unui magazin pentru o sală de jocuri”.

Am ales să creez acest site cu scopul de a promova o [anonimizat], web design și baze de date.

Pentru realizarea acestei aplicații am folosit editorul de cod Brackets și pentru gestiunea bazei de date am utilizat XAMPP. [anonimizat]: HTML, CSS, Bootstrap, JavaScript, PHP, MySQL, Jquery.

Lucrarea este structurată pe următoarele capitole: [anonimizat], [anonimizat] 1.

Teorie fundamentală

Aplicația web

Aplicațiile web sunt programe care rulează într-o [anonimizat](World Wide Web). [anonimizat], susceptibilă la erori și costisitoare. Comoditatea browserelor de a le folosi drept client a dus la eliminarea acelei probleme. Astfel, [anonimizat] .[1]

Webul a apărut prima dată cu scopul de a [anonimizat]. Ca primă dezvoltare în scopul folosirii unui server web a fost apariția CGI(Common Gateway Interface) la începutul anului 1990. CGI a [anonimizat]. Următorul pas a fost de a [anonimizat], un limbaj având ca scop în scriptarea comportamentului browserului și introducerea unor elemente dinamice. Pe finalul secolului XX, limbajul JavaScript a fost extins ca funcționalitate semnificativ prin introducerea API-ului numit XMLHttpRequest, cu ajutorul căruia se putea programa operații precum să efectueze și să proceseze răspunsurile la mici cereri HTTP dintr-o pagină web, fără a reîncărca însă întreaga pagină. La început, datele acelor cereri mici erau transferate de la client la server în format XML, ceea ce a dus la denumirea de AJAX(Asynchronous JavaScript and XML), însă pe măsură ce limbajele de programare server-side au introdus suportul, a devenit preferențial standardul JSON(JavaScript Object Notation). [1]

Pe partea de server, CGI a început să fie urmat de apariția specificației Java ServLet, care a fost inclusă mai apoi în Java Enterprise Edition, ceea ce a dus ca Java să devină un limbaj de programare preponderent în cadrul aplicațiilor web de pe partea de server. Alte exemple de limbaje de programare dedicate programării server-side au fost PHP(open-source project), ASP(Active-Server-Pages dezvoltat de Microsoft) și Ruby.[1]

1.2 Baze de date

Datorită dezvoltării rapide a industriei software și a calculatoarelor electronice ce a dus la necesitatea stocării unui volum tot mai mare de date s-a impus perfecționarea modulului de organizare și structurare a datelor care permit accesul rapid la datele stocate, pentru regăsirea și prelucrarea acestora. Pentru a efectua mai multe operații diferite de prelucrare, accesul rapid la date trebuie să rezolve probleme legate de viteza de regăsire a datelor și să asigure accesul mai multor utilizatori. [2]

Există două tipuri de date și anume: date simple care sunt independente unele de altele din punct de vedere al reprezentării lor în memorie și datele compuse care reprezintă colecții de date între care există anumite relații structurale. [3]

Organizarea datelor presupune:

Definirea, structurarea, ordonarea și gruparea datelor în colecții de date omogene

Stabilirea relațiilor între date

Stocarea datelor pe un suport informațional

Obiectivele principale în organizarea datelor sunt:

Accesul rapid la date

Spațiul de memorie internă și externă ocupat de date să fie cât mai mic

Datele să apară o singură dată în sistem

Flexibilitatea datelor

O bază de date reprezintă un set centralizat și structurat a datelor stocate pe un sistem informatic. Aceasta oferă facilități pentru regăsirea, adăugarea, modificarea și ștergerea datelor atunci când este nevoie și oferă facilități pentru transformarea datelor extrase în informații utile. [3]

Din punct de vedere al serviciilor pe care le oferă, baza de date reprezintă o colecție de date care poate să descrie întreaga activitate a unei organizații și care furnizează acces la diferite informații, care sunt prezentate în diferite formate. [3]

Avantajele folosirii bazelor de date în locul fișierelor de date sunt:

Partajarea informațiilor

Consistența, integritatea, securitatea, și independența datelor

Transparența

MySQL este un sistem de gestiune a bazelor de date relaționle, ce nu conține interfață grafică pentru administrarea sau gestionarea datelor din bazele de date și este produs de compania suedeză MySQL AB și distribuit sub Licența Publică Generală GNU. Este cel mai popular SGBD open-source la ora actuală fiind o componentă cheie a stivei LAMP(Linux, Apache, MySQL, PHP). Administrarea MySQL se face în două moduri: din linia de commandă sau folosind browserul și accesând aplicația phpMyAdmin scrisă în PHP. [4]

Cele mai utilizate comenzi cu bazele de date sunt:

CREATE : se creează o bază de date sau un tabel

DROP: se șterge o bază de date sau un tabel

INSERT: se inserează înregistrări în tabel

DELETE: se șterg înregistrări din tabel

UPDATE: se updatează datele dintr-o bază

SELECT: se selectează un tabel

ALTER: se alterează un tabel

Utilizatorii unei baze de date pot efectua mai multe operații asupra datelor și anume:

Inserare de date (insert)

Ștergere de date (delete)

Modificarea datelor (update)

Citirea bazei de date (query)

În limbajul MySQL întâlnim anumite tipuri de date(Tabelul nr. 1).

Tabelul nr. 1

Capitolul 2.

Tehnologii și limbaje de programare utilizate

În acest capitol am enumerat principalele soft-uri pe care le-am folosit la crearea aplicației Web și principalele caracteristici ale acestora.

XAMPP

XAMPP este un acronim pentru:

X (de la "cross", care înseamnă cross-platform) – se poate folosi pe diferite sisteme de operare

Apache HTTP Server

MySQL – pentru gestionarea bazelor de date

PHP – limbaj de programare folosit în dezvoltarea paginilor web

Perl

Este un program de dezvoltare, care permite designerilor și programatorilor web să își testeze munca pe calculatoarele proprii, fără a avea nevoie de acces la Internet. Se poate utiliza pe orice platformă (Windows, Unix) și este ușor de instalat, și gratuit.

Figura 1 – Panelul de control XAMP pentru pornirea și oprirea serviciilor Apache, MySql

Am ales să folosesc acest program deoarece este o soluție gratuită și eficientă, acesta oferindu-mi acces atât la bazele de date cât și la partea de front-end și back-end a website-ului.

Brackets

Brackets este un editor de cod sursă scris în HTML, CSS și JavaScript folosit pentru dezvoltarea de site-uri web. A fost creat de Adobe Systems, licențiat sub licența MIT, și este în prezent menținut pe GITHUB de Adobe și de alți dezvoltatori. Brackets este disponibil pentru descărcarea pe mai multe platforme, pe MAC, Windows și este disponibil cu majoritatea distribuțiilor Linux. Scopul principal al programului Brackets este funcționalitatea de editare live html, css si js.

Acesta oferă mai multe caracteristici și anume:

Editare rapidă

Quick Docs

Previzualizare Live

JsLint

Open source

Figura 2 – Editorul de cod Brackets

Limbajul HTML

Termenul de website (sau simplu site, ori „site web”) reprezintă o grupă de pagini web multimedia(care conțin texte, imagini fixe, imagini mișcătoare și sunete), acestea fiind accesibile în internet oricui, pe o temă anume, și conectate între ele prin hyperlinkuri. Există diferite site-uri web care pot să aparțină unei companii, unui proiect, unei rețele de utilizatori, unei persoane particulare, unei administrații publice sau multe altele. [5]

Limbajul HTML(HyperText Markup Language) a fost impus pentru crearea paginilor web. Acesta este un limbaj de marcare și are ca scop să prezinte intr-un anumit format informațiile precum: tabele, paragrafe, culori, fonturi.

HTML este un limbaj de marcare destinat prezentării documentelor text pe o singură pagină. Este un limbaj care dă infățișare Webului. Acesta constă dintr-o varietate de elemente care se numesc etichete(tags), care se pot folosi la diferite sarcini precum, definirea tipurilor de stil și a anteturilor, precum și la introducerea conținutului specific, cum ar fi imagini, sunete, cuvinte în realitate virtuală și aplicații Java. [5]

HTML oferă mijloace prin care conținutul unui document să poată fi adnotat cu diferite tipuri de metadate și indicații de redare. O pagină Web este un fișier care conține text și tag-uri HTML. Tag-urile HTML marchează textul pentru a defini cum este el afișat ca pagină dintr-un document Web. Tag-urile au 3 părți: deschiderea, conținutul și închiderea. Ele sunt folosite pentru formatarea paginilor Web și pentru a crea hiperlegături către alte documente sau către alte pagini de pe Web. Un prim exemplu de tag este <html> care spune browser-ului că a început un cod în HTML. Un al doilea tag, <body> marchează faptul că incepe partea vizibilă sau conținutul paginii în HTML. Tag-urile de închidere sunt </body> și </html> care spun browser-ului că s-a încheiat conținutul paginii și documentul HTML. Alte exemple de tag-uri ar fii <strong>, </strong> care este folosit pentru a defini textul în format “bold”, iar <p>, </p> sunt folosite pentru a marca apariția unui nou paragraf. [5]

HTML este independent de platformă, adică se pot crea fișiere HTML pe o anumită platformă și se poate folosi orice alt calculator pentru a vizualiza acel fișier ca și o pagină Web.

2.4 Limbajul HTML5

HTML5 este un limbaj de programare folosit pentru a structura și prezenta conținutul pentru WWW(World Wide Web).

Reprezintă a cincea revizuire a standardului HTML, care a fost creat în anul 1990 și standardizat din anul 1997 ca HTML4, HTML5 din anul 2011, luna octombrie, este in curs de dezvoltare. Obiectivele principale ale acestuia au fost acelea de a îmbunătății limbajul cu un suport pentru aparițiile cele mai recente multimedia, menținându-l ușor de citit în același timp de oameni, de computere și device-uri cum ar fii: browsere web, parsere. HTML5 propune să-și însumeze atât HTML4, cât și XHTML1 și DOM2HTML. [6]

Standardul HTML5 a fost publicat de către W3C ca Working Draft în anul 2008, un nou stadiu de „Recomandare W3C” fiind așteptat în anul 2014

HTML5 are multe caracteristici noi sintactice, caracteristici care cuprind elemente ca <header>, <audio> și <video>, și elemente HTML, precum integrarea conținutului SVG(Scalable Vector Graphics) care a înlocuit utilizarea tag-ului <object>. Aceste noutăți au ca scop de a facilita includerea și manipularea conținuturilor multimedia în web dar și grafice fără a mai fi nevoie să se apeleze la proprietățile de plugin și API. Elemente noi precum <article>, <header>, <section> au scopul de a îmbunătății conținutul semantic al documentelor. [6]

Aplicațiile HTML5 pot fi pornite pentru a rula în modul offline. HTML5 oferă o funcție de stocare offline, numită un cache al cererii pentru stocarea de fișiere. Dacă utilizatorul este deci offline, browser-ul mai are încă acces la fișierele necesare. Aceste fișiere pot fi HTML, CSS, Javascript, sau oricare alte resurse necesare pentru a vizualiza o pagină de web. [7]

HTML5 include o funcție Drag and Drop, care permite dezvoltarea de aplicații interactive. Cu Drag & Drop avem posibilitatea să mutăm orice element în locul dorit. HTML5 introduce multe elemente noi de intrare, cum ar fi selectoare de culori, pop-up calendare și altele.

Am folosit acest limbaj pentru a structura și a da sens conținutului web, de exemplu, definind paragrafe, titluri și tabele de date sau încorporând imagini.

2.5 Limbajul CSS

CSS provine din expresia Cascading Style Sheets și este un limbaj de stilizare al elemntelor html, al tagu-urilor html. Cu ajutorul unui CSS descriem modul de reprezentare al paginii HTML, într-un fișier separat. CSS lucrează cu o anumită ierarhie, oferă libertatea să suprascriem un stil deja folosit. [8]

CSS are mai multe avantaje:

Conținutul este separate de prezentare

Are control asupra layout-ului documentelor dintr-o singură pagină de stiluri

Permite ca modul de afișare si layout-ul paginilor de pe un server web să fie definite intr-un singur loc

Se poate utiliza pentru pagini HTML, cât și pentru documente XML [8]

Sintaxa fișierelor CSS constă dintr-o listă de:

Selectori – folosiți pentru alegerea tag-urilor

Descriptori – pentru a indica ce vrem să facem cu acestea

CSS extinde funcționalitățile HTML, permițând redefinirea etichetelor HTML existente. Funcționează ca HTML, însă nu este HTML.

Un fișier CSS conține o listă cu astfel de perechi(selectori, descriptori). Selectorii pot fi simple tag-uri HTML sau XML iar descriptorii sunt definiți în standard-ul CSS. [8]

Există trei moduri de utilizare a CSS-urilor:

Style sheet extern:

Se aplică la HTML și XML și se pot utiliza toate elementele de sintaxă CSS

Style sheet intern:

Se aplică numai la HTML și se pot utiliza toate elementele de sintaxă CSS

Style sheet inline:

Se aplică numai la HTML și nu se pot utiliza toate elementele de sintaxă CSS

2.6 Limbajul CSS3

CSS3 oferă o mulțime de lucruri noi pentru a îmbunătății un website. Cea mai mare schimbare o reprezintă includerea modulelor. Avantajul modulelor este acela că permite specificațiilor să fie completate și aprobate mai repede, deoarece segmentele sunt completate și aprobate în bucăți. [8]

Caracteristici noi CSS3:

Selectorii:

Permit proiectantului/dezvoltatorului să selecteze niveluri mult mai specifice ale documentului

Pseudo-clase structurale precum nth-child

Pseudo-clasă țintă pentru a modela numai elementele care sunt vizate în URL

Efecte de text și layout

Text shadow – se poate adăuga umbră la conținut sau la anumit font

Pseudo-clase precum first-letter și first-line

Mediu paginat și conținut generat

CSS3 suportă mai multe opțiuni in mediile paginate precum: rularea antetelor și subsolurilor, numerotarea paginilor, anumite proprietăți pentru imprimarea conținutului generat, inclusiv proprietăți pentru notele de subsol și referințele încrucișate [8]

Multi-column layout

Oferă proprietăți care permit proiectanților să-și afișeze conținutul în mai multe coloane, cu definiții cum ar fi decalajul dintre coloane, numărul de coloane și lățimea coloanei.

Ruby

Are capacitatea de a adăuga adnotări mici in partea de sus sau lângă cuvinte, cele mai des utilizate in limba chineză sau japoneză. Ele sunt utilizate în general pentru a da pronunția sau sensul ideogramelor dificile. [8]

În cazul aplicației pe care am realizat-o, am folosit un fișier inclus extern cu extensia .css pentru a modela și a defini paginile web.

2.7 Limbajul PHP

PHP este un limbaj de programare folosit pentru dezvoltarea paginilor și aplicațiilor web. Limbajul a fost inițial dezvoltat de inventatorul său Rasmus Lerdorf, iar odată cu creșterea de utilizatori, dezvoltarea a fost preluată de o nouă entitate, numită The PHP Group.

Limbajul PHP a apărut în anul 1994 din nevoia lui Rasmus Lerdorf de a afla câte persoane îi viziteaza CV-ul online. El a denumit setul de scripturi create PHP, acronimul pentru Personal Home Page. Limbajul a evoluat în urmatorii ani, iar succesul adevărat a început să îl cunoască de când Zeev Suraski și Andi Gutmans au rescris motorul PHP de la cap coadă, motor care poartă versiunea 4 a PHP numele Zend. Fiind open-source, PHP beneficiază de suport activ din partea comunității online, acesta fiind și motivul creșterii numărului site-urilor bazate pe PHP. [11]

PHP este cel mai cunoscut limbaj de scripting folosit pentru crearea site-urilor Web interactive. Denumirea este un acronim recursiv pentru Hypertext PreProcessor. Diferența față de alte limbaje de scripting precum JavaScript, este faptul că PHP este un interpretor server-side adică operațiile sunt executate de către server și nu pe calculatorul utilizatorului. [11]

Sunt trei domenii principale, unde sunt utilizate scripturile PHP:

Scripting pe partea serverului – acesta este cel mai tradițional și de bază domeniu al PHP

Scripting în linia de comandă – se poate crea un script PHP care poate rula fără server și fără navigator web

Scrierea aplicațiilor de birou

Una dintre cele mai semnificative facilități ale PHP este susținerea unui larg domeniu de baze de date. Accesarea unei baze de date se face utilizând una din extensiile de lucru cu baze de date sau utilizând un nivel de abstractizare precum POO, sau conectarea la orice bază de date ce susține standardul “Open Database Connection” cu ajutorul extensiei ODBC. [11]

În implementarea aplicației am folosit PHP în cadrul căruia sunt comenzile SQL. Aplicația accesează fișierele PHP pentru a primi date și informații care sunt returnate cu ajutorul SQL.

2.8 Limbajul SQL

Un sistem de gestionare a bazelor de date relaționale (RDBMS) este un instrument esențial în multe medii, de la utilizări în mediul de afaceri, cercetare și contexte educaționale, la livrarea conținutului pe internet. [12]

SQL(Structured Query Language) este un limbaj de programare specific pentru manipualrea datelor în sistemele de manipulare a bazelor de date relaționale (RDBMS). Acesta are ca scop inserarea datelor, interogații, actualizare și ștergere, modificarea și crearea schemelor, precum și control asupra accesului la date.

Instrucțiunile SQL pot fi grupate în:

instrucțiuni de definire a datelor: permit descrierea structurii bzei de date

instrucțiuni de manipulatea datelor: adaugă, șterge, modifică înregistrări

instrucțiuni de selecție a datelor, care permit consultarea bazei de date

instrucțiuni de procesarea tranzacțiilor

instrucțiuni de control al cursorului

instrucțiuni pivind controlul accesului la date

MySQL este un sistem de gestiune a bazelor de date relaționale, fiind cel mai popular SGBD open-source la ora actuală. MySQL are multe calități printre care : [12]

Viteza: MySQL este rapid și devine mai rapid.

Ușurință în utilizare: MySQL este un sistem de baze de date de înaltă performanță, relativ simplu, mai puțin complex de instalat și administrat decât sistemele mai mari

Înțelege SQL (Language Structured Query)

Capabilitatea: Serverul MySQL este multi-threaded, astfel încât mulți clienți se pot conecta la el în același timp. Fiecare client poate utiliza simultan mai multe baze de date

Am utilizat limbajul SQL pentru a adăuga, a șterge, a interoga și actualiza date din baza de date . Comenzile SQL se află în fișiere PHP.

2.9 Limbajul JavaScript

JavaScript abreviat adesea ca JS este un limbaj de programare orientat pe obiecte bazându-se pe conceptul prototipurilor. Alături de HTML și CSS, JavaScript este unul dintre cele trei tehnologii de bază ale World Wide Web.

A fost dezvoltat prima dată de firma Netscape, cu numele de Live Script. Este un limbaj de script care lărgea capacitățile HTML, prin oferirea unei alternative parțiale la utilizarea unui număr mare de scripturi CGI, pentru a prelucra informațiile din formulare și pentru a adăuga dinamism în paginile web. După ce limbajul Java a fost lansat, Netscape a început să lucreze cu firma Sun, pentru a crea un limbaj de script cu o sintaxă și semantică asemănătoare cu a limbajului Java, iar din motive de marketing numele limbajului a fost schimbat în JavaScript.[9]

JavaScript permite inserarea de script-uri în paginile web, care se execută în cadrul paginii web, mai precis în cadrul browser-ului utilizatorului, ușurând astfel și traficul dintre server și client. De exemplu pentru a colecta date de la utilizator într-o pagină web, se pot adăuga scripturi JavaScript pentru validarea corectitudinii a introducerii și apoi pentru a trimite serverului doar date corecte spre a fi procesate. JavaScript conține o listă de funcții și comenzi cu scopul de a ajuta ajuta la operațiile matematice, la manipulări de șiruri, și sunete, imagini, obiecte și ferestre ale brwser-ului, link-uri URL și verificări ale introducerii datelor în formulare.[9]

Pentru inserarea unui cod JavaScript într-un document HTML, se folosește tagul <script> și respectiv </script>. Aceste taguri marchează locul în care începe, respectiv se sfârșește scriptul. [9]

Pentru a insera scripturi în documente HTML se pot folosi 4 metode și anume:

Metoda 1 – plasarea de script în antet-ul paginii (între <head> și </head>)

Metoda 2 – plasarea de script în corpul paginii (între <body> și </body>)

Metoda 3 – utilizarea fișierelor sursă

Metoda 4 – crearea unui gestionar de evenimente

Există câteva aspecte fundamentale ale limbajului JavaScript și anume:

JavaScript poate fi introdus în HTML – codul JavaScript este găzduit de obicei în documentele HTML și executat în interiorul lor. Obiectele din JavaScript au etichete HTML, pe care le reprezintă în așa fel încât programul să fie inclus pe partea de client a limbajului. JavaScript folosește HTML pentru a putea lucra în cadrul aplicațiilor web.

Este dependent de mediu – este un limbaj de scriptare întrucât software-ul care rulează programul de lucru este de fapt browser-ul web(Opera, Firefox, etc.).

Este un limbaj interpretat – codul scriptului este interpretat de browser înainte de a se executa. JavaScript nu are nevoie de compilări sau preprocesări, el rămâne integrat în documentul HTML. Dezavantajul acestui limbaj este faptul că rularea durează mult deoarece navigatorul web citește și procesează comenzile JavaScript atunci când user-ul apelează acele funcții. Avantajul este faptul că se poate actualiza ușor codul sursă.

Este un limbaj flexibil – putem să declarăm o variabilă de un anume tip, sau putem să lucrăm cu o variabilă cu toate că nu-i cunoaștem tipul specificat înainte de a o rula.

JavaScript este un limbaj bazat pe obiecte – adică modelul de obiect JavaScript nu este bazat pe moștenire ci pe instanță

Este condus de evenimente – o mare parte a codului JavaScript este făcut pentru a răspunde la evenimentele generate de un utilizator sau de un sistem. Obiectele HTML, de tip butoanele, au fost îmbunătățite pentru a accepta handlere sau evenimente

JavaScript evoluează – este un limbajul care evoluează, fapt pozitiv care poate însă să genereze și probleme, programatorii trebuie să verifice în permanență ce versiune să utilizeze pentru ca aplicațiile să fie disponibile unui număr mare de utilizatori de browsere diferite

Acoperă diverse contexte – programarea în acest limbaj este îndreptată către partea de client, însă se poate folosi JavaScript și pe partea de Server. JavaScript este limbaj nativ pentru anumite instrumente de dezvoltare web, precum Macromedia Dreamweaver sau Borland IntraBuilder. [9]

Fiind un limbaj de scripting, JavaScript mi-a permis să creez un conținut dinamic actualizat.

2.10 jQuery

jQuery este o platformă de dezvoltare JavaScript, concepută pentru a simplifica traversarea documentelor HTML, gestionarea evenimentelor, animarea și interacțiunile AJAX pentru dezvoltarea web rapidă. jQuery este un set de instrumente JavaScript concepute pentru a simplifica diverse sarcini prin scrierea unui cod mai puțin. [13]

jQuery are mai multe caracteristici precum:

selecția de elemente în arborele DOM folosind motor propriu de selecții open source precum Sizzle, un proiect născut din jQuery

parcurgerea și modificarea arborelui DOM (inclusiv suport pentru selectori CSS3 și Xpath simpli)

efecte și animații

înregistrarea și modificarea evenimentelor din browser

manipularea de elemente CSS

cereri de tip AJAX

utilități – funcția each

extensii

Plugin-urile sau extensiile sunt unele dintre cele mai interesante aspecte ale jQuery. Arhitectura sa permite programatorilor să dezvolte subaplicații bazate în biblioteca principală care extind funcțiile de bază jQuery cu funcții specifice plugin-ului. Astfel biblioteca principală poate ocupa puțin spațiu, iar extensiile necesare în anumite pagini web pot fi încărcate la cerere, doar când este nevoie de ele. Există un set de extenii principal numite jQuery UI (jQuery User Interface). jQuery UI oferă un set de extensii pentru interactivitate de bază, efecte mai complexe decât cele din biblioteca de bază și teme de culori. Avantajul UI față de alte extensii este că dezvoltarea și testarea acestor componente se face în paralel cu dezvoltarea bibliotecii principale, minimând riscul de incompatibilitate. [14]

Există două moduri de a utiliza jQuery:

Instalare locală – se poate descărca biblioteca jQuery pe mașina locală

Versiune bazată pe CDN – se poate include direct biblioteca jQuery în codul HTML din Rețeaua de livrare a conținutului (CDN – Content Delivery Network). [13]

Capitolul 3.

Prezentarea aplicației

3.1 Structura website-ului

Site-ul web pe care l-am realizat are un meniu simplu și o interfață ușor de folosit. Scopul implementării acestui site este promovarea unei săli de gaming din Oradea care poate fi accesat de orice persoană pasionată de jocurile pe calculator sau consolă. Site-ul are și o pagină de magazin cu diferite echipamente de gaming de unde clienții să-și poată comanda un produs.

Pentru partea de front-end am creat interfața pentru utilizatori iar, pe parte de back-end pentru managementul conținutului am creat o bază de date de unde administratorul actualizează conținutul.

Figura 3 Harta site-ului

În figura 3 se află harta site-ului care conține structura ierarhică a paginilor site-ului.

3.2 Prezentarea meniului principal

Lucrarea pe care am realizat-o este constituită dintr-un site de prezentare pentru sala de jocuri, și o pagină de magazin care poate fi accesat de pe site. Pagina principală prezentată în Figura 4 este asociată cu butonul Home din meniu. Tot în cadrul paginii principale sunt afișate și restul paginilor: Servicii, Galerie, Preț, Magazin, Sponsori, Echipa, Contact, Harta.

Aceste pagini au ca scop informarea utilizatorului pentru ca acesta să-și facă o idee concretă legată de sala de gaming.

Figura 4 Pagina principală a site-uli

Site-ul are o interfață ușor de folosit, este de tip “one page”, iar navigarea printre pagini este de tip “scrolling” pentru a oferi utilizatorului posibilitatea de a sări rapid la diferite secțiuni ale paginii. Pentru crearea paginilor am utilizat Bootstrap, un framework care mi-a permis realizarea de pagini responsive. În pagina din figura 4 am utilizat clasele ‘navbar’ și ‘carousel’ iar pentru design am folosit CSS care pe baza selectorilor și proprietăților m-au ajutat la stilizarea mai multor elemente ȋn cadrul realizării aplicației, de exemplu pentru setarea culorii meniului sau a scrisului din meniu am setat: background #fff și font-family: sans-serif(figura 5).

Figura 5 Cod CSS pentru stilizare meniu

Figura 6 Pagina Servicii

Pentru a crea o interfață cât mai simplă și prietenoasă am folosit biblioteca Font Awesome. Font Awesome este o bibliotecă pentru fonturi bazată pe CSS și LESS. În pagina servicii, am utilizat această bibliotecă pentru adăugarea de icon-uri.

Pentru adăugarea de icon-uri, am creat clase specifice, de exemplu, pentru icon-urile respective din figura 6 am adăugat clasele: fa fa-desktop, fa fa-users, fa fa-gamepad respectiv fa fa-trophy (figura 7).

Figura 7 Exemplu cod html pentru adăugare de icon din cadrul aplicației

Am ales să utilizez această librărie deoarece este ușor de integrat într-o aplicație web.

Figura 8 Pagina Galerie

Bootstrap conține un sistem de grid pe 12 coloane. Cu ajutorul acestui sistem de grid am împărțit pagina Galerie în 3 coloane de dimensiuni egale făcând-o astfel accesibilă și de pe alte dispozitive(figura 9).

Figura 9 Pagina Galerie vizualizată de pe smartphone

Figura 10 Pagina Magazin

În pagina magazin am introdus cele mai vândute 3 produse și un buton prin care utilizatorul va avea acces la pagina principală a magazinului.

Figura 11 Pagina Contact

Pentru ca site-ul să fie accesat atât de pe calculatoare cât și smartphone-uri sau tablete m-am folosit de tehnologia Bootstrap acesta oferindu-mi de asemenea, structuri predefinite precum meniul de navigare, carousel, formulare și gridurile responsive. Bootstrap împarte pagina web în 12 coloane cu valori procentual-egale, iar unind aceste coloane am obținut box-urile dorite pentru a adăuga conținutul. Aceste 12 coloane oferă multe variante de structurare a paginii care ajută la tranzițiile dintre ecranele de diferite dimensiuni.

3.3 Prezentarea paginii magazin

În pagina principală magazin avem un meniu cu butoanele: Home, Product, Buton de căutare, Cart, SignIn.

Figura 12 Pagina principală magazin

Pentru afișarea produselor, a categoriilor și brandurilor în pagina de magazin am utilizat funcțiile Cat (), Brand(), Product() prezentate în figura 10.

Figura 13 Funcții pentru preluarea înregistrărilor din baza de date

Funcțiile cat(), brand() și product() le-am folosit pentru a prelua înregistrările de categorii, brand și produs din baza de date, pentru a le afișa în pagina de magazin ori de câte ori pagina este încărcată. Pentru aceste funcții am folosit jQueri.ajax și am utilizat metodele POST și GET. Am utilizat metoda POST pentru a trimite date către server, cu scopul de a crea / actualiza o resursă, iar GET pentru a solicita date dintr-o resursă specificată.

Utilizatorul are urmatoarele posibilități:de a se înregistra, a căuta produsul dorit în bara de search, de a adăuga sau șterge produse din cărucior și de a comanda un produs

Figura 14 Înregistrare utilizator

În figura 14 avem pagina de autentificare pentru utilizator, cu câmpurile respective care trebuie completate pentru ca utilizatorul sa se poată înregistra și comanda un produs.

În momentul autentificării dacă nu sunt completate toate câmpurile, atunci nu se va putea face autentificarea, iar câmpurile necompletate corespunzător vor indica eroare. Pentru afișarea erorilor am folosit clasa ‘alert-warning’ care indică o acțiune negativă și instrucțiunea echo pentru afișarea mesajului (figura 15). Pentru o bună securizare, nu pot exista 2 adrese de email la fel, iar parola unui id trebuie să fie de minim 6 caractere.

Figura 15 Exemplu cod pentru afișare eroare

Figura 16 Pagina Cărucior

În pagina cărucior utilizatorul are opțiunea de adăuga sau șterge produse. Prin apăsarea butonului “Ready to Checkout” utilizatorul va fi direcționat pe pagina de paypal(figura 17), iar acesta va trebui să-și introducă datele pentru finalizarea plății. Acestea se realizează pe bază de ‘sesiuni’ create în php și pe bază de interogări MySQL.

Figura 17 Plata produsului cu paypal

Persoanele care plătesc prin PayPal Payments Standard interacționează cu formularele HTML și cu variabilele de intrare HTML ascunse pe care le-am plasat pe site. Așa cum se poate observa în figura 18 am folosit tag-ul form care include două atribute: action și method și am utilizat variabile precum cmd a cărui valoare determină metoda de plată PayPal Standard Checkout pe care am utilizat-o pentru a obține plata.

Figura 18 Cod php pentru metoda de plată

Figura 19 Finalizarea plății

Prin introducerea datelor și finalizarea plății acesta va primi un mesaj cum că plata a fost finalizată și i se va afișa codul tranzacției. Prin accesarea butonului Continue Shopping acesta va fi redirecționat pe pagina principală unde își va putea continua cumpărăturile și vedea istoricul de comenzi.

Pentru finalizarea plății am creat o ‘sesiune’ php care face posibilă trimiterea datelor. Pe baza de interogări SQL se verifică în baza de date informațiile necesare pentru preluarea datelor, astfel în momentul în care utilizatorul face o comandă pe baza metodelor POST care trimite date către server și GET pentru a solicita date dintr-o resursă specificată, comanda utilizatorului se înregistrează în baza de date iar pe baza idu-ului, acesta v-a primi un cod pentru tranzacția respectivă.

3.4 Administrarea aplicației

Administrarea este un aspect important pentru o aplicație web, întrucât o aplicație care este actualizată conferă încredere utilizatorilor. În cadrul acestei aplicații doar administratorul are posibilitatea de a modifica conținutul paginilor.

Administratorul website-ului administrează paginile statice dar și cele dinamice de pe acest site. Paginile dinamice sunt mai ușor de administrat deoarece sunt actualizate din baza de date.

3.5 Baza de date

Pentru aplicația web am creat o bază de date cu ajutorul sistemului de gestiune a datelor phpMyAdmin. În figura 20 avem baza de date. Numele bazei de date este “simnetsite” și conține 7 tabele și anume:

Brands

Cart

Categories

Orders

Products

Users

User_info

Figura 20 Tabelele bazei de date

Pentru crearea tabelelor și adăugarea de conținut în tabele m-am folosit de comenzile SQL și anume Create Table și Insert Into. În figura de mai jos am prezentat un exemplu pentru crearea tabelului categories.

Figura 21 Exemplu de cod SQL pentru crearea tabelului categories

Figura 22 Tabelul User_info

În figura 22 avem tabelul User_info care l-am creat cu ajutorul limbajului SQL, unde am folosit comenzile ‘Create Table’ pentru creare tabel și ‘Insert Into’ pentru a adăuga conținut în tabel. Acesta cuprinde 8 câmpuri și reprezintă datele de autentificare pentru fiecare utilizator. La autentificare fiecare câmp trebuie completat.

Figura 23 Tabelul Products

În figura 23 avem tabelul pentru produse. Fiecare produs are un id unic, o categorie, un brand, un titlu, preț, o descriere, o imagine și un cuvânt cheie prin care poate fi căutat în bara de search.

Figura 24 Tabelul pentru comenzi

Tabelul pentru comenzi conține 6 câmpuri și anume:

Un id unic pentru fiecare commandă

Id-ul utilizatorului care a făcut comanda

Id-ul produsului comandat

Cantitatea

Id-ul tranzacției care este diferit la fiecare comandă

Statusul comenzii

Figura 25 Tabelul pentru cărucior

Tabelul pentru cărucior ilustrat în figura 25 conține 5 câmpuri: id, p_id, ip_add, user_id, qty. Acest tabel înregistrează în baza de date pe baza ip-ului utilizatorului produsele care se află în cărucior.

3.6 Diagrama conceptuală a bazei de date

În figura 26 este reprezentată diagrama conceptuală a bazei de date. Unul sau mai multe produse aparțin unei singure categorii și unui anumit Brand. Fiecare utilizator dispune de un cărucior unde se află unul sau mai multe produse. Fiecare user poate avea mai multe comenzi, iar comanda conține unul sau mai multe produse.

Doar administratorul are accesul la oricare dintre operațiile de ștergere, adăugare și actualizare a bazei de date.

Figura 26 Diagrama conceptuală a bazei de date

3.7 Securitatea aplicației

Aplicația beneficiază de o securizare bună deoarece conectarea se face prin intermediul unui id și o parolă cu diferite grade de acces.

Restricții aplicate asupra tipurilor de utilizatori :

Nu pot să existe 2 id-uri cu același nume

Nu pot să existe id-uri cu câmpuri necompletate

Parola unui id trebuie sa fie de minim 6 caractere

La înregistrare toate câmpurile sunt obligatorii

Toate câmpurile au o lungime determinată

Nu se pot lăsa câmpuri goale

Parola trebuie sa fie corectă

Unul dintre limbajele de programare folosite, PHP îi oferă securitate de nivel înalt care, îmbinat cu bazele de date ajută la protecția datelor.

Prima oară verificăm dacă avem date de transmis, apoi cu ajutorul unei variabile superglobale $_POST preluăm datele de autentificare ale utilizatorului și executăm un query MySQL de tip INSERT pentru a salva datele în tabela users_info. Ca metodă de securitate, parola este encodată utilizând funcția md5(). Pentru logare avem un fișier care verifică existența informațiilor, reține email-ul și parola în două variabile, apoi execută un query SELECT pentru a verifica dacă sunt valide

Pentru a nu exista 2 adrese de email la fel am setat ca limita să fie 1(figura 27), iar la crearea fiecărui cont pe baza unui query se verifică în baza de date dacă nu există deja un cont unde se află email-ul respectiv. Dacă există, autentificarea nu se va putea realiza și va apărea eroare. Pentru introducerea parolei am folosit funcția strlen unde am setat ca parola să fie minim de 6 caractere.

Figura 27 Exemplu cod pentru verificare email

Concluzii

Am creat site-ul web cu scopul de a promova o sală de gaming și de a-mi îmbunătăți cunoștințele în programare și web design. Am încercat să structurez interfața principală, astfel încât utilizatorului să-i fie ușor să găsească informația de care are nevoie în cel mai scurt timp. Pe partea de aplicație și anume pagina de magazin, aceasta poate fi accesată de orice persoană care dorește să-și comande un produs.

Această aplicație reprezintă un prim pas pentru dezvoltarea pe viitor a unor funcționalități mai complexe. Prin realizarea acestei aplicații mi-am aprofundat cunoștințele în utilizarea tehnologiilor: HTML, CSS, Bootstrap, PHP, MySQL, și am reușit să dobândesc cunoștințe noi în utilizarea de noi biblioteci și limbaje de programare precum și utilizarea unor platforme de dezvoltare JavaScript precum jQuery.

Pe viitor ca și principale dezvoltări mi-am propus să îmbunătățesc sistemul de securitate și să o fac publică astfel încât să poată fi accesată online. De asemenea doresc să creez o bază de date pentru introducerea anumitor evenimente în pagina site-ului, să adaug opțiune care permite utilizatorului să selecteze limba română sau engleză în care să se afișeze conținutul, să adaug animații cu scopul de a face site-ul mai atractiv și să adaug noi opțiuni pentru metoda de plată.

Bibliografie

[1] Aplicație web https://ro.wikipedia.org/wiki/Aplicație_web

Consultat la data de 17.04.2016

[2] Baze de date http://www.prouniversitaria.ro/carte/baze-de-date

Consultat la data de 18.04.2016

[3] Baze de Date relaționale. Teorie și Aplicații în Visual FoxPro, Cornelia Gyorodi, R. Gyorodi, G.Pecherle, Editura Mediamira, 2008.

[4] MySQL https://ro.wikipedia.org/wiki/MySQL

Consultat la data de 19.04.2016

[5] Chuck Musciano, Bill Kennedy, HTML and XHTML, the definitive guide, Editura O'Reilly Media, Inc., 2002

[6] Mark Pilgrim, HTML5: Ghidul începătorului, Brașov, 2011, p. 10

[7] HTML5 https://ro.wikipedia.org/wiki/HTML5

Consultat la data de 20.04.2016

[8] Introducere în CSS https://marplo.net/css/introducere

Consultat la data de 20.04.2016

[9] Limbajul JavaScript https://web.ceiti.md/lesson.php?id=16

Consultat la data de 25.04.2016

[10] Pavel Năstase, Foarea Năstase, Internet World Wide Web, JavaScript-HTML-Java, Editura Economică, 1998

[11] Despre PHP http://etutoriale.ro/articles/16/1/Despre-PHP/

Consultat la data de 25.04.2016

[12] Paul Dubois, MYSQL, editura Teora 2001

[13] Despre jQuery http://www.tutorialspoint.com/jquery/jquery_tutorial.pdf

Consultat la data de 10.05.2016

[14] jQuery https://ro.wikipedia.org/wiki/JQuery

Consultat la data de 15.05.2016

DECLARAȚIE DE AUTENTICITATE A

LUCRĂRII DE FINALIZARE A STUDIILOR

Titlul lucrării

Proiectarea și implementarea unui magazin pentru o sală de jocuri

Autorul lucrării

Simea Paul Alexandru

Lucrarea de finalizare a studiilor este elaborată în vederea susținerii examenului de finalizare a studiilor organizat de către Facultatea Inginerie Electrică și Tehnologia Informației din cadrul Universității din Oradea, sesiunea iulie a anului universitar 2017-2018.

Prin prezenta, subsemnatul Simea Paul Alexandru, CNP 1950217055091, declar pe proprie răspundere că această lucrare a fost scrisă de către mine, fără nici un ajutor neautorizat și că nici o parte a lucrării nu conține aplicații sau studii de caz publicate de alți autori.

Declar, de asemenea, că în lucrare nu există idei, tabele, grafice, hărți sau alte surse folosite fără respectarea legii române și a convențiilor internaționale privind drepturile de autor.

Oradea,

25.06.2018 Semnătura

Similar Posts