Specializarea: Calculatoare și sisteme informatice pentru apărare și securitate națională PLATFORM Ă WEB PENTRU MANAGEMENTUL PERSONALULUI DIN… [617427]

ROMÂNIA
MINISTERUL APĂRĂRII NAȚIONALE
ACADEMIA TEHNICĂ MILITARĂ
„FERDINAND I ”

FACULTATEA DE SISTEME ELECTRONICE ȘI INFORMATICE MILITARE
Specializarea: Calculatoare și sisteme informatice pentru apărare
și securitate națională

PLATFORM Ă WEB PENTRU
MANAGEMENTUL PERSONALULUI DIN
ACADEMIA TEHNICĂ MILITARĂ “FERDINAND I”

CONDUCĂTOR ȘTIINȚIFIC:
Lt. col. conf. dr. Mihai -Virgiliu TOGAN

ABSOLVENT: [anonimizat] ___________ file
Inventariat sub nr_______
Poziția di n indicator: ____
Termen de păstrare: _____

BUCUREȘTI
2018

NECLASIFICAT
NECLASIFICAT
1 din 51

PAGINA ALBA

NECLASIFICAT
NECLASIFICAT
2 din 51

PAGINA ALBA

NECLASIFICAT
NECLASIFICAT
3 din 51

PAGINA ALBA

NECLASIFICAT
NECLASIFICAT
4 din 51

PAGINA ALBA

NECLASIFICAT
NECLASIFICAT
5 din 51
ABSTRACT

NECLASIFICAT
NECLASIFICAT
6 din 51
REZUMAT

NECLASIFICAT
NECLASIFICAT
7 din 51
CUPRINS

1. INTRODUCERE ………………………….. ………………………….. ……………………. 11
1.1 Importanța lucrării ………………………….. ………………………….. …………….. 11
1.2 Structura lucrării ………………………….. ………………………….. ……………….. 11
2. TEHNOLOGII UTILIZATE ………………………….. ………………………….. ….. 12
2.1 HTML, CSS, JavaScript, JQuery ………………………….. ………………………. 12
2.2 Bootstrap ………………………….. ………………………….. ………………………….. . 14
2.3 Ajax, PHP și MySQL ………………………….. ………………………….. ………….. 14
3. CERIN ȚELE APLICAȚIEI ………………………….. ………………………….. …… 17
3.1 Cerințele utilizatorilor ………………………….. ………………………….. ………… 17
3.2 Cerințele hardware ………………………….. ………………………….. …………….. 18
4. ARHITECTURA APLICAȚIEI ………………………….. ………………………….. 19
4.1 Front -end ………………………….. ………………………….. ………………………….. 19
4.2 Back -end ………………………….. ………………………….. ………………………….. . 21
4.3 Baza de date ………………………….. ………………………….. ………………………. 23
5. PREZENTAREA FUNCȚIONALITĂȚILOR ………………………….. …….. 25
5.1 Pregătirea aplicației în momentul accesării ………………………….. ………. 26
5.2 Pagina de logare ………………………….. ………………………….. ………………… 26
5.3 Pagina de start ………………………….. ………………………….. …………………… 28
5.4 Gestionarea rapoartelor ………………………….. ………………………….. ……… 30
5.4.1 Generare rapoarte standard ………………………….. ………………………….. .. 30
5.4.2 Generare rapoarte personalizate ………………………….. …………………….. 31
5.4.3 Generare rapoarte personalizate cu reguli ………………………….. ……….. 31
5.4.4 Generarea și adăugarea raportelor tipizate ………………………….. ………. 32
5.5 Gestionarea datelor din tabele ………………………….. …………………………. 33
5.5.1 Adăugarea unei persoane ………………………….. ………………………….. ….. 33
5.5.2 Editarea datelor din tabel ………………………….. ………………………….. ….. 33
5.5.3 Adăugarea și ștergerea coloanelor din tabel ………………………….. …….. 34
5.6 Gestionarea șabloanelor ………………………….. ………………………….. …….. 36
5.6.1 Adăugarea unui șablon ………………………….. ………………………….. …….. 36
5.6.2 Generarea unui document pdf pe baza șablonului ………………………… 36
5.6.3 Editarea și ștergerea unui șablon ………………………….. ……………………. 37

NECLASIFICAT
NECLASIFICAT
8 din 51
5.7 Import, export și backup ………………………….. ………………………….. ……… 38
5.8 Gestionarea utilizatorilor ………………………….. ………………………….. ……. 41
5.9 Gestionarea notificărilor ………………………….. ………………………….. …….. 43
6. PLANUL DE TESTARE AL APLICAȚIEI ………………………….. ………… 45
6.1 Noțiuni teoretice ………………………….. ………………………….. ……………………. 45
6.2 Testele de acceptare (validare) ………………………….. ………………………….. .. 45
6.3 Exem ple de testare ………………………….. ………………………….. ………………… 46
7. CONCLUZII ………………………….. ………………………….. ………………………….. 49
BIBLIOGRAFIE ………………………….. ………………………….. …………………………. 51

