Documente Academic
Documente Profesional
Documente Cultură
Introducere...................................................................................................................................4
CAPITOLUL I - STUDIUL ȘI ANALIZA SISTEMULUI EXISTENT..........................................................6
1.1. Prezentarea succintă a unității economico-sociale.................................................................7
1.2. Principalele activități desfășurate în unitatea economică......................................................8
1.3. Studiul sistemului de conducere............................................................................................9
1.4. Studiul sistemului informatic................................................................................................11
1.4.1. Dotarea tehnică existentă.............................................................................................11
1.4.2. Furnizori de servicii........................................................................................................11
1.4.3. Soluții software..............................................................................................................11
1.5. Analiză critică a sistemului informatic..................................................................................12
1.6. Modelarea conceptuală a datelor........................................................................................13
CAPITOLUL II - PROIECTAREA DE ANSAMBLU A SISTEMULUI INFORMATIC.................................14
2.1. Definirea obiectivelor...........................................................................................................15
2.2. Estimarea necesarului de resurse.........................................................................................16
2.3. Modelarea prelucrărilor.......................................................................................................17
2.4. Diagrama Entitate-Asociere..................................................................................................17
2.5. Stabilirea platformei hardware şi software şi de comunicaţii...............................................19
2.6. Componente soft pentru realizarea aplicaţiei......................................................................20
2.6.1. PHP Hypertext Processor...............................................................................................20
2.6.2. MySQL - My Structured Query Language.......................................................................21
2.7. Concepte de programare utilizate........................................................................................23
2.7.1. Programarea Orientată pe Obiect (OOP – Object Oriented Programming)...................23
2.7.2. MVC (Model – View – Controller)..................................................................................23
2.7.3. Normalizarea bazei de date...........................................................................................23
2.8. Calendarul de realizare.........................................................................................................24
CAPITOLUL III – PROIECTAREA DE DETALIU A APLICAŢIEI INFORMATICE....................................25
3.1. Descrierea funcţiilor aplicaţiei..............................................................................................26
3.1.1. Funcţii frontend.............................................................................................................26
3.1.2. Funcţii backend.............................................................................................................26
3.2. Descrierea documentelor de intrare....................................................................................27
Crearea unui cont de utilizator............................................................................................27
2
3.2. Descrierea documentelor de ieşire.......................................................................................28
3.3. Structura bazei de date........................................................................................................29
3.4 Structura aplicației................................................................................................................37
CAPITOLUL IV – PREZENTAREA PRODUSULUI SOFTWARE...........................................................38
4.1. Cerinţele produsului software..............................................................................................39
4.2. Elementele principale ale aplicatiei......................................................................................40
4.3. Descrierea funcţiilor aplicaţiei..............................................................................................41
CAPITOLUL V – EFICIENŢA ŞI UTILITATEA APLICAŢIEI INFORMATICE...........................................47
5.1. Condiții privind implementarea aplicației............................................................................48
5.2. Posibilităţi de îmbunătăţire..................................................................................................49
5.2. Avantajele noului sistem şi concluzii....................................................................................50
BIBLIOGRAFIE.............................................................................................................................51
3
Introducere
4
are o prezența online sub forma unui website, așa că realizarea unui magazin virtual
reprezintă o oportunitate majoră.
Alte limbaje folosite în această lucrare sunt JavaScript, dar și HTML, respectiv CSS
pentru realizarea interfeței site-ului.
5
CAPITOLUL I - STUDIUL ȘI ANALIZA SISTEMULUI
EXISTENT
6
1.1. Prezentarea succintă a unității economico-sociale
Societatea deține un singur punct de lucru și sediu social, aflat în București, pe strada
Gazelei, numărul 39A.
Eurocomertz Import - Export SRL este una din primele 5 companii de profil de pe
piața românească, fiind una dintre cele mai vechi companii din domeniu și având un
portfoliu de peste 2500 de clienți, atât persoane fizice, cât și persoane juridice.
Datorită produselor vândute, precum și ale serviciilor prestate, firma se află încadrată
într-un cadru legislativ special, fiind necesar să se subordoneze atât Codului Fiscal aflat în
vigoare la momentul scrierii acestei lucrări, dar și a legii numărul 295/2004 privind
regimul armelor și munițiilor.
7
1.2. Principalele activități desfășurate în unitatea economică
8
1.3. Studiul sistemului de conducere
Director General
Calificări necesare
· Studii superioare, de preferință în domeniul economic
Atribuții și obligații
· Asigură și monitorizează bună funcționare a firmei din punct de vedere financiar,
strategic și al resurselor umane
Armurier / Gestionar
Calificări necesare
· Studii medii, diplomă de bacalaureat
· Atestat de armurier conform legii numărul 294/2004
Atribuții și obligații
· Preia spre depozitare sau reparație armele de la clienți
· Oferă informații despre produse clienților, legislația specificând clar că numai un
armurier autorizat poate opera armele în cadrul magazinului
· Semnează pentru produsele primite în gestiune
Sales Manager
Calificări necesare
· Studii medii
Atribuții și obligații
· Se ocupă de facturarea produselor și serviciilor către clienți
9
· Asigură gestiunea stocurilor împreună cu Armurierul/Gestionarul
· Emite comenzi către furnizori în urma consultării cu Gestionarul și Directorul
General
Social Media Manager
Calificări necesare
· Studii superioare, de preferința în domeniul IT sau marketing
Atribuții și obligații
· Promovează produsele și serviciile firmei pe rețele de socializare precum
Facebook, Twitter sau Google+
10
Serviciul de contabilitate este externalizat către o companie specializată.
Director General
Tehnician
· Microsoft Excel
· Dropbox
· Facturis
11
1.5. Analiză critică a sistemului informatic
· O singură persoană poate folosi baza de date în același timp, având în vedere că
baza de date se află într-un fișier Excel și chiar dacă acesta este share-uit cu toți
angajații firmei pe Dropbox, o modificare a acestui fișier în același timp de 2 sau
mai mulți utilizatori ar duce la conflicte și pierderi de date
12
· În cazul în care calculatorul principal pe care este instalat sistemul de facturare
cedează, nu se mai pot emite facturi până la rezolvarea problemei
1.1.1. General
Utilizator Factura
# id # id
* nume * nume
* prenume * prenume
* email * email
* parola * parola
* statut * statut
Client
# id
1.1.2.
# cnp
Magazin online
* nume Produs Comanda
* prenume
# id # id
* email
* nume * id client
* parola
* descriere * stare
* telefon
* stoc
* adresa
* magazin
13
1.1.3. Gestiune depozitări și gestiune reparații
Fisa Depozitare Arma Operatiune
# id # id # id
* id client * cost lunar * nume
* data intrare * finalizat
* data iesire
* finalizat
Fisa Reparatie
# id
* id client
* id angajat
* data intrare
* data iesire
* finalizat
14
2.1. Definirea obiectivelor
Luând în considerare obiectivele stabilite mai sus, putem realiza sistemul software
din 3 părţi componente:
1. Magazinul virtual
2. Gestiunea depozitărilor de arme şi/sau muniţie
3. Gestiunea reparaţiilor
Aşadar, vor exista doi tipuri de utilizatori: client şi angajat. Clientul va avea acces
la:
· Interfaţa frontală a magazinului virtual de unde va putea efectua cumparatur
· Contul acestuia, unde va putea vizualiza starea comenzilor, a depozitărilor şi a
reparatililor
Angajatul va putea accesa interfaţa de administrare de unde va putea adăuga
produse, valida comenzi, introduce noi depozitări sau fişe de reparaţie.
15
2.2. Estimarea necesarului de resurse
2.2.1 Resurse umane
Pentru a realiza acest site este nevoie de :
· 2 programatori
· 1 designer
· 1 administrator Linux/Windows
· 2 operatori care să se asigure că site-ul poate fi pus online
16
2.3. Modelarea prelucrărilor
Magazinul Virtual
CATEGORIE COS
CLIENT
PRODUS
FACTURA
Gestiunea depozitărilor
FISA_DEPOZITARE
CLIENT
ARMA
ANGAJAT
17
Gestiunea reparaţiilor
FISA_REPARATIE
CLIENT
OPERATIUNE
UTILIZATOR
Etapele Proiectării
· Analiză sistem – se scot în evidenţă componentele sistemului
· Proiectarea bazei de date în modelul entitate-asociere
18
2.5. Stabilirea platformei hardware şi software şi de comunicaţii
19
2.6. Componente soft pentru realizarea aplicaţiei
PHP-ului a fost dezvoltat iniţial în anul 1995 de către Rasmus Lerdorf şi s-a numit
iniţial PHP/FI (Personal Home Page/Forms Interpreter), fiind mai târziu rescris de la zero
de către Andi Gutmans şi Zeev Suraski şi redenumit simplu PHP (PHP Hypertext
Processor). Cei doi sunt creatorii nucleului actual al PHP şi fondatorii companiei Zend
Technologies. (Ullman, 2005) Versiunea curentă de PHP este 5.6, urmând ca până la
sfârşitul anului să se lanseze versiunea PHP 5.7.
Limbajul PHP s-a inspirat din multe alte limbaje; el a pornit ca limbaj de
programare procedural, cu sintaxa asemănătoare cu C sau Perl, iar odată cu versiunea 3 i
s-au adăugat facilităţi de programare orientată pe obiect, multe dintre ele asemănătoare
20
sau identice cu cele din Java sau C++. Toate acestea fac că limbajul PHP să fie, în ziua de
astăzi, accesibil programatorilor de orice formaţie. PHP este folosit în principal în
două scopuri:
• generarea dinamică a păgânilor web – interpretorul PHP este folosit de către
serverul web pentru a genera pe loc (parţial său integral) paginile web care sunt apoi
livrate browserelor;
• realizarea de scripturi pentru administrare de sistem – prin intermediul versiunii
în linia de comandă a interpretorului PHP;
Paginile unui site web pot fi:
• statice – un ansamblu de fişiere HTML şi imaginile aferente; clienţii vor vedea
acelaşi conţinut la fiecare accesare;
• dinamice – paginile sunt generate pe loc (parţial său integral) în momentul
accesării de către client, la generarea lor ţinându-se cont de parametrii conexiunii,
identitatea clientului, input-ul furnizat de către acesta prin intermediul unui formular etc.
Atunci când clientul solicită o anumită adresă web, în loc ca serverul web să facă simpla
citire a conţinutului unui fişier HTML de pe hard-disk, el execută un program PHP care
generează pe loc codul HTML ce reprezintă sursa paginii web.
Interpretorul PHP este open source şi se poate obţine:
• prin download de pe www.php.net sau unul dintre mirror-urile oficiale. În acest
caz, dacă se doreşte interfaţarea sa cu un server web deja instalat, este necesară
reconfigurarea serverului în cauză pentru a lucra cu PHP
• ca parte a unei suite software care integrează serverul web, PHP şi eventual un
server de bâze de date (ex: WAMP server – Windows Apache, Mysql & PHP). În acest caz,
serverul web se instalează odată cu PHP şi este pre-configurat corect pentru interfaţarea
cu acesta.
Limbajul SQL
Unul dintre beneficiile importante pe care le oferă un DBMS este decuplarea
modalităţii fizice de structurare a datelor (ex: organizarea, locaţia şi denumirea fişierelor)
de modalitatea de accesare şi manipulare a lor. Utilizatorul care beneficiază de serviciile
unui DBMS nu vede (şi nici nu doreşte să ştie) aspectele low-level ale stocării informaţiei,
21
ci doreşte o viziune logică a datelor memorate care să îi permită uşoara lor introducere,
extragere şi prelucrare.
În acest scop, DBMS pune la dispoziţia utilizatorului fie o interfaţă grafică, fie un
limbaj care să îi permită acestuia interacţiunea cu datele şi facilităţile conexe acestora.
Limbajul folosit în cazul bazelor de date relaţionale este SQL (Structured Quert Language).
SQL este un limbaj ce conţine instrucţiuni pentru definirea şi modificarea structurii
bazelor de date, accesarea şi manipularea datelor şi controlul accesului la date. El a fost
creat la începutul anilor ’70 la IBM şi folosit iniţial ca baza într-unul dintre produsele
acestei firme. Ulterior, în 1986, el este standardizat de către ANSI (American Naţional
Standards Institute) şi apoi de către ISO (Internaţional Organization for Standardization),
existând versiuni succesive ale standardului SQL, ultima dintre ele fiind SQL:2008. Toate
softurile majore de tip DBMS ale zilelor noastre înglobează o formă a limbajului SQL.
Baze de date
O bază de data relaţionala este o noţiune logică – un ansamblu de informaţie
compus dintr-una sau mai multe tabele. Modalitatea fizică de stocare a datelor tine de
softul DBMS folosit. Graţie limbajului SQL, clientul poate manipula datele independent de
aspectele fizice ale stocării
Deşi foarte des folosită expresia „introducem date în baza de date”, informaţia nu
stă direct în baza de date, ci în nişte sub-diviziuni ale sale numite tabele. O bază de date
poate conţine zero sau mai multe astgel de tabele. Deoarece datele efective stau în
tabele, o bază de date care nu conţine nicio tabelă este o bază de date în care nu se află
informaţie
Tabele
O tabelă dintr-o bază de date relaţionala (denumită în teoria bazelor de date
şi”relaţie”) reprezintă un ansamblu de înregistrări cu structura impusă, organizată
tabelar(în rânduri şi coloane). Structura unei tabele este specificată la crearea acesteia şi
presupune specificarea numărului de coloane şi a numelui/tipului de informaţie a
fiecăreia dintre ele. Fiecare înregistrare(rând) din tabelă va fi obligată apoi să aibă o
valoare pentru fiecare dintre coloanele prezentate în definiţie.
22
2.7. Concepte de programare utilizate
2.7.1. Programarea Orientată pe Obiect (OOP – Object Oriented Programming)
În programarea orientată pe obiecte legătura strânsă dintre date şi operaţiile
efectuate asupra lor se extinde şi asupra structurilor de date. Fiecare obiect este o
structură de date, asociată cu o colecţie de metode (funcţii sau proceduri) prin
intermediul cărora se manipulează aceste date. Obiectele care au aceeaşi structură şi
aceleaşi metode se grupează într-o clasă. Clasă este, deci, o extindere a conceptului de tip
de date, în care mulţimea de valori este o mulţime de obiecte, iar mulţimea operaţiilor
este o mulţime de metode. "Programul" este, în POO, un ansamblu de clase şi obiecte
care comunică între ele prin mesaje.
Fiecare obiect se caracterizează prin stare şi comportament. Starea obiectului este
caracterizată prin valorile pe care le au, la un moment dat, datele conţinute de acesta.
Dacă se modifică una sau mai multe astfel de valori, se modifică şi starea obiectului.
Comportamentul obiectului se manifestă în modul în care obiectul răspunde la primirea
unui mesaj. Acest răspuns poate depinde atât de mesajul primit, cât şi de starea în care se
găseşte obiectul în momentul primirii acestuia. Tratarea mesajului se face prin aplicarea
metodelor obiectului respectiv.
23
Normalizarea reprezintă procesul de descompunere a unui tabel relaţional în mai
multe tabele care satisfac anumite reguli şi care stochează aceleaşi date ca şi tabelul
initialastfel încât să fie eliminate redundanta în date şi anomaliile la actualizare.
Prima formă normală exclude posibilitatea existenţei grupurilor repetitive cerând
ca fiecare câmp într-o bază de date să cuprindă numai o valoare atomică. De asemenea,
prima formă normală cere şi că fiecare înregistrare să fie definită astfel încât să fie
identificată în mod unic prin intermediul unei chei primare.
A doua formă normală cere ca toate elementele unei tabele să fie dependente
funcţional de totalitatea cheii primare. Dacă unul sau mai multe elemente sunt
dependente funcţional numai de o parte a cheii primare, atunci ele trebuie să fie separate
în tabele diferite. Dacă tabela are o cheie primară formată din numai un atribut, atunci ea
este automat în 2NF (a 2-a forma normală).
A treia formă normală. Se reduc entităţile celei de-a doua forme normale la cea
de-a treia formă normală prin eliminarea atributelor care depind de altele, atribute ne-
cheie. În principiu această înseamnă că nu trebuie stocate date care pot fi derivate din
alte coloane sau care aparţin altei tabele.
24
CAPITOLUL III – PROIECTAREA DE DETALIU A APLICAŢIEI
INFORMATICE
25
3.1. Descrierea funcţiilor aplicaţiei
3.1.1. Funcţii frontend
Pe partea de frontend aplicaţia funcţionează în principal că un magazin online
astfel că sunt implementate majoritatea funcţiilor aşteptate de la un astfel site:
înregistrarea şi autentificarea utilizatorilor, vizualizarea şi căutarea de produse, adăugarea
acestora în coş şi posibilitatea de a comanda online.
1. CATALOG
2. COMENZI
3. DEPOZITĂRI
4. REPARAŢII
5. CLIENŢI
6. UTILIZATORI
7. SETĂRI
26
3.2. Descrierea documentelor de intrare
27
Adăugarea unei fişe de reparaţii
28
3.3. Structura bazei de date
Baza de date folosită este MySQL şi conţine 12 tabele importante pentru aplicaţie:
categories, products, cart_products, order, order_products, customers, repairs, deposits,
product_images, temp_images, options. Fiecare dintre tabele este descris mai jos.
29
· brand_name – numele brandului/producătorului
· sku – codul unic al produsului (poate fi generat de către program în cazul în care
nu este introdus manual)
30
Tabelul customers (clienţi) conţine următoarele câmpuri
31
Tabelul repairs (Reparaţii) conţine următoarele câmpuri:
32
· item_description – numele/descrierea obiectului depozitat
33
Figura 8 Tabel ce conţine categoriile
34
· id – id-ul imaginii
35
· id – id-ul produsului în tabelul curent (cheie primară)
36
3.4 Structura aplicației
În cele din urmă cel mai important este fişierul routes.php, care conţine toate
rutele aplicaţiei.
37
CAPITOLUL IV – PREZENTAREA PRODUSULUI SOFTWARE
38
4.1. Cerinţele produsului software
· Procesor: minimum dual-core 1.2 GHz (avantajul unui sistem dual core este acela
că procesul bazei de date poate rula pe un alt „core” al procesorului lăsând liber
unul dintre nuclee pentru procesul PHP care rulează aplicaţia)
Din punct de vedere software, pentru găzduirea site-ul cerinţele minimale sunt
cele cerute de framework-ul Laravel :
39
4.2. Elementele principale ale aplicatiei
Ca elemente comune în cadrul paginilor din frontend avem antetul, meniul de tip
„breadcrumb” şi subsolul.
40
4.3. Descrierea funcţiilor aplicaţiei
41
Figura 21 Pagină pentru produs
42
Figura 24 Eroare la adaugarea unui produs care nu se afla pe stoc
Figura 25 Autentificare
43
Figura 27 Cosul clientului
44
Figura 29 Listarea categoriilor in pagina de administrare
45
Figura 32 Listarea produselor in pagina de administrare
46
CAPITOLUL V – EFICIENŢA ŞI UTILITATEA APLICAŢIEI
INFORMATICE
47
5.1. Condiții privind implementarea aplicației
Acestea fiind spuse, în măsura în care se pot asigura cele trei lucruri, se poate
dezvolta și utiliza aplicația în timpul menționat în această lucrare.
48
5.2. Posibilităţi de îmbunătăţire
Atunci când vine vorba de un sistem software este greu de zis când este finalizat,
pentru că se poate îmbunătăţi mereu câte ceva. De cele mai multe ori, din lipsa de timp
anumite funcţionalităţi ale software-ului sunt eliminiate, lăsându-le doar pe cele mai
importante pentru că dezvoltatorul să se poată încadra în timp.
Este bineînţeles şi cazul aplicaţiei prezentate în cadrul acestei lucrări. Că la orice alt
software sunt multe lucruri care se pot îmbunătăţi sau adaugă.
49
5.2. Avantajele noului sistem şi concluzii
Aplicatia realizata prezinta avantaje majore pentru companie atat din punct de
vedere al vizibilitatii in piata (avand prezenta online), cat si din punct de vedere al
managementului depozitarilor si reparatiilor.
Pe partea interna se poate observa mai istoricul clientilor, atat din punct de
vedere a produselor achizitionate, dar si mai important pentru gestiune, din punct de
vedere al reparatiilor si depozitarilor. De asemenea este mult mai usor de urmarit starea
unui produs aflat in reparatie de exemplu sau suma de bani pe care un client o datoreaza
intr-o luna.
Asadar, aplicatia de fata, nu este doar un magazin online, ci este o aplicatie care
intregreaza toate cele 3 servicii oferite de Eurocomertz – comercializare de produse,
depozitari de arme si munitii, reparatii de arme – oferind astfel clientului un serviciu
online usor de folosit, iar angajatilor un mediu mai prietenos si mai facil de lucru prin care
isi pot creste eficienta la locul de munca si incasarile pentru firma. Intr-o lume in care
timpul este foarte pretios, integrarea serviciilor intr-o singura interfata pentru client este
un mod sigur de a-l fideliza fata de firma.
50
BIBLIOGRAFIE
Ullman, L. (2005). In PHP for the World Wide Web (pp. 10-12).
51
52