Lucrare de licen ță [616866]
1
UNIVERSITATEA „ALEXANDRU IOAN CUZA” IAȘI
FACULTATEA DE INFORMATICĂ
Lucrare de licen ță
Aplicaț ie de gestiune a logisticii unei baze militare
propusă de
Onu Dumitrița Camelia
Sesiunea : iulie 201 6
Coordonator științific
Asist. Dr. Vasile Alaiba
2 UNIVERSITATEA „ALEXANDRU IOAN CUZA” IAȘI
FACULTATEA DE INFORMATICĂ
Aplicație de gestiune a logisticii unei baze militare
Onu Dumitrița Camelia
Sesiunea : iulie 2016
Coordonator științific
Asist. Dr. Vasile Alaiba
3 DECLARAȚIE PRIVIND ORIGINALITATE ȘI RESPECTAREA
DREPTURILOR DE AUTOR
Prin prezenta declar că Lucrarea de licență cu titlul „ Aplicație de
gestiune a logisticii unei baze militare ” este scrisă de mine și nu a mai fost
prezentată niciodată la o altă facultate sau instituție de învățământ
superior din țară sau străinătate. De asemenea, declar că toate sursele
utilizate, inclusiv ce le preluate de pe Internet, sunt indicate în lucrare, cu
respectarea regulilor de evitare a plagiatului:
toate fragmentele de text reproduse exact, chiar și în traducere
proprie din altă limbă, sunt scrise între ghilimele și dețin referința
precisă a su rsei;
reformularea în cuvinte proprii a textelor scrise de către alți autori
deține referința precisă;
codul sursă, imaginile etc. preluate din proiecte open -sourc e sau alte
surse sunt utilizate cu respectarea drepturilor de autor și dețin
referințe precise;
rezumarea ideilor altor autori precizează referința precisă la textul
original.
Iași, Absolvent: [anonimizat]
_________________________
4 DECLARAȚIE DE CONSIMȚĂMÂNT
Prin prezenta declar că sunt de acord ca Lucrarea de licență cu titlul „
Aplicație de gestiune a logisticii unei baze militare ”, codul sursă al
programelor și celelalte conținuturi (grafice, multimedia, date de test
etc.) care însoțesc această lucrare să fie utilizate în cadrul Facultății de
Informatică.
De asemenea, sunt de acord ca Facultatea de Informatică de la
Universitatea „Alexandru Ioan Cuza” Iași să utilizeze, modifice, reproducă
și să distribuie în scopuri necomerciale programele -calculator, f ormat
executabil și sursă, realizate de mine în cadrul prezentei lucrări de licență.
Iași, Absolvent: [anonimizat]
_________________________
5 Cuprins
Introducere ………………………….. ………………………….. ………………………….. ………………………….. ……………. 8
Armata ………………………….. ………………………….. ………………………….. ………………………….. …………………….. 8
Generalități despre aplicație ………………………….. ………………………….. …………………………. 8
Modularizarea aplicației ………………………….. ………………………….. ………………………….. …………… 9
Interfață, funcționalitatea și tehnologiile folosite ………………………….. ………………… 18
Front -end: Descriere și tehnologii folosite ………………………….. ………………………….. … 18
Back -end: Descriere și tehnologii folosite ………………………….. ………………………….. …. 38
Baza de date: Descriere și tehnologii folosite ………………………….. ……………………….. 38
Testarea securității ………………………….. ………………………….. ………………………….. ……………………… 43
Criptarea datelor ………………………….. ………………………….. ………………………….. ……………………….. 43
Îmbunatățiri și concluzii ………………………….. ………………………….. ………………………….. ……………. 45
Bibliografie
6 Introducere
De-a lungul anilor, progresele înregistrate în capacitatea militara au
fost alimentate de inovație. Toate domeniile armatei au r eușit să
folosească tehnologia în cele mai creative moduri pentru a câstiga teren
împotriva inamicilor. [1]
Războaiele ultimilor ani au expus lipsa de inovație pe care o au
sistemele militare si a forțat armata doar să anticipe reacțiile inamicilor,
în loc sa fie siguri de posibile atacuri. Criticii au cerut guvernelor să
înceteze să cheltuie banii pe proiecte stiințifice care vizeaza posibile,
ipotetice războaie , ci să se focuseze pe sisteme care sunt necesare
forțelor de munca.
Consider că o idee inovativă pe care ar putea -o aduce armata ar fi
folosirea unei aplicații de gestiune a logisticii în bazele militare ce servește
atât la gestiunea elementelor cât și la prevenirea golirii stocului deoarece
se asigură o motitorizare mai bună.
La ora actuală, pentru noțiunea de logistică nu există o definiție
unanim acceptată, cateva dintre definiții fiind prezentate î n continuare:
European Logistics Association definește conținutul noțiunii de logistică, prin
organizarea, planificarea, controlul și desfășurarea fluxurilor de bunuri de la
concepție, aprovizionare până la producția și distribuția către clientul final cu
satisfacerea exigențelor pieței cu un cost minim.
Din punctul de vedere al Asociației Logisticienilor din Franța, logistica
reprezintă ansamblul activităților având ca scop punerea în operă, la cel mai
mic cost, a unei cantități determinate dintr -un produs, la locul și la momentul
când există o cerere. Logistica privește, deci, toate operațiile vizate:
localizarea uzinelor și a antrepozit elor, aprovizionarea, gestiunea fizică a
producției, a ambalajului, stocajul și gestiunea stocurilor, pregătirea și
administrarea comenzilor, transporturile și manipularea.
7 Altă definiție a logisticii este și cea dată de către Sole Society of Logistic
Engi neers, care o abordează ca tehnică și, în același timp, o știință care susține
realizarea obiectivelor societății, programarea și urmărirea acestora; este
necesară pentru management, engineering -ul și activitățile tehnice pe teme
cerute, proiectarea, aprov izionarea și conservarea resurselor. [2]
Aplicația mea este gândită pentru gestiunea logisticii dintr -o baza
militară, în cadrul forțelor armate US Army. În cadrul forțelor armate
americane, există 10 clase de provizii. Acestea sunt clasificate după un
numar variat de caracteristici: costul, nivelul de deteriorare, consumul,
viitoare cereri. Această clasificare este realizată în așa fel încat categoriile
cu caracteristici asemănatoare sunt grupate împreuna. În tabelul de mai
jos, fiecare clasă are un con sumator, iar relația dintre consumator si
produsul consumat este liniara : cu cât mai multe trupe există, cu atât mai
multe provizii sunt necesare.
Istoria a arătat ca o bună planificare a logisticii crează o forță militară
mai bine structurată, productivă si eficientă .
Fig 1: Clasele de proviz ie
8 Capitolul I – Armata
Așa cum am precizat mai sus, logistica într -o baza militară reprezintă
disciplina ce se ocupă cu managementul bunurilor (materii prime,
armament, pachete).
I.1. Generalități despre aplicație
Aplica ția dezvoltată este gândită pentru a veni în ajutorul bazelor
militare, în special celor din Afganistan, prin punerea la dispoziție a unor
servicii ce se ocupă atât cu partea de gestiune a logisticii ( în principal cu
alimentele consumate d e către cadrele militare ), cât și cu partea de
alarmare în caz de anumite neclarități, dezastre, etc.
Am pornit de la ideea că aplicații de gestiune a produselor există dar
contribuția mea constă în adăugarea statisticilor ce raportează cantitățile
de al imente din baza de date la numărul de soldați aparținând bazei
militare, și deasemenea, modulul de notificare în timp real în caz de
calamități naturale, bombardări ale bazei militare.
După ce va fi notificat utilizatorul aplicației , acesta va ști că va t rebui
aprovizionare imediată a cantităților.
9 I.2. Modularizarea aplicației
Fig 2: Diagrama modulelor
1. Modulul de înregistrare
Utilizatorii aplicației sunt oamenii inginerii de sistem ce se vor ocupa
cu gestionarea logisticii, însa aceștia vor trebui sa furnizeze anumite date
personale (o poza, nume, prenume, CNP, naționalitatea și ziua de
naștere ) astfel încat sa li se poată emite un card de acces unic si
personalizat pentru intrarea în sistem.
Înregistrarea unui utilizator se va putea face doar de către
administrator.
Naționalitațile fiind variate, fiind vorba de o bază militara din
Afganistan, nu voi putea avea un format standard al CNP – ului (Cod
Numeric Personal ), deoarece fiecare stat are formatul propriu de cod
numeric ( spre exemplu, în România, acesta trebuie să fie format din 13
10 cifre, 0 litere, fiecare grup de cifre reprezentând câte ceva ). CNP – ul va fi
denumit în aplicația mea “National Identification Number ”-NIN.
După ce acesta își introduce datele personale, se constru iește un ID
unic ce se va salva în baza de date și va servi la logarea în sistem. Acest ID
este de forma: naționalitate+ primele 2 litere din nume + un numar
random format din 3 cifre + primele 2 litere din prenume + ultimele 2 cifre
din CNP + un numar random format din 3 cifre.
Am ales această formă de ID deoarece conține informațiile
personale ale fiecărui utilizator, ce sunt unice, dar și folosirea numerelor
de tip random pentru preveni o posib ilă aflare de informații și alcă tuire de
ID.
Odată ce acest ID este format, se emite un cod QR ce va servi la
logarea în sistem. Pentru un plus de securitate, se va cere și codul
numeric personal , în caz ca o alt ă terță va încerca să pătrundă î n sistem cu
codul QR al persoanei în cauză.
2.Modulul de logare
Odată ce utilizatorul are codul QR pentru a intra în sistem, acesta va
folosi modulul de logare pentru a se loga și pentru a putea folosi aplicația.
Aplicația va scana codul QR, va transforma codul din imagine în text
și va compara cu ID –ul din baza de date. Dacă acesta corespunde cu un
ID din baza de date,și deasemenea, codul numeric personal corespunde
cu un cod numeric personal din baza de date, logarea este făcută cu
succes.
Codul QR este o matrice de coduri de bare, un cod
bidimensional.Am ales folosirea codului QR deoarece acesta poate stoca
un număr de maxim 7.089 caractere numerice și 4.296 de caractere
alfanumerice și pentru o mai buna lizibilitate a unui număr mare de
caractere, ID – ul în cazul aplicației. Un dezavantaj al folosirii codului QR
11 este acela că acest cod poate fi decodat cu orice dispozitiv, existând
numeroas e aplicații pentru decodificare, dar, cum am spus mai sus,
pentru un plus de securitate, se va cere ș i codul numeric personal.
3. Modulul de afișare a produselor
Odată pătruns în sistem, utilizatorul aplicației poate accesa modulul
de produse. Acesta poate fi accesa t din pagina principală, adică din
Control Panel ( panoul de acces ).
Acest modul ofer ă atât posibilitatea de a afișa produsele din baza de
date dar și de a adăuga și șterge produse.
Adăugarea de produse oferă doua posibilități: aceea de a adăuga un
produs nou, care nu face parte din baza de date, și aceea de a adăuga
doar cantitatea dintr – un produs, cunoscându -se doar identificatorul
produsului, NSN(NATO Stock Number) [3].
NSN -ul reprezintă un cod unic format din 13 caractere, cifre, folosit
la identificarea materialelor de aprovizionare.
Fig 3: Structura codului NSN1
NSN -ul este format din FSC (Federal Supply Classification Group ) și
NIIN( National Item Identification Number ). Pentru a identifica produsul se
1 Nato Stock Number
12 poate folosi doar NIIN – ul dar se adauga si FSC pentru a adauga produsul
într-o categorie. NSN -ul este folosit pentru catalogarea în baza de date
ISIS.
Federal Supply Classification Group reprezintă modul de grupare a
produselor în categorii pentru a fi mai ușor de gestionat.
NIIN ( format din nouă cifre ef-ghi-jklm ) este folosit pentru
identificare. Grupul de litere EF reprezintă țara de codifică produsul
pentru prima dată, iar celelalte 7 caractere reprezintă cod de identificare.
Atunci când utilizatorul aplicației va adăuga un nou tip de produs în
baza de date, acesta trebuie să știe anumite date de identificare pentru
produsul respectiv (vezi tabel ).
Atunci când utilizatorul aplicației va dori să actualizeze cantitatea de
produs, acesta va trebui să știe codul unic de identificare a produsului,
NSN, pentru a putea fi găsit în baza de date.
Pe pagina de produse, vor fi afișate toate produsele din baza de
date, vor putea fi făcute sortări, filtrări. Pe pagina principal, fiecare
produs va avea o descriere s uccintă a lui, aceasta cuprinzând: o poză,
numele, cantitatea și o mică descriere, urmând ca pe pagina destinată
produsului să fie prezentat acesta la o scară mai largă.
Deasemenea, acest modul va cuprinde și o pagină destinată
pachetelor ( MRE ) ce urmea ză a fi distribuite soldaților . Se va face o
descriere a fiecărui pachet, ce con ține fiecare dar și o statistică a
distribuției pachetelor în funcție de personalul din baza militara.
Aceste pachete se primesc sigilate și deja formate astfel încât sa
poat ă fi servite personalului. În funcție de preferința fiecărui soldat, se
vor calcula cantitatea necesară, astfel încât să nu se ajungă la situația în
care această cantitate să nu ajungă.
13 MRE(Meal, Ready -to-Eat) [4] este rația individuală primită de fiecare
membru al bazei militare pentru a fi folosite atunci când sunt deplasări și
nu este disponibilă nicio altă sursă de alimentare, cum ar fi cantina.
În general, fiecare pachet MRE poate conține [5]:
Aperitiv
Garnitu ră
Desert sau Snack
Paine
Plic de băutură (limonadă,băutură pe bază de fructe, ceai )
Tacâmuri
Sistem de încălzire fără flacără
Shake
Accesorii :
Gumă de mestecat
Cutie de chibrituri rezistentă la apă
Șervețel uscat/ umed
Condimente (sare, piper, zahăr )
Aplicația este menită tocmai pentru a evita situațiile descrise mai
sus, cât și pentru a alarma superiorii în caz de producere a unor tragedii.
Atunci când utilizatorul dorește a șterge un tip de produs din baza
de date, deoarece acesta nu mai este în folosință, ori dorește a modifica
doar cantitatea produsului, în caz de aprovizionare, sau de folosire a
produselor, acesta va folosi secțiunea destinata acestei operațiuni.
Individul va trebui să știe codul de identificare a produsului, NSN -ul
pentru a pu tea face mai ușoară căutarea în baza de date.
14 Nume Descriere
FIIG Cod ce indică ghidul federal de identificare a elementelor.
INC Un număr de 5 cifre asociat fiecărui item de către serviciul de
informații și apărării a logisticii. Itemii ce nu sunt ap robați de
către minister le sunt asignate numărul “77777”.
Critically Un cod ce indică dacă un element este critic din punct de
vedere tehnic, nuclear, sau alte caracteristici ce afectează
identificarea lui.
Type_II Cod ce indică tipul de identificare federală.
Demil Cod ce identifică dacă un element are nevoie de
demilitarizare ( procesul de reducere a armatei ) și tipul de
demilitarizare necesară.
Date Data când i s -a asignat unui item codul de identificare (NSN).
ESD Un cod format dintr -un singur caracter ce indică dacă un
element este predispus la descărcări electrice.
PMIC Cod care identifică dacă produsul conține metale prețioase în
componența lor.
ADPEC Cod ce identifică dacă produsul este echipament pentru
procesare de date în mod automat (ADPE).
HMIC Cod pentru a determina dacă un produs este un pericol
pentru siguranța utilizatorilor.
HCC Cod de două cifre folosit pentru stocare : pentru a fi siguri c ă
elementele cu riscuri incompatibile nu sunt așezate unele
lângă altele.
ENAC Cod ce identifică elementele asemănatoare
Cage Cod folosit pentru a identifica datele în sistemul federal
Part Number Cod, altul înafara de numărul de stoc, folosit pentru a
identifica produsul în producție .
Stat Condiție specifică codului CAGE.
RNCC Un cod care indică raportul dintre numărul de referință la
elementul de furnizare.
RNVC Cod ce indică dacă numărul de referință este de identificare
sau doar de informare.
DAC Cod ce stabilește tipul și disponibilitatea documentației
tehnice.
RNAAC Cod ce reflectă confirmarea apartenenței unei documentații.
SADC Un cod care desemnează serviciul militar sau agenția care a
luat decizia de a raporta un număr de referință de logistică la
un număr național de stoc.
MSDS Identificatorul unic generat de calculator, atribuit
înregistrărilor în sistemul de informații a materiale
periculoase (HMI -uri).
MOE Un cod care reprezintă subdiviziunea unei organizații
15 guvernamentale sau o unei agenții a nord națiunilor
Organizația Tratatului Atlanticului, altei gu verne prietene și
organizațiile internaționale care participă la programul
catalog federal.
USC Un cod folosit pentru a diferenția serviciile, managerul de
materiale integrate, serviciile de plumb și de gestiune a
datelor unei agenții civile.
AAC Cod ce indică modul și în ce restricții va fi un produs
achiziționat.
SOS Cod ce identifică sursa de aprovizionare folosită în rețeaua
digitală automată.
UI Cod ce indică tipul de măsurătoare folosită pentru calculul
unitălții.
Unit Price Prețul standard al unității de măsurare stabilită de comisia
administrativă.
QUP Un cod care indică numărul de unități de ieșire în pachetul
unitar, stabilit prin activitatea de administrare.
CIIC Cod ce indică gradul de securitate (clasa ).
SLC Un cod care indică perioada de timp de depozitare sau
perisabilității unui element.
MGT CTRL Un lanț coduri de management utilizate de către Statele Unite
forțele armate pentru a desemna controale care sunt
esențiale pentru funcționarea cu succes a sistemelor forțelor
armate specifice.
REP Cod ce indică gradul de recuperare a unui produs în caz de
dezastru.
4.Modulul de notificare
Să presupunem următorul scenariu : logistica este atacată, însă
responsabilul de sistem nu știe asta deoarece nu este disponibil la
momentul curent . Voi avea nevoie de un sistem de alarmă imediat
deoarece o gestiune eronată a logisticii pune în pericol soldații din acea
bază militară.
Modulul de notificare vine în ajutor ul alarmării responsabilului
aplicației prin punerea la dispoziție a unor notificări de sistem când
cantitatea de produse din baza de date este critică, atunci când doar un
produs are o cantitate insuficientă.
16 Sistemul de notificare alarmează, deasemenea, atunci când este
preconizat un atac asup ra bazei militare, astfel încat responsabilul de
sistem să poată anunța superiorii despre aceste posibile atacuri.
Din cadrul acestui modul fac parte și statisticile asupra cantitaților
de produse existente în baza de date. Vor apărea niște grafice pentru a
soluționa parcurgerea produselor, cantitatea lor fiind pusă pe categorii,
ROȘU – cantitate critică, GALBEN – cantitate alarmantă iar VERDE – cantitate
normal ă.
Aceste statistici vor fi calculate în funcție de numărul de soldați
înregistrați în baza milit ară.
5.Modulul de afișare a soldaților
Din panoul principal se poate accesa și modulul de afișare a
soldaților. Este necesară o stocare a soldaților în baza de date pentru a
putea întocmi statisticile asupra cantităților produselor, aceste statistici
fiind necesare modulului de notificare.
Utilizatorul aplicației va avea la dispoziție 3 operațiuni care aparțin
acestui modul : adaugarea soldaților, stergerea soldaților și deasemenea,
afișarea soldaților.
Atunci când utlizatorul dorește să adauge noi sol dați, acesta trebuie
să știe despre respectivii indivizi următoarele date : numele acestuia,
rangul(c ăpitan, sergent, locotenet, etc ), unitatea, ziua de naștere,
naționalitatea, domeniul și bineînțeles, o poză a acestuia.
Odată ce soldatul este adăugat î n baza de date, acesta poate fi afișat
în pagina ce conține profilele fiecărui soldat. Soldații vor putea fi
previzualizați dintr – o listă, urmând ca informațiile despre fiecare soldat să
poată fi accesate pe baza unui numar unic de identificare.
17 Ultima o perație, aceea de ștergere a soldaților, se va efectua dintr -o
pagină specială, pe baza numarului unic de identificare a fiecărui soldat.
Se vor șterge soldați atunci când aceștia nu mai aparțin de baza militară
din diverse motive : s-au retras, au parăsit baza militară, au căzut pe
front, etc.
18 Capitolul II – Interfață,
funcționalități și tehnologii folosite
Pentru implementarea efectivă a aplicației am folosit tehnologii
Web cum ar fi:
HTML
CSS & Bootstrap
Javascript & JQuery & Ajax
PHP pe parte de back -end
MySql pentru baza de date.
Am luat în considerare aceste tehnologii deoarece se pliază cel mai
bine pentru nevoile mele. Am nevoie ca aplicația să fie Web pentru a
putea fi accesată oriunde fără a fi nevoie de anumite condiții prealabile.
II.1. Front -end: Descriere și tehnologii
În princi piu, am folosit pentru interfață HTML, CSS și Javascript
pentru a putea expune elementele într-un mod vizual plăcut și pentru a
putea reprezenta elementele în mod grafic.
Acest lucru l -am putut realiza cu Javascript dinamic. Obiectele
primite de la back -end le -am parsat și am creat elemente HTML. Am
folosit Bootstrap combinat cu Jquer y și Javascript pentru o interfață mai
prietenoasă.
Spre exempl u, am folosit funcția următoare ce îmi afișează un soldat
identificat în mod unic cu ajutorul codului unic : service number. Dup ă ce
primește obiectul de la back -end, acesta sub formă de obiect JSON,
folosește datele și construiește tabelul.
19
function sho wSoldier() {
var query = getString()['serviceNumber'];
$.ajax({
url: "soldiers/getSoldier",
type: "GET",
data: {
serviceNumber: query
},
dataType: 'json',
success: function(data) {
var d = data[0];
$("#soldierImage").attr('src', d.image);
$("#table_details tr:first -child td:nth -child(2)").html(d.name);
$("#table_details tr:nth -child(2) td:nth -child(2)").html(d.service_number);
$("#table_detail s tr:nth -child(3) td:nth -child(2)").html(d.rank);
$("#identification td:first -child").html(d.unit);
$("#identification td:nth -child(2)").html(d.date_of_birth);
$("#identification td:nth -child(3)").html(d.nationality);
$("#i dentification td:nth -child(4)").html(d.branch);
}
});
}
După acestă prelucrare, pagina de afișare a soldatului va arata
astfel :
Fig 4: Pagina de afișare a unui cadru militar
20 II.1.1 Mock -upurile ecranelor
Ecranele fiecărei pagini au fost realizate mai întâi sub formă de
mock -up pentru a -mi forma o idee despre cum va arăta aplicația.
Fig 5 : Mock -up pentru pagina de login
Fig 6 : Mock -up pentru pagina principală
21
Fig 6 : Mock -up pentru pagina de afi șare a tuturor produselor
Fig 7 : Mock -up pentru afi șarea unui singur produs
22
Fig 7 : Mock -up pentru afi șarea diagramelor
II.1.2 Interfața cu utilizatorul
După cum am precizat mai sus, logarea se face pe baza unui cod QR
[12] unic pentru fiecare utilizator, iar în funcție de rolul pe care acesta îl
are, apare meniul.
Fig 8 : Pagina de logare
23 În sistem, sunt diferențiate 3 tipuri de utilizatori : administratorul ce
are control absolut, responsabilul de cantină și produsele ce se folosesc
acolo și responsabilul de pachetele MRE ce se repartizează soldaților
plecați pe câmpul de luptă.
Administratorul are control absolut asupra tuturor operațiilor din
sistem, are acces la toate modulele aplicației : modulul de produse,
modulul de soldați, modulul de pachete și cel de observații, statistici și
notificări.
Fig 9 : Pagina principală
Acesta are, deasemenea, acces la contul său personal, și ce este mai
important, acesta poate adăuga un nou utilizator , cum ar fi responsabilii
de la cantină si pachete MRE.
24
Fig 10 : Pagina de adăugare a unui utilizator
După înregistrarea unui utilizator, se va genera un cod QR unic, pe
baza ID -ului criptat ce se va folosi la logare de către fiecare utilizator.
Fig 11 : Codul QR generat
25 Responsabilul cu produsele din cantină poate doar să introducă ce
cantitate s -a folosit în ziua respectivă, la fiecare masă. Acesta introduce
doar cantitatea de produse consumată la masa respectivă.
În caz de actualizare a cantității și aprovizionare, se ocupă
administratorul.
Fig 11 : Pagina principal ă a responsabilului de cantină
Responsabilul cu pachetele MRE știe câți soldați sunt pe câmpul de
luptă în fiecare zi și îi aprovizionează cu cantitatea necesară de pachete.
Fiecare soldat primește câte un pachet MRE zilnic atunci când este pe
câmpul de luptă.
Fig 12 : Pagina principal ă a responsabilului de pachete
26 Modulul de produse conț ine multiple operații cum ar fi : afișarea
tuturor produselor din baza de date, afișarea unui singur produs, oferă
posibilitatea unor acțiuni cum ar fi : adăugare și ștergere de produse,
modificarea cantității.
Pe pagina de listare de produse, se află doar unele informații utile
despre produs cum ar fi : imaginea, numele, cantitatea și o mică
descriere, urmând ca atunci când se afișează pagina principală a
produsului, să se afișeze mai multe informații. Acestea sunt construite pe
baza de tabele, pentru o mai bună organizare a informației si pentru un
mod mai simplu de urmarire a datelor.
Fig 13 : Pagina de afișare a produselor
27
Fig 1 4: Pagina de afișare a unui produs
Administratorul aplicației are posibilitatea de adăugare /ștergere de
produse, modificare a cantității pe baza codului unic de identificare, NSN.
Pentru a adăuga un produs, acesta trebuie să știe o serie de informații
pentru fiecare item nou adăugat. Pentru a șterge produsul, trebuie să știe
doar codul de identificare.
28
Fig 15 : Pagina de adăugare a unui produs
Fig 16 : Pagina de ștergere a unui produs
Pentru a modifica informațiile produsului, administratorul are
posibilitatea de a adăuga o cantitate, în caz de aprovizionare sau de a o
29 modifica în caz de un atac asupra ba zei militare. Ca mai sus, acest trebuie
doar să știe codul unic de identificare.
Fig 17 : Pagina de modificare a cantității
Modulul de soldați este folosit pentru gestionarea numărului de
soldați aflați atât în baza militară cât și pe câmpul de luptă. Afișarea
soldaților se face sub forma unor liste ce conțin informații despre fiecare
soldat cum ar fi: imagine, nume și rang, urmând ca mai apoi să se afișeze
anumite detalii pe baza codului unic de identificare : service number.
30 Fig 1 8: Pagina de afișare a soldaților
În acest modul sunt deasemenea incluse anumite operații ce le
poate face administratorul, cum ar fi : Adăugare și ștergere de soldați, pe
baza codului de identificare.
Fig 1 9: Pagina de ștergere a unui soldat
Fig 20: Pagina de adăugare a unui sold at
31 Administratorul poate actualiza ce soldați se află pe câmpul de lupta
si poate vedea statusul fiecărui cadru militar.
Fig 21 : Pagina de modificare a statutului cadrului militar
Acesta trimite cadrele militare pe câmpul de luptă sau le poate aduce de
pe câmpul de lupta, pe baza unor rapoarte primite de la cei responsabili.
Modulul de pachete MRE conține afișarea produselor, cât și statistici
pentru conținutul bazei de date.
Pentru fiecare pachet se afișează conținutul și cantitatea, urmând ca
pe baza numărului de soldați din baza militară, să se facă o atenționare
asupra cantității, acestă atenționare fiind explicată în legendă. [11]
Consider că acestă reprezentare este mai u șor de urmărit pentru
atenționarea asupra cantității.
32
Fig 22 : Pagina de afișare a pachetelor
Există deasemenea posibilitatea filtrării pachetelor după anumite
specificații.
33
Fig 23 : Pagina d e filtrare a unui pachetelor
Să presupunem că se schimbă tura iar utilizatorii nu au reusit să își
transmită unele observații, de aceea am construit o pagină special unde
se pot semnala anumite observații, acestea fiind reținute cu urmatoarele
informații: numele utilizatorului (în caz de neînțelegere, să se știe unde se
apelează), modulul unde se adresează neregula, data și descrierea.
Utilizatorul current are posibilitatea de a șterge observația dupa ce acesta
s-a ocupat de rezolvarea sa.
34
Fig 24 : Pagina de observații
În cele din urmă, am construit o pagină de statistici pe baza
actualizărilor cantităților. Atunci când un utilizator actualizează cantitatea
unui produs, aceste acțiuni se salvează într -o tabelă specială pentru
istoric.
Statisticile pentr u modulul de pachete sunt afișate sub forma unor
diagrame organizate după numele pachetelor și după anumite date
calendaristice.
Statisticile pentru modulul de produse sunt afișate sub forma unor
diagrame organizate după anumite date calendaristice.
35
Fig 25 : Afișarea statisticilor pachetelor/ data
Fig 26 : Afișarea statisticilor pachetelor/ nume
36
Fig 27 : Afișarea statisticilor produselor / data
Aceste diagrame sunt construite cu Google Charts [13], pe baza unor
date preluate de la back -end. Am considerat că se pot vizualiza mai bine
aceste diagrame dacă nivelul de consum este exemplificat sub forma unor
culori cum ar fi : roșu pentru a atenționa că s -au consumat puține
produse, galben că există o anumită atenționare iar verde pentru a
anunța că acestă cantitate este normală.
37
Fig 28 : Cod pentru formarea diagramelor
În modulul de pachete și atenționări intră și notificările de sistem
primite de la aplicație. Aceste notificări sunt connstruite cu HTML5 [10] și
au suport, în principiu , pe orice sistem de operare și browser. Aceste
atenționează atunci când cantitatea dintr -un anumit produs a ajuns la un
punct limită. Acestă atenționare se realizează pe baza unei conexiuni
permanent deschise cu serverul, prin AJAX Pol ling și Comet.
Fig 29: Afișarea notificărilor
38
Mesajul se formez ă din numele fiecărui produs care întrunește
condițiile de a fi afișat în notificare ( are cantitatea îngrijorătoare) și
cantitatea propriu -zisă.
Fig 30 : Afișarea notificărilor
39 II.2. Back -end: Descriere și tehnologii
Partea de back -end are rolul de a transmite date într -un format
specific părții de front – end, pentru ca acesta mai apoi să se poată folosi
de aceste date pen tru a le transmite utilizatorului aplicației.
După ce datele sunt preluate din baza de date, acestea sunt
returnate sub format JSON pentru ca partea de client să le poată citi mai
ușor.
Fig 31 : Diagrama pentru flow -ul aplicației
Patternul folosit pentru implementarea aplicației este MVC.Acesta
este format din 3 părți :
Modelul
care conține lucrul cu baza de date
manipulează operațiunile logice și de utilizare de
informație
View
care se ocup ă cu interfața vizuală
interfața grafică ce interacționează cu utilizatorul
final
40 Controlerul
care decide ce se afișează pe pagină și care
include view -ul și modelul.
Pot fi fișiere, scripts sau programe, in general orice
tip de informație permisă de interfață.
Spre exemplu, pentru modulul de Login, este reprezentat mai jos
comportamentul MVC -ului.
Fig 32 : Structura MVC a modulului de logare
Modelul este clasa User, care conține proprietățile afișate mai sus,
având metodele GetUserByNIN , pentru verificarea apartenenței NIN 2la
un user, și GetUserById , pentru verificarea dacă un id -ul QR corespunde
unui user.
2 nin=numeric identification number (numărul de identificare a unei persoane)
41 View -ul LoginView se ocupă cu preluarea datelor de la utilizator și
conține metoda doLogin pentru a face logarea efectivă, iar controllerul
are rolul de a lega modelul de view.
42 II.3. Baza de date
Pentru ba za de date am folosit MySql database. Am ales folosirea
acestei baze de date deoarece presupune o serie de avantaje față de
celelalte sisteme de gestiune a bazelor de date.
Cel mai mare avantaj al aceste baze de date este acela că este open –
source, și în același timp, scalabilă. Aceasta poat e deține cantități imense
de date, cantitatea inițială fiind de 4GB, iar acesta poate crește până la
8TB.
Baza de date MySql are suport oferit de comunitate oferit oriunde.
Deoarece baza de date a fost open -source, s -a dezvoltat o mare
comunitate de developer ce pot s ări în ajutor oricând. [7]
Accesul pe serverul de baze de date se poate face prin intermediul
utilitarelor de gestiune a bazelor de date, în cazul meu, PHP My Admin.
Fig 33 : Baza de date
Baza de date este formată din 8, unele legate în tre ele prin relații
one-to-one, one -to-many, many -to-one.
43
Fig 34 : Structura bazei de date
Așa cum se observă în schema, tabela item este legată de tabela
historyProduct prin relație many -to-one, deoarece tabela historyProduct
poate conține mai multe obiecte de tip item. La fel și tabela soldiers de
tabela soldiersOnTheBattleField , deoarece tabela
soldiersOnTheBattleField poate conține mai multe obiecte de tip
soldiers. În cele din urmă, tabela historyMre poate conține mai multe
obiecte de tip pack .
44 Capitolul I II – Testarea securității
Aplicațiile web dezvă luie anumite caracteristici care trebuie luate în
considera re la proiectarea functionalităților de securitate și care solicită
mai multe tehnici de securitate, comp arativ cu alte tipuri de aplicaț ii.
Fig 35 : Securitatea mesajelor
Figura ilustrează diferite aspecte legate de secur itate, care de obicei,
se aplică în cazul asigurării unei aplicații Web de către un furnizor de
servicii ș i invocarea acesteia, printr -un client.
II.1. Criptarea datelor
Fiecare utilizator are asociat un ID unic, având structura următoare:
: naționalitate+ primele 2 litere din nume + un numar random format din
3 cifre + primele 2 litere din prenume + ultimele 2 cifre din CNP + un numă r
random format din 3 cifre.
Pe baza acestui ID se formează codul QR necesar logării. Odată ce s –
a descoperit algoritmul de formare a ID -ului și datele personale ale
utilizatorului, este foarte ușor de pătruns în sistem.
Un plus de securitate, pe lângă modul de formare a codului o dă
faptul că acest ID este criptat. Algoritmul folo sit este numit BCRYPT [8].
45 Este un funcție hash3 care este scalabilă cu sistemul hardware și înceată
ceea ce face ca atacatorului să îi ia mult timp si resurse pentru a putea
sparge sistemul. [9]
Bcrypt folosește algoritmul Eksblowfish pentru a face hash. Chiar
dacă faya de criptare a Eksblowfish si a Blowfish sunt la fel, Eksblowfish
asigura că orice stare ulterioară depinde de cheie și salt4.
Pentru a putea folosi acest algoritm, voi avea nevoie de librării
speciale scrise în PHP pe care le includ în proiect.
Fig 36 : Includerea librăriilor de criptare
După ce am inclus librăriile în proiect, urmează partea de criptare
propriu -zisă în care se folosește algoritmul Bcrypt .
Fig 37 : Criptarea datelor
3 În sens matematic , funcțiile hash (clasă de funcții denumite în lucrări de specialitate și funcții de dispersie sau funcții
de rezumat ) sunt funcții definite pe o mulțime cu multe elemente (posibil infinită) cu valori într -o mulțime cu un
număr fix și mai redus de elemente.
4 Data random folosită pentru funcția hash ca o dată de intrare adițională
46 Concluzii și provocări
Așa cum am spus și în introducere, armata ocupă un loc important
în securitatea fiecărui stat iar asigurarea unei gestionări propice a logisticii
bazei militare face ca lucrurile din acea bază militară să funcționeze mai
rapid și ordonat.
Văzând produsul final, aplicația, consider că acesta diminuează
drastic gestionăril e de material într -o bază militară, deoarece oferă
posibilitatea lucrării în aceasă aplicație a multipli tipuri de utilizatori, de la
administrator la responsabil de cantină și responsabil de pachete MRE.
Deasemenea, consider că ar putea exista loc de anu mite
îmbunătățiri pentru ca aplicația să devină un adevărat sistem de
alarmare :
aș putea adăuga modulul de notificare a superiorilor, prin
email sau telefon
adăugarea a mai multor tipuri de diagrame, eventual cu
semnalări atunci când se consuma prea puțin , pentru a putea
observa ce este în neregulă
adăugarea mai multor module de gestiune
Consider că lucrarea și -a atins scopul final, acela de a crea gestiunea
logisticii militare și de semnalare în caz de nereguli. Acestă aplicație mi -a
scos în cale multe provocări reușind, mai mult sau mai puțin, să le rezolv,
și deasemenea am învățat multe lucruri noi ce consider că îmi vor fi de
ajutor în cariera profesională.
47 Bibliografie
[1] Eric Beidel ,10 Technologies the U.S. Military Will Need For the
Next War
o http://www.nationaldefensemagazine.org/archive/2011/nove
mber/pages/10technologiestheusmilitarywillneedforthenextw
ar.aspx
[2] Conceptul de logistică
o http://conspecte.com/Logistica/conceptul -de-logistica.html
Military logistics
o https://en.wikipedia.org/wiki/Military_logistics
[3] NATO Stock Number
o https://en.wikipedia.org/wiki/NATO_Stock_Number
[4] Meal, Ready -to-Eat
o https://en.wikipedia.org/wiki/Meal,_Ready -to-Eat
[5] Brand New, Sealed Case of Military MREs (Meal, Ready -To-Eat)
o https://www.campingsurvival.com/brnesecaofmi2.html
[6] Programarea in stilul MVC
o http://www.tutorialeonline.net/ro/article/programarea -in-
stilul -mvc
[7] Five Advantages & Disadvantages Of MySQL
o https://www.datarealm.com/blog/five -advantages –
disadvantages -of-mysql/
[8] How do you use bcrypt for hashing passwords in PHP?
o http://stackoverflow.com/questions/4795385/how -do-you-
use-bcrypt -for-hashing -passwords -in-php/6337021#6337021
48 [9] Funcție hash
o https://ro.wikipedia.org/wiki/Func%C8%9Bie_hash
[10] HTML5 -Desktop -Notifications
o https://github.com/ttsvetko/HTML5 -Desktop -Notifications
[11] Military Meal Ready -to-eat (MRE's) by the Case
o http://www.montanaarmynavy.com/Military -Meal -Read y-to-
eat-MREs -by-the-Case -P1261.aspx
[12] PHP QR Code
o http://phpqrcode.sourceforge.net/
[13] Google Charts
o https://google –
developers.appspot.com/chart/interactive/docs/gallery/barch
art
Pagination using PHP and Jquery
o http://www.9lessons.info/2010/10/pagination -with -jquery –
php-ajax-and.html
JQuery
o https://jquery.com/download/
[14] Douglas Crockford, JavaScript: The Good Parts, O’Reilly Media,
Inc, 2008.
Edmond Woychowsky,Ajax Creating Web Pages with Asynchronous
JavaScript and XML , Safari, 2007
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: Lucrare de licen ță [616866] (ID: 616866)
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.