NECLASIFICAT
NECLASIFICAT
9 din 51
Fig. 2.1 prezintă cum funcționează AJAX. ………………………….. ……………………. 15
Fig. 4.1 – Pagina de logare ………………………….. ………………………….. ……………. 19
Fig. 4.2 – Interfața și opțiunile header -ului ………………………….. ………………….. 20
Fig. 4.3 Prezentarea funcționalităților aflate în sidebar ………………………….. … 20
Fig. 4.4 Diagrama claselor ………………………….. ………………………….. ……………. 21
Fig. 4.5 Membrii și metodele clasei Template ………………………….. ………………. 22
Fig. 4 .6 Membrii și metodele clasei User ………………………….. …………………….. 23
Fig. 4.7 Diagrama tabelelor din baza de date ………………………….. ………………… 24
Fig. 5.1 Fluxul aplicației din perspectiva unui utilizator ………………………….. .. 25
Fig. 5.2 Fluxul aplicației din perspectiva unui administrator ……………………… 25
Fig. 5.3 Constructorul clasei Template ………………………….. ………………………… 26
Fig. 5.4 Logarea utilizatorului ………………………….. ………………………….. ……….. 27
Fig. 5.5 Afișarea notificărilor pe pagina principală ………………………….. ……… 28
Fig. 5.6 Afișarea tabelului de mesaje pe pagina principală ………………………… 29
Fig. 5.7 Afișarea notificărilor personalizate pe pagina principală ………………. 29
Fig. 5.8 Afișarea tabelului de activitate pe pagina principală …………………….. 30
Fig. 5.9 Afișarea raportului standard ………………………….. ………………………….. 31
Fig. 5.10 Selectarea coloanelor pentru un raport personalizat …………………… 31
Fig. 5.11 Selectarea coloanelor și setarea regulilor pentru un raport
personalizat ………………………….. ………………………….. ………………………….. ……… 32
Fig. 5.12 Interfața de gestionare a rapoartelor tipizate ………………………….. …. 32
Fig. 5.13 Formularul pentru adăugare a personalului ………………………….. …… 33
Fig. 5.14 Casuța de editare a datelor ………………………….. ………………………….. 34
Fig. 5.15 Afișarea datelor pentru editare ………………………….. …………………….. 34
Fig. 5.16 Interfața pentru adăugarea unei coloane în tabel ………………………… 35
Fig. 5.17 Notificarea de success după adăugare ………………………….. …………… 35
Fig. 5.18 Interfața de ștergere a unei coloane din tabel ………………………….. …. 35
Fig. 5.19 Interfața pentru adăugarea unui șablon ………………………….. …………. 36
Fig. 5.20 Interfața pentru generarea unui șablon ………………………….. …………. 37
Fig. 5.21 Exemplu de șablon generat ………………………….. ………………………….. . 37
Fig. 5.22 Interfața pentru gestionarea șabloanelor ………………………….. ……….. 38
Fig. 5.23 Interfața pentru editarea șabloanelor ………………………….. ……………. 38
Fig. 5.24 Funționalitatea de import Excel ………………………….. ……………………. 39
Fig. 5.25 Pop -up-ul de confirmare a importului ………………………….. …………… 39
Fig. 5.26 Funționalitatea de export ………………………….. ………………………….. … 39
Fig. 5.27 Pop -up-ul de confirmare a exportului pentru vizualizare ……………… 40
Fig. 5.28 Pop -up-ul de confirmare a exportului pentru modificare ……………… 40
Fig. 5.29 Crearea și aplicarea ultimului back -up ………………………….. …………. 41
Fig. 5.30 Aplicarea unui back -up dintr -o data anterioară ………………………….. 41
Fig. 5.31 Interfața pentru adăugarea unui utilizator ………………………….. ……… 42
Fig. 5.32 Interfața pentru schimbarea parolei ………………………….. ……………… 42
Fig. 5.33 Interfața pentru adăugarea notificărilor personalizate standard …… 43
Fig. 5.34 Interfața pentru adăugarea notificărilor data -range ……………………. 44

NECLASIFICAT
NECLASIFICAT
10 din 51

PAGINA ALBA

NECLASIFICAT
NECLASIFICAT
11 din 51

CAPITOLUL I

1. INTRODUCERE

1.1 Importanța lucrării

Scopul principal al acestui proiect constă în implementarea unei aplicații
web pentru a fi în ajutorul angajaților Ac ademiei Tehnice Militare care se ocupă
cu prelucrarea datelor personanului aceleeași instituții. Aplicația trebuie să
conțină o interfață user friendly care să permită unui utilizator să o utilizeze fără
să aibă cunoștine avansate despre baze de date sau l imbajul de programare pe baza
căruia a fost construită aplicația.
Aplicația web va folosi ca host server un calculator pe care este instalat
sistemul de operare Ubuntu Server și va fi conectat în rețeaua locală a instituției,
diponibilă doar cadrelor milit are și didactice, fără acces la internet.

1.2 Structura lucrării

Primul capitol reprezintă partea de introducere a lucrării în care este
prezentată importanța temei alese și o descriere a proiectului pe capitole.
Capitolul doi cuprinde o scurtă descriere a tehnologiilor folosite care au folos
folosite pe parcursul dezvoltării aplicației. Aceste tehnologii sunt HTML, CSS,
JavaScript, JQuery, Bootstrap, AJAX, PHP și MySQL.
Capitolul trei are drept scop prezentarea cerințelor aplicației și cerințele
hardware ne cesare funcționării aplicației. Aceste cerințe au fost dicutate cu viitorii
utilizatori ai aplicației.
Capitolul patru prezintă arhitectura aplicației împrțită în trei părți: partea de
front -end (pezentarea interfeței), partea de back -end (preznetarea clas elor
folosite) și partea de baze de date (prezentare structurii bazei de date pe care o
folosește aplicația).
Capitolul cinci prezintă funcționalitățile oferite de aplicație, modul de
utilizare și de implementare al lor.
În capitolul șase este prezentat pl anul de testare al aplicației pe cazuri și cu
scenario de utilizare.
În capitolul șa pte sunt prezentate concluziile acestei lucrări, dar și anumite
direcții viitoare de dezvoltare a acestui proiect .
Ultimul capitol include referințele bibliografice ale su rselor pentru
documentare folosite in elaborarea acestui proiect

NECLASIFICAT
NECLASIFICAT
12 din 51
CAPITOLUL II

2. TEHNOLOGII UTILIZATE

2.1 HTML, CSS, JavaScript și JQuery

Limbajul HTML sau Hypertext Markup Language este utilizat pentru a
structura și a afișa o pagină web și conținutul aceste ia. Conținutul poate fi
structurat într -un set de paragrafe, o listă cu puncte, sau folosind imagini și tabele
de date. Acesta nu este un limbaj de programare, este un limbaj de marcare care
definește structura paginii web. Este alcătuit dintr -o serie de e lemente, numite tag –
uri, pe care le închizi sau în care încadrezi diferite părți ale conținutului pentru a
afișa/ a se comporta în modul droit. [1]
Scheletul unui document HTML trebuie să conțină anumite tag -uri
esențiale, acest ea sunt: <!DOCTYPE html> pentru a informa browser -ul că
documentul încărcat este o pagină HTML și trebuie compilat cu standardele
HTML, <html></html> este tag -ul de root al unui document HTML, acesta
încadrează tot conținutul paginii, <head></head> se comp ortă precum un
container pentru a include elemente, neafișabile pe pagină, precum cuvinte cheie,
descrierea paginii care va apărea în rezultatele de căutare, includerea fișierelor
CSS pentru stilizarea conținutului, declarația setului de caractere <meta
charset="utf -8">, titlul paginii <title></title> , iar tot conținutul care se dorește
a fi afișat se încadrează în tag -ul <body></body> .
Împreună cu Cascading Style Sheets (CSS) și JavaScript, HTML stă la baza
procesului de creare a paginilor web , precum și pentru a crea interfețe pentru
telefoane mobile și aplicații web. HTML poate încorpora script -uri scrise în alte
limbaje , cum ar fi CSS și JavaScript, pentru a define aspectul și dispunerea de text
și descrie structura unui site web și semantic . În pl us, HTML are incluse indicii
pentru prezentarea sau aparența paginilor web , astfel clasificându -se mai mult ca
fiind un limbaj de creare , decât un limbaj de programare.
Limbajul CSS este limbajul folosit pentru descrierea stilului vizual (culori,
font-uri, aspect) al unui document HTML. Acesta permite adaptarea paginii pe
diferite la rezolu ții diferite . CSS este independent de HTML și poate fi folosit ca
orice limbaj de ma rkup bazat pe Extensible Markup Language (XML ). Separarea
codului CSS de HTML faciliz ează partajarea stilurilor între pagini. [2]
Avantajele folosirii CSS:
 Reduce din timpul de creeare : Un CSS poate fi folosit de mai multe ori pentru mai
