Aplic ație web de administrare a informațiilor dintr -o bază de date în domeniul produselor medical e și gestionarea informa țiilor în caz de… [611043]
Universitatea POLITEHNICA Bucure ști
Facultatea Automatică și Calculatoare
Departamentul Automatică și Informatică Industrială
LUCRARE DE DIPLOM Ă
Aplic ație web de administrare a informațiilor dintr -o
bază de date în domeniul produselor medical e și
gestionarea informa țiilor în caz de dezastre naturale
Coordonator Absolvent: [anonimizat].dr.ing . Andrei Hossu Crețu Rober t
Anul absolvirii 2019
2
Cuprins
Cuprins ………………………….. ………………………….. ………………………….. ………………………….. .. 2
Sinopsis ………………………….. ………………………….. ………………………….. ………………………….. .. 3
1 Introducere ………………………….. ………………………….. ………………………….. …………………….. 4
1.1 Concepte și introducere în tematica ………………………….. ………………………….. …. 4
1.2 Stadiul actual ………………………….. ………………………….. ………………………….. ……. 4
1.3 Justi ficarea alegerii temei ………………………….. ………………………….. ……………….. 5
1.4 Descrierea succintă a conținutului fiecărui capitol ………………………….. ………… 6
2. Prezentarea domeniului ………………………….. ………………………….. ………………………….. ….. 7
3. Descrierea problemei abordate și a metodei de rezolvare propuse ………………………….. … 9
3.1 Descrierea problemei ………………………….. ………………………….. ……………………… 9
3.2 Descrierea rezolvării propuse ………………………….. ………………………….. ………… 10
3.2.1 Întrebuințare ………………………….. ………………………….. …………………… 10
3.2.2 Arhitectura ………………………….. ………………………….. …………………….. 13
4. Descrierea tehnică ………………………….. ………………………….. ………………………….. ………… 19
4.1 Echipamente utilizate ………………………….. ………………………….. …………………… 19
4.2 Tehnologii software ………………………….. ………………………….. ……………………… 20
5.Rezultate și performanțe ………………………….. ………………………….. ………………………….. … 41
5.1 Rezultate ………………………….. ………………………….. ………………………….. ………… 41
5.2 Performanțe ………………………….. ………………………….. ………………………….. ……. 43
6.Concluzii ………………………….. ………………………….. ………………………….. ……………………… 45
6.1 Dezvoltărui ulterioare ………………………….. ………………………….. …………………… 45
7.Bibliografie ………………………….. ………………………….. ………………………….. ………………….. 47
8.Anexe ………………………….. ………………………….. ………………………….. ………………………….. 48
3
Sinopsis
O aplicație web este un program de calculator ce folosește tehnologiile World Wide
Web care facilitează comunicarea între client și server în vederea obținerii de info rmații.
Sarcina bazelor de date este acela de a înmagazina informații și de a le furniza aplicației
pentru afișare. O baza de date electronica este practic o colecție de informații organizate și
care oferă funcționalități precum inserare, ștergere, actuali zare de date. Baza de date
reprezintă o componentă cruciala în dezvoltarea unei aplicații web.
Dezvoltarea web reprezintă munca prestată pentru crearea paginilor web pentru
Internet sau pentru rețele private ce pot fi pagini simple ce conțin doar text p ână la pagini
mai complexe ce au conținut dinamic și interactiv pentru afaceri online, rețele sociale și
chiar pentru aplicații dezvoltate de guvern în slujba cetățeanului. Problema aplicațiilor
dezvoltate de stat e ca nu sunt reglementate de piață și de asemenea sunt constrânse de legi,
politici interne sau legislație ceea ce duce la o scădere a calității aplicației dezvoltate.
4 1 Introducere
1.1 Concepte și introducere în tematica
Pentru dezvoltarea Internetului așa cum îl știm acum aplic ațiile web au avut și au în
continuare un rol foarte important. O aplicație web ce este practic un program care
funcționează pe arhitectura client -server este controlată de un utilizator prin intermediul
unui browser. Un browser web este un software prin i ntermediul căruia accesezi informații
pe World Wide Web .
Pentru dezvoltarea aplicațiilor web este imperativ deținerea de cunoștințe despre
următoarele limbaje sau tehnologii :
• de scripting: PHP, JavaScript, Python, Ruby, Perl etc
• compilate: C, C++, C#, J ava etc
• de marcare: HTML, Cascading Style Sheets (CSS)
• de manipulare a bazei de date: SQL și dialectele acestuia precum M ySql,Oracle
In continuare, pot fi folosite framework -uri de PHP precum Laravel, Symfony ,
Codelgniter etc, de JavaScript precum Vue.js, Angular, React și de CSS precum Bootstrap,
Bulma sau Foundation . Un software framework este un mediu predefinit în care
funcționalitățile mai simple care ocupa timp sunt deja create oferind dezvoltatorului mai
multa libertate sa -și creeze aplicația mai ra pid și cu mai puține piedici întâmpinate pe
parcurs.
1.2 Stadiul actual
Se cunosc probleme legate de aplicațiile informatice dezvoltate de stat și puse în
slujba cetățeanului , în special în arii care îi afectează în mod direct sănătatea. Un asemenea
exemplu este Sistemul Informatic pentru Cardul Electronic de Asigurări de Sănătate care
conține atât nivel de baze date cât și nivel de procesare ce folosește o aplicație web pentru
utilizatorii interni. Î n mai multe cazuri a rămas nefuncțional și a fost oprit pentru verificări
5 tehnice chiar pe durata a mai multe zile1. Un alt exemplu ar fi și aplicația dezvoltată de
Departamentul pentru Situații de Urgență care după părerea utilizatorilor are defecte în
distribuirea notificărilor dar care nici nu oferă aj utor real entităților care se ocupă de
gestionarea situațiilor de urgența la locul cu pricina.
1.3 Justificarea alegerii temei
În primul rând, intenția din spatele creării proiectului este acela de a ajuta atât
oamenii de rând cât și instituțiile dire ct responsabile de sănătatea acestuia. Prin intermediul
platformei realizate cetățenii se pot informa sau pot oferi chiar ajutor cu privire la incidente
care le pot afecta bunăstarea iar instituțiile medicale se pot aproviziona cu produse sau
echipamente m edicale în caz de nevoie.
Piața aplicațiilor web este una vastă atât din punct de vedere al accesibilități
deoarece un utilizator are nevoie doar de un dispozitiv și conexiune la internet pentru a
avea acces cât și din punct de vedere al cifrelor de a faceri ale companiilor de top din
domeniu. Costul unui proiect poate sa fie de ordinul a zecilor de mii de $ iar numărul
angajaților poate sa depășească câteva sute. Un gigant precum Facebook care deține cea
mai mare rețea de socializare de pe glob are o c otă de piață de 164 de miliarde de $ în
prezent , peste 2 miliarde de utilizatori și peste 30.000 de angajați.
Este clar că răspândirea aplicațiilor web se va accentua în viitor odată cu
dezvoltarea tehnologica și economica iar numărul utilizatorilor va creste accelerat. Toate
acestea se datorează avantajelor și beneficiilor pe care aplicațiile web le oferă. Acestea ne
simplifica viața oferindu -ne funcționalități precum accesare de informații și știri, gestiunea
unei afaceri, chiar și divertisment. În mod general aplicațiile sunt create pentru a furniza un
serviciu .
1 (https://www.hotnews.ro )
6 Aplicațiile create de stat joaca și ele un rol foarte important în informarea și
oferirea de servicii cetățeniilor însă ca în orice alt domeniu au nevoie de îmbunătățiri
pentru a maximiza ș ansele de a fi atinse obiectivele impuse.
1.4 Descrierea succintă a conținu tului fiecărui capitol
o Secțiunea 2 oferă detalii legate de domeniul lucrării alese atât din punct de
vedere al realizării acestuia cât și din punct de vedere al folosinței acestuia
o Secțiunea 3 expune aspecte ale problemei prezente în aplicațiile dezvoltate de
stat și descrierea aplicației propuse pentru oferirea unei soluții.
o Secțiunea 4 conține descrierea tehnica a aplicației prin enumerarea tehnologiilor
de dezvoltare web folosite cât și modul în care au ajutat la dezvoltarea aplicației și
cum funcționează
o Secțiunea 5 ne va dezvălui performanțele și rezultatele obținute în urma folosirii
funcționalităților implementate în aplicație
o În Secțiunea 6 sunt trase concluzii privind funcționalitatea și eficiența proiectului
precum și moduri în care poate fi îmbunătățit și actualizat pentru a servi mai bine
obiectivelor pentru care a fost implementat.
7 2. Prezentarea domeniului
Din punct de vedere al construcției aplicației domeniul este acela al dezvoltării
web, mai precis de dezvoltare de aplicații web. Cum am specificat și la Secțiunea 1.3 piața
este foarte dezvoltata și va evolua rapid în viitor. Este estimat că până în 2020 peste 50 de
miliarde dispozitive vor fi conectate la internet ceea ce include o f olosire și mai accentuată
a aplicațiilor web.
În imaginile de mai jos se poate observa evoluția internetului :
Figură 2.1 Legea lui Nielsen2
Figură 2.2 Prognoza trafic internet 2017 -20223
2 ( https://www.nngroup.com/articles/law -of-bandwidth/ )
3 ( https://www.cisco.com )
8
În Figura 1 este prezentată o diagrama care descrie legea lui Nielsen care afirmă că
lățimea de bandă a unui utilizator crește cu 50% în fiecare an. Figura 2 prezint ă un graf cu
prognoza traficului de internet dată de Cisco VNI Traffic Forecast. Ei estimeaz ă că în
2022 traficul lunar va fi de 396 de Exabytes.
Domeniul dezvoltării aplicațiilor web este caracterizat de crearea de programe care
se afla pe servere la distanță și nu trebuie descărcate pentru a fi utilizate. Pentru
dezvoltarea lor sunt folosite framework -uri ce le -am definit la Secțiunea 1.1 .
Din punct de vedere al folosinței aplicației acesta va putea fi întreb uințat în
domeniul vânzări de produse și echipamente medicale. Piața de echipamente medicale este
una mare în România atingând o cifră de aproape 300 de milioane de lei [ 2].
Figură 1.2 Poză articol [12]
9 3. Descrierea problemei abordate și a metodei de
rezolvare propuse
3.1 Descrierea problem ei
În contextul în care metodologiile de achiziționare a medicamentelor și decontare a
prețu rilor acestora sunt schimbătoare, se pot înfățișa probleme la nivelul unităților
medicale din cauza managementului sau interpretării eronate a legislației. Exista situații în
care furnizorii de medicamente nu respecta prevederile legale și resping furniza rea cu
medicamente pentru spitale. În aceste situații nedorite unitățile sanitare trebuie sa recurgă
la achiziționare de produse în regim de urgența, proces anevoios având în vedere
birocrația4.
Probleme existente:
o Lipsa unei aplicații care să trimită fără greșeala notificări în timp real
despre evenimente ce pot pune în pericol viața sau sănătatea cetățenilor.
o Lipsa unei aplicații care să fie un ajutor tangibil pentru autoritățile care se
ocupa de remedierea locurilor afectate de dezastre n aturale.
o Lipsa unei aplicații care sa rezume într -un mod eficient toate datele de
care un cetățean sau o firmă are nevoie dup ă un dezastru și încărcare de
informa ții din partea utilizatorului
10 3.2 Descrierea rezolvării propuse
3.2.1 Întrebuințare
Proiectul este menit să fie folosit de o organizație non profit, finanțată sau
gestionată de stat dar ar putea funcționa și ca o afacere cu management adecvat . Aplicația
are 2 funcționalități principale:
• Administratorul aplicației să funcționeze ca u n om de mijloc între furnizori și
instituții medicale . Cum a precizat și în Secțiunea 3.1 când spitalele nu reușesc sa
se mai aprovizioneze de la furnizor pot folosi aceasta platformă să își întregească
rezerva de medicame nte sau echipamente medicale. Administratorul are grijă să
aibă în propriul stoc destule resurse pentru a aproviziona centrele medicale în caz
de urgențe. De asemenea furnizorii pot folosi aceasta platformă spre ași pune la
vânzare propriile produse.
• Aplicația poate fi folosită de orice om de rând pentru a afla informații vitale
despre cum să se comporte și cum să gestioneze situații de urgență precum și locații
de centre medicale care se află în vecinătatea lui. Un utilizator poate să propună la
rândul lui informații care ar putea fi de ajutor oricui în caz de dezastre iar acestea
urmează sa fie confirmate de către administrator. De asemenea prin intermediul
aplicației utilizatorii se pot oferi voluntari, în caz de urgențe aceștia pot fi chemați
să ajute autoritățile dacă situația o permite. Informarea voluntarilor se face de către
administratorul aplicației. Acesta are capacitatea de a trimite mail -uri voluntarilor
direct din interfața aplicației.
La înregistrarea în aplicație utilizatorul este pus să aleagă între 4 opțiuni: Furnizor,
Instituție , Voluntar, Utilizator. Singura diferență între Voluntar și Utilizator este acela
că din buna -voință voluntarul poate să ajute autoritățile în caz de nevoie. Alegerea
opțiunii se face în funcție de ce f uncționalitate vrea să se folosească utilizatorul care se
11 autentifică . În funcție de opțiunea aleasă vor apărea câmpuri suplimentare
corespunzătoare informațiilor ce trebuie completate. De asemenea persoana care se
înregistrează este atenționată cu privire la restricțiile impuse pentru adresa de E -mail
sau parolă.
Figură 3.1 Pagină înregistrare
Furnizorul este entitatea care își înaintează produsele spre vânzare iar Instituție este
entitatea care face cerere spre administrator cu produsele de care ar e nevoie și motivul
specific cererii lor.
Exista și un al 5 -lea tip de utilizator, care este Administratorul. Acesta este un cont
inaccesibil celorlalți utilizatori și este privilegiat având acces atât la informații la care
ceilalți utilizatori nu au c ât și la ștergerea sau modificarea lor. Administratorul își
completează propriul stoc cu medicamente sau echipamente medicale folosind -se de
finanțarea statului. Acesta e responsabil de buna funcționare a aplicației.
Atât contul de administrator cât și celelalte conturi dispun de o bară de navigație pe
interfață de unde pot alege mai multe opțiuni. Contul de administrator dispune de un
tabel în care apar toate instituțiile înregistrate precum în Figura 3.2 . Acesta are
12
opțiunea de a șterge o înregistrare din baza de date . De asemenea tabelul are opțiuni de
filtrare, sortare, paginare, sau schimbarea afișării numărului de înregistrări pe o pagină.
Administratorul dispune și de un tabel în care sunt prezenți furnizorii. Acesta poate
să aleagă ce produse s ă achiziționeze de la furnizorul respectiv pentru stocul propriu.
De asemenea administratorul poate să accepte cererile primite de la diferite instituții
pentru produse sau echipamente medicale și poate valida date propuse utilizatori.
Conturile de v oluntar și utilizator dispun de asemenea de tabelul din Figura 3.3, doar că
nu au posibilitatea să șteargă înregistrări, acest privilegiu îi revine administratorului. Pentru
fiecare înregistrare aceștia au la dispoziție butonul hartă, care deschide o altă pagină web
cu locația instituției folosind serviciul Google Maps. Serviciul Google Maps poate fi
folosit și independent direct din interfața aplicației ușurănd utilizatorilor căutarea de locații.
Furnizorii au posibilitatea de a își completa stocul sau de a adăuga produse noi prin
intermediul unui formular.
Figură 3.3 Tabel înregistrare instituții
13 3.2.2 Arhitectura
O multitudine de factori influențează dezvoltarea unei arhitecturi software precum
cerințe funcționale impuse de clienți, de piață, de management sau de evoluție sociala. Se
iau în considerare și factori precum performanță, refolosire a datelor, securitate și
utilizabilitate.
Arhitectura unei aplicații web definește totalitatea interacțiunilor dintre sub –
aplicații, interfață grafică, sisteme middleware, bazele de date, server și browser ca sa facă
sigură funcționarea corecta a aplicației web. Prin termenul de middleware înțelegem un
software care face legătura între solicitările bazate pe rețea ale clientului și datele aflate pe
nivelul fizic.
Figură 3.45
În general, câ nd un utilizator navighează la o adresa URL , browser -ul pornește
căutarea și găsește computerul pe care rezidă pagina respectivă și face solicitarea. Serverul
răspun de trimițând date prin rețea înapoi la browser care afișează pentru utilizator pagina
cerută.
O aplicație web conține 2 tipuri de programe care pentru funcționarea ideala a
aplicației lucrează separat dar simultan în același timp. Pe de o parte avem programele din
browser care funcționează ca date de intrare pentru utilizator iar pe de altă parte avem
programele din server care fac cereri de protocoale precum HTTPS. HTTPS sau Hypertext
Transfer Protocol Secure este o extensie a Hypertext Transfer Protocol și este folosit
pentru comunicare securizată peste Internet. Chiar daca este o practica sănătoasă aplicația
propusa nu prezinta protocolul HTTPS, folosește HTTP.
5 DezvoltareaAplicatiilorWeb -InginerieWeb – Dr. Sabin Buraga
14
Figură 3.5 HTTP vs HTTPS6
Componentele str ucturale a unei aplicații web se refera de fapt la funcționalitățile
pe care acesta i le oferă utilizatorului precum interacțiune s au manipulare a unei baze da
date. Aplicația web propusă este definită pe o arhitectură pe 3 nivele :
1. Browser -ul web sau clientul
2. Serverul de aplicați i
3. Baza de date
Figurile 3.6 și 3.7 explicitează mai bine aceasta noțiune :
Figură 3.6 Arhitectură pe 3 nivele7
6 ( https://www.webhostingsecretrevealed.net/blog/web -hosting-guides/the -a-z-guide -to-ssl/ )
7 (https://www.quora.com/What -does-a-web-application -architecture -include )
15
Figură 3.7 Componente aplicație web
Tehnologi a principal ă pentru dezvoltarea aplicației este Laravel, un framework de
PHP, detalii legate de aceasta tehnologie sunt acoperit e în Secțiunea 4 .2. Aplicația este
stocată pe un server achiziționat de pe DigitalOcean.
1.Browser /Client – Aplicația merge deschisă indiferent de browser -ul web
folosit. Interfața vizuala a aplicației este intuitivă și ușor de folosit de utilizator.
Pentru implementarea interfeței a fost folosit Vue.js care este un framework de
JavaScript, detalii legate de aceasta tehnologie sunt acoperite în Secțiunea 4 .2.
2.Serverul de aplicații – Este un software care oferă 2 funcționalită ți. în
primul rând poate crea aplicația web și în al doilea rând poate fi mediu pentru
rularea lor. Ca server de aplicații a fost folosit Nginx. Detalii despre Nginx sunt
acoperite în Secțiunea 4.2 .
3.Baza de date folosită este MySQL, un sistem de gestiune a bazelor de
date relaționale, mediul unde datele sunt stocate, actualizate sau șterse. Detaliile
sunt acoperite în Secțiunea 4.2 .
16
Configurarea bazei de date se face din fișierul config/database.php unde este
definită conexiunea la baza de date și unde este specificată conexiunea implicită.
Laravel face interacțiunea cu baza de date ușoară prin intermediul Eloquent ORM.
ORM sau Object -Relational Mapping este o metodă în programare prin care utiliz atorii
pot accesa și manipula obiecte fără să nevoiți să știe de unde vin acestea. Fiecare tabelă din
baza de date are în corespon dență un model , termen ce a fost definit mai jos. Modelele
sunt folosite pentru a interacționa cu tabelele permițând facerea de interogări . Crearea unei
instanțe de model se face prin intermediul comenzii $user = new User unde $user este
variabila în care este creată instanța iar User este modelul care reprezintă tabela
utilizatorilor. Popularea câmpur ilor tabelului se face ca în exemplul următor: $user ->name
= ‘nume_dorit’ .
Eloquent folosește o conve nție de nume pentru a face legătura între model și tabel
fără ca acest lucru sa fie specificat explicit. Relațiile dintre modele care reprezintă de fapt
tabelele sunt definite ca metode în clasa model. Indiferent de tipul de relație dintre modele,
tabelele respective au ambele cheie străină de la celălalt tabel. Folosind din nou o
convenție de nume Eloquent va face legătura între modele. De exemplu tabelu l User va
avea atât cheie primară „id” cât și cheia străină a tabelului Furnizor „id_furnizor”. La
rândul lui tabelul Furnizor a cărui model se afla în relație de 1 la 1 cu User deține cheia
primară „id” și cheia străină „id_user”. Toate aceste detalii s e găsesc în documentația
pagini oficiale Laravel.[ 8]
Crearea tabelelor și coloanelor se face prin intermediul migrațiilor. Migrațiile sunt
fișiere care conțin o clasă ce au definite metodele up() și down(). Metoda up() est e rulată
atunci când migrația este executată pentru a aplica schimbările în baza de date. Metoda
down() este rulată pentru a inversa schimbările .
17 Specific, deoarece limbajul principal al aplicației este PHP modelul de arhitectură
folosit este Model -View -Controller (MVC) . Din prisma complexității reduse limbajul PHP
este printre cele mai populare în comunitatea dezvoltatorilor de aplicații web . Arhitectura
această este favorabilă din prisma framework -urilor dedicate, securității robuste,
dezvoltării rapide și existența unei comunități extinse de dezvoltatori.
Avantajele și dezavantajele folosirii MVC sunt enumerate în Tabelul 1 .
Tabel 1
Avantaje Dezavantaje
Coeziune ridicată Navigabilitate complexa prin cod
Ușurința modificării Dificil de învățat rapid
View -uri multiple pentru un model Inadecvat pentru aplicații mici
Dezvoltare paralelă
În Figura 3.8 este reprezentată grafic arhitectura .
Arhitectura MVC:
• Controller – este responsabil cu luarea în primire a cererilor clientului,
precum cereri de tipul POST sau GET . Cererile sunt făcute prin intermediul
unui rute. Ruta este secțiune de cod care asociază un verb HTTP
(POST/GET) o cale URL și o funcție care este apelată pentru interpreta
expresia. În aplicație toate rutele sunt definite în fișierul web.php .
Controller -ele sunt fișiere separate care dețin funcția ce interpretează calea.
După primirea cereri acesta apelează un model în concordanță cu cererea
care apoi va selecta view -ul corespunzător. Acesta administrează resursele
necesare împlinirii cererilor
• Mode l – este responsabil pentru gestionarea resurselor software. în cazul
aplicației propuse Furnizori, Instituție , Voluntari sunt transformați în
18 concepte și sunt manipulate de aplicație desemnându -le date și reguli.
Generic sunt numite modele. Acesta pune la dispoziție controller -ului o
modalitate de reprezentare a datelor și e răspunzător pentru validarea datelor
ce urmează sa fie stocate. în interiorul modelelor sunt definite relațiile pe
care acestea le au cu alte modele. De exemplu în aplicația propusa între
modelul Furnizor și Produs este o relație unul la mulți deoarece un furnizor
poate deține mai multe produse. Între modelul User și modelele Furnizor,
Instituție și Voluntar există o relație de 1 la 1. în momentul înregistrării pe
platformă se creea ză atât o înregistrare user cât și una furnizor, instituție sau
voluntar în funcție de ce a ales utilizatorul la început. Doar în cazul creări
unui utilizator obișnuit aplicația va crea doar o singura înregistrare user.
Diagrama cu modelele înfățișate gr afic este prezentă în Anexe .
• View – oferă o multitudine de metode de reprezentare a datelor primite
de la model prin intermediul controller -ului. De aspect și funcționalitatea
paginii care este vizualizată de utilizator se ocupa Vue.js și Bootstrap.
Informații legate de Bootstrap se găsesc în Secțiunea 4.2 .
Figură 3.8 Arhitectura MVC
19 Fluxul transmiterii datelor:
1) Cerere trimisă de client
2) Rutare – dirijarea cererii către controller
3) Alegerea unui model
4) Livrarea datelor dorite
5) Selectarea unui view
6) Furnizarea conținutului pentru client
4. Descrierea tehnică
4.1 Echipamente utilizate
Pentru realizarea proiectului a fost achiziționat un server care este practic un
computer contro lat de la distanță unde sunt stocate fișierele aplicației web și baza de date.
Specificațiile serverului sunt următoarele:
• Procesor cu 2 nuclee cu frecvența 2400 Mhz
• RAM capacitate 2 GB
• capacitate de stocare 25 GB SSD
Serverul rula sistemul de operare U buntu 18.04 și au fost instalate Nginx și MySQL
și PHP -FPM (FastCGI Procces Manager) care permite paginii web să suporte sarcini
mari. Domeniul a fost cumpărat de pe pagina web GoDaddy.
20 4.2 Tehnologii software
Laravel
Tehnologia principala folosi tă pentru dezvoltarea aplicației este Laravel,
framework de PHP cu sursă deschisă creat de Taylor Otwell cu scopul dezvoltării de
aplicații web care respectă arhitectura Model-View Controller și este bazat pe Symfony.
Acesta este scris în PHP, ce este un l imbaj de scripting care este în mod special folosit
pentru dezvoltarea aplicațiilor web și poate fi încorporat în HTML. Paginile PHP pot
conține HTML cu secțiuni de cod încorporate care pot furniza funcționalități. Codul PHP
este executat pe server gener ând HTML care este trimis clientului. Clientul primește
rezultatul rulării scriptului dar poate știi care este codul subiacent.
După cum este prezentat în Figura 4.1, Laravel este printre cele mai populare
framework -uri de PHP.
Figură 4.1 Popularitate Laravel8
8 (https://o7services.com/blog/2018/08/27/laravel -framework -laravel -vs-codeigniter/ )
21
Tabelul 2 ne oferă câteva din avantajele și dezavantajele ale acestui framework.
Tabel 2
Avantaje Dezava ntaje
Cele mai noi funcționalități PHP Nu acceptă servicii de plata
Documentație vastă Tranziție deficitară între versiuni
Integrare cu servicii de mail Unele componente devin nenecesar de complex e
Multitudine de resurse disponibile Unele update -uri pot fi problematice
Existența Eloquent ORM Nu oferă diversitate pentru aplicații mobile
O componentă importanta al Laravel -ului este Artisan. Acesta este lini a de
comandă inclusă în Laravel fiind extrem de ajutătoare. Această linie de comanda oferă o
multitudine de funcționalități precum crearea de modele sau migrații .
O altă tehnologie oferită de Laravel este Tinker, un mediu interactiv de programare
în linia de comanda care îți permite să interacționezi cu toata aplicația Laravel incluzând
accesul la modele. Accesul la Tinker se face din linia de comandă prin comanda „php
artisan tinker”. În Figura 4.2 este prezentat Tinker.
22
Figură 4.2 Interfață Arti san & Tinker
De asemenea Laravel introduce și conceptul de Blade, o tehnologie ce permite
designul paginilor prin folosirea unui șablon. Pentru crearea de pagini cu elemente comune
se construiește un șablon care poate fi folosit de toate paginile, de ac eea este util. Șablonul
este un fișier separat care este menționat în fișierul care urmează sa folosească acel șablon.
Orice fișier care folosește șablonul Blade trebuie sa foloseasc ă extensia „.blade.php” în
nume.
Toate aceste tehnologii de care se fol osește Laravel sunt prezentate în documentația
oficială.[ 8]
Vue.js
O altă tehnologie de o importanță deosebită în acest proiect îl reprezintă
framework -ul de JavaScript Vue.js , o tehnologie relativ nouă folosită în construirea
interfețelor pentru utilizator în aplicații web. JavaScript este un program de scripting care
permite implementarea mai complexă a paginilor web prin creare de conținut dinamic,
animații grafice, control multimedia , manipularea codului HTML și CSS. Pe scurt,
23 JavaScript poate să fac ă orice legat de manipularea paginii web, interacțiunea cu
utilizatorul și cu serverul web, fiind capabil să încarce sau să descarce fișiere folosind
tehnologia AJAX.
AJAX abreviere de la Asynchronous JavaScript a nd XML este un set de tehnici de
dezvoltare web care folosește tehnologii web pe partea de client pentru a crea aplicații web
asincrone. Prin intermediul acestei tehnologii aplicațiile web pot să trimită și să primească
date de la server fără să interferez e cu afișarea sau comportamentul paginii web. în
consecință principalele funcționalități ale AJAX sunt:
• Citirea de date de pe server după ce pagina a fost încărcată
• Actualizarea unei pagini web fără a fi reîncărcată
• Trimiterea de date la server în fundal
Vue.js poate să integreze Axios ce folosește tehnologia AJAX. Axios este o librărie
JavaScript care poate să facă cereri XMLHttpRequests din browser, cereri HTTP , să
intercepteze cereri și răspunsuri, este compatibil cu tehnologia Promise și transfor mă
automat pentru date de tip JSON.
o XMLHttpRequest este o tehnologie ce folosește de anumite funcții pentru a
face transfer de date între browser și server
o Promise este un obiect care reprezintă îndeplinirea sau eșecul unei operațiuni
asincrone
o JSON s au JavaScript Object Notation este un standard de format de fișier
care folosește text ușor de citit de oameni pentru transmiterea datelor de la
server la pagina web
Vue.js este capabil sa folosească în tandem o multitudine de tehnologii iar printre
cele mai importante avantaje pe care le oferă sunt directivele încorporate de framework.
24 Directivele sunt simboluri speciale care comunică librăriei ce să facă cu un element DOM.
În Vue.js directivele pot apărea doar sub forma unui atribut HTML prefixat ceea c e le face
ușor de folosit.
Una dintre cele mai importante caracteristici ale lui Vue.js sunt componentele.
Acestea te ajuta să extinzi elemente HTML de bază pentru a crea elemente personalizate ce
pot fi reutilizate în HTML. Deoarece în limbajul HTML ti pul elementelor este limitat, cu
acest framework putem crea elemente speciale căruia compilatorul lui Vue.js le atribuie
comportamentul dorit de noi pentru a crea aplicația dorită. În aplicația propusă fiecare
componentă este definită în propriul ei fișie r cu extensia „.vue” în documentul
„components” precum în Figura 4.3. Între etichetele „template” sunt introduse elemente
cunoscute HTML, directive pentru a crea scheletul elementului nou creat, iar între
etichetele „script” sunt introduse date și metode c are să dea comportament suplimentar
componentei nou create. Aceste detalii sunt disponibile în documentația oficială [ 9].
Figură 4.3 Exemplu componentă
Aceste componente sunt importante în fișierul principal de tip JavaScript „app.js”
astfel ca în Figura 4.4.
25
Figură 4.4 Importare componente
Flux de lucru : În fișierul HTML pe care încercăm să -l creăm includem o referință
la fișierul „script.blade.php” car e la rândul lui conține sursa pentru fișierul principal
JavaScript „app.js”. În acest fișier este declarată instanța Vue global ă și sunt importate
componentele pe baza cărora se construiește pagina web. În fișierul „webpack.mix.js” este
specificat că fișie rul app.js este compilat în fișierul „public/js”. Acest lucru este posibil
prin tehnologia Laravel Mix ce este o interfață de programare care definește construcții
Webpack. Webpack este o unealtă căruia îi oferi modulele scrise, acesta rezolvă
dependențele dintre ele și stochează toate informațiile în fișierul „public/js”. Acest fișier
crează elementele HTML în momentul în care aplicația este rulată în browser. Modulele
sunt fișiere precum app.js sau cele pentru componente, acestea pot importa sau exporta
elemente către alte module.
În Figura 4.5 putem să observăm popularitatea în creștere a acestui framework.
Figură 4.5 Popularitate Vue.js
26 MySQL
Folosind limbajul PHP, putem să ne conectăm și să manipulăm datele dintr -o bază
de date. MySQL este cel mai popular sistem de baze de date folosit cu PHP după cum este
prezentat în Figura 4.6.
Figură 4.6 Popularitate MySQL9
MySQL este un sistem de baze date folosit pe web care rulează pe un server.
Avantaje:
• Este ideal atât pentru aplicații mici cât și pentru aplicații medii
• Este rapid și ușor de folosit
• Compilează pe o multitudine de platforme
• Este gratuit de descărcat și folosit
• Are performanțe bune
Dezavantaje:
• Nu este construit să fie scalabil
9 ( https://www.eversql.com )
27 • Nu este construit să folosească date de dimensiuni mari
• Nu este pe deplin conform cu standardul SQL -92
• Probleme de migrare de la MySQL la alte baze de date
Pentru vizualizarea informațiilor din baza de date a fost folosit phpMyAdmin .
Acesta este un software scris în PHP folosit pentru administrarea baz ei de date MySQL
prin intermediul Web -ului. Prin intermediul interfeței pentru utilizator se pot efectua
operații precum gestiunea bazei de date, a tabelelor, a coloanelor, a relațiilor dintre ele, a
permisiunilor. Ai abilitatea de a executa orice instrucț iune SQL. phpMyAdmin are toate
funcționalitățile necesare pentru dezvoltarea unei aplicații bazate pe MySQL. Acesta poate
fi folosit pe Windows sau aproape orice alt sistem de operare. Poate sa importe sau să
exporte baze de date create pentru MySQL și poa te să lucreze cu alte formate de date cum
ar fi: SQL, XML, Microsoft Word 2000, LaTeX, PDF, PHP Array etc.
Funcționalități principale:
• Creare și ștergere de useri
• Gestionare permisiunilor
• Creare, modificare, ștergere de tabele, coloane sau instanțe
• Căutare de obiecte sau tabele în întreaga bază de date
• Import și export de date în diferite formate
• Monitorizare de procese
• Urmărirea performanțelor la rularea de interogări
• Executare de interogări personalizate
• Crearea de copie de siguranță a bazei de date î n mod manual
• Posibilitatea creări diagramei bazei de date
• Administrare multi -server
28
Dezavantaje folosirii phpMyAdmin:
• Nu poate să exporte datele bazei de date în mod automat
• Funcționează doar pe browser
• Copiile de siguranță pot fi salvate doar pe siste mul local
• Fișierele exportate cu phpMyAdmin sunt salvate ca simple fișiere text
• Stocarea fișierelor exportate ocupă mult spațiu pe disc și nu este sigură
Atât MySQL cât și phpMyAdmin au număr relativ mic de vulnerabilități, cum e
prezentat și în Figura 4.7.
Figură 4.7 Vulnerabilități software10
Ubuntu
Adresa aplicației dezvoltate se află pe un server care rulează Ubuntu 18.04 ca
sistem de operare. Ubuntu este o distribuție de Linux cu sursă deschisă bazat pe Debian.
10 (https://realbasics.com/blog/page/7/?offset )
29 Debian este un sistem de opera re similar Unix și este constituit în întregime din software
gratuit. Numele de Debian vine de la o organizație de voluntari dedicată dezvoltării de
software gratuit și promovării idealurilor comunității Free Software.
Proiectul Debian a început în 1993 , când Ian Murdock a emis o invitație
dezvoltatorilor de software să contribuie la o distribuție coerentă a software -ului pe baza
kernel -ului de Linux relativ nou. Ubuntu și Debian sunt sisteme distincte dar paralele și
conectate între ele. Proiectul Ubunt u caută să completeze proiectul Debian în următoarele
arii:
1. Selectarea de pachete – Ubuntu nu oferă actualizări de securitate pentru
orice pachet disponibil în domeniu dar pentru cele pentru care oferă, pune
la dispoziție un sistem solid și oferă sup ort pentru acel set de pachete.
Majoritatea pachetelor Ubuntu există și în Debian
2. Versiuni noi – Ubuntu eliberează o versiune nouă odată la 6 luni și oferă
suport pentru aceste versiuni pentru 18 luni. Proiectul Ubuntu alege moduri
de a diverge de Deb ian în așa fel încât diferența dintre cele 2 să fie minimă
3. Comunitatea de dezvoltare – Mulți dezvoltatori Ubuntu sunt recunoscuți
ca și membri în comunitatea Debian. Deoarece proiectele sunt legate,
dezvoltatorii Ubuntu remediază de multe ori erori car e există și în Debian.
Aceștia trimit soluția dezvoltatorilor Debian pentru a asigura o colaborare
sănătoasă
4. Filozofia abordată – Atât Ubuntu cât și Debian abordează aceeași
filozofie. Ambele proiecte sunt angajate în construirea de sisteme de
operare libere de licență
30 Avantaje folosirii Ubuntu:
• Sistem de operare gratuit
• Securitate sporită
• Ubuntu rulează fără a fi instalat
• Favorizează dezvoltarea software
• Existența liniei de comandă
• Ubuntu poate să fie actualizat fără să fie repornit
• Ubuntu nu ne cesită resurse mari
După cum arată și Figura 4.8, Ubuntu este printre cele mai folosite distribuții de
Linux.
Figură 4.8 Popularitate Ubuntu11
11 ( https://mybroadband.co.za )
31 Setarea inițială a serverului cu Ubuntu 18.04 [7]
1. Autentificarea ca root – Inițial autentificare a ca root se poate face
doar de pe un terminal disponibil pe contul paginii web de unde s -a
achiziționat serverul , respectiv DigitalOcean. Pentru autentificarea pe
server de pe mediu local este nevoie de adresa IP publică a serverului
care face legătura c u domeniul . De asemenea este nevoie să fie încărcată
cheia locală în fișierul authorize -keys al utilizatorului root pentru că a
fost instalată o cheie SSH pentru autentificare. Autentificarea se face
prin intermediul comenzii urm ătoare: ssh root@adresă_ ip
Root este utilizatorul administrativ în mediul Linux și are privilegii largi
2. Configurarea sub -domeniului – Aceasta se face din directorul nginx
în fișierul sites -available unde este precizată adresa subdomeniului
cret.miutechs.com .
3. Crearea de utilizator i noi – Utilizator ii noi creați sunt „cret” și
„cretfiles” prin comanda : adduser
Primul utilizator este cel care se conectează prin cheia ssh iar al doilea
este utilizatorul ce încarcă date prin protocolul sftp.
4. Acordarea de privilegi i administrative – Acum că un nou utilizator
este creat, acesta are doar privilegii normale. Pentru a evita delogarea
repetată putem atribui contului nou privilegii de root. Acest lucru se
realizează prin intermediul comenzii: usermod -aG sudo cret
5. Configurarea Firewall – Serverele Ubuntu pot să folosească firewall
pentru a asigura conexiuni doar pentru anumite servicii.
32 6. Permiterea accesului extern pentru utilizatorul obișnuit – Se
încarcă cheia locală în fișierul authorize -keys a utilizatorulu i cret.
Autentificarea se face prin intermediul comenzii: ssh root@adresă_ip
După setarea serverului va fi instal at pachetul LEMP. Acest pachet este un grup de
aplicații software folosit pentru a servi aplicațiilor web. Acronimul vine de la Linux care
folosește ca server web Nginx care se pronunță Engine -X. Datele sunt stocate într -o bază
de date MySQL iar procesarea dinamică este f ăcută de PHP.
Nginx
Nginx este un software cu sursă deschisă pentru servicii web, stream media,
caching etc. Acesta a în ceput ca fiind un server web de stabilitate și performanță mare.
Acesta fost scris de Igor Sysoev ca să rezolve problema optimizării numărului mare de
clienți care accesează în același timp un server web. Nginx a revoluționat cum serverele
operează și a de venit cel mai rapid server web disponibil. În prezent Nginx poate să
suporte sute de mii de conexiuni concurente și este folosit în mai mult de 50% din site -urile
de bussines de pe web.
Scopul Nginx a fost să creeze cel mai rapid server web. Nginx est e mai performant
decât Apache sau alte servere web potrivit benchmark -urilor de măsurare a performanțelor
serverelor web. De la versiunea inițială programului pe când paginile web foloseau doar
conținut HTML simplu, acum Nginx suportă toate componentele a web-ului modern de la
WebSocket, HTTP/2 până la stream de conținut video în diferite formate (HDS, HLS,
RTMP).
Principalul rival al lui Nginx este Apache. În figurile de mai jos este prezentat cum
Nginx este serverul web mai performant. Valorile de pe axa y se referă la numărul de
cereri și conexiuni concurente. Exemplu: 500/10 , 500 reprezintă numărul de cereri făcute
pentru URL din care 10 sunt făcute simultan.
33
Figură 4.8 Timp de conectare12
Timpul de conectare reprezintă numărul mediu de mili secunde până când serverul
trimite înapoi date spre client. O valoare mai mică este mai bună deoarece browser -ul
clientului va încărca pagina mai rapid. După cum se observă în Figura 17 Nginx are timpi
de conectare mai rapizi până la valoarea de 1000/200 p e axa y.
În Figura 4.10 este definit un grafic cu valori pe axa x ce reprezintă numărul de
cereri într-o secundă la diferite valori pe axa y. O valoare mai ridicată este mai bună
deoarece asta înseamnă că mai mulți clienți pot fi serviți mai rapid.
12 ( https://theorganicagency.com )
34
Figură 4.10 Cereri pe secundă
Figură 4.11 Timpul pe cerer e
Timpul pe cerere reprezintă numărul mediu de milisecunde pentru fiecare cerere să
se conecteze, să proceseze, să fie trimisă și primită de client. O valoare mai mică este mai
bună deoarece clientul are de așteptat mai puțin timp ca cererile lor să fie completate.
35
Figură 4.12 Rata de transfer
Rata de transfer este viteza la care datele de la server au fost trimise la client. O
valoare mai mare reprezintă o performanță mai bună. După c um observăm în Figura 4.12
Nginx este mai performant în majoritatea cazurilor la o diferență mică. În concluzie Nginx
este alegerea mai buna din punct de vedere al performanțelor.
Nginx precizează, pentru aplicația propusă ce se întâmplă la anumite cere ri HTTP.
Pe ruta root Nginx încarcă fișierul index.php din documentul public al aplicației ceea ce
rezultă în încărcarea întregii aplicații. Celelalte rute sunt definite de Laravel. Practic
serverul web indică ce se întâmplă pe adresa domeniului.
După in stalarea pachetului LEMP și configurarea Host Name -ului se inițiază
aplicația Laravel cu Nginx pe Ubuntu 18.04 [13]. Etape:
1. Instalarea dependențelor dintre pachete. Pentru a rula aplicații Laravel, este
nevoie de extensii PHP pentru suport multi -byte string și XML și un manager
de dependență care se numește Composer.
36 2. La această se configurează baza de date MySQL. Deoarece a fost folosit
pachetul LEMP, MySQL va stoca informațiile pentru aplicație. La inițiere,
MySQL creează doar contul root ce are privilegii administrative. Acest fapt
rezultă într -o securitate scăzută, deoarece contul de root ar avea privilegii
nelimitate pe serverul bazei de date. În consecință, s -a creat un utilizator dedicat
cât și o baza de date pe care acest utilizator are posibilitatea să o acceseze.
3. Configurarea aplicației propriu -zise se face la această etapă. Mai întâi se
creează un director în cadrul rețelei web Nginx care va înmagazina aplicația.
După se va schimba proprietarul directorului nou creat, acesta va fi ut ilizatorul
nou creat la pasul 2, în consecință acesta poate lucra cu fișierele din interior fără
să folosească comanda „sudo”. În ultimul rând se va copia în directorul creat
proiectul folosindu -se protocolul sftp .
4. La ultimul pas se va configura medi ul aplicației. La această etapă sunt
modificare anumite setări privind securitatea, permitem aplicației să se
conecteze la baza de date și pregătim baza de date pentru folosire.
Sublime
Ca editor de text pentru dezvoltarea aplicației a fost folosit S ublime Text 3.
Sublime este un editor de text sursă pentru multiple platforme scris în C++ și Python.
Suportă o multitudine de limbaje de programare și limbaje de marcaj și se pot adăuga
funcții de către utilizator prin intermediul de plug -in-uri pentru a face procesul de codare
mai ușor. În aplicația propusă a fost instalat un plug -in de evidențierea sintaxei pentru
funcțiile specifice Vue.js. Aceste plug -in-uri sunt de obicei construite și întreținute de
comunitate și sunt libere de licență . Acesta prezin tă și opțiune de sincronizare a datelor de
pe sistemul local și cel de pe server folosind protocolul sftp . Sublime Text poate fi folosit
pe sisteme de operare precum Windows, macOS, Linux.
37 Caracterisitci:
• „Goto Anything” navigare rapidă la fișiere, sim boluri sau linii
• „Command Palette” foloseșste portrivire adaptivă pentru invocații rapide din
tastatură sau comenzi arbitrare
• Editare simultană, se pot face aceleași schimbări simultan în zone diferite
• Favorabil pentru construcție de proiecte
• Personalizare extensivă prin intermediul fișierelor de setări JSON
După cum este prezentat și în Figura 4.13, Sublime Text este un editor popular
printre dezvoltatori.
Figură 4.13 Popularitate Sublime Text13
GitHub
Platforma GitHub a fost folosită pentru ges tionarea codului sursă. GitHub este un
serviciu de hostat pe web pentru controlul versiunii ce folosește tehnologia Git. Git a fost
13 (https ://blog.codeanywhere.com/ )
38 creat de Linus Trovalds, aceeași persoană care a creat Linux. Git este similar cu alte
sisteme de control al versiunii prec um Subversion, CVS sau Mercurial.
În procesul de creare de proiecte, dezvoltatorii fac mereu schimbări în codul sursă
și eliberează versiuni noi ale aplicațiilor în dezvoltare. Sistemele de control al versiunii țin
aceste revizuiri sub control, depozitâ nd modificările într -un depozit central. Astfel,
dezvoltatorii pot să colaboreze cu ușurință, descărcând ultima versiune a aplicației ,
efectuând modificări și încărcând noua versiune. Orice dezvoltator poate să vizualizeze
schimbările și să aducă schimbăr i.
Git este sistemul de control al versiunii preferat de dezvoltatori deoarece are
multiple avantaje peste alte sisteme. Stocarea fișierelor se face mai eficient și le asigură
integritatea mai bine. GitHub are peste 37 de milioane de utilizatori și pest e 100 milioane
de arhive. Figura 4.14 relevă popularitatea acestei versiuni de control.
Figură 4.14 Popularitate GitHub14
14 (https://rhodecode.com/insights/version -control -systems -2016 )
39 Laravel Homestead & Vagrant
În etapele incipiente aplicația propusă a fost dezvoltată pe un mediu local. Laravel
Homestea d este o modalitate de dezvoltare PHP pe mediu local. Acesta este un pachet
oficial Vagrant „box” care pune la dispoziție un mediu de dezvoltare fără a fi nevoie
instalarea PHP, a serverului web sau a alte software -uri pentru server pe mașina locală.
Homes tead rulează pe Windows și include Nginx, MySQL, Ubuntu 18.04, PHP 7.3, Git și
alte tehnologii necesare dezvoltării de aplicații.
Vagrant este o unealtă pentru gestionarea mediilor de mașini virtuale. Are un flux
de lucru ușor de folosit și se concent rează pe automatizare. Vagrant scade timpul
configurării mediului de dezvoltare și maximizează productivitatea și flexibilitatea .
Vagrant se folosește de tehnologii deja consacrate pe piață precum VirtualBox care a fost
folosit și pentru proiect. Mașinile virtuale sunt provizionate peste VirtualBox. „Boxes”
care au fost menționate mai sus sunt formate de pachete pentru mediul Vagrant . Acestea
pot fi folosite pentru a aduce un mediu de lucru specific pentru dezvoltator.
Oracle VM VirtualBox este un superv izor hostat cu sursă deschisă pentru
virtualizare x86, dezvoltat de Oracle Corporation. VirtualBox poate fi instalat pe Windows,
macOS, Linux și suportă crearea și gestiunea de mașini virtuale care rulează Windows,
Linux etc.
Etapele configurării și ini țierii unui proiect Laravel Homestead:
• Instalarea Homestead Vagrnat Box
• Instalare Homestead
• Configurare Homestead: 1) setarea furnizorului (VirtualBox)
2) configurarea documentelor partajate
40
• Configurarea f ișierului „hosts” pentru redirectarea paginilor Homestead în mașina
Homestead
• Lansarea Vagrant Box prin intermediul comenzii „vagrant up” în Git Bash
• Instalare composer
• Crearea unui proiect nou Laravel prin comanda „laravel new nume_ proiect”
Bootstrap
Bootstrap este un framework de CSS de sursă deschisă, o unealtă ajutătoare în crearea
și designul interfețelor orientat către dezvoltatorii de aplicații web. Acest framework
conține șabloane de proiectare bazate pe CSS și JavaScript pentru diferite compon ente de
interfață precum butoane, bare de navigare etc.
Inițial Bootstrap era denumit Twitter Blueprint și a fost creat de Mark Otto și Jacob
Thornton pentru platforma Twitter ca un framework pentru a oferi consistență
componentelor interioare. Obiectiv ul Bootstrap este simplificarea procesului de dezvoltare
a paginilor web , acesta este adăugat în proiecte pentru alegerea de opțiuni de culoare, de
dimensiune, de font și de aspectul general al proiectului. Acest framework oferă definiții
de stil pentru to ate elementele HTML.
Versiunea de Bootstrap folosită în proiect este Bootstrap 4. Această versiune a
framework -ului a fost începută în Octombrie 2014 și finalizată în Ianuarie 2018. Schimbări
care au fost aduse acestei versiuni sunt:
• Rescrierea în mare parte a codului
• Înlocuire Less cu Sass (limbaje pentru foi de stiluri)
• Renunțarea la sprijin pentru Internet Explorer 8/9 și IOS 6
41 • Opțiuni de personalizare a navigației
• Îmbunătățirea componentelor de interfață
Boostrap este al treilea cel mai vizualizat proiect pe platforma GitHub cu peste
130.000 de „stele” ceea ce reprezintă un sistem prin care utilizatorii își pot expune
aprecierea față de proiect sau o modalitate de a rămâne informați cu ceea ce se
întâmplă cu proiectul. Așa cum este prezentat în Fig ura 23 Bootstrap este printre cele
mai populare framwork -uri.
Figură 4.15 Popularitate Bootstrap15
5.Rezultate și performanțe
5.1 Rezultate
Una din obiectivele acestui proiect este manipularea cu succes a informațiilor din
baza de date prin int ermediul interfeței aplicației . Un asemenea exemplu este prezentat în
Figura 5.1 unde este inserat în tabel înregistrarea cu id egal cu 5. La înregistrarea unei
15 (https://w ww.ostraining.com/blog/coding/bootstrap -popularity/ )
42
instituții aceasta apare în tabelul corespunzător în baza de date. Tabelul este vizualizat în
phpMyAdmin, unealtă folosită pentru vizualizarea și manipularea unei baze de date
MySQL în mod direct. Detalii legate de phpMyAdmin se găsesc în Secțiunea 4.2 .
Figură 5.1 Tabel Instituții
Un alt obiectiv al acestui pro iect era realizarea unei interfețe prin intermediul căruia
utilizatorii să se folosească cu ușurință de funcționalitățile aplicației. În Figura 5.2 este
prezentată secțiunea aplicației care este proiectată pentru informarea utilizatorului.
Figură 5. 2 Pagină informare
43 5.2 Performanțe
Când vine vorba de performanțe una din obiectivele unei aplicații web este
încărcarea cât mai rapidă a paginilor sale. În figurile de mai jos este prezentat timpul de
încărcare a paginilor pentru aplicația propusă. Timp ul de observat este Load. Load
reprezintă timpul de încărcare a tuturor elementelor HTML, JavaScript, CSS și indică
faptul că pagina e încărcată. Măsurătorile sunt făcute în browser -ul Google Chrome.
Figură 5.3 Timp încărcare pagină autentificare
Comparativ cu alte pagin i de autentificare precum cele care aparțin yahoo.com,
accounts.google.com (Gmail) sau facebook.com timpul de accesare este la fel sau mai bun.
Dacă paginile pentru Gmail și Facebook se încarcă în peste o secundă pagina pentru Yahoo
se încarcă în 600 milis ecunde.
Figură 5.4 Timp încărcare pagină înregistrare
Pentru timpul de încărcare pe pagina de înregistrare timpul este mai lung, 1.58
secunde dar tot rămâne comparativ cu alte pagini unde timpii de încărcare sunt tot peste 1.5
secunde.
44
Figură 5.5 Timp încărcare pagină principala pentru administrator
Figură 5.6 Timp încărcare pagină principală furnizor
Figură 5.7 Timp încărcare pagină principală instituție
Figură 5.8 Timp încărcare pagină principală utilizator
După cum se poa te observa din figuri timpii de încărcare pentru paginile care
încarcă informații sunt în general în jurul valorii de 2 secun de. Din aceste figuri rezultă că
performanța e bună comparativ cu standardul impus pe piață . În funcție de câte elemente
pagina respectivă are d e încărcat timpul de încărcare poate dura și peste 10 secunde.
Timpii de Load pot fi observați pe orice pagină web folosind opțiunea Inspect din browser –
ul Google Chrome.
45
6.Concluzii
Finalitate a acestui proiect reprezintă implementarea cu succes a unei aplicații web
ce este capabilă să folosească date și să facă schimbări persistente într -o baza de date
MySQL cu scopul de a oferi funcționalitățile dorite utilizatorilor săi.
Prin intermediul aplicației utilizatorii pot accesa dar pot oferi și inf ormații vitale în
caz de urgențe. Conturile destinate furnizorilor sunt capabile să încarce pe platformă
produse sau echipamente medicale care mai târziu pot fi achiziționate de către
administrator pentru a -și întregi stocul propriu. Instituțiile medicale care se înregistrează pe
aplicație pot trimite cereri administratorului pentru anumite produse de care au nevoie
urgent, iar administratorul urmează să confirme aceste cereri.
Contul de administrator are cele mai înalte privilegii. Acesta este intermed iarul
între furnizori și instituții și poate să facă schimbări majore în baza de date precum
eliminarea de utilizatori. De asemenea administratorul este capabil să trimită email -uri unui
grup de voluntari direct din interfața aplicației.
6.1 Dezvoltărui ulterioare
În condițiile societății actuale, cum avansul tehnologic este din ce în ce mai
accelerat, aplicațiile web vor putea fi mereu îmbunătățite atât ca funcționalitate, aspect cât
și ca performanță.
46 Pentru aplicația propusă există o multitudine de aspecte care pot fi implementate
pentru a putea fi cât mai mult de ajutor utilizatorului .
Dezvoltări ulterioare posibile:
1. Design responsive – această tehnică descrie felul cum designul unei
pagini web este ajustată în funcție de dimensiunea ec ranelor
utilizatorului. Utilizatorii, mulțumită acestei tehnici pot naviga pe o
pagină web indiferent de dispozitivul pe care îl folosesc. Această
dezvoltare are fi ajutătoare deoarece utilizatorii aplicației ar putea
accesa informații direct de pe telefon ul mobil.
2. Chatbot – este un program care are capabilitatea să desfășoare o
conversație cu utilizatorul. Aceste tipuri de programe sunt proiectate să
simuleze cât mai convingător o persoană umană, îmbogățind experiența
utilizatorului în folosirea aplic ației. Aplicația dezvoltată ar beneficia de
o astfel de dezvoltare deoarece utilizatorii ar putea conversa cu
inteligența artificială pentru a descoperi informații
3. Web chat – acesta este un sistem care permite utilizatorilor aplicației
să trimită mesa je în timp real între ei. Această dezvoltare ar fi benefică
deoarece utilizatorii ar putea conversa direct din interfața aplicației
oferindu -le o experiență mai completă
4. Metodă de plată – un astfel de sistem ar trebui implementat pentru
ca funcționali tatea de cumpărare a produselor medicale de către
administrator să funcționeze în practică. Un astfel de sistem care ar
putea fi integrat este PayPal. Laravel permite integrarea de metode de
plată
47 7.Bibliografie
1. Alex Chaffee (2000 -08-17) – What is a web application (or "webapp")?
2. Aprovizionarea cu medicamente de către spitale – Articol disponibil la adresa
https://www.digi24.ro/magazin/stil -de-viata/viata -sanatoasa/ministerul -sanatatii –
face-precizari -privind -aprovizionarea -cu-medicamente -de-catre -spitale -422500
3. Arhitectu ra aplicației web – Disponibil la adresa https://stackify.com/web –
application -architecture/
4. Care este diferența între Web și Internet – disponibil la adresa
https://www.w3.org/Help/#webinternet
5. Campbell, Jennifer (2017) – Web Design: Introductory
6. Cârstoiu Dorin , Baze de date, Ed Matrix ROM, 2009
7. Configurare server cu Ubuntu 18.04 – Disponibil la adresa
https://www.digitalocean.com/community/tutorials/initial -server -setup -with-
ubuntu -18-04
8. Documentație Laravel – Disponibil la adresa https:// laravel.com/docs/5.8
9. Documentație Vue.js – Disponibil la adresa https://vuejs.org/v2/guide/
10. From history of web application development – Disponibil la adresa
https://www.devsaran.com/blog/history -web-application -development
11. Fundamentele arhitecturii aplicației web – Disponibil la adresa
https://www.peerb its.com/blog/web -application -architecture.html
12. Georgiana Mihalache, Giganții pieței de echipamente medicale – Articol disponibil
la adresa https://www.zf.ro/companii/gigantii -pietei -de-echipamente -medicale -au-
ajuns -aproape -de-300-mil-lei-in-romania -16941632
13. Lansare aplicație web cu Laravel – disponibil la adresa
https://www.digitalocean.com/community/tutorials/how -to-deploy -a-laravel –
application -with-nginx -on-ubuntu -16-04?fbclid=Iw AR3o4Tngy3NG –
JZanCPPVV2MR6EuTI0StgJypc -Hvth4tNev9vbkowcY5bE
14. Margaret Rouse – Dezvoltarea aplicațiilor web
15. Morris Wall – The role of a database application
16. Stewart, William – Web Browser History
17. Tutoriale Laravel – Disponibil la adresa https://laracasts.com/series/laravel -from –
scratch
48
8.Anexe
Graf Modele
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Aplic ație web de administrare a informațiilor dintr -o bază de date în domeniul produselor medical e și gestionarea informa țiilor în caz de… [611043] (ID: 611043)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
