Realizarea Unui Magazin Virtual Folosind Php Si Mtsql
Cuprins
Introducere……………………………………………………………………………….…..4
Cap. 1. Studiul si analiza sistemului existent…………………………….……………….5
1.1 Prezentarea succintă a unității economico-sociale…………………….……5
1.2 Principalele activități desfășurate în unitatea economică…………………..5
1.3 Studiul sistemului de conducere………………………………………………8
1.4 Studiul sistemului condus……………………………………………………..10
1.5 Studiul sistemului informational……………………………………………….11
1.5.1 Descrierea sistemului informational ………………………………11
1.5.2 Descrierea documentelor utilizate………………………………….12
1.5.3. Analiza critică a sistemului actual și identificarea neajunsurilor existente n funcționarea sistemului existent……………………………..15
1.5.4 Direcții de perfecționare a sistemului actual……………………….15
Cap. 2. Proiectarea de detaliu a aplicatiei informatice………………………………….16
2.1 Definirea obiectivelor aplicației informatice ……………………….……….16
2.2 Proiectarea logică și fizică a ieșirilor………………………………………….16
2.3 Proiectarea logică și fizică a intrărilor………….…….………..……………..19
2.4 Proiectarea bazei de date…………………………………………..…………21
2.5 Diagrama Entitate-Asociere ……………………………………………….….24
2.6 Schema de sistem……………………………………………………………..25
2.7 Propuneri de dotare cu echipamente IT și costuri aferente……………….26
2.8 Tehnologi utilizate……………………………………………………………..27
2.9 Calendarul de realizare………………………………………………………..30
3. Cap. Prezentarea produsului software ……………………………………………….32
3.1 Cerințele platformei hardware și software ale produsului program….….32
3.2. Descrierea funcțiunilor aplicației…………………..…………………………32
3.3. Prezentarea interfeței aplicației………………………….……………..……33
3.4. Considerații privind eficiența aplicației informatice…………….…………..35
Lista figurilor…………………………………………………………….…………..36
Lista tabelelor……………………………………………………………………….38
Bibliografie ………………………………………………………………………….39
Anexa……………………………………………….……………………………….41
Introducere
În lucrarea de față se propune dezvoltarea unui magazin online cu un design simplist pentru farmacia Coca Diana. Pentru a fi mai ușor de folosit vor exista trei tipuri de utilizatori: vizitator, user și administrator.
În dezvoltarea magazinului online au fost utilizate tehnologii de ultimă ora : ca limbaj de programare a fost utilizat PHP 5.4 iar baza de date a fost realizată in MySQL 5.5.
Magazinul online va putea fi accesat de oriunde atâta timp cât exista o conexiune la internet, acesta poate fi accesat de pe telefon, tabletă, calculator sau laptop.
Pe site alături de magazinul online vor fi puse și articole, știri și sfaturi despre sănătate și medicamente naturiste.
Capitolul 1 Studiul si analiza sistemului existent
1.1 Prezentarea succintă a unității economico-sociale
Firma Coca Diana SRL A fost înfințata in anul 2011 cu codul unic de identificare fiscală 28505150. In prezent aceasta detine 2 farmacii una deschisă înca din anul 2011, situata în centrul Comunei Baia de Fier aceasta are un real suces fiind singura farmacie din împrejurimi si una deschisă în anul 2014 situata în Comuna Poienari de asemenea fiind singura farmacie pe o rază de 10 km.
Compania are în prezent 8 angajați.
Firma Coca Diana se ocupă cu comercializarea produselor farmaceutice și a produselor naturiste. Programele și serviciile oferite de firma COCA DIANA sunt realizate în scopul de a oferi clienților o perspectivă asupra stării generale de sănătate pe care o au și în plus o alternativă de tratament și prevenire a bolilor.
1.2 Principalele activități desfășurate în unitatea economică
Principala activitate desfăsurată de această firmă este comercializarea produselor farmaceutice și a produselor naturiste.
Farmacia ofera o gamă variată de produse farmaceutice : medicamente cu sau fără prescripție medicală, medicamente în regim compensat și gratuit, atât în relație cu CASA BAIA DE FIER cât și cu CASA JUDEȚEANĂ DE ASIGURĂRI GORJ, medicamente – tratamente homeopate si gemoderivate, suplimente nutritive, produse pentru copii si mămici, produse dermato-cosmetice, cosmetice, ceaiuri și tincturi, rețete preparate in farmacie.
Aceasta deține si aparatură pentru anumite analize cum ar fi aflarea greutați, înălțimi, pulsului cardiac, a proporției de grăsime. Angajații firmei pot acorda la cererea clientului și detalii despre modul de administrare, compoziție si efecte secundare ale medicamentelor, recomandări despre medicamente naturiste fără rețetă, acestia pot acorda și primul ajutor în caz de urgență.
Indicatori Economici:
Figura 1.1 Cifra de afaceri a firmei Coca Diana în anii 2011-2013
Figura 1.2 Indicatori Economici
Interpretând Figura 1 si 2 se poate observa că firma este în plină dezvoltare.Aceasta a achiziționat anul acesta două mașini pentru a ajuta la transportul angajațiilor la muncă deoarece în zona în care activează firma nu există transport public comun. Tot anul acesta a mai fost achiziționat un al doilea spațiu în care a deschis o nouă farmacie.
Clienții:
Figura 1.3 Clienti
Interpretand Figura 3 putem observa că principalii clienții ai firmei sunt persoanele în varstă.
Concurența
Fiind singura firma din zona care se ocupă cu comercializarea de produse farmaceutice aceasta înca nu are concurența pe piața locală.
Furnizori
Firma are contract cu mai multi distribuitori de medicamente:
Sindan
Relad
Ropharma
PharmaFarm
Mediaplus
Farmexpert
Europharm
Fildas
Sanifarm
In plus firma mai are contracte și cu cațiva distribuitori de medicamente naturiste:
Evergreen Distribution
Radixplant
Pronat
Natur
1.3 Studiul sistemului de conducere
Firma Coca Diana SRL este condusă de catre Dna. Flitan Coca Diana aceasta ocupă postul de Director General.
Directorul General (CEO-ul) are urmatoarele responsabilitați în aceasta firma:
Stabileste Obiectivele de dezvoltare ale firmei.
Monitorizează trimestrial gradul de realizare a obiectivelor.
Vizează fișele postului și salariile tuturor angajațiilor firmei.
Acordă sancțiuni pentru personalul firmei.
Acordă bonusuri pentru performantă.
Identifică nevoile de recrutare și participă la selecția noilor angajați.
Asigură respectarea normelor interne de funcționare de către personalul din subordine.
Evaluează potențialul furnizorilor și al clienților.
Stabileste posibile căi de colaborare și decide asupra parteneriatelor strategice.
Semnează deciziile de modificare a funcției/salariului pentru angajații firmei.
Solicită rapoarte de activitate și ia masurile necesare în vederea cresterii eficienței activitații firmei.
Stabileste prioritatea executării sarcinilor pentru personalul din subordine.
Semnează contracte cu furnizorii, clienții și partenerii strategici.
Aprobă decontăriile la facturi.
Figura 1.4 Organigrama
1.4 Studiul sistemului condus
Firma are în prezent opt angajații fiecare cu rolurii specifice: un avocat, un contabil, doi farmaciștii, doi farmaciștii asistentii, doi ingrijtori/curățenie.
Contabilul are urmatoarele responsabilitați/atribuții:
– Asigură evidența contabilă a stocurilor, a relațiilor cu terții, a trezoreriei și evidenta veniturilor și cheltuielilor.
-Contabilizează facturile emise pentru clienții interni.
-Înregistrează incasările si plățile in lei conform extrasului de cont.
-Înregistreaza facturi de prestații furnizori interni.
-Înregistreaza intrări de marfă în baza documentelor primite de la magazin(facturi).
-Întocmeste saptămânal lista facturilor emise și neîncasate.
-Întocmeste liste de avansuri din trezorerie.
-Încadrarea corectă a documentelor contabilizate pe venituri și cheltuieli.
-Raportarea problemelor financiare către Directorul General.
Avocatul are urmatoarele sarcini:
-Să vizeze și să ducă la îndeplinire unele decizii din partea conducerii.
-Activitate de consiliere privind problemele legale cu care se confruntă societatea.
-Analiza contractelor încheiate de societate.
-Consultarea periodica a monitorului oficial in scopul aflarii ultimelor acte normative apărute.
-Contactarea contabilului în vederea obținerii unor informații privind cei care nu și-au achitat obligațiile contractuale, să ia măsurile necesare împotriva acestor persoane.
Farmacistul are urmatoarele responsabilității:
-Vinde produse farmaceutice si parafarmaceutice
-Consiliează clienții in ceea ce priveste modul de administrare al medicamentelor.
-Identifică nevoile clienților și recomandă medicamentele necesare.
-Participă la toate activitațile conexe: recepție, stocare, înregistrare, inventariere.
Farmacistul asistent are aceleași responsabilitați ca și farmacistul.
Ingrijitorul :
-Asigură încălzirea corespunzătoare a spațiului în care este farmacia dar și a depozitului.
-Aspirarea prafului și a mizeriei.
-Spălat geamuri, uși, mobilier, faianță, dușumele, gresie.
-Execută mici lucrării de reparație.
1.5 Studiul sistemului informational
1.5.1 Descrierea sistemului informațional
În momentul în care o persoană doreste să cumpere anumite medicamente, aceasta trebuie să se deplaseze până la cel mai apropriat sediu al farmaciei, unde va trebui să intrebe dacă medicamentul pe care îl dorește este în stoc și prețul acestuia.
Dacă produsul nu este în stoc este necesară o comandă (trebuie sa completeze pe o foaie cu date de contact ) și trebuie achitat un avans pentru ca farmacia să se asigure că nu va iesi în pierdere în caz că clientul nu va mai dori să ridice sau să cumpere acel produs.
Reintrarea în stoc a produsului dorit poate dura uneori până la două săptămâni. Dacă produsul respectiv a fost scos de pe piată, farmacistul poate recomanda alte alternative uneori mai scumpe.
Dacă nu va dori să plaseze o comanda clientul va trebui sa revină până când medicamentul va reintra în stoc sau va trebui să se deplaseze la o altă farmacie
1.5.2 Descrierea documentelor utilizate.
Tipuri de rețete:
Figura 1.5 Rețetă
Figura 1.6 Rețetă
Rețeta este un document obținut de la medicul de familie sau de la spital. Pe baza acestui document se pot cumpăra medicamente din farmacie.
Factură furnizor:
Furnizor: Factura Client:
Reg. Com: Reg. Com:
CIF: CIF:
Adresa: Adresa:
IBAN: Judet:
Banca: IBAN:
Capital social: Banca:
Figura 1.7 Factura Furnizor
Acest tip de factură este primită de la furnizori odata cu livrarea produselor.
Document care trebuie completat pentru a plasa o comanda:
Nume: ____________________________________________________________________________
Prenume: ___________________________________________________________________________
Cnp:________________________________________________________________________________
Adresa:_____________________________________________________________________________
Telefon:_____________________________________________________________________________
Numele produsului/produselor dorite: ___________________________________________________
____________________________________________________________________________________
Sunteti de acord sa platiți un avans?(Da/Nu) ______________________________________________
Figura 1.8 Comanda
Acest tip de document este completat de client când doreste să plaseze o comandă pentru produse care nu sunt în stoc.
1.5.3. Analiza critică a sistemului actual și identificarea neajunsurilor existente în funcționarea sistemului existent
Deoarece clienții acestei firme de cele mai multe ori sunt persoane în varsta principala problemă a sistemului existent este necesitatea acestora de a se deplasa până la cel mai apropriat sediu pentru a cumpăra, obține detalii despre un anumit produs sau pentru a obține anumite sfaturi pentru sănătate.
A doua problemă este lipsa unui site online în care să se poata găsi detalii despre orele și zilele de lucru, produsele vândute de farmacie.
1.5.4 Direcții de perfecționare a sistemului actual
Este necesar să se realizeze un site de prezentare a produselor farmaceutice, care să permita clienților să comande sau să cumpere online produsele dorite.De asemenea pe site v-or exista și detalii despre orele și zilele de lucru dar și o modalitate de contact pentru ca clienții să solicite sfaturi sau ajutor în caz de urgențe medicale sau efecte secundare ale medicamentelor.În site vor fi incluse și articole despre sănătate, frumusețe și medicamente naturiste.
Cap. 2. Proiectarea de detaliu a aplicației informatice
2.1 Definirea obiectivelor aplicației informatice
Obiectivul principal al aplicației web denumită Farmacia COCA DIANA este de a spori vânzarea produselor farmaceutice prin modul de prezentare dar și prin comoditatea de a comanda online orice produs,urmând ca acesta sa fie livrat la adresa clientului.
Site-ul care urmează să fie creat este caracterizat prin simplitate: crearea unui sistem cu o interfață grafică minimalist, dar care sa conțină toate informațiile necesare.
Pentru personalul firmei site-ul va permite in primul rând vânzarea online a produselor, monitorizarea vanzărilor, modificarea stocului, modificarea prețului unui produs, adaugarea de noi produse, modificarea descrieri produsului, adaugarea sau stergerea de noi articole, stergerea de produse.
2.2 Proiectarea logică și fizică a ieșirilor
Ieșirile sistemului informatic reprezintă rapoartele generate din interfața de admin a aplicației de unde se pot observa statisticile necesare atât adminului cât și clientului.
Figura 2.1 Panou Administrator
Proiectarea logică de detaliu a ieșirilor.Prin figura anterioară putem accesa ieșirile din baza de date pentru detaliile pe care le dorim.
Butonul “Comenzi” ne va afișa prin comanda SELECT * FROM din tabelul Comenzi detaliile comenzilor efectuate de client.
Fig 2.2 Raportul comenzii clientului
Butonul “Comenzi” va oferi administratorilor informații cu privire la comenzile efectuate de toți clienții care urmează sa fie sunați pentru a primi detaliile livrării.
Figura 2.3 Istoric Comenzi Administrator
Butonul Statistici are un rol foarte important pentru magazine,oferind informații cu privire la cele mai vândute produse, dar și un top al clienților.
Figura 2.4 Top clienți
Figura 2.5 Top produse vândute
2.3 Proiectarea logică și fizică a intrărilor
Proiectarea se concentrează asupra conținutului datelor de intrare.Toate informațiile introduse ca date de intrare trebuie să fie corecte,logice,adaptate necesităților firmei Coca Diana SRL.
Aplicația web este gândită tehnic din punct de vedere al proiectării. Intrările de date se fac cu ajutorul panoului de admin, care permite următoarele:
Adăugare,ștergere,editare produse.
Adăugare,ștergere,editare categorii.
Adăugare,ștergere,editare articolele de pe prima pagină.
Figura 2.6 Adăugare Produs
Figura 2.7 Adăugare Categorie
Figura 2.8 Adăugare Articol
2.4 Proiectarea bazei de date
Aplicația “FARMACIA COCA DIANA” are nevoie de o bază de date în MySQL în care stochează informații despre: clienți, produse, comenzi, categorii, articole, coș de cumpărături.
Baza de date se numește site_db și este formată din 6 tabele,după cum puteți vedea in designer-ul de mai jos:
Figura 2.9 Bază de date
Structură tabele:
Tabelul utilizatori este format din :
id,user,pass,email,nume,prenume,nr_tel,adresa.(Figura 2.15)
Tabelul produse este format din:
id,titlu,id_cat,pret,descriere,meta.(Figura 2.14)
Tabelul articole este format din
id,titlu,continut.(Figura 2.10)
Tabelul categorii este format din:
id_cat,nume,imagine.(Figura 2.11)
Tabelul cos este format din :
id,user,produs,cod_produs,pret.(Figura 2.13)
Tabelul comenzi este format din :
id_user,id_comanda,id_produs,data,total.(Figura 2.12)
Figura 2.10 Tabel Articole
Figura 2.11 Tabel Categorii
Figura 2.12 Tabel comenzi
Figura 2.13 Tabel cos
Figura 2.14 Tabel produse
Figura 2.15 Tabel utilizatori
2.5 Diagrama Entitate-Asociere
Figura 2.16 Diagrama entitate-asociere a bazei de date
2.6 Schema de sistem.
2.7 Propuneri de dotare cu echipamente IT și costuri aferente
Pentru o funcționare excelentă este necesară folosirea următoarelor echipamente:
PC-uri
Routere
Cabluri
Prize
Mufe
Switch
Imprimantă
Sisteme de operare
Server
Domeniu Web
Tabel 2.1 Componente Rețea
TABEL 2.2: Lista componente desktop
2.8 Tehnologi utilizate
HyperText Markup Language (HTML) este un limbaj de programae utilizat pentru crearea paginilor web ce pot fi afișate într-un browser(sau navigator). Scopul HTML este mai degrabă prezentarea informațiilor – paragrafe, fonturi, tabele ș.a.m.d. – decât descrierea semanticii documentului.
HTML este o formă de marcare orientată către prezentarea documentelor text pe o singura pagină, utilizând un software de redare specializat, numit agent utilizator HTML, cel mai bun exemplu de astfel de software fiind browserul web. HTML furnizează mijloacele prin care conținutul unui document poate fi adnotat cu diverse tipuri de metadate și indicații de redare. Indicațiile de redare pot varia de la decorațiuni minore ale textului, cum ar fi specificarea faptului că un anumit cuvânt trebuie subliniat sau că o imagine trebuie introdusă, până la scripturi sofisticate, hărți de imagini și formulare. Metadatele pot include informații despre titlul și autorul documentului, informații structurale despre cum este împărțit documentul în diferite segmente, paragrafe, liste, titluri etc. și informații cruciale care permit ca documentul să poată fi legat de alte documente pentru a forma astfel hyperlink-uri (sau web-ul).
MySQL este un sistem de gestiune a bazelor de date relaționale, produs de compania suedeza MySQL AB și distribuit sub Licența Publică Generală GNU. Este cel mai popular SGBD open-source la ora actuală, fiind o componentă cheie a stivei LAMP ( Linux, Apache, MySQL, PHP).
Deși este folosit foarte des împreună cu limbajul de programare PHP, cu MySQL se pot construi aplicații în orice limbaj major. Există multe scheme API disponibile pentru MySQL ce permit scrierea aplicațiilor în numeroase limbaje de programare pentru accesarea bazelor de date MySQL, cum are fi: C, C++, C#, Java, Perl, PHP, Python, FreeBasic, etc., fiecare dintre acestea folosind un tip spefic API. O interfață de tip ODBC denumită MyODBC permite altor limbaje de programare ce folosesc această interfață, să interacționeze cu bazele de date MySQL cum ar fi ASP sau Visual Basic. În sprijinul acestor limbaje de programare, unele companii produc componente de tip COM/COM+ sau .NET (pentru Windows) prin intermediul cărora respetivele limbaje să poată folosi acest SGBD mult mai ușor decât prin intermediul sistemului ODBC. Aceste componente pot fi gratuite (ca de exemplu MyVBQL) sau comerciale.
Licența GNU GPL nu permite încorporarea MySQL în softuri comerciale; cei care doresc să facă acest lucru pot achiziționa, contra cost, o licență comercială de la compania producătoare, MySQL AB.
MySQL este componentă integrată a platformelor LAMP sau WAMP (Linux/Windows-Apache-MySQL-PHP/Perl/Python). Popularitatea sa ca aplicație web este strâns legată de cea a PHP-ului care este adesea combinat cu MySQL și denumit Duo-ul Dinamic. În multe cărți de specialitate este precizat faptul ca MySQL este mult mai ușor de invățat și folosit decât multe din aplicațiile de gestiune a bazelor de date, ca exemplu comanda de ieșire fiind una simplă și evidentă: „exit” sau „quit”.
Pentru a administra bazele de date MySQL se poate folosi modul linie de comandă sau, prin descărcare de pe internet, o interfață grafică: MySQLAdministrator si MySQL Query Browser. Un alt instrument de management al acestor baze de date este aplicația gratuită, scrisă în PHP, phpMyAdmin
MySQL poate fi rulat pe multe dintre platformele software existente: AIX, FreeBSD, GNU/Linux, Mac OS X, NetBSD, Solaris, SunOS, Windows.
PHP este un limbaj de programare folosit pentru a crea site-uri de web. Prescurtarea de la PHP: Hypertext Preprocessor (initialele provin de fapt de la o versiune anterioara a programului, care se numea: Personal Home Page Tools). Este un limbaj de programare web open-source, reflectiv (abilitatea unui program de a-si observa si modifica structura si comportamentul) folosit in principal pentru dezvoltarea aplicatiilor server-side ( Scripting server-side: tehnologie web server in care cerintele userilor sunt indeplinite prin rularea unui script direct pe serverul web pentru a crea pagini HTML dinamice. Este folosit de obicei pentru a crea site-uri de web dinamice ce interfateaza cu baze de date) si a continurilor web dinamice.
Istorie PHP.
PHP cum este cunoscut astăzi este, de fapt succesorul unui produs numit PHP/FI. Creat în 1994 de către Rasmus Lerdorf, prima încarnare a PHP a fost un simplu set de binare Common Gateway Interface (CGI) scrise în limbajul de programare C. Inițial folosit pentru urmărirea vizitelor la CV-ul său on-line, el a numit suita de script-uri "Personal Home Page Tools", mai frecvent menționate ca "Unelte PHP". De-a lungul timpului, a apărut dorința de a avea mai multe funcționalități, și Rasmus a rescris Uneltele PHP, producând o implementare mult mai mare și mai bogată. Acest nou model a fost capabil de interacțiune cu baze de date și mai mult, oferind un framework cu ajutorul cărora utilizatorii puteau dezvolta aplicatii web simple și dinamice, cum ar fi cărțile de oaspeți. În luna iunie a anului 1995, Rasmus » a lansat codul sursă pentru Uneltele PHP către public, ceea ce a permis dezvoltatorilor să-l folosească după cum considerau de cuviință. Acest lucru, de asemenea, a permis și a încurajat utilizatorii să ofere remedieri pentru bug-uri în cod, și în general să-l îmbunătățească.
2.9 Calendarul de realizare
Realizarea bazei de date: o lună
Dezvoltarea produsului software: trei luni jumatate
Implementarea magazinului online : o lună
Testare si lansare: o lună
Figura 2.17 Calendarul de realizare
Cap. 3. Prezentarea produsului software
3.1 Cerințele platformei hardware și software ale produsului program
Resursele minimale și necesare pentru implementarea sistemului si rularea acestuia in conditii optime se impart in resurse hardware si resurse software. Resursele hardware se refera atat la configuratia server-ului bazei de date și configuratia statiilor de lucru.
Website-ul este conceput sa ruleze pe configuratii PC cu sistem de operare Windows XP,7,8,8.1 si 10 folosind unul dintre browserele : Google Chrome,Mozilla Firefox,Opera,Safari,Internet Explorer.Pentru o rulare mai eficientă se recomandă browserele Google Chrome și Mozilla Fireofx.
Produsul necesita conexiune la internet dar și un server virtual(de exemplu XAMPP) pentru rularea fără conexiune la internet.
3.2. Descrierea funcțiunilor aplicației
Aplicația prezintă câteva avantaje dar și dezavantaje.Avantajele sunt următoarele:
Interfață admin/client simplă
Pastrează informațiile intr-o baza de date
Funcția de căutare ușurează găsirea produsului interesat de către client
Accesul la rapoarte de statistică
Disponibilă pentru eventuale actualizări
Mentinerea la zi a ofertei de produse
Dezavantajele sunt următoarele :
Rapoartele sunt limitate la cele implementate în sistem
Nu acoperă toate orașele din Țară
3.3. Prezentarea interfeței aplicației
Figura 3.1 Aspectul magazinului
În figura 3.5 este prezentat aspectul magazinului când apăsăm pe butonul „Medicamente” din meniu.De aici se selectează o categorie de produse și apoi ne alegem produsul pe care dorim să il cumpărăm.
Figura 3.2 Panul de control al utilizatorului
Butonul “Schimba username” este disponibil pentru ambele tipuri de utilizator(client sau admin) și ajută la schimbarea numelui de utilizator
Butonul “Schimba email” este disponibil pentru ambele tipuri de utilizator(client sau admin) si ajută la schimbarea email-ului care s-a folosit pentru înregistrarea utilizatorului
Butonul “Schimba parola” este tot comun pentru ambele tipuri de utilizator și permite schimbarea parolei utilizatorului
Butonul “Istoric comenzi” afișează comenzile utilizatorului
Butonul “Schimba date personale” permite adăugarea/editarea datelor personale ale utilizatorului(adresa,numar de telefon,nume,prenume,email)
Butonul “Adauga articol” este disponibil doar pentru admini și adaugă știri pe prima pagină a site-ului
Butoanele “Adauga produs” și “Adauga categorie” permit adaugarea produselor respectiv categoriilor
Butonul “Comenzi” afișează adminului comenzile care permit procesarea unei comenzi
Butonul “Statistici” afișează statisticile pe care adminul le dorește,de exemplu stocul produselor,vânzările din ultima perioadă etc;
3.4. Considerații privind eficiența aplicației informatice
Din ce in ce mai mulți oameni au început să-și caute brandurile preferate în mediul online, în speranța că acestea deja îsi vor fi deschis un magazin online. Acest fenomen este datorat dorinței de confort a consumatorilor. Un magazin online le oferă tot ceea ce au nevoie, printr-un singur click, fără a mai fi nevoie să se deplaseze de acasă, să mai plăteasca bani pe benzină etc.
Aplicația are o importață și pentru firmă deoarece sporește numărul de vânzări și oferă clienților un mod mai confortabil de a-și achizționa produsul dorit.
Încasările și stocul sunt ușor de verificat deoarece toate informațiile sunt reținute in baza de date aflându-se în siguranță.
Lista figurilor
Figura 1.1 Cifra de afaceri a firmei Coca Diana în anii 2011-2013
Figura 1.2 Indicatori Economici
Figura 1.3 Clienti
Figura 1.4 Organigrama
Figura 1.5 Rețetă
Figura 1.6 Rețetă
Figura 1.7 Factura Furnizor
Figura 1.8 Comanda
Figura 2.1 Panou Administrator
Figura 2.2 Raportul comenzii clientului
Figura 2.3 Istoric Comenzi Administrator
Figura 2.4 Top clienți
Figura 2.5 Top produse vândute
Figura 2.6 Adăugare Produs
Figura 2.7 Adăugare Categorie
Figura 2.8 Adăugare Articol
Figura 2.9 Bază de date
Figura 2.10 Tabel Articole
Figura 2.11 Tabel Categorii
Figura 2.12 Tabel comenzi
Figura 2.13 Tabel cos
Figura 2.14 Tabel produse
Figura 2.15 Tabel utilizatori
Figura 2.16 Diagrama entitate-asociere a bazei de date
Figura 2.17 Calendarul de realizare
Figura 3.1 Aspectul magazinului
Figura 3.2 Panul de control al utilizatorului
LISTA TABELELOR
Tabel 2.1: Componente Rețea
Tabel 2.2: Lista componente desktop
Bibliografie
Anexa
Cod sursa:
Adauga Categorie:
<?php
require_once('config.php'); // pt a putea afisa pagina avem nevoie de fisierul config.php
if($_SESSION['logat'] == 'da') // daca utilizatorul este logat afisam header_l.php daca nu header.php
include('header_l.php');
else
include('header.php'); ?>
<div id="site_content">
<div class="sidebar">
<!– insert your sidebar items here –>
</div>
<div id="content">
<!– insert the page content here –>
<?php
if($_SESSION['user'] == 'Admin')
{
if(!isset($_GET['id'])) $_GET['id']='';
switch($_GET['id'])
{
case '':
?>
<table>
<form action="./addcat.php?id=add" method="POST">
<tr>
<td>Nume categorie</td></tr>
<tr><td><input type="text" name="nume" size="50"/></td>
</tr>
<tr>
<td><font color="red">!!! Introduceti adresa imagini</font></td>
</tr>
<tr>
<td><textarea name="imagine" cols="62" rows="20"></textarea></td>
</tr>
</table>
<center><input type="submit" name="submit" value="Submit"/>
<input type="reset" name="reset" value="Reset"/></center>
</form>
<?php
break;
case 'add':
if(($_POST['nume'] == '') || ($_POST['imagine'] == ''))
echo 'Toate campurile sunt obligatorii!.</br>Click <a href="./addpcat.php">aici</a> pt a reincerca.';
else
{
$cerereSQL = "INSERT INTO `categorii` (`nume`,`imagine`)
VALUES ('".$_POST['nume']."','".$_POST['imagine']."')";
mysql_query($cerereSQL);
echo 'Categoria a fost adaugata cu succes! </br> Click <a href="./addcat.php">aici</a> pt a reveni la pagina anterioara.';
}
break;
case 'update':
mysql_query("UPDATE `categorii` SET nume='".$_POST['nume']."', imagine='".$_POST['imagine']."' WHERE id='".$_SESSION['postid']."'");
echo 'Categoria a fost editata cu succes!';
$_SESSION['postid'] = '';
break;
}} else echo 'Nu aveti acces pe aceasta pagina!';
?>
</div>
</div>
<?php include('./footer.php'); ?>
Adauga Produs:
<?php
require_once('config.php'); // pt a putea afisa pagina avem nevoie de fisierul config.php
if($_SESSION['logat'] == 'da') // daca utilizatorul este logat afisam header_l.php daca nu header.php
include('header_l.php');
else
include('header.php'); ?>
<div id="site_content">
<div class="sidebar">
<!– insert your sidebar items here –>
</div>
<div id="content">
<!– insert the page content here –>
<?php
if($_SESSION['user'] == 'Admin')
{
if(!isset($_GET['id'])) $_GET['id']='';
switch($_GET['id'])
{
case '':
?>
<table>
<form action="./addprodus.php?id=add" method="POST">
<tr>
<td>Titlu:</td>
<td><input type="text" name="titlu" size="50"/></td>
</tr><tr>
<td>Pret:</td>
<td><input type="text" name="pret" size="10"/> RON</td>
</tr><tr>
<td>Categorie:</td>
<td><input type="text" name="id_cat" size="10"/>
</td>
</tr><tr>
<td></td>
<td><font color="red">!!! Pentru asezarea in pagina trebuie sa folositi taguri HTML!</font></td>
</tr><tr>
<td>Descriere:</td>
<td><textarea name="descriere" cols="62" rows="20"></textarea></td>
</tr><tr>
<td>Meta:</td>
<td><input type="text" name="meta" size="200"/><font size="1"> * introduceti cuvintele cheie separate prin virgula ","</font></td>
</tr>
</table>
<center><input type="submit" name="submit" value="Submit"/>
<input type="reset" name="reset" value="Reset"/></center>
</form>
<?php
break;
case 'add':
if(($_POST['titlu'] == '') || ($_POST['pret'] == '') || ($_POST['id_cat'] == '') || ($_POST['descriere'] == '') || ($_POST['meta'] == ''))
echo 'Toate campurile sunt obligatorii! Campul pret trebuie sa contina doar cifre.</br>Click <a href="./addprodus.php">aici</a> pt a reincerca.';
else
{
$cerereSQL = "INSERT INTO `produse` (`titlu`,`id_cat`,`pret`,`descriere`,`meta`)
VALUES ('".$_POST['titlu']."','".$_POST['id_cat']."','".$_POST['pret']."','".$_POST['descriere']."','".$_POST['meta']."')";
mysql_query($cerereSQL);
echo 'Produsul a fost adaugat cu succes! </br> Click <a href="./addprodus.php">aici</a> pt a reveni la pagina anterioara.';
}
break;
case 'update':
mysql_query("UPDATE `produse` SET titlu='".$_POST['titlu']."', id_cat='".$_POST['id_cat']."', pret='".$_POST['pret']."', descriere='".$_POST['descriere']."', meta='".$_POST['meta']."' WHERE id='".$_SESSION['postid']."'");
echo 'Produsul a fost editat cu succes!';
$_SESSION['postid'] = '';
break;
}} else echo 'Nu aveti acces pe aceasta pagina!';
?>
</div>
</div>
<?php include('./footer.php'); ?>
Header:
<!DOCTYPE HTML>
<html>
<head>
<title>Farmacia Coca Diana</title>
<link rel="shortcut icon" href="Farmacie.ico">
<meta name="description" content="website description" />
<meta name="keywords" content="website keywords, website keywords" />
<meta http-equiv="Content-type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="style.css" title="style" />
</head>
<body>
<div id="main">
<div id="header">
<div id="userbar"><a href="register.php">Register</a> | <a href="login.php">Login</a></div>
<div id="logo">
<img src="./images/logo.png"/>
</div>
<div id="menubar">
<ul id="menu">
<li><a href="index.php">Acasa</a></li>
<li><a href="categorii.php">Medicamente</a></li>
<li><a href="register.php">Register</a></li>
<li><a href="login.php">Login</a></li>
<li><a href="contact.php">Contact</a></li>
<li><a style="
border-right: 1px solid #17BB44;
" href="Despre noi.php">Despre noi</a></li>
</ul>
</div>
</div>
Register:
<?php
require_once('config.php'); // pt a putea afisa pagina avem nevoie de fisierul config.php
if($_SESSION['logat'] == 'da') // daca utilizatorul este logat afisam header_l.php daca nu header.php
include('header_l.php');
else
include('header.php'); ?>
<div id="site_content">
<div class="sidebar">
<!– insert your sidebar items here –>
<center><img width="130" height="150" src="./images/register.jpg"/></center>
</div>
<div id="content">
<?php
if ($_SESSION['logat'] == 'da')
echo 'Nu puteti accesa aceasta pagina deoarece nu aveti nevoie de un cont, deja sunteti logat.';
else
{
if(!isset($_SESSION['user'])) $_SESSION['user'] = '';
if(!isset($_SESSION['email'])) $_SESSION['email'] = '';
if(!isset($_SESSION['pass'])) $_SESSION['pass'] = '';
if(!isset($_SESSION['pass_r'])) $_SESSION['pass_r'] = '';
if(!isset($_GET['id'])) $_GET['id'] == '';
switch($_GET['id'])
{
case '':?>
<h4>Pentru a creea un cont valid completati cu atentie campurile de mai jos:</h4>
<form action="./register.php?id=valid" method="post">
<table style="background-color:#FFF" width="280" >
<tr>
<td>Username:</td>
<td><input type="text" name="user" <?php echo 'value="'.$_SESSION['user'].'"';?>/> *</td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" name="email" <?php echo 'value="'.$_SESSION['email'].'"';?>/> *</td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="pass"/> *</td>
</tr>
<tr>
<td>Retype Password:</td>
<td><input type="password" name="pass_r"/> *</td>
</tr>
<tr>
<td><input type="submit" name="submit" value="Register"/></td>
<td><input type="reset" name="reset" value="Reset"/></td>
</tr>
</table>
</form><br>
* Toate campurile sunt obligatorii!
<?php
break;
case 'valid':
$_SESSION['user'] = $_POST['user'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['pass'] = $_POST['pass'];
$_SESSION['pass_r'] = $_POST['pass_r'];
if(($_SESSION['user'] == '') || ($_SESSION['email'] == '') || ($_SESSION['pass_r'] != $_SESSION['pass']) || ($_SESSION['pass'] = ''))
echo 'Ati introdus gresit datele!<br /> Click <a href="./register.php">aici</a> pt a incerca din nou.';
else
{
echo 'Multumim!<br /> Datele dumneavoastra au fost introduse corect in baza de date. <br / > Dati click <a href="./login.php">aici</a> pt a va autentifica. ';
$cerereSQL = "INSERT INTO `utilizatori` (`user`, `pass`, `email`) VALUES ('".$_SESSION['user']."', '".$_SESSION['pass_r']."', '".$_SESSION['email']."')";
mysql_query($cerereSQL);
$_SESSION['user'] = '';
$_SESSION['pass'] = '';
$_SESSION['pass_r'] = '';
$_SESSION['email'] = '';
}
break;
}
}
?>
</div>
</div>
<?php include('./footer.php'); ?>
Usercp:
<?php
require_once('config.php'); // pt a putea afisa pagina avem nevoie de fisierul config.php
if($_SESSION['logat'] == 'da') // daca utilizatorul este logat afisam header_l.php daca nu header.php
include('header_l.php');
else
include('header.php'); ?>
<div id="site_content">
<div class="sidebar">
<?php include('widgets.php'); ?>
</div>
<div id="content">
<!– insert the page content here –>
<?php
if(!isset($_GET['id'])) $_GET['id']='';
switch($_GET['id'])
{
case '':
echo'
<center><h3>Panoul de control al utilizatorului</h3></center>
<table align="center">
<tr><td><a href="usercp.php?id=username"><img src="./images/username.png"/></a></td>
<td><a href="usercp.php?id=email"><img src="./images/email.png"/></a></td>
<td><a href="#"><img src="./images/istoric.jpg"/></a></td></tr>
<tr><td><a href="usercp.php?id=parola"><img src="./images/password.png"/></a></td><td><a href="usercp.php?id=date_pers"><img src="./images/datepers.png"/></a></td></tr>';
if($_SESSION['user'] == 'Admin')
{echo'<tr><td><a href="usercp.php?id=addarticol"><img src="./images/articol.png"/></a></td><td><a href="addprodus.php"><img src="./images/produs.png"/></a></td><td><a href="addcat.php"><img src="./images/categorie.png"/></a></td></tr>
<tr><td><a href="#"><img src="./images/comenzi.jpg"/></a></td>
<td><a href="#"><img src="./images/statistici.jpg"/></a></td></tr>';
}
echo '</table>';
break;
case 'username': /////////////////////////////////////////////////////////
?>
<table>
<form action="./usercp.php?id=v_username" method="POST">
<tr>
<td>New username:</td>
<?php
echo '<td><input type="text" name="username" value="'.$_SESSION['user'].'"/> *</td>';
?>
</tr><tr>
<td>Password:</td>
<td><input type="password" name="password"/> *</td>
</tr><tr>
<td><input type="submit" name="submit" value="Schimba"/></td>
</tr>
</form>
</table>
<?php
break;
case 'v_username': /////////////////////////////////////////////////////////
if(($_POST['username'] == '') || ($_POST['password'] == ''))
{echo 'Toate campurile sunt obligatorii, unul din campurile precedente nu a fost completat.<br>Click <a href="./usercp.php?id=username">aici</a>
pt a reincerca.';}
else{
$cerereSQL = 'SELECT pass FROM `utilizatori` WHERE user="'.$_SESSION['user'].'" ';
$rezultat = mysql_query($cerereSQL);
while($rand = mysql_fetch_array($rezultat)) {
if($_POST['password'] == $rand['pass'])
{
$cerereSQL2 = "UPDATE `utilizatori` SET user='".$_POST['username']."' WHERE user='".$_SESSION['user']."'";
mysql_query($cerereSQL2);
echo "Numele de utilizator a fost schimbat cu succes,<br> click <a href=\"usercp.php\">aici</a> pt a reveni pa panoul de control.";
}
else echo "Ati gresit parola, dati click <a href=\"usercp.php?id=username\">aici</a> pt a incerca din nou.";
}
}
break;
case 'email': /////////////////////////////////////////////////////////
?>
<table>
<form action="./usercp.php?id=v_email" method="POST">
<tr>
<td>New email:</td>
<?php
$c = mysql_query("SELECT email FROM `utilizatori` WHERE user='".$_SESSION['user']."'");
while ($r = mysql_fetch_array($c))
{
echo '<td><input type="text" name="email" value="'.$r['email'].'"/> *</td>';
}
?>
</tr><tr>
<td>Password:</td>
<td><input type="password" name="password"/> *</td>
</tr><tr>
<td><input type="submit" name="submit" value="Schimba"/></td>
</tr>
</form>
</table>
<?php
break;
case 'v_email': /////////////////////////////////////////////////////////
if(($_POST['email'] == '') || ($_POST['password'] == ''))
{echo 'Toate campurile sunt obligatorii, unul din campurile precedente nu a fost completat.<br>Click <a href="./usercp.php?id=username">aici</a>
pt a reincerca.';}
else{
$cerereSQL = 'SELECT pass FROM `utilizatori` WHERE user="'.$_SESSION['user'].'" ';
$rezultat = mysql_query($cerereSQL);
while($rand = mysql_fetch_array($rezultat)) {
if($_POST['password'] == $rand['pass'])
{
$cerereSQL2 = "UPDATE `utilizatori` SET email='".$_POST['email']."' WHERE user='".$_SESSION['user']."'";
mysql_query($cerereSQL2);
echo "Email-ul a fost schimbat cu succes,<br> click <a href=\"usercp.php\">aici</a> pt a reveni pa panoul de control.";
}
else echo "Ati gresit parola, dati click <a href=\"usercp.php?id=username\">aici</a> pt a incerca din nou.";
}
}
break;
case 'parola': /////////////////////////////////////////////////////////
?>
<table>
<form action="./usercp.php?id=v_parola" method="POST">
<tr>
<td>New password:</td>
<td><input type="password" name="password2"/> *</td>
</tr><tr>
<td>Current password:</td>
<td><input type="password" name="password"/> *</td>
</tr><tr>
<td><input type="submit" name="submit" value="Schimba"/></td>
</tr>
</form>
</table>
<?php
break;
case 'v_parola': /////////////////////////////////////////////////////////
if(($_POST['password2'] == '') || ($_POST['password'] == ''))
{echo 'Toate campurile sunt obligatorii, unul din campurile precedente nu a fost completat.<br>Click <a href="./usercp.php?id=parola">aici</a>
pt a reincerca.';}
else{
$cerereSQL = 'SELECT pass FROM `utilizatori` WHERE user="'.$_SESSION['user'].'" ';
$rezultat = mysql_query($cerereSQL);
while($rand = mysql_fetch_array($rezultat)) {
if($_POST['password'] == $rand['pass'])
{
$cerereSQL2 = "UPDATE `utilizatori` SET pass='".$_POST['password2']."' WHERE user='".$_SESSION['user']."'";
mysql_query($cerereSQL2);
echo "Parola a fost schimbat cu succes,<br> click <a href=\"usercp.php\">aici</a> pt a reveni pa panoul de control.";
}
else echo "Ati gresit parola curenta, dati click <a href=\"usercp.php?id=username\">aici</a> pt a incerca din nou.";
}
}break;
case 'addarticol':
if($_SESSION['user'] == 'Admin')
{
?><table><tr>
<form action="usercp.php?id=addarticol_a" method="POST">
<td>Titlu:</td><td><input type="text" name="titlu"/></td></tr><tr>
<td></td><td><font color="red">!!! Pentru asezarea in pagina trebuie sa folositi taguri HTML!</font></td></tr><tr>
<td valign="top">Continut:</td><td><textarea name="continut" cols="62" rows="20"></textarea></td></td><tr>
<td><input type="submit" name="submit" value="Adauga"/></td></tr>
</form>
</table>
<?php
}else echo 'Nu aveti acces pe aceasta pagina!';
break;
case 'addarticol_a':
$c = "INSERT INTO `articole` (`titlu`, `continut`) VALUES ('".$_POST['titlu']."', '".$_POST['continut']."')";
mysql_query($c);
echo 'Articolul a fost adaugat cu succes! <br> Click <a href="index.php"> aici</a> pt a reveni la pagina principala.';
break;
case 'date_pers':
$c = mysql_query("SELECT * FROM `utilizatori` WHERE user='".$_SESSION['user']."'");
while ($rand = mysql_fetch_array($c))
{
echo '
<table>
<form action="usercp.php?id=date_pers_add" method="POST">
<tr><td>Nume:</td>
<td><input type="text" name="nume" value="'.$rand['nume'].'"/></td></tr><tr>
<td>Prenume:</td><td><input type="text" name="prenume" value="'.$rand['prenume'].'"/></td></tr><tr>
<td>Nr Telefon:</td><td><input type="text" name="nr_tel" value="'.$$rand['nr_tel'].'"/></td></tr><tr>
<td>Adresa:</td><td><input type="text" name="adresa" value="'.$$rand['adresa'].'"/></td></tr><tr>
<td>Email:</td><td><input type="text" name="email" value="'.$$rand['email'].'"/></td></tr><tr>
<td><input type="submit" name="submit" value="Add"/></td></tr>
</form>
</table>';
}
break;
case 'date_pers_add':
if(($_POST['nume'] == '') || ($_POST['prenume'] == '') || (!is_numeric($_POST['nr_tel'])) || (strlen($_POST['nr_tel']) != 10) ||
($_POST['adresa'] == '') || ($_POST['email'] = '')){
echo 'Ati introdus datele gresit!<br> Click <a href="usercp.php?id=date_pers">aici</a> pt a incerca din nou!';}
else{
$c = "UPDATE `utilizatori` SET nume='".$_POST['nume']."', prenume='".$_POST['prenume']."', nr_tel='".$_POST['nr_tel']."',
adresa='".$_POST['adresa']."', email='".$_POST['email']."' WHERE user='".$_SESSION['user']."'";
mysql_query($c);
echo 'Datele au fost adaugate cu succes!';
}
break;
}
?>
</div>
</div>
<?php include('./footer.php'); ?>
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: Realizarea Unui Magazin Virtual Folosind Php Si Mtsql (ID: 150347)
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.