multe pagini HTML. Se poate defini un singur still pentru fiecare element H TML
și refolosi pentru mai multe pagini Web.
 Performanță mai rapidă: Se poate crea un singur tag în CSS care se poate aplica
tuturor obiectelor implicate , spre deosebire de HTML. Astfel , mai puțin cod
înseamnă viteză mai bună de procesare.

NECLASIFICAT
NECLASIFICAT
13 din 51
 Ușor de mențin ut: Pentru a face o modificare la nivel global de cod, pur și simplu
se schimbă stilul din CSS , și toate elementele corespunzătoare din toate paginile
web vor fi schimbate automat.
 Compatibil cu dispozitive diferite: CSS oferă posibilitatea de optimizare a codului
pentru mai multe tipuri de dispozitive spre deosebire de HTML care necesită cod
diferit pentru fiecare tip de dispozitiv în parte. [2]

JavaScript este un limbaj de programare ori entat pe obiecte , bazat pe
conceptul pr ototipurilor. Este folosit pentru introducerea unor funcționalități în
paginile web, codul fiind rulat de către browser. Browserele rețin în memorie o
reprezentare a unei pagini web sub forma unui arbore de obiecte (Document
Object Model sau DOM) , apoi pun la dispoziție aceste obiecte script -urilor
JavaScript, pe care le pot citi și manipula.
Avantaje JavaScript:
 Mai puțină interacțiune cu server -ul
 Feedback imediat
 Interactivitate crescută
 Interfețe consisnte
Limitări:
 Client – side: JavaScript nu pe rmite citirea sau scrierea în fișiere din
motive de securitate.
 JavaScript nu are suport pentru a putea fi folosit la aplicații de rețea.
 JavaScript nu are capabilități de multithreading sau multiprocesor.
[3]

JQuery este o platformă de dezvoltare JavaScript concepută pentru a ușura
și a înbunătăți procesele pentru traversarea arborelui DOM în HTML,
managementul inter -browser al evenimentelor, animații și cereri de tip AJAX.
Există două metode pentru a folosi jQuery:
 Prin instalare locală : se poate descărcă librăria jQuery pe propiul computer unde
este inclusă în propiul cod HTML
 Content Delivery Network(CDN) – se poate include librăria jQuery direct în codul
HTML de la CDN . [4]

NECLASIFICAT
NECLASIFICAT
14 din 51

2.2 Bootstrap
Bootstrap este un framewo rk puternic de front -end folosit pentru developare
mai rapidă și mai ușoară pe parte a de web. Este o combinație de HTML și CSS
pentru crearea de interfețe complexe cu mult mai puțin efort depus.
Bootstrap poate fi de 3 tipuri:
 bootstrap.css – un framewo rk CSS
 bootstrap.js – un framework JavaScript/JQuery
 glyphicons – un font
Avantajele Bootstrap -ului:
 Variatate largă de opțiuni de creeare – Unul din cele mai mari avantaje ale
bootstrapului este un set gratuit de opțiuni pentru crearea unor interfețe flexibil și
ușor de realizat.
 Economisire timp – Se pot folosi template -uri de Bootstrap predefinite pentru
lucrul de developare.
 Design consistent – Toate componentele Bootstrap au în comun același cod într –
o librărie central, astfel încât interfețele paginilor web să fie cât mai consistente.
 Ușurință în folosire – Oricine cu cunoștințele de bază în HTML și CSS poate folosi
Bootstrap.
 Compatibilitate – Bootstrap este creat pentru a putea fi compatibil cu orice tip de
browser existent.
 Open Source – este gratuit pentru ca orice persoană să îl poată folosi. [5] [6]

2.3 AJAX , PHP și MySQL

AJAX, prescurtarea pentru Asynchronous JavaScript and XML, este o
tehnică de programare pentru creear ea unor aplicații web interactive , care face ca
paginile web să fie mai rapide prin schimbul în fundal a datelor cu serverul . Astfel,
nu va fi nevoie ca pagina sa fie reîncărcată la fiecare acțiune a utilizatorului. [7]

NECLASIFICAT
NECLASIFICAT
15 din 51

Fig. 2.1 prezintă cum funcționează AJAX.
Numele PHP este un acroni m recursiv PHP : Hypertext Prepprocessor. Este
un limbaj de programare structurat , folosit inițial pentru a produce pagini web
dinamice. Se folosește , în principal , înglobat în codul HTML, dar se poate folosi
și ca linie de comandă (CLI), permițând creearea de aplicații independente. Este
unul din cele mai importante limbaje de programare web open -source și server –
side. Sintaxa limbajului este foarte u șoară și destul de liberă, nu este nevoie de
includere de biblioteci sau directive de compilare.
Una din cele mai importante facilități ale limbajului PHP este conluclarea
cu majoritatea bazelor de date relaționale. Poate rula pe majoritatea sistemelor de
operare și poate interactiona cu majoritatea serverelor web. Codul PHP este
interpretat de serverul web generând codul HTML care va fi văzut de către
utilizator.
Sistemul de gestiune a bazelor de date relaționale, numit MySQL care
utilizează Structured Que ry Language (SQL), este folosit foarte des împreună cu
limbajul de programare PHP, dar se poate folosi și cu C, C++, Java, Python.

NECLASIFICAT
NECLASIFICAT
16 din 51

PAGINA ALBA

NECLASIFICAT
NECLASIFICAT
17 din 51

CAPITOLUL III

3. CERIN ȚELE APLICAȚIEI
3.1 Cerințele utilizatorilor

