Aplicație de gesti une a activității unei firme de transport marfă Coordonator Absolvent Sl.Dr.Ing. Alexandra – Suzana Cernian Bianca – Elena Ionesi… [618228]
Departamentul Automatică și Informatică Industrială
Facultatea Automatică și Calculatoare
Universitatea POLITEHNICA din București
LUCRARE DE DIPLOM Ă
Aplicație de gesti une a activității unei firme de
transport marfă
Coordonator Absolvent: [anonimizat].Dr.Ing. Alexandra – Suzana Cernian Bianca – Elena Ionesi
2020
2 Cuprins
Listă de figuri ………………………….. ………………………….. ………………………….. …………………… 3
Listă de tabele ………………………….. ………………………….. ………………………….. …………………… 4
1. Introducere ………………………….. ………………………….. ………………………….. ………………… 5
1.1 Context ………………………….. ………………………….. ………………………….. ……………….. 5
1.2 Motivația proiectului ………………………….. ………………………….. …………………………. 6
1.3 Scopul proiectului ………………………….. ………………………….. ………………………….. … 7
1.4 Conținutul lucrării ………………………….. ………………………….. ………………………….. … 7
2. Obiectivele proiectului ………………………….. ………………………….. ………………………….. .. 8
2.1 Obiectivul principal ………………………….. ………………………….. ………………………….. 8
2.2 Obiective specifice ………………………….. ………………………….. ………………………….. .. 8
2.2.1 Modularitatea aplicației ………………………….. ………………………….. ………………. 8
2.2.2 Asigurarea organizării interne ………………………….. ………………………….. ……… 9
3. Arhitectura și proiectarea ………………………….. ………………………….. ……………………….. 10
3.1 Arhitectura software ………………………….. ………………………….. ……………………….. 10
3.1.1 Arhitectura Client -Server ………………………….. ………………………….. ………….. 11
3.2 Proiectarea aplicației ………………………….. ………………………….. ……………………….. 12
3.2.1 Analiza afacerii ………………………….. ………………………….. ………………………… 13
3.2.2 Proiectarea aplicației ………………………….. ………………………….. …………………. 18
4. Implementarea și testarea aplicației ………………………….. ………………………….. …………. 27
4.1 Arhitectura specifică sistemului ………………………….. ………………………….. ………… 27
4.2 Nivelul de prezentare al aplicației ………………………….. ………………………….. ……… 28
4.3 Nivelul corespunzător bazei de date ………………………….. ………………………….. ….. 31
4.4 Crearea bazei de date ………………………….. ………………………….. ………………………. 32
4.4.1 Crearea unui tabel al bazei de date ………………………….. ………………………….. 34
4.5 Interfața cu utilizatorul ………………………….. ………………………….. …………………….. 39
4.6 Notificări ………………………….. ………………………….. ………………………….. …………… 49
5. Concluzii și de zvoltări ulterioare ………………………….. ………………………….. …………….. 51
Bibliografie ………………………….. ………………………….. ………………………….. …………………….. 52
3 Listă de figuri
Figura 1. Mărfurile transportate pe moduri de transport comparativ semestrul I al anilor
2018, 2019, conform [6] ………………………….. ………………………….. ………………………….. …….. 5
Figura 2. Structura arhitecturii client -server ………………………….. ………………………….. …….. 12
Figura 3. Modelul în cascadă ………………………….. ………………………….. …………………………. 13
Figura 4. Funcționare Web, conform [3] ………………………….. ………………………….. …………. 19
Figura 5. Modelarea datelor, conform [4] ………………………….. ………………………….. ……….. 22
Figura 6.Reprezentare caz de utilizare minimal ………………………….. ………………………….. .. 24
Figura 7. Reprezentare caz de utilizare Administrator ………………………….. …………………… 24
Figura 8. Reprezentare caz de utilizare – utilizator absolut ………………………….. ……………… 25
Figura 9. Diagrama de activități ………………………….. ………………………….. …………………….. 25
Figura 10. Descriere caz de utilizare : Descarcă factură ………………………….. ………………… 26
Figura 11. Modelul client -server pe două niveluri ………………………….. ………………………… 27
Figura 12. Pagina de login ………………………….. ………………………….. ………………………….. … 28
Figura 13. Meniu Administrator ………………………….. ………………………….. …………………….. 29
Figura 14. Xampp Control Panel ………………………….. ………………………….. ……………………. 31
Figura 15. Fereastra phpMyAdmin ………………………….. ………………………….. ………………… 32
Figura 16. Creare baza de date ………………………….. ………………………….. ………………………. 33
Figura 17. Diagrama de relații a bazei de date ………………………….. ………………………….. …. 33
Figura 18. Strucură tabel login_info din baza de date ………………………….. ……………………. 34
Figura 19. Structură tabel adresa din baza de date. ………………………….. ……………………….. 35
Figura 20. Pagina principală a aplicației ………………………….. ………………………….. …………. 39
Figura 21. Meniul editare comenzi ………………………….. ………………………….. …………………. 40
Figura 22. Meniul de adăugare a unei adrese ………………………….. ………………………….. …… 40
Figura 23. Meniu adăugare informații comandă ………………………….. ………………………….. . 41
Figura 24. Afișare comenzi ………………………….. ………………………….. ………………………….. . 41
Figura 25. Afișare tabelară comandă ………………………….. ………………………….. ………………. 42
Figura 26. Modificare adresă ………………………….. ………………………….. …………………………. 43
Figura 27. Informare utilizator date modificate cu succes ………………………….. ……………… 43
Figura 28. Opțiuni caută sau șterge o comandă ………………………….. ………………………….. … 44
Figura 29. Meniu editare facturi ………………………….. ………………………….. …………………….. 44
Figura 30. Opțiunea de descărcare a unei facturi ………………………….. ………………………….. 45
Figura 31. Format factură .DOC ………………………….. ………………………….. …………………….. 45
Figura 32. Căutare sau ștergere factură ………………………….. ………………………….. …………… 46
Figura 33. Prima secțiune a modulului editare camioane ………………………….. ……………….. 47
Figura 34. Modulul de generarea a rapoartelor ………………………….. ………………………….. … 47
Figura 35. Raport după numărul d e înmatriculare al camionului introdus …………………….. 48
Figura 36. Task Scheduler ………………………….. ………………………….. ………………………….. … 50
4 Listă de tabele
Tabel 1. Structură antet comandă ………………………….. ………………………….. …………………… 14
Tabel 2. Structură antet factură ………………………….. ………………………….. ………………………. 14
Tabel 3. Tabel camion din baza de date ………………………….. ………………………….. ………….. 35
Tabel 4. Structură tabel cheltuieli camion din baza de date ………………………….. ……………. 36
Tabel 5. Structura tabel date_comanda_transport din baza de date ………………………….. …. 36
Tabel 6. Structura tabel date_companie din baza de date ………………………….. ……………….. 37
Tabel 7. Tabel factura din baza de date ………………………….. ………………………….. …………… 37
Tabel 8. Tabel întreținere din baza de date ………………………….. ………………………….. ………. 38
Tabel 9. Tabelul reparații din baza de date ………………………….. ………………………….. ………. 38
Tabel 10. Tabel semiremorca din baza de date ………………………….. ………………………….. … 38
Tabel 11. Tabel șofer din baza de date ………………………….. ………………………….. ……………. 39
5 1. Introducere
Dezvoltarea tehnologiilor și a limbajelor de programare introduc, în majoritatea
domeniilor, o creștere a cererii de sisteme automatizate pentru a eficientiza activitățile zilnice
realizate de resursa umană în cadrul unei întreprinderi sau pentru a crește performanța în
contextul unui cost redus.
Aplicațiile cu suportul unei baze de date sunt din ce în ce mai utilizate î n cadrul
companiilor mari sau mici datorită arhitecturilor bazelor de date și a scripturilor de
gestionare care încep să ai bă diferite abordări pentru a atinge scopul final cu succes.
1.1 Context
Evoluția tehnologiei atrage după sine conceptul că accesul rap id la informație și
actualizarea acesteia în timp real sunt, în momentul de față, indispensabile. Majoritatea
domeniilor de activitate, astăzi, înclină spre siguranța si versatilitatea unui sistem software
pentru a se asigura că totul este sub control și e ste urmărit scopul afacerii.
Domeniul transportului de mărfuri urmează această ascensiune a tehnologiei și se
dezvoltă din punct de vedere al reorganizării companiilor de transport ce lucrează în cadrul
marilor industrii de producție și transport al mărfu rilor.
Situația din România în primul semestru din 2019, conform INSSE (Institutul
Național de Statistică) [6] arată că t ransportul rutier de mărfuri a înregistrat o creștere cu
2,8% în ceea ce privește volumul mărfurilor transportate, comparativ cu seme strul I 2018.
Din totalul de 113.897 mii tone mărfuri transportate, 75,3% au fost înregistrate în transport
național, în creṣtere cu 4,2% față de semestrul I anul precedent. Parcursul mărfurilor a
crescut cu 1,2% comparativ cu semestrul I 2018, în transpor t național înregistrându -se o
creṣtere cu 12,8%.
Figura 1. Mărfurile transportate pe moduri de transport comparativ semestrul I al anilor
2018, 2019, conform [6] 6363711630395
6236584430030
0 5000 10000 15000 20000 25000 30000 35000FeroviarCăi navigabile interioareRutierParcursul mărfurilor pe moduri de transport
-milioane tone -km-
Semestrul I 2019 Semestrul I 2018
6 Pe cale rutieră au fost transportate 30.395 de milioane de tone de mărfuri pe
kilometru , o creștere cu 365 de tone comparând cu semestrul I al anului 20 18. Comparând
cu transportul feroviar și cel folosind căi navigabile interioare, transportul rutier se situează
pe locul 2 în topul creșterii numărului de tone de marfă transportată pe km.
Așa cum este prezentat în [ 6]: în transportul rutier internațional de mărfuri, 94,3%
din totalul mărfurilor descărcate au provenit din State Membre ale Uniunii Europene ṣi
93,7% din totalul mărfurilor încărcate au avut ca destinație State Membre ale Uniunii
Europene. Cele mai mari cantități de mărfuri au provenit din Germ ania (21,8%), Italia
(13,5%) și Ungaria (13,1%), iar în ceea ce priveṣte încărcările, 20,2% din volumul mărfurilor
au avut ca destinație Germania, 16,8% Ungaria și 12,4% Italia.
Germania este considerat ă partenerul cu cele mai însemnate ponderi în transpor tul
rutier internaṭional de mărfuri.
În concluzie, g estiunea transportului de mărfuri necesită atenție sporită și un
management capabil să îndeplinească toate condițiile impuse de creșterea volumului de
lucru : comenzile să fie efectuate la timp, facturile să fie emise la timp, transportul să fie
efectuat în condiții de siguranță etc .
1.2 Motivația proiectului
În urma unei analize a activităților unei companii de transport marfă din Suceava ce
lucrează în parteneriat cu o firmă de logistică din Germania , s-a constat at că timpul pierdut
pentru efectuarea activităților zilnice uzuale este destul de crescut datorită faptului că se
realiza în mod clasic, pe hârtie. Pe lângă acestea, multe activi tăți implică căutarea
informațiilor în arhive și efectuarea calculelor de mână . În final, s-a ajuns la concluzia că
majoritatea acestor procese pot fi ușor organizate într -un sistem automatizat, care să respecte
cerințele firmei și a partenerilor săi de af aceri .
Modul de organizare al companiei este permisibil, ceea ce determină ca toate
activități le să fie adaptate oric ărui tip de business în cadrul acestui sistem online. Necesitatea
unui astfel de sistem în cadrul companiilor de transport marfă , mai ales la început de drum ,
sau celor deja în funcțiune este de mare ajutor , reprezentând un suport software pentru
activități le de rutină ce sunt realizat e în dezvoltarea firmei.
Pentru a îmbunătăți situația multor afaceri la nivel de țară, performanțele acestu i
sistem ar fi de ajutor tuturor membrilor din cadrul afacerii. Proprietarul ar beneficia rapid de
acces la toate informațiile din cadrul firmei , la toate rapoartele acesteia pe intervale de timp,
ar avea acces în timp real la lista de comenzi și facturi, dar și la informațiile despre șoferi și
istoricul mașinii . Dispecerii ar realiza mai ușor activitățile zilnice de realizare a rapoartelor,
facturilor sau de a modifica informații despre comenzi. Partenerii externi de afaceri ar fi
avantajați în ceea ce pri vește timpul de răspuns al companiei de transport, ceea ce ar scădea
considerabil timpii morți de lucru în cadrul colaborării.
O confirmare și imbold spre un astfel de sistem l -a avut când am efectuat un interviu
cu proprietarul companiei de tran sport marf ă în scopul creării și dezvoltării aplicației
dedicată firmei lui.
7 1.3 Scopul proiectului
Tema lucrării este reprezentată de o aplicație web construită cu ajutorul limbaj elor
PHP, HTML, CSS și a bazei de date MYSQL pentru suportul software în gestionarea
activității unei companii de transport . Aplicația este construită în conformitate cu cerințele
clientului, reprezentat de o companie locală de transport marfă, subcontract ant al unei case
de expediții din Germania . Scopul aplicației este repre zentat de digitalizarea informațiilor
relevante , ușurarea modului de lucru și crearea unui istoric virtual în ceea ce privește
gestiunea documentelor firmei și realizarea unei bune organizări interne în cadrul companiei
printr -un sistem de alertă în cazul unor evenimente sigure.
1.4 Conținutul lucrării
În cele ce urmează se va prezenta pe scurt structura lucrării, capitolele și con ținutul
acestora. Ca precondiții, se presupune că atât compania de transport, cât și partenerii externi
posedă câte un calculator sau laptop cu conexiune la internet.
Capitolul 1 – Introducere – Acest capitol conține o scurtă prezentare a contextului
creării sistemul automatizat de gestiune a activității unei firme de transport și o scurtă
prezentare a domeniului din care face parte aplicația .
Capitolul 2 – Obiectivele proiectului – Se va face prezentarea și descrierea
obiectivului principal al proiectului, dar și obiectivele secundare care au fost propuse spre
îndeplinire de către sistemul de gestiune al activității firmei de transport .
Capitolul 3 – Arhitectura și proiectarea – Acest capitol conține s pecif icațiile și
cerințele necesar e dezvoltării și întreținerii aplicațiilor web , precum și noțiunile și
tehnologiile ce stau la baza dezvoltării aplicației.
Capitolul 4 – Implementarea și testare – Aici sunt structurate tehnologiile utilizate
în realizarea sistemului. Se va justifica folosirea tehnologiilor utilizate în sistem. Se vor
enunța cerințele funcționale și non -funcționale, si cazurile de întrebuințare ale acestora în
cadrul aplicației. Tot aici se vor dezvolta utilitarele folosite în pro iect, și se va prezenta în
detaliu aplicația și modalitatea de utilizare interfeței grafice, prin screenshot -uri și înfățișarea
unor scenarii de utilizare
Capitolul 5 – Concluzii și dezvoltări ulterioare – Aici sunt prezentate concluziile
realizării aplica ției și se vor prezenta sugestiv câteva dezvoltări ulterioare.
8 2. Obiectivele proiectului
Acest capitol va cuprinde descrierea detaliată a obiectivelor principale și secundare ale
proiectului realizat. Sistemul are ca scop general crearea unui apl icații suport pentru
gestionarea activităților unei firme de transport marfă, venind în sprijinul antreprenorilor de
mici și mari dimensiuni.
2.1 Obiectivul principal
Obiectivul primordial al acestei lucrări este de a defini o platformă informatică
centraliz ată pentru gestiunea activității unei firme de transport marfă , cu posibilitatea
introducerii de facturi, comenzi și informații despre domeniul de activitate al firmei
(camioane, șoferi ), vizualizării sau modificării istoricului activității firmei, conformarea
după ultimele cerințe ale firmei partenere, dispunând în acest sens de un modul de generare
a rapoartelor de activitate , facturilor sau comenzilor în timp real.
2.2 Obiective specifice
Un obiectiv general propus al acestei aplicații web de planificare a resurselor
întreprinderii este implementarea unui sistem integrat de management al ac tivității din
cadrul organizației, cu oferirea accesului rapid la informațiile din domen iul facturării,
comenzilor sau al resurselor companiei în funcție de anumite decizii luate de utilizator.
Platforma se va ocupa de gestiunea asupra întregii activități a firmei, elaborări de
rapoarte în funcție de un interval de timp, elaborarea document ațiilor de tip factură
(export are domcumente .DOC), calcul intrărilor și ieșirilor din firmă, date necesare pentru
facturarea sau efectuarea unor plăți din cadrul firmei, elaborarea și urmărirea activității
firmei pe parcursul mai multor ani în cadrul unei baze de date integrate , notificarea
utilizatorului prin e -mail pentru eventualele situații ce necesită atenție .
Totodată sistemul va oferi posibilitatea de autentificare și modificare a parolei.
Platforma dispune de un con t pentru suport rapid de la admi nistratorul platformei.
Fiecare acțiune pe care o face utilizatorul este ghidată ș i îl introduce prin toate
funcționalitățile principale ale sistemului, indicând utilitatea fiecărui instrument de lucru.
2.2.1 Modularitatea aplicației
Sistemul informatic oferă un suport integrat de module care îndeplinesc funcți ile de:
gestionare a documentelor necesare desfășurării activității firmei utilizatorilor conectați în
sistem, generarea raportul ui de activitate a angajaților firmei, o pțiunea de alertă prin e -mail
și o interfață grafică în limba română intuitivă.
9 Acest sistem de module funcționale reprezintă o soluție software destinată
gestionării, conducerii și managementului de informații ale unei companii dedicate în
domeniul transportului de marfă și faciliteaz ă accesul la orice tip de informație din baza de
date utilă folosită în desfășurarea activității de planificare, având capabilitatea de a procesa
în paralel un volum mare de date cu un răspuns instant , datorită tehnologiilor utilizate în
procesul dezvoltării aplicației.
Dispunând de o arhitectură modulară și o baz ă de date unică , bine structurată,
sistemul permite utilizatorilor autorizați lucrul online, folosind un browser web . Accesul se
face pe baza introducerii unui nume de utilizator , a unei adres e de email și a unei parole,
care au fost create de către utilizator .
2.2.2 Asigurarea organizării interne
Acest sistem oferă și acoperă o varietate de funcții esențiale care integrează toate
informațiile despre activitățile firmei, prin monitorizare a în timp real a datelor și proceselor
din domeniul de activitate al firmei. Sistemul simplifică și facilitează, de asemenea, fluxu l
de lucru prin:
• Garant area limit ării cantității de documente fizice (sub formă de hârtie), elimină
dublarea documentelor c e intră în firmă sau ies din firmă.
• Facilitarea întocmirii de documente ;
• Deținerea de informații centralizate într -o singură aplicație, actualizate în timp real,
utilizatorul va putea dispune de toate datele necesare pentru a lua decizii informate, ca re să
asigure o bună gestiune a situației.
• Oferirea unei viziuni în timp real a situației diferitelor situații companiei prin
notificările oferite prin serviciul de e -mail, care va permite luarea de decizii rapide și
eficiente;
Această platformă trebuie să suporte următoarele tipuri de utilizatori (care au acces
la meniuri diferite): administrator platformă, care poate modifica sau șterge credențialele de
login a celorlalți utilizatori și utilizator obișnuit.
10 3. Arhitectura și proiectarea
În acest capitol se vor prezenta și analiza conceptele de arhitectură ale aplicațiilor web
de tip client, integrarea platformei peste arhitectura utilizată, definirea cerințelor aplicației și
prezentarea legăturilor dintre module, astfel evidențiindu -se astfel avantajele tehnologiilor
folosite.
3.1 Arhitectura software
Conceptul de arhitectură software se definește în contextul unor păreri, opinii, însă
nu există un enunț clar. Analizând, sintagma „arhitectură software” este definită din doi
termeni : arhitectură – substantiv, definit ca „despre structură” și, verb, definind procesul de
a construi, de a forma viziunea din spatele planului de lucru potrivit. Deciziile trebuie să fie
luate având o bază solidă în ce rințe și specificații.
Conform [11], cuvântul în sine provine din limba latină architectura, provenit din
cuvântul grecesc arkhitekton , compus din arché (lider, șef, cel pe care se poate urma) și
cuvântul tekton ( făurito r, constructor, artizan, creator, planificator, maestru în domeniu) .
Definiții ale conceptului de arhitectură software:
Arhitectura software este definită de IEEE (Institute of Electrical and Electronics
Engineers ) ca fiind: organizarea fundamentală a unui sistem, înglobată în componentele
sistemului, în relațiile dintre acestea și în relațiile dintre componentele sistemului și mediul
înconjurător, precum și principiile care guvernează proiectarea și evoluția sistemului. [ 10].
Arhitectura software a unui program sau a unui sistem computațional este structura
sau setul de s tructuri ale sistemului ce constituie elemente software, proprietățile vizibile
extern ale acestor elemente și relațiile dintre ele [1]. Arhitectura definește elemente software.
Aceasta include informații relaționale despre elemente , mai precis relații la un nivel foarte
înalt. De aceea, informațiile de nivel mai jos, sunt omise automat, cât timp acestea nu
influențează interacțiunile dintre elemente.
Arhitectura reprezintă o vedere abstractizată a unui sistem. Interacțiunea dintre
elemente, în contextul sistemelor moderne este dată de interfețe, acestea partiționând
detaliile unui element în părți publice și private – cele publice ținând de latura arhitecturală
a sistemului [1].
Arhitectura este rezultatul unui set de decizii de afaceri și tehni ce. Schița (desing) în
momentul creării este influențată din mai multe părți, astfel și execuția va fi influențată de
schimbări în funcție de mediul din jur pe care arhitectul trebuie să îl cunoască [2].
O alt ă definiție din ace eași lucrare este : arhitectura software a unei aplicații sau
sistem este structura sau structura sistemelor, ce combină elemente de aplicații, proprietățile
vizibilității externe a acestor elemente și relația între ele [2].
În esență, c onform [ 8] arhitectura IT se define ște ca: arta sau știința schițării (design)
și arta de a livra strategie tehnologică utilă.
Scopul unei arhitecturi de software diferă în funcție de necesitățile și specificațiile
inițiale, ce pot fi clasificare după : perspectiva generală asupra structurilor ș i interacțiunilor
11 cu alte sisteme, beneficiile utilizării arhitecturii alese, componentele și cerințele importante
selectarea motivației pentru a crea sau schimba o arhitectură anume (de exemplu : motivarea
cerinței ca o nouă aplicație de transport să aibă acces la cheltuielile personale din aplicația
de contabilitate a firmei ). Acestea sunt punctele cele mai importante care pot avea impact
major asupra deciziei asupra unei arhitecturi (exemplu: securitatea aplicației sau aspectul
interfeței ).
Pentru aplicaț ia destinată gestiunii activității unei firme de transport s -a utilizat
arhitectura de tip Client -Server.
3.1.1 Arhitectura Client -Server
Dezvoltarea aplicațiilor necesită urm ărirea câtorva criterii astfel încât să se asigure o
utilizare și o mentenanță a aplicației cât mai simplă și interactivă. În fond, o aplicație web
este un mediu online de acces la anumite resurse puse la dispoziție de o bază de date prin
intermediul unei i nterfețe grafice .
Resursele aplicației sunt servite de către un server în urma unei cereri de la orice tip
de client, comunicarea se realizează prin intermediul protocolului HTTP (Hypertext Transfer
Protocol), iar interogarea resurselor se face prin acces area unui URI (Uniform Resource
Identifier) în browser.
Primele dintre aplicațiile web puneau la dispoziție utilizatorului doar un conținut
static pentru comunicarea aplicației cu utilizatorul. Tehnologiile au evoluat și s -a ajuns la
noțiunea de conținut d inamic, ce reprezintă răspunsul serverului la acțiunile clientului,
fiecare eveniment declanșează o acțiune, care în urma comunicării cu serverul, determină
schimbarea stării paginii curente.
Arhitectura software de comunicare Client -Server este o arhitec tură de rețea în care
fiecare calculator sau proces din rețea este un client sau un server. În mod uzual , această
arhitectură împarte o aplicație în patru componente de bază , conform [ 5]:
• Serverul web;
• Clientul web (browse r);
• Protocolul de comunica ție (H TTP);
• Limbajul de descriere a informa țiilor (HTML)
Serverul web este în esență o aplicație care pe baza unor cereri formulate de un client
în baza protocolului HTTP îi oferă acestuia un document și/sau un mesaj. El reprezintă un
program ce rulează în reg im de proces (daemon) pe o mașină cu un sistem de operare
multitasking (UNIX, Windows NT). Numărul mare de utilizatori web face ca un astfel de
server să fie foarte utilizat, fiind nevoie de resurse importante pentru buna lui func ționare
[5].
Clientul web (browser ) este o aplicație ce rulează pe un sistem ce oferă suport pentru
protocolul HTTP în principal (și altele în particular) și este capabil să afișeze informații
codificate în limbajul HTML și text, oferind suport și pentru alte tipuri de informație
(imagine, animații). Totodată clientul oferă posibilitatea prin intermediul interfeței cu
12 utilizatorul să interacționeze cu conținutul paginii de tip hipermedia, preluând acțiunile
utilizatorului [5].
cerere
răspuns
Figura 2. Structura arhitecturii client -server
Interacțiunea cu utilizatorul se datorează browser -ului, care recepționează
evenimentele create de utilizator, validează anumite stări, iar Serverul este cel care răspunde
cererilor (pe baza adresei URI) clientului.
În concluzie, Serverul poate fi privit fie ca o unitate fizică pe care rulează un serviciu
capabil să proceseze interceptări de tip HTTP (de ex emplu : Apache) sau ca o aplicație care
este destin ată aceluiași scop. În linii simple, a tunci când se deschide o conexiune (pe baza
adresei) cu serverul, se trimite o cerere către anumite resurse, serverul analizează datele de
intrare, și dacă utilizatorul care a cerut resursa respectivă are acces la ea, i se va trimite înapoi
un cod de răspuns (status) și conținutul propriu -zis.
Prin utilizarea arhitecturii Client -Server prin protocolul HTTP se permite accesul la
8 tipuri de interogări: get, post, put, delete, options, head, trace și connect. De obicei
introducerea datelor se realizează prin interogarea POST, în acest caz este necesară o
validare suplimentară pe par tea de server, evitându -se astfel injectările nevalide la nivelul
bazei de date.[ 8]
3.2 Proiectarea aplicației
Principiile și tehnicile din analiză matematică, inginerie și informatică sunt aplicate
în analiza și proiectarea aplicației software dezvoltat ă, precum și în testarea și evaluarea
acesteia .Conform [4] în ingineria dezvoltării aplicațiilor se utilizează unelte specializate în
analiza, proiectarea, dezvoltarea și testarea aplicațiilor, în scopul măririi productivității.
Acestea sunt cunos cute sub acronimul C.A.S.E. (Computer Aided Sof tware Engineering).
Etapele din cadrul ingineriei dezvoltării aplicațiilor WEB sunt aproximativ aceleași
cu cele pentru dezvoltarea aplicațiilor de tip DESKTOP. În domeniul aplicațiilor WEB este
necesară o ate nție sporită pentru secțiunea de securitate a aplicației. În plus, secțiu nea de
testare se realizează pe mai multe browsere, în timp ce aplicațiile de tip desktop se testează
pe un singur sistem de operare. În cazul aplicațiilor de tip cross -platform, comp ilarea f inală
se realizează pe platforme diferit e [4].
Pentru dezvoltarea aplicației de gestiune a activității firmei de transport s -a folosit ca
model de dezvoltare : Modelul în cascadă. Client WEB
(browser) Server WEB
13 Modelul în cascadă definește un model în care pașii dezvoltării aplic ației sunt :
definirea cerințelor și a specifcațiilor, proiectarea, implementarea și testarea modulelor mici
ale aplicației ; după ce se termină testul de integrare a tuturor modulelor , produsul sof tware
este testat complet și livrat către benef iciar, urmând faza de mentenanță.
Figura 3. Modelul în cascadă
Feedback -ul este dat de erorile ce pot apărea în faza următoare.
3.2.1 Analiza afacerii
Această primă etapă în dezvoltarea aplicației presupune discuția cu clientul, care
împre ună cu cel care realizează analiza, elaborează un document al specificațiilor și
cerințelor aplicației.
Sistemul pune la dispoziție o lista de cerințe, constrângeri, obiective și funcții care
trebuie să se mapeze peste cerințele clientului. În partea de c erințe se descriu operațiile
efective pe care le poate efectua sistemul în acest stadiu de proiectare , se vor detalia
constrângerile sub care trebuie să opereze sistemul, precum și standardele fizice necesare
pentru aplicația software să funcționeze.
Cerințele aplicației :
Autentificarea în aplicație se realizează prin crearea unui cont de utilizator, cu
posibilitatea modificării parolei. Pentru partea de administrarea există o pagină separată ce
permite administratorului gestionarea conturilor create d in aplicație (modificare creden țiale
de autentificare , ștergere utilizator).
Firma de transport marfă lucreaz ă în colaborare cu o casă de expediții din Germania.
Comunicarea între cele două se realizează prin e -mail și cursele se ef ectuează pe baza unor
comenzi de transport emise de casa de expediții între o pereche de adrese al altor companii
partenere.
Pentru generarea și managementul documentelor firmei, este necesară introducerea
în cadrul aplicației a următoarelor date :
Fiecare adresă conține următoa rele informații:
• Numele companiei
• Strada
• Num ăr
• Localitate/Oraș
• Județ/Regiune
• Țara
14 O comandă de transport conține următoarele informații relevante pentru firmă :
Număr de comandă
Adresa de încărcare Adresa de descărcare
Data de încărcare Data de descărcare
Ora de încărcare Ora de descărcare
Referința de încărcare Referința de descărcare
Tabel 1. Structură antet comandă
• Km între destinații
*există și situația în care de la o adresă de descărcare la o nouă adresă de încărcare să se
parcurgă niște km „goi” pentru deplasarea spre alt ă destinație intermediară pentru golirea
semiremorcii de paleții goi sau să se execute un schimb de paleți
• Prețul comenzii
• Termen de plată
– la primire documente originale (CMR confirmat, Lifferchein, Invoice care se
primesc de la șofer ) ce se trimit cu confirmare de primire prin poștă și se transmite
data de primire casei de expediții ( + 0 zile)
– 30 zile/ 45 zile / 60 zile de la efectuarea cursei
• Informații despre marfă
1. Greutate marfă încărcată
2. Număr de paleți
3. Regim ul de transport :
➢ Parțial încărcat (se adaugă număr de metri podea ocupați)
➢ Complet încărcat
4. Valoare asigurare CMR
O factură emisă pe baza comenzii de transport conține :
Serie și număr factură
Data emiterii facturii
Număr de comandă
Numele companiei emitentă Numele companiei client
Adresă companie Adresă companie
Număr de înregistrare în registrul
comerțului Număr de înregistrare în registrul
comerțului
CUI (Cod unic de identificare) CUI (Cod unic de identificare)
Cont bancar în RON Cont bancar în RON
Cont bancar în EURO Cont bancar în EURO
Numele băncii Numele băncii
SWIFT SWIFT
Contact Contact
Tabel 2. Structură antet factură
• Cota TVA :
15 ➢ Client extern (plată UE – RO) ce deține un cod plătitor valid de TVA în UE caz
în care s e face pla tă fără TVA (0%)
➢ Client intern (plată RO -RO)caz în care s e face plat ă cu TVA (19% sau 21%)
• Moneda în care se emite factura
• Denumire servicii:
➢ Numărul de săptămână în care s -a efectuat comanda
➢ Numărul de înmatriculare al mașin ii
➢ Număr de client
➢ Număr factură externă (factura emisă de casa de expediții/ săptămână pe toate
mașinile)
➢ Poziția din factură (interval , de exemplu : 1-4)
• Prețul fără TVA
• Valoare curentă EURO (curs valutar BNR)
• Nume + CNP reprezentant legal firm ă
• Mențiuni
• Nume șofer (delegat)
Pentru realizarea m anagementului intern al firmei, se adaugă următoarele informații
Specificații camion :
• Număr de înmatriculare camion
• Număr de înmatriculare semiremorcă atașată
• Numele șoferului
• Număr km inițiali (la achiziționarea camionului)
În cazul în care mașina a fost achiziționată în rate:
• Dată expirare perioadă leasing
• Valoare rată leasing
• Data revizie tehnică
• Km la revizia tehnică
• Valabilitate copie conformă licență de transport
• Data verificare tahograf
• Valabilitate tahograf
• Data inst alării baterii noi
Specificații semiremorcă atașată :
• Număr de înmatriculare semiremorcă
• Tip semiremorcă :
➢ Prelată normală
➢ Prelată mega
➢ Prelată cu cuvă
➢ Transport hârtie
➢ Sistem multi -loc
• Specificații semiremorcă :
16 ➢ Număr de centuri
➢ Număr de colțare
➢ Număr de lanțuri
➢ Număr de stop-paleți
➢ Număr de bare stop-paleți
➢ Metri podea semiremorcă
➢ Greutate maximă admis ă semiremorcă
Cheltuieli camion (prețul este exprimat în EURO ) :
• Număr de înmatriculare al camionului
• Data adă ugării informațiilor
• Combustibil ( preț total litri )
➢ Alimentat
➢ Consumat
• Preț k m de autostradă plătiți
• Diurnă
• Preț asigurare cursă
• Comisioane
• Plată parcare
• Alte cheltuieli
• Detalii alte cheltuieli
Cheltuieli de întreținere camion (prețul este exprimat în EURO) :
• Număr de înmatriculare al camionului
• Prețul schi mbării filtrelor de: u lei, ulei c utie de vitez ă, uscător , polen, aer, motorină
• Prețul Inspecției tehnice periodice
• Preț asigurare mașină
➢ RCA
➢ CASCO
➢ CMR
• Tahograf :
➢ Preț h ârtie tahograf
➢ Preț v erificare și descărcare tahograf
• Preț s istem GPS (abonament)
• Preț factură telefon
Cheltuieli reparații camion (prețul este exprimat în EURO) :
• Număr înmatriculare camion
• Număr înmatriculare semiremorcă
• Data efectuării reparației
• Tip piesă ce trebuie înlocuită (ex anvelope, prelată)
• Tip piesă de schimb
• Preț piesă de schimb
• Preț m anoper ă reparații
17 • Preț și detalii ale altor cheltuieli
Informații despre șoferi :
• CNP
• Nume și prenume
• Data nașterii
• Valabilitate permis
• Valabilitate certificat medical și medicina muncii
• Valabilitate atestat șofer
• Valabili tate cartelă tahograf
• deține atestat de transport categorii speciale
➢ Gabarit
➢ Deșeuri
➢ Deșeuri periculoase
➢ Armament
Specificații aplicație :
Sistem de alert ă prin e -mail pentru:
• Scadență factură emisă
• Scadență comandă primită
• Scadență factură servicii de telefonie
• Scadență factură abonament GPS
• Alertă expirare permis șofer, valabilitate atestat șofer profesionist , valabilitate
certificat medical , valabilitate cartelă tahograf
• Alertă expirare ITP, licență de transport pentru camion
Se dorește generarea unui raport pe fiecare mașină pe un interval de timp ce va furniza
următoarele informații :
• Num ăr curse efectuate
• Km parcurși
• Consum : alimentat, consumat, rămas (preț)
• Cheltuieli
• Reparații
Opțiunile oferite de aplicație trebuie să includă și modificarea, căutarea după anumite criterii
sau ștergerea datelor introduse.
Parametrii de calitate ai proiectului, reprezintă cerințele de performanță și disponibilitate ai
platformei. Caracteristicile de comportament ale sistemului după găzduirea acestuia pe un
server și aducerea acestuia în producție sunt :
Siguranța funcționări i asigură că sistemul software va funcționa întotdeauna, fără
întreruperi sau erori pe parcursul funcționării acestuia. Toate formularele sunt validate atât
pe partea de browser cât și pe partea de server, iar baza de date nu permite intrări
18 neconsistente, dacă nu se fac modificări în codul sursă sistemul nu are nici un motiv să
producă erori.
Performanța reprezintă capabilitatea sistemului de a procesa un număr mare de
cerințe pe durată îndelungată pentru a putea asigura funcționalitatea și utilizarea în condiții
optime a sistemului. Pentru operații care au stări fixe, în sistem sunt tratate în cozi (queue),
iar operațiile dinamice sunt realizate paralel pentru fiecare utilizator. Performanța acestor
sisteme este compensată de caracteristicile și optimizăr ile sistemului de operare pe care este
hostat. De exemplu pentru a optimiza platforma pe un sistem de operare Windows, se
utiliz ează un server apache pentru compilarea PHP .
Timpul de răspuns – sistemul oferă o performanță mare deoarece toate operațiile ca re
erau greu de realizat, s -au minimizat la nivel de complexitate utilizând diverse principii POO
(programare orientată pe obiect) . Întârzierea produsă de această platformă este minimă,
asigurând astfel accesul cât mai rapid la vizualizarea comenzilor, fac turilor, informațiilor
despre camioane sau rapoartelor.
3.2.2 Proiectarea aplicației
Faza de proiectare trebuie să arate modul în care trebuie realizată aplicația pentru
îndeplinirea cerințelor și specificațiilor definite în urma analizei. În această fază sunt
proiectate funcționalitățile pe care viitoare platformă va trebui să le aibă și se stabilesc
detaliile de implementare pe module și fuxul informațional.
Noțiuni web :
1. Pagini web și servere web
Așa cum este prezentat în [3] construcția World Wide Web se realizează pe baza unui
protocol numit Hypertext Transfer Protocol (HTTP ). HTTP este un protocol rapid care se
potrivește foarte bine sistemelor informatice multimedia și distribuite în salturile între site –
uri. Web -ul constă în pagini cu informații de pe gazde care rulează software de tip server
Web. Gazda este de multe ori identificată cu serverul Web, un software, nu calculatorul în
sine. Un Web server este un program care furnizează pagini Web la cerere. Când un utilizator
de la o adresă IP specifică s olicită un anumit fișier, serverul Web încearcă să obțină acel
fișier și să -l trimită înapoi utilizatorului.
Protocolul HTTP este un protocol de nivel aplicație pentru sisteme distribuite,
colaborative și hipermedia, folosit în sistemul global WWW începând cu 1990. Majoritatea
comunicațiilor HTTP sunt inițiate de un agent și constau într -o cerere aplicată unei resurse
pe un anumit server. Cazul cel mai simplu îl reprezintă o singură conexiune între agent și
server. Cel mai important și vizibil element al pr otocolului HTTP îl reprezintă URL -urile
(Uniform Resource Locators). [5].
19
Figura 4. Funcționare Web, conform [3]
Fișierul solicitat poate fi codul sursă HTML al unei pagini Web, o imagine GIF, un
fișier Flash, un document XML, sau un fișier AVI. Browserul Web este cel care determină
ceea ce trebuie cerut, nu serverul Web.
Conexiunile la serverul Web se stabilesc pe măsură ce sunt accesate, se solicit ă o
cerere a unei pagini de la un server Web, o conexiune IP este stabilită prin Internet între
gazda solicitantă și gazda pe care rulează serverul Web. Pagina Web cerută este transmisă
prin acea conexiune, iar aceasta es te întreruptă de îndată ce pagina este primită ( de exemplu,
imagini GIF sau JPG).
Fiecărui server îi este atribuit un port pentru a asigura că fiecare server va răspunde
numai cererilor din partea clienților corespunzători.
Majoritatea serverelor folosesc un set de porturi predefinite. Serverele Web folosesc
de obicei portul 80, dar acesta poate fi schimbat. Pot fi instalate pe porturi nestandard pentru
a fi ascunse, și de asemenea, pot fi instalate mai multe servere Web pe un singur cal culator
asociindu -le porturi diferite.
Internetul reprezintă o mulțime global ă de calculatoare interconectate, similar unei
rețele locale, dar la o scară mult mai largă. Elementul primar al Internet -ului este World
Wide Web (cunoscut sub denumirea de Web sau WWW ). WWW este un suport pentru
text, grafică, animație și sunet. Documentele destinate Web -ului sunt cunoscute sub numele
de pagini Web.
Navigatorul Web afișează paginile de Web prin interpretarea unor marcatori –
definiți cu ajutorul unui limbaj s pecial denumit HTML (HyperText Markup Language) –
utiliza t pentru a codifica pagina de Web cu informația de afișat.
20 Un site Web este definit ca o colecție coerent ă de informații prezentată sub forma
unor pagini Web, fișiere multimedia, documente și de al te tipuri, între care există legături.
2. URL (Uniform Resource Locators )
Conform [ 5], structura completă a unui URL este urm ătoarea:
protocol ://nume -calculator -gazda:port/cale -director/resursa
Protocolul sau serviciul este reprezentat de regulile destin ate pentru transferul
datelor în rețea. În practică se utilizează urmatoarele protocoale:
o file – specifică un URL local;
o http – indică adresa Internet a unei pagini Web sau altă resursă ;
o ftp – utilizat pentru adresarea în Internet a fișierelor prin interm ediul protocolului de
transfer de fișiere FTP;
o gopher – indică adresa URL a unui director Gopher; reprezintă un sistem utilizat
pentru localizarea și transferul informațiilor de indexare a numelor fișierelor în
Interent;
o telnet – permite conectarea în timp real la un alt calculator în Internet și utilizarea
acestuia ca și cum ar fi un calculator local.
În sistemele Windows, în anumite situații protocolul poate lipsi pentru anumite
adrese, tipul acestuia fiind determinat din numele gazdei.
Numele calculato rului gazdă identifică în mod unic un calculator în cadrul rețelei.
Numele poate fi reprezentat atât printr -o adresa IP, cât și prin denumirea unui calculator
local sau a unui calculator din Internet folosind specificațiile DNS.
Portul este reprezentat pr intr-un număr și este specific fiecărei aplicații. Majoritatea
aplicațiilor de rețea utilizează porturi pentru comunicare. Pe un calculator pot exista mai
multe aplicații de rețea, fiecare aplicație utilizând un port distinct.
Numele resursei este repreze ntat de numele fișierului referit. Acesta poate fi o
pagina Web, un fișier multimedia, un document, un fișier executabil.
O limitare o constituie faptul că un URL nu poate conține spații și alte caractere
speciale, astfel că orice spațiu sau caracter spec ial se va converti printr -un cod asociat
acestora precedat de simbolul „%”.
Alte URL -uri folosite alături de cele prezentate sunt cele de:
o e-mail, prin intermediul cărora se pot doar transmite mesaje de poștă electronică;
o știri Usenet – în care trebuie să se identifice un server de știri care să ofere acces.
3. Tehnologii utilizate în proiectarea și design -ul aplicației web:
HTML (Hyper Text Markup Language)
Un fișier HTML este un fișier text cu extensia ".htm" sau ".html" conținând pe lângă
text pur și instruc țiuni standard de machetare (web design). Efectul machetării din cadrul
documentului structurează conținutul util al fișierului , iar limbajul de marcare a l
informa ției, este limbajul folosit pentru publicarea informa ției în format hipertext pe
Inter net[5].
21
CSS (Cascading Style Sheets)
Un fi șier CSS este un fi șier text cu extensia ".css" ce definește stiluri pentru paginile
HTML. Stilurile definite în cadru l fișierului CSS indic ă într-un mod mult mai riguros decât
atributele HTML cum s ă afișeze br owserul elementele componente ale unui document
HTML (text, grafic ă, formulare), oferind posibilit ăți superioare standardului HTML.
Fișierele CSS permit stilizarea în bloc a documentelor HTML cu un efort semnificativ mai
mic decât în cazul stiliz ării elementelor de pagin ă în cadrul fiec ărui document HTML în
parte, prin intermediul atributelor tagurilor [5].
PHP (Hypertext Preprocessor)
Conform [7], PHP reprezint ă un limbaj de programare ce permite modificarea
paginilor web înainte ca acestea s ă fie tr ansmise de server c ătre browserele utilizatorilor. [7]
PHP poate genera con ținut HTML pe baza unor f ișiere existente sau pornind de la
zero, poate s ă afișeze o imagine sau orice alt con ținut accesibil prin web, sau s ă
redirec ționeze utilizatorul c ătre alte pagini. În cadrul acestui proces, PHP poate consulta baze
de date, fi șiere externe sau alte resurse, poate trimite email -uri sau executa comenzi ale
sistemului de operare. În cazul în care procesarea se realizea ză la nivelul serverului web,
înainte ca paginile web s ă ajung ă în browser, PHP este considerat un limbaj de programare
server -side.
Modul în care PHP generea ză conținut pentru o pagina ce va fi afi șată de browser
este prin instruc țiunile delimitate de etich etele <?php și ?>. Astfel, orice se afl ă între aceste
tag-uri va fi considerat cod -sursă și va fi executat de interpretorul PHP și înlocuit cu
rezultatul execu ției. Ce este în afara tag -urilor r ămâne neschimbat și este transmis c ătre
brows er.
Baza de date
Bazele de date sunt utlizate, în prezent, în majoritatea activităților vieții noastre. În timpul
unei zile obișnuite, orice persoană desfășoară activități care implică interacțiunea cu o bază
de date (de exemplu : depunerea , extragerea unor sume de bani din bancă, rezervarea
locurilor la hotel, căutarea unui loc de muncă într -o aplicație dedicată etc.)
În esență , o bază de date este o colecție de date corelate din punct de vedere logic,
care reflectă un anumit aspect al lumii reale și este destinată unui anumit grup de utilizatori.
O bază de date poate fi creată și menținută manual (de exemplu, fișele de evidență a cărților
dintr -o bibliotecă, așa cum erau folosite cu ani în urmă) sau computerizat, o metodă din ce
în ce mai utilizată în ziua de astăzi .
Definiții conform [ 4] : O bază de date este un ansamblu de date structurate stocate
astfel încât să faciliteze accesul unui calculator, ce asigură accesul simultan a mai multor
utilizatori, capabilă să r ăspundă la cererile acestora în timp util (se comentează semnificația
fiecărei aserțiuni).
Un Sistem de Gestiune al Bazei de Date (SGBD) (DataBase Management System –
DBMS) este format din totalitatea programelor ce permit definirea, manipularea,
vizualizarea, stocarea și gestionarea interogărilor pentru accesul la date.
O bază de date trebuie să îndeplinească următoarele cerințe:
22 • independența datelor (organizarea datelor să fie vizibilă pentru utilizatori, modificările
să nu afe cteze aplicațiile)
• integrarea datelor (baza de date trebuie să fie un ansamblu de colecții de date
intercorelate, cu redundanță controlată)
• abstractizarea datelor (baza de date fiind un model al realității, este necesară o analiză a
situației reale cât ma i atentă)
• partajarea datelor (datele pot fi accesate de mai mulți utilizatori, chiar și în același timp)
• integritatea datelor (corectitudinea datelor încărcate și manipulate astfel încât să se
respecte restricțiile integrității datelor)
• securitatea datelor (limitarea accesului la baza de date prin metode de protejare)
Componentele unei aplicații baze de date :
• Baza de date propriu -zisă
• Programe de aplicație
Proiectarea aplicațiilor necesită respectarea secvenței: proiectarea bazei de date si apoi a
programelor de aplicații ce asigură viziunea asupra bazei de date din diverse perspective. [4]
Modelarea unei baze de date se realizează pe baza modelelor de date : [4] se define ște
modelul datelor ca un set de concepte ce poate fi utilizat în descrierea st ructurii datelor. Prin
structura bazei de date se înțelege tipul datelor, leg ătura dintre ele, restric țiile ce trebuiesc
îndeplinite de date. Arhitectura de date asociata unei baze de date poate fi reprezentată pe
trei niveluri, având ca scop separarea apl icațiilor utilizatorului de baza de date.
Figura 5. Modelarea datelor, conform [4]
Nivelul fizic numit și nivel intern sau nivel de stocare reprezentat prin baza de date
stocată fizic pe un mediu de stocare adecvat .
Nivelul conceptual sau schema conceptuală descrie structura întregii baze de date
pentru o comunitate restr ânsă de utilizatori.
Nivelul extern sau nivelul vizual (utilizator), include o cole cție de scheme externe ce
descriu baza de date prin prisma diferit elor grupuri de utilizatori.
23 Cele mai multe sisteme de gestiune a bazelor de date conțin o interfață de nivel înalt,
utilizatorul formulând cererea prin prisma rezultatului dorit urmând ca sistemul de gestiune
să ia decizia asupra modului de realizare prin crearea unui plan de execuție a cererii. Cel mai
cunoscut dintre limbajele implementate, par țial sau complet, în diferite sisteme este SQL
(Structured Query Language)
Inițial SQL a fost numit SEQUEL (Structured Query Language) construit și
implementat de IBM pentru implementarea interfe ței la baza de date rela țional ă numi tă
SYSTEM R. [4]
Caracteristici generale:
• SQL suportă declarații pentru definirea datelor, modificarea și reorganizarea acestora.
• Limbaj neprocedural: secvența de comenzi (instrucțiuni), fiecare comandă este transmisă
sistemului de gestiune al bazei de date, este interpretată și returnează un rezultat.
• Include facilități pentru definirea și vizualizarea bazei de date, crearea si întreținerea
bazelor de date, asigura rea consistenței bazei de date prin gestionarea constrângerilor
aferente tabelelor.
4. Cazuri de utilizare
Cazurile de utilizare au scopul de a oferi o viziune globală asupra funcționalităților,
posibilităților, nivelulurilor de utilizatori, dar și permite o vizualizare a relațiilor dintre
tipurile de utilizatori din cadrul sistemului.
Cazurile de utilizare se vor realiza desigur în baza cerințelor. Operațiile de gestiune
generale (create, read, u pdate, delete) dar și operațiile de consistență și validare nu necesită
reprezentare în cadrul cazurilor de utilizare descrise mai jos. Evident cazurile de utilizare
trebuie definite pe niveluri de utilizatori. De aceea se vor reprezenta și actorii sistemului.
Actorii:
• Dispecer
• Proprietar firmă
• Administrator
Cazul de utilizare în care este reprezentat actorul c e are rolul de administrare a sistemul ui,
el fiind actorul suprem în ceea ce prive ște managementul utilizatorilor și al rolurilor acestora
în cadrul sistemului. Platforma ar putea fi privită ca având mai multe t ipuri de administratori,
pe lângă administratorul întregului sistem – care se ocupă de datele generale legate de toți
utilizatorii sistemului, nu mai puțin important ar fi și proprietarul firmei, acesta trebuie să
aibă posibilitatea de a edita toate datele din cadrul organizației (firmei) pe care o deține.
Dispecerul firmei poate avea doar posibilitatea de vizualizare al comenzilor și al
informațiilor despre camion.
24
Figura 6.Reprezentare caz de utilizare minimal
Pentru cazul de utilizare al contului de administrator se pot utiliza următoarele opțiuni :
afișarea tuturor utilizatorilor, ștergerea utilizatorului după numele de utilizator și modificarea
credențialelor de autentificare după numele de utilizator creat.
Figura 7. Reprezentare caz de utilizare Administrator
25 În diagrama de mai jos sunt prezentate cazurile de utilizare ale actorului care are
posibilitatea deplină asupra tuturor opțiunilor aplicației. Utilizatorul care poate edita orice
informație introdusă, este privit ca un utilizator cu drepturi absolute pe organizația de care
aparține, acesta poate să realizeze procese de orice natură, asupra tuturor documentelor și
generare de rapoarte sau facturi în format . DOC.
Figura 8. Reprezentare caz de ut ilizare – utilizator absolut
5. Diagrama de activități a aplicaț iei
Pentru descrierea detaliată a aplicației și opțiunile acesteia se va folosi diagrama de
activități ce implementează fluxul de control a l informației. Flux de control procedural al
informației este focalizat pe fluxul condus de prelucr ările interne, nu de c ătre evenimentele
externe .
Figura 9. Diagrama de activități
26 Pentru detalierea cazului de utilizare din următorul scenariu se utilizează diagrama d e mai
jos.
Scenariu :
Numele cazului de utilizare: Descărcarea unei facturi
Actor principal: Utilizator cu drept de editare
Precondiții: Utilizatorul trebuie să fie autentificat și să aleagă opțiunea de adăugare factură.
Postcondiții: Factura , împreună cu toate legăturile sal e pe aplicație, inclusiv datele
companiilor sunt salvate în baza de date. Posibilitatea vizualizării și descărcării în format
.DOC se poate realiza după ce s -au completat toate câmpurile din formular.
Figura 10. Descriere caz de utilizare : Descarcă factură
27 4. Implementarea și testarea aplicației
În acest capitol vor fi prezentate în detaliu elementele de proiectare și arhitectură
specifice ale proiectului. Vor fi incluse exemple de cod, se vor vizualiza o pțiunile de lucru
pe module funcționale și se vor analiza tipurile de vulnerabilități care pot să apară în timpul
exploatării aplicației. Se va reprezenta diagrama arhitecturii baze i de date și a relațiilor dintre
entități, opțiunea de al erte prin email și modul de interacțiune cu utilizatorul.
4.1 Arhitectura specifică sistemului
Datorită faptului că arhitectura client -server are trei componente de bază : clientul,
server -ul și rețeaua, sar ciinile dintre client și server pot fi distribuite în mai multe moduri,
ceea ce determină clasificarea arhitecturii în :
• Arhitectura pe două niveluri
• Arhitectura pe trei niveluri
• Arhitectura pe mai multe niveluri
Aplicația dezvoltată în această lucrare se încadrează în categoria aplicațiilor pe două
nivel uri.
În cadrul acestei arhitecturi interfața de sistem cu utilizatorului (logica prezentării)
este plasată în mod exclusiv în mediul de lucru al utilizatorului (clientul) și serviciil e de
gestiune a bazei de date (logica accesului la baza de date) sunt plasate pe un server care
deservește rețeaua. Administrarea prelucrării este împărțită între client și server, prin crearea
celor două niveluri: un nivel corespunzător aplicației (logica afacerii – reprezintă partea
programului care implementează condițiile în care se desfășoară afacerea) și un nivel
corespunzător bazei de date (validarea din partea server -ului) .
Client Server
Intefața cu utilizatorul Baza de date
Logica aplicației Logica aplicației
Mijloc de comunicație Mijloc de comunicație
Figura 11. Modelul client -server pe două niveluri
Nivelul corespunzător aplicației reprezintă nive lul superior al aplicației, cel de
comunicare cu utilizatorul final. Acest nivel este de obicei întreținut de HTML , stilizat de
CSS și toate componentele de design. Această componentă, fiind unica i nteracțiune fizică
cu clientul, se încarcă în browserul clientului, rulează local, iar comunicarea cu logica
aplicației se realizeaz ă prin servicii întreținute de protocolul HTTP. Servirea paginilor către
client se poate realiza prin modul în care serverul generează paginile, și le servește clientului
pentru vizualizare, iar la schimbarea stării părții de view acesta este regenerat de către server
și servit din nou.
28 Nivelul corespunzător bazei de date , accesul și stocarea datelor este un proces
complex din punct de vedere al securității și vitezei de acces. Baza de date poate fi stocată
pe un server diferit, sau pe un server principal, la care să oferim un acces partajat tuturor
instanțelor de lucru. Nivelul acesta comunică cu nivelul corespunzător aplicație i,
comunicarea se realizează prin tr-un mijloc de comunicație (protocolul HTTP) și o conexiune
mereu deschisă pe portul specific configurării acestui protocol (portul 80) .
În proiectarea aplicației de gestiune a activității unei firme de transport marfă ,
majoritatea porțiunii de prelucrare a aplicației este plasată în mediul clientului, iar serverul
de gestiune a bazei de date furnizează porțiunea de prelucrare privind accesul la date .
4.2 Nivelul de prezentare al aplicației
Nivelul de prezentare al a plicației reprezintă modul de interacțiune cu utilizatorul
final și include posibilitățile monitorizare a evenimentelor pe partea de client și de procesare
a evenimentelor.
Fișierul predefinit pentru directorul web licenta este index.php, deci înseamnă că
atunci când accesăm serverul prin comanda http://localhost/licenta/index.php serverul va
trimite fișierul de bază, adică prima pagină a site -ului (index.php) ce va fi afișat în browser.
Figura 12. Pagina de login
După cum se poate observa, pentru a intra în sistem este nevoie de un mod de
autentificare. În urma înregistrării, contul este validat ca fiind activ. În mod natural sistemul
dispune și de o procedură de resetare a paro lei pe baza informațiilor deja cunoscute de
utilizator, și anume numele de utilizator.
Toate acțiunile clientului sunt prelucrate și se menține o comunicație deschisă între
sistem și utilizator, de exemplu, pentru afișarea erorilor sau a informațiilor de succes – se
folosesc mesaje de tip text, afișate în aceeași pagină.
Paginile sunt concepute astfel ca să fie ușor de utilizat de către orice tip de
utilizator. Pagina a fost creată cu ajutorul limbajului HTML, iar d esign -ul paginii a fost
29 realizat cu ajut orul limbajului CSS , a fișierului style.css , deși unii creatori de pagini web
critică acest limbaj deoarece produc pagini de dimensiuni mult mai mari decât ar fi necesar,
ceea ce conduce la o funcționare neperformantă a browserelor web. Pentru crearea paginii
s-a folosit următoarea structură de cod:
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body>
<div class="login -page">
<div class="form">
<form class="login -form" method="POST" action="login.php"><br>
<input type="text" name="uname" placeholder="Nume de utilizator"
required><br>
…
</form>
</div>
</div>
</body>
</html>
Fișierul de tip CSS atașat fiecărei pagini a aplicației permite folosirea majorității
browserelor instal ate pe calculatorul utilizatorului, pentru a previzualiza aplicația creată. De
asemenea, orice modificare în acest fișier se aplică pentru toate paginile a plicației, ceea ce a
determinat o muncă mult mai ușoară în stilizarea aplicației.
Pentru utilizato rul de tip administrator este prezentă pagina modify_delete_acc. php care îi
permite administratorului următoarele opțiuni :
Figura 13. Meniu Administrator
30 Administratorul poate face modificări direct în tabelul din baza de date, astfel având drepturi
depline asupra conturilor de utilizator din aplicație.
Datele introduse de utilizator se preiau cu metoda POST din formularul HTML . Metoda
POST este utilizat ă pentru trimiterea datelor la porțiunea de procesare a datelor în limb ajul
PHP prin intermediul formular ului în HTML. Formularele în HTML sunt con ținute în
interiorul tag -ului <form>. Pentru preluarea tuturor informațiilor introduse s -a folosit funcția
getData() :
function getData()
{
$data = array();
$data[0]=['uname'];
$data[1]=$_POST['password'];
$data[2]=$_POST['email'];
return $data;
}
Pentru conectarea la baza de date se folose ște secvența de cod în PHP :
$servername = "localhost";
$username="root";
$dbname="baza_de_date";
try{
$mysqli =mysqli_connect($ servername,$username,"",$dbname);
}catch(MySQLi_Sql_Exception $ex){
echo '<div class="form"> <p class="message">', ("eroare în
conectare"), '</p></div>';}
Funcțiile de modificare și ștergere a conturilor de utilizator sunt interogări SQL aplicate
bazei de date prin intermediul limbajului PHP:
• Pentru ștergere utilizator:
if(isset($_POST['delete'])){
$info = getData();
$delete_query="DELETE FROM `login_info` WHERE uname='$info[0]'";
$delete_result = $mysqli ->query($delete_query); }
• Pentru modificare parolei conturilor:
if(isset($_POST['update_pass'])){
$info = getData();
$update_query="UPDATE `login_info` SET `password`='$info[1]' WHERE
uname='$info[0]'";
$update_result=$mysqli ->query($update_query); }
• Pentru modificarea emailului conturilor :
if(isset($_POST['update_email'])){
$info = getData();
$update_query="UPDATE `login_info` SET `email`='$info[2]' WHERE
uname='$info[0]'";
$update_result=$mysqli ->query($update_query); }
• Pentru afișarea tuturor conturilor:
if(isset($_POST[' search'])){
$search_query = "SELECT * FROM `login_info`";
$search_result = $mysqli ->query($search_query); }
Mesajul afișat după efectuarea interogării poate fi: „Datele au fost actualizate ” sau „ Datele
nu au fost actualizate ”, în funcție de rezultat.
31 4.3 Nivelul corespun zător bazei de date
O aplicație pentru web prelucrează date de diferite naturi: șiruri de caractere, valori
numerice, date calendaristice etc. ca de exemplu: denumiri de companii, nume de utilizatori,
parole, adrese de e -mail, numere de comandă, data emite rii facturilor etc. Informațiile
păstrate într -o bază de date relațională sunt dispuse într -un ansamblu de fișiere. Din
considerente legate de creșterea vitezei de accesare a informațiilor, fisierele sunt formate din
articole având aceea și structură. Artic olele au o structura a unui fisier de date este definită la
crearea sa, prin precizarea câmpurilor pe care le va conține fiecare articol.
Un câmp dintr -un articol conține o informație elementară. Fiecare câmp are un nume,
conține un tip de informație (sir de caractere, număr, dată calendaristică, fi șier etc.), are o
lungime de reprezentare a informației si, în cazul câmpurilor numerice, are precizat numărul
de zecimale. Datorită faptului că formatul articolului este fix, frecvent se folose ște pentru
fișier o reprezentare tabelară si chiar se folose ște pentru fi șierele de date denumirea de
"tabele".
O aplicație de tip server este un program care a șteaptă comenzi din partea unor
aplicații client. În cazul serverelor de baze de date relaționale (Oracle, MyS QL, IBM DB2,
Microsoft Access, OpenOffice Base etc.) se folose ște limbajul SQL (Structured Query
Language).
Pentru stocarea informa țiilor introduse în baza de date am folosit aplicația XAMPP,
care este un pachet de aplicații care constituie infrastructur a software necesară găzduirii
aplicațiilor web: server de web (Apache), server de baze de date (MySQL), interpretoare
pentru scripturi scrise în limbajele PHP și PERL. Pentru a putea fi folosit pe servere care
găzduiesc site-uri, după instalarea pachetului de aplicații trebuie operate unele configurări,
mai ales pentru ameliorarea securității acestor pachete.
XAMPP a fost creat pentru a pune la dispoziția dezvoltatorilor un instrument eficient
de testare a diferitelor aplicații în dezvoltare. Odată instalat pe calculatorul propriu, pachetul
de aplicații va face ca acesta să aibă comportamentul unui server, permițând testarea
aplicațiilor scrise fără a intra în con tact cu firma care va găzdui în final produsul software
realizat.
XAMPP [9] are o variantă care poate fi utilizată imediat după descărcare și instalare.
După instalare, prezența pe calculator a pachetului de aplicații se manifestă prin aplicația
XAMPP Control Panel .
Figura 14. Xampp Control Panel
32 Verificarea funcționării aplicațiilor necesare pentru testarea aplicațiilor web se poate
realiza tastând în browser adresa aplicației web integrate în XAMPP și destinate
administrării serverului de baze de date MySQL : http://localhost/phpmyadmin/ .
Ca aplicație de tip server am folosit Apache. O aplicație de acest tip este un program
reactiv. El rulează permanent pe calculatorul destinat păstrării unuia sau mai multor site-uri
web și așteaptă cereri din partea unei aplicații client ( Google Chrome, Internet Explorer ,
Mozilla Firefox , Opera etc.).
Ca aplicație, serverul pentru web accesează un ansamblu de fișiere di spuse pe hard-
disk-ul calculatorului pe care acesta este instalat. Dacă o aplicație client solicită un fișier
existent, serverul pentru web îl va furniza respectând regulile unui protocol precizat în
cererea clientului ( HTTP ).
Paginile web sunt de regulă d ocumente multimedia conținând text, imagini, sunet,
animații. Ele sunt stocate pe hard-disk în mai multe fișiere, fiecare fișier conținând informații
de un anumit tip. Corespunzător, serverul pentru web va primi din partea aplicației client o
suită de cere ri de transfer de fișiere începând cu fișierul principal. Asamblarea documentului
din fragmentele primite vin în sarcina aplicației client.
4.4 Crearea bazei de date
Baza de date a fost realizată cu aplicația XAMPP folosind phpMyAdmin. Pentru
deschiderea aplicației phpMyAdmin se pornește aplicația XAMPP și se tastează în caseta de
text pentru adrese a aplicației Google Chrome adresa http://localhost/phpmyadmin/
Figura 15. Fereastra phpMyAdmin
În fereastra afișată se va apăsa butonul New, se va tasta numele noii baze de date
(baza_de_date ) și se va apăsa butonul Create :
33
Figura 16. Creare baza de date
phpMyAdmin va crea comanda SQL de creare a unei baze de date și o va trimite serverului
MySQL. phpMyAdmin va afișa de fiecare dată comenzile pe care le -a trimis serverului de
baze de date MySQL .
Odată creată, baza de date baza_de_date , aceasta va fi considertă baza de date
curentă . Comenzile ulteriore, de exemplu cele prin care se vor crea tabelele (fișierele) se vor
adresa acesteia.
La următoarele deschideri ale aplicației phpMyAdmin intrarea în baza de date
baza_de_date se va realiza prin selectarea acesteia în arborele afișat în panoul din stânga al
aplicației.
Pentru reprezentarea tuturor cerințelor și a specificațiilor aplica ției, s-a propus
următoarea structură a bazei de date :
Figura 17. Diagrama de relații a bazei de date
34 Relațiile dintre tabele se bazează pe FOREIGN KEY (cheie străină) .Conform [ 13] un tabel
poate avea una sau mai multe chei străine. O cheie străină conține valorile care corespund
valorilor di n cheia primară a altui tabel. De exemplu, în tabelul semiremorca în care fiecare
instanță trebuie să existe un număr de înmatriculare a semiremorcii, nr_semiremorca care
corespunde cu o înregistrare din tabelul camio n. Câmpul nr_semiremorca este o cheie
externă a tabelului camion .
4.4.1 Crearea unui tabel al bazei de date
• Crearea tabelei login_info
Tabelul login_info va conține datele de identificare a utilizatorilor autorizați să opereze în
baza de date. Acest tabel este prezent în toate bazele de date accesibile prin Internet.
Crearea unui tabel se realizează concomitent cu definirea structurii sale. Tabelul login_info
are 3 câmpuri . În vederea creării comenzii create table, phpMyAdmin va cere introducerea
numelui și tipului fiecăruia dintre câmpurile tabelului.
Figura 18. Strucură tabel login_info din baza de date
Câmpurile tabelului admin sunt uname (VARCHAR – lungime maximă a șirului de
caractere ), email (VARCHAR – lungime maximă tot 50), password (VARCHAR – lungime
maximă tot 50 de caractere ). Tipul VARCHAR se folosește pentru șiruri de caractere de
lungime variabilă. Pentru câmpul uname s-a mai precizat că este PRIMARY și s-a selectat ca
index cheie primară .
Prima caracteristică, PRIMARY indică faptul că uname este cheie primară . Cheia
primară a unui tabel din baza de date are valori distinct e pentru toate articolele din tabel și
are rolul de identificator unic al acestora. Dacă ulterior se va dori suprimarea unui articol se
va putea selecta articolul indicându -i cheia primară.
Crearea tabelului se realizează prin apăsarea butonului Save . phpMyAdmin va afișa
și comanda CREATE TABLE trimisă serverului MySQL .
• Crearea tabele i adresa
Baza de date baza_de_date va conține printre altele , un tabel cu datele adreselor de
încărcare, respectiv descărcare și adresele companiilor client cărora firma emitent va genera
facturi către firma client . Pentru afișarea acestora se va declara în prealabil tabelul adresa .
Rolul acestuia va fi acela de a p ermite ulterior afișarea și modificarea datelor despre
adrese .Pentru câmpul număr s -a utilizat tipul de date INT(valoare întreagă).
Tabelul adresa are 7 câmpuri, ID_ad fiind declarat cheie primară .
Câmpu l nume_firma este definit ca INDEX . Impunerea ca index a unui câmp
facilitează căutările în tabel efectuate după valori ale respectivului câmp. În cazul dat,
serverul MySQL va atașa tabelului admin un fișier ale cărui înregistrări vor conține perechi
de valori nume_firma – adresă articol p e HDD .
În noul fișier înregistrările vor fi păstrate ordonate crescător după valorile câmpului
nume_firma . La căutarea după nume_firma a unui articol din tabel se va căuta mai întâi în
fișierul asociat tabelului adresa articolului căutat după care se va e xtrage direct articolul
dorit.
35 Notă : Spre deosebire de PRIMARY , INDEX nu înseamnă valori distincte. Câmpu l
nume_firma permit e introducerea aceluiași nume de mai multe ori.
Câmpurile cu caracteristica PRIMARY, UNIQUE și INDEX sunt folosite pentru
crearea legăturilor între tabele.
Figura 19. Structură tabel adresa din baza de date.
Proprietatea AUTO_INCREMENT indică modul de formare a valorilor câmpului
ID_ad . Valoarea acestuia pentru un nou articol care urmează să fie adăugat se calculează
automat, prin incrementarea valorii corespunzătoare ultimului articol pre zent în tabel.
• Crearea tabelei camion
Tabelul cu datele despre camioanele deținute de firma de transport este format, la
rândul lui, din 12 câmpuri, câmpul nr_in mat_cam , ce deține informațiile despre numărul de
înmatriculare al camionului , este declarat cheie primară. Câmpurile nr_remorca și
nume_sofer sunt declarate cu proprietatea UNIQUE .
Proprietatea UNIQUE reprezintă trăsătura câmpului declarat ca având valoar e unică
în cadrul tabelului, ceea ce înseamnă ca nu vor exista duplicate
Tipul de dată DATE reprezintă data calendaristică în format : an/luna/zi . Câmpurile
nr_remorca și nume_sofer s-au definit ca INDEX pentru a fi utilizate ca foreign key în relația
cu tabelele semiremorca și camion .
Tabel 3. Tabel camion din baza de date
• Crearea tabelei cheltuieli camion
Pentru crearea tabelei despre cheltuielile camioanelor s -a folosit ca cheie primară, câmpul
ID_cheltuieli. Pentru câmpurile de tip DOUBLE trebuie să se introducă date ce repr ezintă
36 prețul specificat de numele câmpului, de exemplu : pre țul total al volumulu i în litri de
combustibil alimentat. Câmpul nr_inmatriculare_camion este caracterizat cu proprietatea de
INDEX .
Tabel 4. Structur ă tabel cheltuieli camion din baza de date
• Crearea tabelei date_comandă transport
Tabelul ce descrie o comandă de transport are ca cheie primară , câmpul nr_c, reprezentat
de numărul comenzii . Cheia primară are și proprietatea de AUTO INCREMENT .Pentru
câmpurile de tip DOUBLE trebuie să se introducă date ce repr ezintă prețul specificat de
numele câmpului, de exemplu : prețul total al volumului în litri de combustibil alimentat.
Câmpurile nume_ci și nume_cd s-au definit ca fiind INDEX.
Tabel 5. Structura tabel date_comanda_transport din baza de date
• Crearea tabelei date_companie
Pentru tabelul ce conține informații despre companiile emitent și client pentru generarea
facturilor, cheia primară este câmpul ID_companie, reprezentată de numărul companiei
introduse. Cheia primară are și p roprietatea de AUTO INCREMENT . Câmpurile pentru
numele companiei, numărul de înregistrare în Registrul Comerțului și codul unic de
37 identificare al companiei trebuie sa fie unice ( UNIQUE). Câmpul nume_c are proprietatea de
INDEX pentru cre area relației cu tabela facturi .
Tabel 6. Structura tabel date_companie din baza de date
• Crearea tabelului factura
Pentru tabelul ce conține informații despre facturi, cheia primară este câmpul
serie_nr_factura, reprezentată de seria și numărul facturii ce este emisă. Câmpu l
nr_comanda ce reprezintă numărul comenzii asociate facturii este UNIQUE. Câmpurile
pentru prețul facturii și cursul valutar din data emiterii sunt de tip DOUBLE. Câmpurile
nume_ci și nume_cd sunt caracterizate de proprietate INDEX , ca foreign key în legătura cu
tabela date_companie .
Tabel 7. Tabel fac tura din baza de date
• Crearea tabelului întreținere
Pentru tabelul ce conține informații despre cheltuielile de întreținere a camioanelor , cheia
primară este câmpul nr_camion , reprezentată numărul de înmatriculare al camionului pentru
care se adaugă datele . Câmpurile pentru prețuri sunt de tip DOUBLE , iar câmpurile de tip
DATE sunt de tip dată calendaristică : an/luna/zi.
38
Tabel 8. Tabel întreținere din baza de date
• Crearea tabelului reparații
Pentru tabelul ce conține informații despre cheltuielile de reparații a camioa nelor, cheia
primară este câmpul ID_reparatie care este de tip AUTO INCREMENT . Câmpurile pentru
prețu rile piesei de schimb, prețurile pentru manoperă sau pentru alte cheltuieli din data
schimbării piesei sunt de tip DOUBLE. Câmpurile nr_camion și nr_semi sunt de tipul
INDEX și sunt utilizate ca foreign key în relația cu tabelele semiremorca și camion .
Tabel 9. Tabelul reparații din baza de date
• Crearea tabelului semiremorca
Pentru tabelul ce conține informații despre semiremorca atașată camion elor, cheia primară
este câmpul nr_semiremorca care reprezintă numărul de înmatriculare al semiremorcii .
Câmpurile pentru numărul de metri podea și greutatea maximă admisă de semiremorcă sunt
de tip DOUBLE.
Tabel 10. Tabel semiremorca din baza de date
39 • Crearea tabelului șofer
Pentru tabelul ce conține informații despre șoferii ce conduc camionelor, cheia primară este
câmpul ID_sofer care este de tip AUTO INCREMENT . Câmpurile utilizate pentru a introduce
date calendaristice sunt de tip DATE. Pentru câmpul salariu s -a folosit tipul INT. Câmpul
nume_sofer s-a definit ca INDEX pentru a putea fi utilizat ca foreign key în tabela camion .
Tabel 11. Tabel șofer din baza de date
4.5 Interfața cu utilizatorul
După autentificarea ca utilizator, pagina principală a aplicației întâmpină utilizatorul
punanându -i la dispoziție următoarele opțiuni :
Figura 20. Pagina principală a aplicației
Organizarea opțiunilor se bazează pe clasificarea activităților firmei în ordine aleatorie,
grupa te după tipul de informație manipulat de utilizator.
40 Pentru modulul de editare comenzi , opțiunile utilizator sunt :
Figura 21. Meniul editare comenzi
Opțiunea de adăugare a unei comenzi implică urmărirea următorilor pași :
• Adaugă adresa de încărcare
• Adaugă adresa de descărcare
• Adauga detalii comandă
Pentru a adăuga o adresă sunt necesare introducerea datelor corespunzătoare în formularul
creat cu HTML după cum urmează :
Figura 22. Meniul de adăugare a unei adrese
41 Detaliile unei comenzi implică completarea unui formular cu ur matoarele informații
referitoare la cerin țele pentru o comandă de transport enunțate în subcapitolul Analiza
afacerii .
Figura 23. Meniu adăugare informații comandă
Pentru a adăuga informațiile în baza de date s -a folosit interogarea INSERT :
$info = getData();
$insert_query="INSERT INTO
`adresa`(`nume_firma`,`str`,`nr`,`loc`,`jud`,`tara`) VALUES
('$info[0]' ,'$info[1]','$info[2]','$info[3]','$info[4]','$info[5])
";
$insert_result=$mysqli ->query($insert_query);
După adăugarea informațiilor, utilizatorul are posibilitatea de a vizualiza informațiile
adăugate prin introducerea numărului de comandă :
Figura 24. Afișare comenzi
Acest lucru este realizat cu interogarea SELECT :
42 $info = getData();
$search_query1="SELECT * FROM date_comanda_transport WHERE nr_c =
'$info[20]'";
$search_result1=$mysqli ->query($search_query1);
Informațiile sunt afișate sub formă de tabel . Pentru informațiile ce nu sunt introduse, căsuța
corespunzătoare va fi goală.
Figura 25. Afișare tabelară comandă
Afișarea sub formă de tabel este realizată cu ajutorul tagurilor <table>,<th>,<tr> și <td>,
stilizate cu ajutorul fi șierului style.css.
Câmpul număr de înmatriculare este cheie străină în tabelul date_comanda_transport, ceea
ce înseamnă că informațiile des pre camion trebuie să existe în prealabil în baza de date.De
asemenea, toate informațiile despre bunurile firmei vor fi adăugate la prima utilizare a
aplicației.
Opțiunea de modificare a comenzii cuprinde 2 câmpuri : modificarea detaliilor despre
comadă sa u modificarea unei adrese. S-a ales împărțirea acestor două opțiuni deoarece există
posibilitatea utilizării aceleași adrese în mai multe comenzi, iar apoi să fie necesară
modificarea acesteia, ceea ce v-a determina modificarea ei în toate comenzile.
Pentru a modif ica o adresă este obligatorie introducerea câmpului nume_firma , iar
pentru modificarea detaliilor comenzii este necesară introducerea numărului de comandă.
Fiecare câmp, atât al adresei, cât și al celorlalte informații ce pot fi modif icate din ca drul
bazei de date, vor fi înlocuite separat, fiecare informație nouă introdusă având câmpul
propriu de text și butonul de modificare.
Fiecare pagin ă de modificarea a informațiilor conține butonul de afișare a tuturor datelor
stocate în tabelul din baza de date.
43
Figura 26. Modificare adresă
Modificarea informațiilor se realizează cu ajutorul funcției UPDATE :
if(isset($_POST['update_nr'])){
$info = getData();
$update_query="UPDATE `adresa` SET nr='$info[2]' WHERE
nume_firma='$info[0]'";
$update_result=mysqli_query($mysqli, $update_query); }
Informarea utilizatorului, în cazul în care modificarea s -a produs sau nu, se va realiza prin
intermediul unui mesaj ce va apărea în aceeași fereastră:
Figura 27. Informare utilizator date modifica te cu succes
Opțiunea de căutare sau ștergere a informațiilor este împărțit ă, la fel ca și opțiunea de
modificare, în : căutarea sau șteregerea unei adrese și căutarea sau șteregrea unei comenzi .
Dacă accesăm fereastra de căutare sau ștergere a unei comenzi o să avem de ales între
următoarele link -uri:
44
Figura 28. Opțiuni caută sau șterge o c omandă
Ștergerea unei comenzi este posibilă doar dacă se introduce numărul de comandă, în schimb,
căutarea se poate face și după numărul de înmatriculare al camionului sau referința de
descărcare respectiv încărcare sau opțiunea de afișare a tuturor comenzilor. P entru opțiunea
de afișare a comenzii în format scurt, se vor afișa doar numărul de comandă, adresa de
încărcare sau descărcare și numărul de înmatriculare al mașinii ce a efectuat cursa. Această
variantă oferă posibiltatea de a face căutarea după numele sa u localitatea firmei de
descărcare sau încărcare. Din pagina de comenzi se poate naviga spre fereastra de facturi sau
cea despre camioane.
Pentru modul de editare facturi :
Figura 29. Meniu editare facturi
45 Opțiunea de adăugare a unei facturi implică mai întâi adăugarea în baza de date a
informațiilor despre companiile ce au colaborat pe baza unei comenzi de transport.
Adăugarea unei facturi se face la fel ca în cazul adăugării unei comenzi, conform
subcapito lului Analiza afacerii .
Informațiile despre companii vor apărea în antetul facturii la descărcarea acesteia prin
alegerea opțiunii de descărcarea a facturii.
Figura 30. Opțiunea de descărcare a unei facturi
Factura în format .DOC va conține informațiile relevante adăugate în cadrul bazei de date.
Structura facturii a fost realizată după un model primit de la client. Facturile emise de
compania pentru care a fost creată aplicația facturează doar în moneda EURO.
Figura 31. Format factură .DOC
Calculele pentru prețul total, valoarea TVA, prețurile în lei sunt calculate cu ajutorul
varibilelor PHP și a interogărilor.
$vtva=$row['Tvaf']; //cota tva
$prett=$row['Pretf']; //prețul facturii
$cval=$row['CursF']; //curs valutar
$vtvapret=$prett*($vtva/100); //valoarea tva
$prettotal=$prett+$vtvapret; //pret cu tva
46 $pretlei=$prett*$cval; //preț în lei
$tvalei=$vtvap ret*$cval; //valoare tva în lei
$prettotallei=$prettotal*$cval; //valoare totală lei
Pentru această opțiun e s-a folosit următorul set de instrucțiuni imediat după declarația
<?php :
header("Content -type: application/vnd.ms -word");
header("Content -Disposition: attachment; Filename=Factura.doc");
Iar pentru scrierea informațiilor în document:
echo '<!DOCTYPE html PUBLIC " -//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1 -transitional.dtd">
<html xmlns="htt p://www.w3.org/1999/xhtml">
Cod HTML pentru descrierea paginii
</html>’
Modificarea unei facturi se face similar ca în cazul comenzilor, criteriile fiind în cazul
companiilor numele acestora, iar pentru facturi seria și numărul facturii. Căutarea și
șterge rea unei companii se realizează după numele acesteia, în cazul facturilor fiind
disponibile opțiunile:
Figura 32. Căutare sau ștergere factură
Ștergerea se realizează dup ă seria și numărul facturii, iar căutările după încă un set criterii :
numărul de comandă asociată, data emiterii sau numele companiilor de încărcare/descărcare
etc.
Pentru modul de editare informații camioane:
Acest modul este împărțit în două secțiuni :
47
Figura 33. Prima secțiune a modulului editare camioane
Secțiunea pentru a adăuga, modifica, căuta sau șterge informațiile despre șoferi, camion și
semiremorcă sau informațiile despre cheltuielile ce intervin în activitatea firmei în ceea ce
privește datele adăugate anterior. Toate aceste opțiuni au fost implementate după modelul
anterior. Criteriile de căutare, ștergere sau modificare sunt numărul de înmatriculare al
camionului, respectiv numele șoferului în cazu l informațiilor despre șoferi.
Pentru modul de generarea rapoarte :
Figura 34. Modulul de generarea a rapoartelor
Este necesară introducerea numărului de înmatriculare a mașinii pentru care se dorește
generarea raportului și pe rioada în format de date calendaristice sau în număr de zile apriori
de la data curentă.
Informațiile afișate de aplicație sunt:
48
Figura 35. Raport după numărul de înmatriculare al camionului introdus
Informațiile sunt calculate automat cu ajutorul variabilelor PHP și interogărilor SQL ;
În cazul introducerii numărului de zile :
• Pentru calcularea num ărului de comenzi și a km parcurși :
SELECT COUNT(*) c, SUM(COALESCE(km_i_d,0)) s FROM
date_comanda_transport WHERE numar_camion = '$info[0]' AND
TIMESTAMPDIFF(DAY, data_d, CURDATE()) BETWEEN 0 AND '$info[1]'
• Pentru calculele legate de cheltuielile uzuale:
SELECT SUM(COALESCE(alimentat,0)) a, SUM(COALESCE(consumat,0)) c,
SUM(COALESCE(km_autos_plat,0))autos,SUM(COALESCE(alte_cheltuieli,0
))d,SUM(COALESCE(asigurare_cursa,0))asig,SUM(COALESCE(comisioane,0
)) comis,SUM(COALESCE(diurna,0)) d, SUM(COALESCE(plata_par care,0))
parcare,SUM(COALESCE(alimentat,0))+SUM(COALESCE(consumat,0))+SUM(C
OALESCE(km_autos_plat,0))+SUM(COALESCE(alte_cheltuieli,0))+SUM(COA
LESCE(asigurare_cursa,0))+SUM(COALESCE(comisioane,0))+SUM(COALESCE
(diurna,0))+SUM(COALESCE(plata_parcare,0)) as pre ttotal
FROM cheltuieli_camion WHERE nr_inmatriculare_camion = '$info[0]'
AND TIMESTAMPDIFF(DAY, data_adaugare, CURDATE()) BETWEEN 0 AND
'$info[1]' ;
• Pentru calculele legate de repara ții:
SELECT SUM(COALESCE(pret_piesa_schimb,0))schimbare,
SUM(COALESCE(pret_ manopera,0))manopera,SUM(COALESCE(pret_alte_chel
tuieli,0))altele,SUM(COALESCE(pret_piesa_schimb,0))+SUM(COALESCE(p
ret_manopera,0))+SUM(COALESCE(pret_alte_cheltuieli,0) )as
totalreparatii
FROM reparatii WHERE nr_camion = '$info[0]' AND TIMESTAMPDIFF(DAY,
data_schimbare, CURDATE()) BETWEEN 0 AND '$info[1]' ;
Pentru cazul în care se introduc datele calendaristice, condiția din interogări se modifică
astfel: data_d BETWEEN 'data_inceput' AND 'data_sfarsit'
49 Informațiile din formularul HTML se preiau la fel ca în cazul celorlalte date din
aplicație.Afișarea rezultatului se realizează sub formă de mesaj în aceeași pagină.
4.6 Notificări
Alerta pentru situații le cerute de client se face prin primirea unei notific ări pe emailul
societății de transport. Un e mail are următoarea structură :
Adresa de mail notificari.aplicatietransport@gmail.com este un cont de gmail creat special
pentru a trimite aceste alerte. Notificările sunt structurate într -un fișier numit mail.php,
configurat astfel încât să permită utilizarea utilitarului sendmail din cadrul aplicației
XAMPP.
Trimiterea mail -urilor se rea lizează cu următoarea structură de instrucțiuni :
$msg = "Permisul șoferului " . $row["nume_sofer"] . " va expira
în 30 de zile";
$msg = wordwrap($msg, 100);
mail("sambyan.office @gmail.com","Notificare",$msg);
Mesajele au proprietatea să nu depășească 100 de caractere pe un rând pentru a menține
caracterul estetic al mesajului .
Condițiile de trimitere a email -urilor sunt realizate de către interogări SQL de forma :
SELECT nume_sofer FROM sofer WHERE DATEDIFF (`val_permis`,NOW()) =
30
Notificările sunt trimise cu 10,20 sau 30 de zile înainte de data stocată în baza de date pentru
expirarea documentelor în funcție de necesitatea lor : permisul de conducere , certificatul
medico -legal, atestatul de șofer profesionist, cartela tahograf, al unui șofer cu 30 și 10 zile
înainte de expirare, inspecția tehnică periodică și valabilitatea licenței de transport cu 30 și
20 de zile înainte, verificarea tahografului cu 20 de zile înainte, scandeța unei facturi cu 7
zile înainte și atingerea termenului de plată al unei c omenzi.
Acest script php rulează o dată pe zi, în background -ul sistemului cu ajutorul aplicației Task
Scheduler din Windows. În funcție de datele introduse de utilizator, sistemul trimite sau nu
email -uri de alertă.
50
Figura 36. Task Sch eduler
Pentru crearea task -ului s -au urmat pașii :
Action → Create Task
În tab -ul General s-a introdus numele task -ului: Send mail php și s-a ales opțiunea „ Run
wether user is logged on or not ”
În tab -ul Trigger → New → s-a ales op țiunea daily everyday at 8 :00.
În tab -ul Actions , în secțiunea Program/Script : „D:\xampp \php\php.exe ”, iar în secțiunea
Add arguments : „-f D:\xampp \htdocs \licenta \mail.php ”
S-a apăsat OK, apoi Run.
51 5. Concluzii și dezvoltări ulterioare
În urma analizei cazurilor de utilizare, a capabilităților de configurare ale sistemului și
a performanțelor sale se poate trage concluzia că sistemul atinge toate cerințele impuse .
Atât obiectivele principale cât și cele secundare propuse pentru implement area
sistemului, au fost atinse, scopul fiind crearea unei aplicații pentru gestiunea activității din
cadrul unei firme de transport marfă . Capacitățile aplicației implică : suport pentru a putea
lua anumite decizii , digitalizarea documentelor și informațiilor ce intră sau ies din firmă,
generarea rapoartel or de activitate a angajaților pe un interval de timp dorit de utilizator și
sistemul de alertă ce oferă toate informații le pentru a preveni unele situații.
Dintre obiectivele secundare, posibilitatea generării unui document DOC, sub formă de
factură, care să includă toate specificațiile introduse în aplicație a fost atins cu succes, iar pe
lângă generarea documentului, el po ate fi modificat direct de utilizator, fără a mai fi nevoie
de intervenția în aplicație, fiind descărcat într -un format editabil. Sistemul de generare al
rapoartelor se realizează interactiv, având mai multe posibilități de introducere a intervalului
de timp pentru care se realizează raportul, iar sistemul de alertă prin e -mail este concis și
precis, oferind strict informațiile utile clientului.
La baza aplicației, este permisă orice acțiune a utilizatorului asupra datelor din baza
de date, însă totul este validat și conform cerințelor.
În final, se poate spune că sistemul realizat oferă utilizatorilor posibilitatea de a -și
desfășura mai ușor munca și de a obține performanțe mai bune în urma desfășurării activității
în firmă pe baza utilizării aplcației.
Dezvoltări ulterioare
Sistemele informatice sunt deseorisupuse la dezvoltări ulterioare, motiv pentru care
sistemul realizat a fost proiectat astfel încât să permită eventualele modificări sau
îmbunătățiri.
Fiind un sistem informatic care rezolvă o proble mă cu aspect managerial, este inevitabilă
necesitatea actualizărilor în timp. Fie din cauza schimbărilor de regulamente ale firmei sau ale
partenerilor, fie din cauza faptului că sistemul pur și simplu nu acoperă toate cazurile de utilizare
necesare unei f irme în practică, necesitatea implementării noilor funcționalități este un proces
inevitabil în timp.
O primă îmbunătățire care poate fi adusă sistemului este de a face posibilă încărcarea
comenzilor partenerului extern în format pdf în baza de date, infor mațiile necesare
preluându -se automat, fără a mai fi nevoie de introducerea manuală a acestora . Această
opțiune ar scurta timpul de lucru și ar minimiza rata de erori introduse în baza de date. În
ceea ce privește facturile, se poate implementa opțiunea de generare automată din comanda
introdusă, ce va ușura și mai mult munca utilizatorului.
O altă posibilitate de dezvoltare ulterioară este reprezentată de adăugarea unui unui
calendar pentru a ține evidența facturilor și comenzilor . Prin intermediul aceste i dezvoltări ,
utilizatorul poate urmări mai ușor activitățiile care trebuie să le desfă șoare pentru realizarea
sarcinilor asignate acestora.
O a treia îmbunătățire a sistemului este reprezentată de integrarea în sistem a opțiunii
de urmărire a mașinilor în formatul de hartă GPS pentru a furniza infomații cât mai precise
în ceea ce privește ora de încărcare, respectiv descărcare, dacă există posibilitatea de
întârzieri sau chiar anularea unor comenzi.
Pentru cheltuielile în ceea ce privește firma, se poate crea și opțiunea de introducere
a veniturilor firmei și a informațiilor despre încasări și credite .
52 Bibliografie
1. Bass, L., Clements, P., Kazman, R. (2003). Software Architecture in Practice, 2nd
Edition. Addison -Wesley.
2. Bass , L., Clements, P., Kazman, R. (2012). Software Architecture in Practice, Third
Edition . Addison -Wesle y Professional .
3. Documentație curs Utilizare Internet. http://vega.unitbv.ro/~jipa/ui/p2_cap 4.pdf .
Accesat: 2020.
4. Documentație curs Baze de date, Facultatea de Automatică și Calculatoare,
Universitatea Politehnica București.
5. Documentație c urs Statistică și Informatică economică, Facultatea de Științe Economice
Universitatea din Oradea . http://steconomiceuoradea.ro/anale/volume/2006/statistica -si-
informatica -economica/17.pdf Accesat: 20 20.
6. Documentație Institutul Național de Statis tică. https://insse.ro/cms/ro Accesat: 2 020.
7. Documen tație PHP. https://www.php.net/docs.php . Accesat:2020 .
8. IASA (The Global IT Architect Association) . https://itabok.iasaglobal.org/itabok/what –
is-it-architecture/ Accesat: 20 20.
9. Manual Instalare Xampp http://www.apachefriends.org/en/xampp -windows.html .
Accesat:2020.
10. Recommended Practice for Architectural Description of Software -Intensive Systems .
ANSI/IEEE Std. 1471 -2000 (2000). https://ieeexplore.ieee.org/document/875998 .
Accesat:2020
11. Shorter Oxford English Dictionary (1993), Oxford .
12. Șerbănescu, L . (2016). Bazele proiectării și implementării aplicațiilor . Fair Partners.
13. Visual Studio 2003 Retired Technical documentation . Documentație Microsoft (2017).
https://www.microsoft.com/en -us/download/details.aspx?id=55979 Accesat: 20 20.
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: Aplicație de gesti une a activității unei firme de transport marfă Coordonator Absolvent Sl.Dr.Ing. Alexandra – Suzana Cernian Bianca – Elena Ionesi… [618228] (ID: 618228)
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.