Această categorie de cerințe este determinată de persoanele care vor
interacționa în mod direct cu aplicația.
Actorii din acest cadru sunt angajații Academiei Tehnice Militare care se
ocupă de managementul personalului și al resurselor umane .
Cerințele utilizatorilor sunt:
1. Să conțină o pagin ă pentru autentifica rea utilizatorilor .
2. Conturile de utilizator să fie imprțite în două categorii:
1. Administrator – acces total asupra funționalităților
2. Cadru Personal – accesul este restricționat
3. Trebuie s ă pună la dispoziția administratorului posibilitatea de adăugare și
setarea nivelului de acces la funcționalitățile oferite de aplicație , unui utilizator
nou, precum și posibilitatea de eliminare a unui utilizator deja existent.
4. Aplicația trebuie să ofere funcția de notificare a utilizatorilor și adăugarea de
notific ări personalizate pe baza coloanelor de tip date. Notificarea pentru
expirarea contrctului de muncă să fie standard și să se genereze un tabel pentru
export în formatul CSV , compatibil cu standardul aplicației „ATM SMS
Gateway” pentru trimiterea de sms -uri pe baza fișierelor CSV.
5. Trebuie să ofere funționalitatea de adăugare unei persoane noi în baza de date,
să ofere o interfață pentru editarea informațiilor d in tabel, precum și posibilitat ea
de adăugare și ștergerea coloanelor în tabel.
6. Aplicația tre buie să ofere opțiuni pentru generarea rapoartelor cu datele
personalului instituției. Raportele sa fie de tip : standard cu toate datele despre
personal , personalizate cu posibilitatea de selecție a datelor pe care le va conține
și tipizate pentru a salva șablonul raportului droit.
7. Posibilitatea de a descarca rapoartele în format Microsoft Excel.
8. Importarea datelor din format Microsoft Excel.
9. Adăugarea de șabloane pentru documente stardard și generarea automată de
documente PDF personalizate , pe ba za acestor șabloane pentru o persoană
selectată din baza de date.
10. Tabel pentru vizualizarea utimelor modificări asupra bazei de date.

NECLASIFICAT
NECLASIFICAT
18 din 51
3.2 Cerințele hardware

Pentru instalarea și funcționarea aplicației sunt necesare minim următoarele
component hardw are și software:
1. Server:
Harware
 Procesor Intel sau AMD la 1200 Mhz
 1 GB RAM
 Spațiu pe disc 20 GB
 Placă de rețea
Software
 Sistem de operare Ubuntu Server 1 8.04
 MySQL Server (serviciul de bază de date)
 Apache server (serviciul web)
 PHP (mediul de programare )
 PhpMyAdmin (interfa ță pentru administrarea bazelor de date )

2. Client:
Harware
 Procesor Intel sau AMD la 1200 Mhz
 4 GB RAM
 Placă de rețea
Software
 Sistem de operare Windows sau Linux
 Browser: Internet Explorer, Mozila Firefox sau Google Chrome

NECLASIFICAT
NECLASIFICAT
19 din 51

CAPITOL UL IV
4. ARHITECTURA APLICAȚIEI
4.1 Front -end

Primul contact al utilizatorului cu aplicația va fi facut cu interf ața paginii
de logare , care este realizată intr -un mod simplist și intuitiv.

Fig. 4.1 – Pagina de logare

Dupa logare, utilizatorul intră în contact cu interfața principală oferită de
aplicație , care este structurată pe trei părți: Header, Sidebar și Main Content.
În header vom găsi în partea dreaptă setările pentru interfață și opțiunile
utilizatorul ui pentru cont.
Setările pentru interfață constau în ascunderea sidebar -ului, setarea
meniului de header pentru a fi fix sau mobil , și mărirea spațiului pe care il ocupă
Main content în functie de necesitățile utilizatorului.
Setările pentru utilizator con stau în schimbarea parolei și delogarea, acestea
sunt amplasete printr -un meniu de tipul dropdown -list activabil intuitiv la
apăsarea numelui de utilizator , însoțit de o săgeată orientate în jos.

NECLASIFICAT
NECLASIFICAT
20 din 51

Fig. 4.2 – Interfața și opțiunile header -ului

În sidebar în partea de sus avem sigla aplicației cu link către pagina de
home, iar în continuare este vizibil meniul cu funcționalități al aplicației. Acesta
poate sa fie ascuns pentru o vizualizare mai bună asupra co nținutului principal.

Fig. 4.3 Prezentarea funcționalităților aflate în sidebar

Home – este pagina de început care se deschide automat după autentificare a
cu success a utilizatorilor, aici vor fi prezenta te notificările, tabelul pentru export
CSV și tabelul cu modificările asupra bazei de date.

NECLASIFICAT
NECLASIFICAT
21 din 51
Rapoarte – oferă posibilitatea de vizualizare în formă tabelară a
informațiilor despre personal cu reguli de selecție sau fără , în funcție de
necesitatea utilizator ului.
Editare Tabele – cu opțiunile de adăugarea unei persoane sub forma unui
formular, modificarea datelor afișate sub formă tabelară și adăugarea sau ștergerea
coloanelor.
Șabloane Doc – pentru adăugarea de șabloane a documentelor, editarea
ulterioară a lor și generarea documentelor personalizate în format PDF.
Import/export/backup – pentru importul informațiilor din fișiere Microsoft
Excel, exportarea lor în același format, generarea de backup în momentul
importului și la cererea utilizatorului , și aplic area acestor backup -uri în cazul
deteriorării datelor.
Panou utilizatori – o funționalitatea disponibila doar utilizatorilor cu nivel
de acces de tip administrator, oferă posibilitatea adăugarii și ștergerii utilizatorilor
și opțiunea de resetare a parolei .
Panou notificări – la fel ca și funcționalitatea precedent este disponibilă
doar administratorilor, acesta ofera posibilitatea adăugarii și ștergerii notificărilor
care se vor afișa pe pagina principală.
În main content vor fi afișate paginile selectate de cître utilizator din
sidebar. Interfața acestor pagini va fi prezentată în capitolul urmator.

4.2 Back -end

În partea de back -end sunt folosite concept de programare orientate pe
obiecte și funcționalitățile oferite de limbajul PHP.
În acestă aplicație su nt folosite două clase principale, c lasa Template și
clasa User, și două librării folosite pentru a lucra cu fișiere Microsoft Excel și
PDF. [8] [9]

Fig. 4.4 Diagrama claselor

Clasa Template este cea care asigură principalele funcționalități ale
aplicației, creearea templetului pentru interfață , asigurarea conexiunii la baza de
date și legatura cu colecțiile de clase auxiliare. Prezentarea clasei se regăse ște in
Fig. 4.5.

NECLASIFICAT
NECLASIFICAT
22 din 51

Fig. 4.5 Membrii și metodele clasei Template

Clasa User este utilizată pentru a stoca informațiile despre utilizatorul
curent pe perioada unei sesiuni active. Membrii clasei și metodele s unt prezentate
în Fig. 4.6.

NECLASIFICAT
NECLASIFICAT
23 din 51

Fig. 4.6 Membrii și metodele clasei User

4.3 Baza de date

Bazele de date sunt folosite pentru a împrți datele comcomitent între clienți,
pentru a le permite editarea și citirea lor simultană.
Pentru a organiza datele din ace astă aplicație într -un mod e ficient am folosit
unsprezece tabele pentru următoarele date:
 Personal – stocarea datelor despre personalul instituției.
 Tabel_col_echiv – stocarea informațiilor despre coloanele existente în
tabelul personal.
 Tabel_user – stocarea informațiilor despre utilizatori
 Tabel_notificari – stocarea notificărilor standard
 Tabel_notif_personalizate – stocarea setărilor pentru afișarea notificărilor
personalizate
 Tabel_mesaje_csv – stocarea mesajelor pentru export CSV
 Tabel_adeverinte – stocarea șabloanelor
 Tabel_activitate_bd – stocarea log -urilor
 Tabel_evidenta_export – stocarea log -urilor exportului
 Tabel_raport_tipizat – stocarea setarilor pentru generarea raportelor
tipizate
 Tabel_backup_export – stocarea log -urilor backup -urilor

NECLASIFICAT
NECLASIFICAT
24 din 51

Fig. 4.7 Diagrama tabelelor din baza de dat e

NECLASIFICAT
NECLASIFICAT
25 din 51
CAPITOLUL V

5. PREZENTAREA FUNCȚIONALITĂȚILOR

Fig. 5.1 Fluxul aplicației din perspectiva unui utilizator

Fig. 5.2 Fluxul aplicației din perspectiva un ui administrator

NECLASIFICAT
NECLASIFICAT
26 din 51

5.1 Pregătirea aplicației în momentul accesării

În moment ul accesării aplicației , se încarcă fișierele de configurarea și se
inițializeză clasa template. După inițializarea clasei se setează variabilele de
configurarea cu opțiunile templ ate-ului standard.
În momentul inițializării clasei se apelează constructructorul, unde se
inițializeză sesiunea prin funția session_start() și se realizeză conexiunea de tip
pdo cu baza de date .

Fig. 5.3 Constructorul clasei Template

5.2 Pagina de logare

Pagina de logare este pagin a de index a aplicației. Prin acestă pagin a,
utilizatorii se conectează cu ajutorul numelui de utilizator si parolă pentru a purtea
folosi funcționalitățile oferite de aplicație.
Procedura de logare constă în verificare a numelui de utilizator și hash -ul
parolei cu cele existente în baza de date. Singura modal itate de a obține acces
pentru această aplicație , este de a fi înregistrat de către un administrator. Aplicația
vine cu un cont d e admin preînregistrat.
Interfața de logare a fost prezentată în Fig. 4.1 , partea de cod constă în
aducerea din baza de date a informațiilor pe baz a numelui de utilizator, verific area
are loc dacă avem rezultat pozitiv la interogarea bazei de date și folos ind funcția
password_verify din PHP, care verifică hash -ul parolei introduse cel din baza de
date daca este disponibil. Aceste verificări se fac în același timp, dacă una din
aceste condiții de verificare este returnată cu valoare de fals , va fi returnat u n
mesaj de eroare prin care se anunță utilizatorul că datele pentru logare sunt greșite,
iar dacă condițiile sunt adevărate datele despre utilizator sunt salvate în variabila
$_SESSION [“user”], de tipul User, disponibilă pe durata întregii sesiuni de
activ itate a utilizatorului.

NECLASIFICAT
NECLASIFICAT
27 din 51

Fig. 5.4 Logarea utilizatorului

Tot în acestă parte a aplicației se face și verificarea pentru notificările
standard ce vor fi afișate pe pagina de start , prin funcția get_notific ation() a clasei
Template. În această funcție se selectează din tabelul personal coloanele
NUME_PTATA_P, CONTRACTUL_EXPIRA_LA_DATA și
Numar_de_telefon pentru toate intrările din tabel, apoi pentru fiecare persoană se
face diferența dintre data curentă și d ata din a doua coloană specificată mai sus.
Notificările sunt clasate în funcție de diferență. Sunt patru tipuri de
notificări standard, notificările care se încadreză în intervalul de 180 și 120 de zile
numite Basic , cele care se încadrează în intervalul 120 și 90 de zile numite Info,
cele care se încadrează îm intervalul 90 și 0 zile numite Avertizare și cele mai
mici de 0 zile, adică contractele au expirat, se numesc Important .
După verificare și clasare sunt salvate în tabelul tabel_notificari care es te
verificat în pagina de start , apoi dacă salvarea este realizată cu succes se crează
mesajul personalizat prin funcția makeCsvMessages() din clasa Template,
mesajele sunt salvate în tabelul tabel_mesaje_csv. De exemplu , un mesaj pentru
o notificare Impor tant ar fi de forma „Contractul dumneavoastră a expirat în
data de 2018 -03-30. PersonalATM” .

NECLASIFICAT
NECLASIFICAT
28 din 51

5.3 Pagina de start

În acestă pagină sunt afișate notificările stardard și cele personalizate,
tabelul de mesaje cu export în CSV pentru trimis prin aplicația „A TM SMS
Gateway” și tabelul pentru viz ualizarea modificărilor asupra bazei de date.
Notificările standard sunt cele generate la login și salvate în baza de date,
aceste notificări sunt afișate într-un <div></div> care ocupă jumatate din lățimea
disponibilă. Oferă but oane pentru afișarea selectivă în funcție de tipul notificării.
Dacă sunt mai mult de trei notific ări noi , blocul va avea o bară pentru scrol l pe
verticală. Design -ul este unul simplu și intuitiv , cu un text care s ă îi prezinte
situația utilizato rului , fără a putea fi interpretată diferit. Blocul pentru notificări
standard este prezentat în Fig. 5.3.

Fig. 5.5 Afișarea notificărilor pe pagina principală

Pe același rând cu aceste notificări este t abelul de mesaje , un table simplu
cu dou ă coloane care oferă suport pentru export CSV . Prima coloană fiind
numărul de telefon, iar cea de a doua mesajul de trimis. Pentru afișare a acestui
tabel s -a folosit JavaScriptul DataTable. Tabelul este prezentat în Fig. 5.4.

NECLASIFICAT
NECLASIFICAT
29 din 51

Fig. 5.6 Afișarea tabelului de mesaje pe pagina principală

Urmatoarele blocuri afișate vor fi cele pentru notificări personalizate,
adăugate din panoul pentru notificări. Notificările sunt luate în ordine , din tabelul
tabel_notif_personalizate . Ele sunt generate în momentul încărcării paginii ,
pentru a nu încărca baza de date cu multe tabele și pentru a fi mai exacte în cazul
în care se modifcă anumite date de care depind aceste notificări în tab elul personal
din baza de date.
Notificările personalizate sunt de două feluri, ce le normale prin care se
specică un număr N de luni , și o coloană de tip date facându -se diferența dintre
data curentă și data din acea coloană adunată cu cele N luni , și data -range prin
care se aleg două coloane de tip date și se face diferența dintre cele două.

Fig. 5.7 Afișarea notificărilor personalizate pe pagina principală

NECLASIFICAT
NECLASIFICAT
30 din 51
Ultimul bloc afișat este blocul cu tabelul de ac tivitate asupra bazei de date,
poate fi vizualizat de către toți utilizatorii, nu poate fi exportat sau modificat.
Modificările sunt afișate în șase coloane, iar fiecare intrare în tabel va avea o
culoare diferită în funcție de tipul activitații. Sunt trei tipuri de modificări
afișabile, EDIT se distinge prin culoarea cyan (albastru deschis), DELETE prin
culoarea roșie și ADD pein culoarea verde.

Fig. 5.8 Afișarea tabelului de activitate pe pagina principa lă

5.4 Gestionarea rapoartelor

Această funcționalitate este împărțită în patru module, cel de ge nerare
rapoarte standard, generare raporte personalizate, generare rapoarte personalizate
și adăugare de reguli , și generarea raportelor tipizate.
5.4.1 Generare rapoa rte standard

Această func ționalitate oferă o vizualizare completă asupra tebelului
personal din baza de date. Acesta poate fi exportat în Microsoft Excel, CSV și
copiat in clipboard. Tabelul oferă funționalitate de căutare în tabel, de paginare și
de sele ctarea numărului de r ânduri ce sunt afișate pe o pagină. Copierea tabelului
se face doar pentru informațiile afișate, iar exportul pentru tot tabelul.

NECLASIFICAT
NECLASIFICAT
31 din 51

Fig. 5.9 Afișarea raportului standard

5.4.2 Generare rapoart e personalizate

Acestă funcționalitate oferă posibilitatea de a selecta coloanele ce se doresc
a fi afișate. Are o interfață simplă, utiliz ând un select multiplu pentru a selecta
coloanele de care avem nevoie, acestea mutându -se într -un spațiu vizibil , în cazul
în care utilizatorul se răzgândește să o poată deselecta. Deasupra acestor spații
sunt scrise in headere mesaje intuitive pentru a ajuta un utilizator nexperimentat,
care are pentru prima dată contact cu acestă aplicație.

Fig. 5.10 Selectarea coloanelor pentru un raport personalizat

5.4.3 Generare rapoarte personalizate cu reguli

Această funcționalitate oferă posibilitatea selectării coloanelor dorite și
aplicarea regulilor de selecție din baza de date. Pot fi adaugate oricate reguli
dorim, sau putem sa nu aplicăm nici o regulă. Regulile se aplică pe coloane, iar
tipul casetei în care introducem condiția este setată în funcție de coloana selectată

NECLASIFICAT
NECLASIFICAT
32 din 51
pentru a impune acea regulă. Se oferă un text auxiliar pnt ru a se specifica cum
trebuie introdu se aceste reguli.

Fig. 5.11 Selectarea coloanelor și setarea regulilor pentru un raport
personalizat
5.4.4 Generarea și adăugarea raportelor tipizate

Funcționalitatea aceasta este cea care permite utilizatorului să salveze un
model de raport pentru utilizări viitoare. Interfața oferă trei opțiuni pentru
utilizator: să utilizeze un model, sa șteargă un model sau să adauge unul nou.
Modelul se salvează in tabel_raport_tipizat , aici se salvează denumirea lui,
coloanele selectate și regulile transformate in limbaj SQL .

Fig. 5.12 Interfața de gestionare a rapoartelor tipizate

NECLASIFICAT
NECLASIFICAT
33 din 51
5.5 Gestionarea datelor din tabele

5.5.1 Adăugarea unei persoane

Acestă funcționalitate oferă o modalitate dinamică de adăugarea unei
personae, print -o interfață de tip formular. Tipul căsuțelor de introducere a datelor
se afișeză automat în funție de tipul coloanei din tabel. În momentul ștergerii sau
adăugării unei co loane noi , se reflect ă acestă schimbare și în acest formular.
Crearea formularului se face prin funția get_add_row(). Se trimit ca și parametri,
indicatorul de poziție și numele coloanei.
Evidența coloanelor este salvată în tabelul tabel_col_echiv, aici s e salvează
numele coloanelor SQL, numele pentru afișare, ordinea pentru afișare în header –
ul tabelului și tipul coloanei cu numarul maxim de caractere.

Fig. 5.13 Formularul pentru adăugarea personalului

După adăugare unei persoane va fi salvată în tabelul de activitate asupra
bazei de date acestă acțiune.

5.5.2 Editarea datelor din tabel

Această funcționalitate oferă o interfață sub fomar unui tabel ce permite
editarea datelor. Oferă posibilitatea de cautare în tabel pentru a ușura munca
utilizatorilor. Datele din tabel sunt afișate sub formă de link -uri care deschid în
același loc o căsuță pentru editarea datelor. Fig 5. .

NECLASIFICAT
NECLASIFICAT
34 din 51

Fig. 5.14 Casuța de editare a date lor

Datele sunt trimise prin AJAX pentru modificare și primirea confirmării că
au fost modificate. Câmpurile fără date au afișat un text specific și o culoare care
iese în evidență.

Fig. 5.15 Afișarea dat elor pentru editare
Orice modificare va fi înregistrată în tabela de activitate asupra bazei de
date.

5.5.3 Adăugarea și ștergerea coloanelor din tabel

Adăugarea coloanelor constă în prelucrarea datelor introdu se de utilizator
și creeare interogării , pentru ad ăugarea coloanei în tabelul personal, dar și în
tabelul tabel_col_echiv.

NECLASIFICAT
NECLASIFICAT
35 din 51

Fig. 5.16 Interfața pentru adăugarea unei coloane în tabel

După adăugarea coloanei , aplicația afișează o notificare prin care anunț a
utilizatorul că acțiunea s -a realizat cu success sau că a avut loc o eroare.

Fig. 5.17 Notificarea de success după adăugare

Ștergerea constă în selectarea coloanei pe care utilizatorul dorește să o
elimine și generarea interogărilor necesare pentru a finaliz a acțiunea în ambele
tabele.

Fig. 5.18 Interfața de ștergere a unei coloane din tabel

NECLASIFICAT
NECLASIFICAT
36 din 51

5.6 Gestionarea șabloanelor

Șabloanele sunt texte predefinite pen tru generarea documentelor
penrsonalizate în format PDF.
5.6.1 Adăugarea unui șablon

Acestă funcționalitate c onstă în scrierea într -un editor, asemănător cu
Microsoft Word, numit Summernote. Se pot adauga coloanele din tabelul personal
pentru a genera documnete personalizate , în funcție de persoana selectată.
Pentru a adăuga o coloană care să poată fi interpretată mai departe în cod ,
cu acea coloană din tabel se folosește caracterul @ și vor apărea sugestiile de
coloane.
Textul este salvat ca și cod HTML în baza de date, mai ex act în tabelul
tabel_adeverinte.

Fig. 5.19 Interfața pentru adăugarea unui șablon

5.6.2 Generarea unui document pdf pe baza șablonului

Acestă funcționalitate genereaza pe baza șabloanelor adăug ate, un PDF
personalizat pentru persoana selectată. Se utilizează plugin -ul dompdf. Înai nte de
a trimite conținutul pentru conversie se folosește funcția searchAndReplace() a
clasei Template pentru a înlocui numele coloanelor cu datele despre acea
persoană .

NECLASIFICAT
NECLASIFICAT
37 din 51

Fig. 5.20 Interfața pentru generarea unui șablon

Fig. 5.21 Exemplu de șablon generat
5.6.3 Editarea și ștergerea unui șablon

Pentru editarea unui șablon exist ent, se selectează șablonul și se apasă
butonul de editare. Stergerea necesită aceleași procedure, doar că se termină cu
apăsarea butonu lui de ștergere.

NECLASIFICAT
NECLASIFICAT
38 din 51

Fig. 5.22 Interfața pentru gestionarea șabloanelor

Fig. 5.23 Interfața pentru editarea șabloanelor

5.7 Import, export și backup
Prin import , utilizatorul poate încărca un document Microsoft Excel în baza
de date. Tabelul personal va fi golit iar noile date vo r fi citite din documentul
încărcat și salvate în baza de date. Documentul importat trebuie sa respecte
header -ul current al bazei de date pentru a nu exi sta probleme la inserarea datelor
în tabel.
Opțiunea este di sponibilă oricând pentru un administrator, iar pentru un
utilizator do ar în momentul efectuării exportului pentru modificare.
În momen tul importului se efectu ează un backup asupra tabelul ui personal
și tabel_col_echiv.

NECLASIFICAT
NECLASIFICAT
39 din 51

Fig. 5.24 Funționalitatea de import Excel
După apăsare a butonului de imp ort va apărea un pop -up prin care
utilizatorul trebuie să confirme că dorește să realizeze importul și ca documentul
încarcat are extesia unui document Microsoft excel.

Fig. 5.25 Pop-up-ul de confirmare a importului

Utilizatorul are două modalități de exportare, cel de exportare pentru
vizualizare și cel de exportare p entru modificare.

Fig. 5.26 Funționalitatea d e export

NECLASIFICAT
NECLASIFICAT
40 din 51
Exportul pentru vizualizare îi permite utilizatorului să vizualizeze tabelul
din baza de date în format excel fără să îl poată importa ulterior.

Fig. 5.27 Pop-up-ul de confirmare a exportului pentr u vizualizare

Exportul pentru modificare îi permite utilizatorul să descarce tabelul
personal și să îl modifice în format excel. Acestă oțiune blocheză toate celelate
funționalități de a edita baza de date și îi activează utilizatorului opțiunea de a
impo rta fișierul. Administratorul poate opri blocare a editării, în momentul stopării
utilizatorul nu mai poate importa acel fișier pentru a nu exista pierderi de date.

Fig. 5.28 Pop-up-ul de confirmare a expor tului pentru modificare

Backup -ul se crează automat în momentul importului, dar se poate creea și
manual prin apăsarea butonului crează din meniul back -up. Utilizatorul are

NECLASIFICAT
NECLASIFICAT
41 din 51
posibilitatea de a pune în aplicare ultimul back -up creeat sau de a selecta un bac k-
up dintr -o dată anterioră.
Back -ul conține fișerele excel a tabelelor personal și tabel_col_echiv, în
momentul aplicării unui back -up se verifică mai întâi coloanele tabelului personal
care trebuie să fie aceleași cu cele din tabelul tabel_col_echiv. În cazul în care nu
se gasește , se creează o nouă coloană, iar în cazul în care este în plus , acesta se
șterge.

Fig. 5.29 Crearea și aplicarea ultimului back -up

Fig. 5.30 Aplicarea unui back -up dintr -o data anterioară

5.8 Gestionarea utilizatorilor

Acestă funționalitate este disponibilă doar utilizatorilor cu acces de
administrator. Aceștia pot adăuga utilizatori din cadrul Departamentului
Administrative prin simpla selectare a persoanei respective . Apoi se selecteză
tipul contului personal sau administrator. Contul este automat creeat cu datele din
coloana NUMU_PTATA_P din tabelul personal, caracterele sunt transformate în

NECLASIFICAT
NECLASIFICAT
42 din 51
litere mici și iar sp ațiul se înlocui ește cu punct. Parola inițială a fiecărui cont este
codul numeric personal luat din același tabel.

Fig. 5.31 Interfața pentru adăugarea unui utilizator
Datele utilizatorului sunt salvate în tabelul tabel_u ser, parola este salvată
sub formă de hash realizat cu funția password_hash(). Utilizatorul își poate
schimba parola u lterior.

Fig. 5.32 Interfața pentru schimbarea parolei

NECLASIFICAT
NECLASIFICAT
43 din 51
Administratorul are opțiune a de a elimina un utilizator deja existent sau de
a reseta parola unui utilizator. Resetarea parolei constă în înlocuirea parolei
exitente .

5.9 Gestionarea notificărilor

Această funcționalitate este disponibilă doar utilizatorilor cu nivelul de
acces de administ rator. Acesția pot adăuga notificări personalizate vizibile
pentru toți utilizatorii.
Notificările pot fi de două feluri, cele personalizate standard prin care
administratorii selectează o coloană de tip date din tabel și introduce numărul de
luni. (Ex: P entru imputernicirea unui cadru se selectează coloana din tabel
asociată datei de începutul imputernicirei și câte luni cadrele sunt imputernicite ,
aplicația va anunța in permanență numărul de zile pe care acest cadru le mai
pentru a fi imputernicit ) Fig 5.33.

Fig. 5.33 Interfața pentru adăugarea notificărilor personalizate standard

Notificările de tip data range constau în selectarea a două coloane de tip date,
acestea fiind data de început , respective da ta de final, iar aplicația afișează în

NECLASIFICAT
NECLASIFICAT
44 din 51
permanență statusul în care se află acea persoană. Fig 5.34.

Fig. 5.34 Interfața pentru adăugarea notificărilor data -range

NECLASIFICAT
NECLASIFICAT
45 din 51
CAPITOLUL VI

6. PLANUL DE TESTARE AL APLICAȚI EI

6.1 Noțiuni teoretice

Testarea programelor este un proces dezvoltat aproape simultan cu crearea
acestora, cu scopul de a verifica eficiența și corectitudinea algoritmilor.
Testul presupune o simulare a execuției programului, introducând un set de
date ales conform unor criterii de testare alese anterior, cu scopul de a determina
dacă rezultatul obținut în urma rulării programului cu datele de intrare alese este
cel corect. Rezultatul considerat corect este cel care atestă scopul inițial al
programului.
Pe parcursul fiecărui test sunt folosite seturi de date, fiecare corespunzând
unui caz de test. Acesta conține setul de date de intrare, precum și datele de ieșire
pe care ar trebui să le proceseze programul. Fiecărei valori sau fiecărui set de
valori in trodus în program , îi corespunde o dată sau un set de date de ieșire
calculate independent de program.Un caz de test poate avea următoarea structură :
introducem valorile x1, x2, x3 în program. Conform specificațiilor tehnice,
valorile produse de program a r trebui să fie y1 și y2. Un exemplu simplu :
dezvoltăm un program care să determine dacă un număr este prim. Testul
presupune introducerea unui set de date de la care asteptăm un anumit rezultat –
data de intrare poate fi numărul 17, despre care sțim că e ste un număr prim. Dacă
programul nu atestă acest lucru, algoritmul este eronat. Orice rezultat afișat care
nu reflectă o procesare corectă a datelor, conform programării algoritmului poate
indica o eroare la nivel de cod.
Este importantă alegerea cazurilo r de teste care să acopere toate funcțiile
programului. De aceea, sunt recomandate scenarii care pot acoperi verificarea
întregului cod. Pot fi incluse: scenariu cu răspuns clasic, scenarii care depăsesc
parametrii datelor de intrare permise de program, ca z în care ne putem aștepta la
un mesaj de eroare care să indice utilizatorului cauza erorii. Scopul alegerii
cazurilor de teste este atât să punem în evidență funcționarea corezpunzătoare a
programului, cât și de a evidenția potențialele erori.

6.2 Testel e de acceptare (validare)

După ce testele de sistem au ajutat la corectarea majorității defectelor,
programul va fi livrat clientului/clienților pentru testele de acceptare. Sunt, de

NECLASIFICAT
NECLASIFICAT
46 din 51
obicei, realizate de clienți, deși pot interveni și alte părți interesat e. Scopul testării
de acceptare este să stabilească încrederea în program. Este, de cele mai multe ori,
testare de validare.
Testarea de acceptare poate fi efectuată în două procese consecutive :
 Testarea alfa – se realizează cand partea de dezvoltare/pro gramare se
apropie de sfârșit.Se așteaptă modificări minore după testarea alfa.

 Testarea beta – este cunoscută și ca testare de câmp, deoarece are loc, de
cele mai multe ori, la sediul clientului. Programul este trimis viitorilor
utilizatori și este utili zat în condiții de funcționare reale.

6.3 Exemple de testare

Cazuri de teste executate doar de interfața pusă la dispoziți a utilizatorului
– teste sistem (teste funcționale) și ex emple :
Caz 1
Pas 1. Descrierea pasului: Logarea la o aplicatie test cu un cont valid.
Rezultate așteptate: Afișarea paginii de început.
Pas 2: Descrierea pasului : Click pe link -ul de “Delogare” aflat în colțul
din dreapta sus a submeniului utilizatorului.
Rezultate așteptate: Pagina de logare este afișată.
Caz 2
Pas 1. Descrierea pasului : Încărcarea pe aplicației a datelor dorite despre
personal.
Rezultate așteptate: Importare a corectă a datelor în tabelul personal
și afișarea acetora în rapoartele standard.
Pas 2. Descrierea pasului: Generarea rapoartelor pe rsonalizate,
personalizate cu reguli și cele tipizate.
Rezultate așteptate: Afișarea datelor în tabele și posibilitatea
exportării lor în format excel..
Caz 3

NECLASIFICAT
NECLASIFICAT
47 din 51
Pas 1. Descrierea pasului : Adăugarea șablonului pentru generarea unei
adeverințe.
Rezultat e așteptate : Salvarea codului în baza de date și afișarea
modelului în meniul pentru generare .
Pas 2. Descrierea pasului : Generarea unei adeverițe personalizate în format
PDF.
Rezultate așteptate : Afișarea documentului PDF în format A4 cu
înform ațiile din modelul adăugat și cele despre persoana selectată .

Caz 4
Pas 1. Descrierea pasului: Adaugarea de notificări personalizate.
Rezultate așteptate: Afișarea notificărilor în pagina principală .

NECLASIFICAT
NECLASIFICAT
48 din 51

PAGINA ALBA

NECLASIFICAT
NECLASIFICAT
49 din 51

CAPITOLUL V II

7. CONCLUZII

Scopul acestui proiect a fos t de a ușura activitatea personalului care se ocupa
de managemenul resurselor umane din Academia Tehnică Militară „Ferdinand I”.
Aplicația oferă funcționalitățile dorite de utilizatori și îi ajută în rezolvarea mai
rapidă a task -urilor zilinice.
Toate funț ionalitățile aplicației au fost testate pe serverul instituției.
Problemele întâmpinate în timpul dezvoltării au fost:
 Salvarea textului cu diacritice în baza de date;
 Importul și exportul Excel;
 Generarea PDF -urilor;

7.1 Dezvoltări viitoare

 Pagină pentur af ișare individuală a persoanelor înregistrare în baza de
date;
 Generarea statisticelor și a graficelor personalizate;
 Gestionarea persoanelor participante la cursuri;
 Istoricul cursurilor pentru fiecare persoană;

NECLASIFICAT
NECLASIFICAT
50 din 51

PAGINA ALBA

NECLASIFICAT
NECLASIFICAT
51 din 51

BIBLIOGRAFIE

[1] [Online]. Available:
http://www.yourhtmlsource.com/starthere/whatishtml.html.
[2] [Online]. Available: http://www.tutorialspoint.com/css/what_is_css.htm.
[3] [Online]. Available:
http://www.tutorialspoint.com/javascript/javascript_overview .htm.
[4] [Online]. Available: http://www.tutorialspoint.com/jquery/jquery –
overview.htm.
[5] [Online]. Available: http://www.tutorialrepublic.com/twitter -bootstrap –
tutorial/bootstrap -introduction.php.
[6] [Online]. Available: https://www.taniarascia. com/what -is-bootstrap -and-
how-do-i-use-it/.
[7] [Online]. Available: http://www.w3schools.com/ajax/ajax_intro.asp.
[8] "dompdf," 6 12 2017. [Online]. Available:
https://github.com/dompdf/dompdf.
[9] "PHPExcel," 25 12 2017. [Online]. Available:
https: //github.com/PHPOffice/PHPExcel.

Similar Posts