Conf. univ. dr. Dan-Andrei SITAR-TĂUT 2020 UNIVERSITATEA BABEȘ-BOLYAI Facultatea de Științe Economice și Gestiunea Afacerilor Informatică Economică… [303531]
[anonimizat]: [anonimizat],
Conf. univ. dr. Dan-[anonimizat]
2020
[anonimizat]
-[anonimizat]: [anonimizat],
Conf. univ. dr. Dan-[anonimizat]
2020
Rezumat
Lucrarea de față abordează tema utilizării internetului pentru dezvoltarea afacerilor. Astfel că ea studiază necesitățile și modalitățile de dezvoltare ale restaurantului Miradin și expune modul de creeare și funcținare a unui site web cu ajutorul căreia acesta să poată să își vândă preparatele și în mediul online. Desfășurată pe patru capitole evidențiază nevoile și beneficiile comerțului online cât și cererile și așteptările pe care steakholderii le au de la o astfel de platformă. În primele două capitole sunt descriși pașii de analiză și proiectare a [anonimizat]. [anonimizat] a server-ului, a bazei de date și a designului, care ulterior au fost testate și analizate.
Lista figurilor și tabelelor
Tabel 1. Business Model Canvas 8
Tabel 2. Obiectivul Autentificare 15
Tabel 3. Procesele care stau la baza aplicației 25
Tabel 4. Structura pe secțiuni a site-ului 31
Tabel 5. [anonimizat] 55
Figură 1. Diagrama Pareto 13
Figură 2. Diagrama de descompunere a obiectivelor 14
Figură 3. [anonimizat] 16
Figură 4. [anonimizat]:comportamentul de utilizare a celor trei tipuri de actori 20
Figură 5. Graficele rezultatelor chestionarului 22
Figură 6. Diagrama de activități:[anonimizat]-Cash 27
Figură 7. Modelul de dezvoltare Agile 28
Figură 8. Schema procesului Scrum 29
Figură 9. [anonimizat]-nivel 0 32
Figură 10. [anonimizat]- nivel 1 33
Figură 11.Arhitectura sistemului 34
Figură 12. Diagrama de implementare 35
Figură 13. Programul de deschidere a serverul 36
Figură 14. Structură site 37
Figură 15.[anonimizat] 39
Figură 16.Schema bazei de date la nivel abstract 40
Figură 17. Schema bazei de date 41
Figură 18. Modul de conexiune cu baza de date 45
Figură 19. Subsolul paginii 46
Figură 20. Grafica footer 49
Figură 21.Exemplu CSS Meniu 49
Figură 22. Grafică Meniu 51
Figură 23. Pagina principală 51
Figură 24. Pagina de comanda 52
Figură 25. Pagina produselor 53
Figură 26. Pagina de log in/register 54
Figură 27. [anonimizat] 56
Figură 28. Rezultatele testării pe desktop 58
Figură 29. Oportunității pentru rezolvarea problemelor 58
Figură 30. Rezultatele testării pe android 59
Figură 31.Oportunității pentru rezolvarea problemelor 59
[anonimizat], [anonimizat], [anonimizat] a fi vizibilă și accesibilă unui public larg.
Lucrarea prezentată „[anonimizat]“ își propune să dezvolte pe parcursul celor patru capitole: Analiza sistemului, Proiectarea aplicației, Implementarea aplicației și Testarea aplicației, pașii parcurși în realizarea unei aplicații e-commerce care să aducă beneficii restaurantului Miradin din Baciu, județul Cluj.
Lucrearea debutează cu „Analiza sistemului” unde sunt descrise subcapitolele sugestive precum „Identificarea și descrierea problemei“, în care se detaliază situația actuală a restaurantului, tipul și dimensiunea sa, neajunsurile cu care se confruntă, motivația alegerii dezvoltării platformei online, planurile strategice de business în legătură cu sistemul informatic precum și o reprezentare grafică a modelului de afaceri aplicat.
Subcapitolul „Cerințe de sistem“ descrie: sursele de cerințe, elicitația cerințelor, documentarea cerințelor și cazurile de utilizare. Iar în ultimul subcapitol „Modelul de dezvoltare“ descrie modelul de dezvoltare folosit pentru aplicația noastră.
Capitolul II, „Proiectarea sistemului informatic al aplicației“ prezintă modul în care aplicația a fost proiectată din punct de vedere logic și tehnic, adică modul în care aceasta funcționează și modul său de execuție. Pe parcursul acestui capitol am descris arhitectura sistemului, prin reprezentarea grafică a sistemului, șabloanele de proiectare arhitecturală, baza informațională în care se prezintă tipul fiecărei surse de date, modul de stocare și tipul de server folosit.
În capitolul III, „Implementarea sistemului“ este detaliat mai clar modul în care aplicația a fost realizată. Astfel că am ilustrat pașii parcurși în configurarea serverului și instalarea dependențelor, conexiunea la baza de date, crearea bazei de date cu exemple concrete, partea de implementare a paginilor și manipularea datelor prin requesturi.
Ultimul capitol, IV, „Testarea sistemului“, descrie sintetizat scopul testării, detaliind astfel practicile de testare a software-ului folosite în descoperirea problemelor cu care aplicația se confrunta înainte de lansarea pe internet. Accentul fiind pus pe testele de compatibilitate funcționalitate și utilizabilitate.
CAPITOLUL I. ANALIZA SISTEMULUI
În acest capitol se examinează posibilitatea realizării unui sistem informatic, o platformă e-commerce destinată prezentării și vânzării produselor de tip catering. Această platformă are ca scop dezvoltarea restaurantului pe plan tehnic, economic și operațional.
1.1 Identificarea și descrierea problemei
Ideea de integrare în mediul online a acestei afaceri, a apărut în urma nevoii de creștere a volumului de produse vândute, gândindu-ne că dacă listăm afacerea noastră și pe internet, o să crească posibilitatea vânzărilor de produse, ceea ce o să ducă la extinderea vânzărilor și respectiv a afacerii.
Tema aleasă, „Restaurant Online – Prezentarea și Comercializarea Produselor de tip Catering”, vine în sublinierea nevoii firmei din Baciu, Miradin Restaurant, de a vinde mai ușor produsele lor. Având în vedere regiunea geografică, segmentul de clienți vizați este în principal populația din Cluj-Napoca, dar și din localitățile limitrofe.
Aplicația va corespunde specificațiilor date de administratorul acestui restaurant, care dorește să crească numărul comenzilor online, și să promoveze mâncarea tradițională.
Platforma va fi disponibilă non-stop, oferind informații despre companie la orice oră, oricărui om, într-un mod comod, iar timpul de cumpărare reducându-se semnificativ fără a mai fi nevoie de deplasare la sediul companiei, posibilitatea de comparare a produselor și alegerea celei mai avantajoase oferte, restaurantul online va constitui o legătură între potențialii clienți și companie, fiind vitrina de prezentare a produselor și serviciilor oferite.
Restaurantul este situat pe Strada Galaxiei, Nr. 9, Baciu, Județul Cluj. Acesta este compus din mai multe încăperi, și anume partea restaurantului: sala restaurantului, bar, două băi pentru bărbați și femei, terasă, iar partea de bucătarie: bucătăria, baie, debara, spălător, cameră frigorifică și cămară.
Momentan personalul acestui restaurant este format din: administrator, trei bucătari, un barman, trei ospătari și o persoană care se ocupă cu livrarea la domiciliu. Deși compania are o dimensiune relativ mică, dispune de un sistem informațional și informatic bine dezvoltat.
„Sistemul informațional este reprezentat de către datele prelucrate în informații și modul în care acestea circulă sub formă de intrări sau ieșiri ale sistemului făcând legătura dintre sistemul de conducere și cel de execuție”. La nivel de producție, se realizează: proiectarea meniului, gestiunea stocurilor, necesarul de materiale și aprovizionarea. Partea de marketing vizează studiile de piață, management de promovarea produselor, preluarea comenzilor. În departamentul de finanțe și contabilitate se analizează rentabilitatea având loc procesul de facturare și plăți. Managementul resurselor se ocupă de recrutarea noilor angajați, gestionând formarea respectiv perfecționarea acestora dar și partea de salarizare.
Sistemul informatic este cel care se ocupă de transmiterea datelor din cadrul Miradin Restaurant pe cale electronică. Echipamentele hardware pentru stocarea și prelucrarea datelor folosite sunt: laptop lenovo ideapad i7, monitoare Samsung, iar ca și programe software necesare procesării informațiilor se folosește UltimatePOS, World, Excel, Pdf, Google Drive.
Miradin Restaurant a realizat un plan de afaceri pe următoarele 6 luni, pentru a gestiona banii cât mai bine în perioada următoare, având în vedere dezvoltarea unei aplicații pe mobil, care să faciliteze comenzile cât și plătile online, dar și partea de livrare. Se va lua în vedere un sistem cât mai ușor de utilizat, care să asigure accesul în timp real la bazele de date.
Modelul de afaceri utilizat de companie este modelul de vânzări directe. Veniturile sunt generate prin realizarea și vânzarea produselor de tip catering. Vânzarea directă constă în vânzarea produselor către consumatori în mod direct, din locația Miradin Restaurant. Vânzările sunt realizate prin clientela formată sau recomandări ale clienților mulțumiți de serviciile noastre. Prin platforma online se dorește simplificarea modului în care utilizatorul să nu mai fie nevoit sa vină la restaurant să mănânce, ci să vină mâncarea la el, indiferent că se află acasă sau la serviciu, o să primească ce a comandat în intervalul de timp sugerat de către client. Și plata se va putea face online pe site sau ramburs la primirea produselor. Structurat după modelul de management strategic, Business Model Canval, situația actuală este următoarea:
Tabel 1. Business Model Canvas
1.1.1 Context
Tratarea completă în acest capitol a cerințelor se face prin repartizarea acestora în 4 fațete: fațeta subiect, fațeta utilizare, fațeta IT și fațeta dezvoltare.
A. Fațeta subiect
Datele consumatorilor obținute în urma unei comenzi, descriu datele persoanelor înscrise la newsletter, datele vizitatorilor site-ului colectate la crearea unui cont cum ar fi numele, prenumele, adresa, numărul de telefon, date despre produse ca și gust, culoare, miros, cremozitate, descriere, date despre reclamațiile clienților surprinse prin formulare de plângeri, care vor fi stocate într-o bază de date securizată, prin criptarea datelor personale, asigurarea confidențialității, capacitatea de a restabili disponibilitatea lor în cazul unor incidente și folosirea acestora doar în scopul plasării comenzilor. Orice alt scop de utilizare a datelor necesită consimțământul utilizatorului. Modul de acces/plasare comandă se va realiza prin înregistrarea utilizatorilor cu cont, pe care aceștia și-l vor crea. Datele se vor prelucra după criteriul bazei informaționale și anume:
B. Fațeta utilizare
Această platformă va fi folosită de utilizatori pentru a cumpăra online produsele realizate de Miradin Restaurant. Interesele utilizatorilor sunt cumpărarea produselor de pe site, selectarea lor în funcție de categorie (sortiment, preț, titlu sau descriere) și bună desfășurare a procesului de cumpărare(adăugare în coș, o metodă de plată sigură, condiții bune de livrare). Fațeta utilizare va conține și pagina specială în care utilizatorii vor fi informați despre identitatea firmei și descrierea serviciilor: denumire, localitate și adresa sediului social, cod fiscal, număr de înregistrare la Registrul Comerțului, bancă, cont, capital social, drepturile și obligațiile vânzătorului/firmei, a cumpărătorului, limitarea responsabilității firmei pentru unele probleme tehnice cu site-ul, promovare, etc. Pentru administrator se vor oferi funcționalități contabile și tehnice și funcționalități din interfața de administrare.
C. Fațeta dezvoltare
Tehnologia web evoluează rapid și a ridicat ștacheta de design și de programare web astfel încât pentru partea de dezvoltare a restaurantului online vom folosi aplicațiile și instrumentele următoare: un editor de texte ( Notepad++- ce permite scrierea și citirea codurilor HTML, CSS, JS limbaje de programare folosite în dezvoltarea graficii sau a funcționalităților). Utilizarea bazelor de date în site-urile web a devenit normală, iar pentru dezvoltarea lor folosim programarea bazelor de date MySQL. Trebuie avute în vedere drepturile de (Copyright) în site-uri și toate cerințele legii în ceea ce privește frauda sau protecția datelor pe internet. Conform cerințelor Legii nr. 677/2001 respectiv Legii nr. 506/2004 pentru protecția persoanelor cu privire la prelucrarea datelor cu caracter personal și liberă circulație a acestor date și protecția vieții private în sectorul comunicațiilor electronice, astfel că avem obligația de a administra în condiții de siguranță și numai pentru scopurile specificate, datele personale care sunt furnizate de clienți. Scopul colectării datelor este utilizarea lor în vederea facturării produselor comandate.
D. Fațeta IT
Implementea aplicației se face pe un laptop Lenovo IdeaPad U510 cu procesor Intel® Core™ i7-3537U 2.0GHz, cu o memorie de 12GB RAM care pune la dispoziție sistemul Windows 10 Pro, 64bit. Pentru aplicația web este folosit serverul MariaDB de unde sunt efectuate prelucrările de date, din baza de date MySQL, iar pentru realizarea nivelului de logică a aplicației folosim limbajul JavaScript, mai exact librăria JQuery. Interacțiunea cu utilizatorul se realizează într-un browser web ales de acesta, spre exemplu Chrome și Mozila, browsere folosite și la testarea aplicației. Aplicația a fost gândită și proiectată pentru a răspunde cerințelor utilizatorilor, având un design responsive.
1.1.2Motivație
Motivația care stă la baza dezvoltării aplicației Restaurant Online – Comercializare Produselor de tip Catering este extinderea afacerii în mediul online, având ca prim scop promovarea produselor atât online cât și offline cu o comunicare activă social media dar și orientarea spre client în totalitate prin surprinderea eventualelor obiecții ale potențialilor cumpărători.
În momentul de față restaurantul deține o pagină de Facebook și o pagină de Instagram care vor fi încorporate în aplicația web. Acest lucru ne ajută să atragem clienți noi și putem acorda reduceri pentru clienți.
Având în vedere că afacerea este una mică, acest restaurant online va realiza un SEO de calitate prin conținutul bine structurat, care te poate plasa în primele rezultate în căutările google. Odată cu acest aspect crește notorietatea afacerii printr-un design inspirat și profesional care face prezentarea cât mai atragătoare pentru utilizator. Astfel se urmărește evitarea încărcării inutile a paginii cu duplicarea informațiilor, titlurilor nesugestive sau a imaginilor irelevante.
Impactul așteptat este creșterea semnificativă a cumpărărilor, valoarea achizițiilor pe internet să ajute la creșterea vânzărilor cu 30% față de anul precedent. Acest lucru se realizează și prin comunicarea facilă cu clienții, prin trimiterea de mesaje, oferte, reclame la produsele noi prin e-mail, sms sau telefon.
În ceea ce privește sistemul de producție, se va ști cu exactitate timpul de execuție a unui meniu pentru ca timpul de așteptare a clientului să fie minim, sau să se încadreze în timpul stabilit cu livrarea dacă acesta optează pentru livrare la domiciliu.
Consolidarea poziției pe piață este un alt aspect vizat ca impact în urma adoptării acestei aplicații, având în vedere și zona geografică căreia ne adresăm. Competitivitatea în acest domeniu pe zona Baciu este mare, dar totuși având concurenți direcți firme precum Glovo, Food Panda, trebuie să avem în vedere ca propunerea de vânzare să devină cât mai unicată. Folosind practicile de analiză a concurenței Miradin Restaurant ținem sub observație reacțiile pieței.
Sursele pe care le folosim să monitorizăm concurența sunt: colectarea materialelelor de marketing, compararea produseleor cu ale competitorilor, analizând site-urile competitorilor, sondaje în rândul clienților legate de satisfacția față de produse, întreabă clienții motivele cumpărării de la concurență, notare observații.
Informațiile sunt îmbunătățite prin monitorizarea acțiunilor concurenților, pentru a determina mișcările lor. Prin colectarea acestui tip de informații, compania își îmbunătățește deciziile, atât strategice cât și tactice, obținând o mai bună înțelegere a propriei poziții competitive.
Pe de altă parte, luăm în considerare riscurile care pot duce la falimentul restaurantului online cum ar fi: managementul prost al costurilor, cheltuieli diverse și neprevăzute, timpul estimativ de executie al meniurilor, crearea proastă a imaginii restaurantului, o poziție proastă în topul căutărilor, volumul scăzut de vânzări sau lipsa personalului care să administreze restaurantul online.
Ierarhia cauzelor pentru care se poate ajunge la falimentul/eșecul proiectului este reprezentată prin diagrama Pareto.
Figură 1. Diagrama Pareto
Legenda
Realizarea obiectivelor generale se va face în ordinea frecvenței de apariției problemelor, Astfel, având în vedere obiectivul general urmărit, implementarea unei platforme web destinate vânzării și prezentării online a produselor preparate am reprezentat grafic prin diagrama de descompunere a obiectivelor.
Figură 2. Diagrama de descompunere a obiectivelor
Sursă: Realizat online în Lucidchart
După cum observăm în figura de mai sus la fiecare obiectiv principal observăm o serie de sub-obiective cum ar fi:
Optimizare site :
plan de optimizare a paginii astfel încât să fie afișată încă din pagina de start serviciile/ produsele pe care le oferă Miradin Restaurant, realizarea unui SEO de calitate care să ne ofere o poziție bună în motoarele de căutare;
o navigare ușoară și plăcută în pagină, astfel că utilizatorii trebuie să înțeleagă exact domeniul de activitate fără căutări suplimentare;
vizitatorii site-ului să găsească informațiile rapid astfel că se va face organizarea categoriilor și subcategoriilor cât mai simplificat.
Promovare online/ofline:
promovare online eficientă, pe rețele de socializare prin pozarea preparatelor, prin filmarea lor, prin promovarea de către influceri a restaurantului nostru;
sponsorizări care să aducă notorietate, participarea la diverse activități și evenimente;
discount-uri în funcție de cantitatea cumpărată, reduceri la anumite meniuri în funcție de zile.
Zona de autentificare:
creare și înregistrare clienților să fie cât mai accesibilă;
securitatea datelor cât mai ridicată (parola);
evidența comenzilor plasate prin crearea de conturi;
Tabel 2 – Obiectivul Autentificare
1.2. Cerințe de sistem
1.2.1 Surse de cerințe
În prima faza, cea de definire a problemei, sursele de cerințe au venit în primul rând de la administratorul Miradin Restaurant, care a a avut anumite cerințe legate atât de interfața aplicației cât și de calitatea acesteia, în plus a cerut anumite chestiuni operaționale care să descrie funcționalitățile pe care utilizatorii le așteaptă de la sistem. Cerințele stakeholder -ului au venit sistematizate astfel(figura3):
Figură 3. Cerințele stakeholderi-lor
Pentru realizarea acestui proiect mai este necesar sa repectăm și cerințele legate de legislația privind comerțul electronic care ne impune anumite restricții și limitări. „De exemplu, este necesar, să aplicăm cerințele "GDPR"(General Data Protection Regulation), a cărui intrarea în vigoare a fost stabilită pentru 25 mai 2018, pe scurt, această lege introduce responsabilitatea în ceea ce privește protecția datelor; înseamnă că operatorul de date este singurul responsabil de a implementa măsurile adecvate pentru protecția datelor cu caracter personal și că poate demonstra că aceste măsuri au fost implementate. Cu alte cuvinte, nu este suficient să protejăm datele cu caracter personal, ci trebuie și să documentăm aceste procese prin politici și proceduri adecvate, precum registre, analize, acorduri cu partenerii comerciali, consimțăminte documentate, informări către persoane”.
„Consimțământul prentru prelucrarea datelor ne obliga la anumite limitări și ne cere anumite lucruri în plus, astfel, solicitarea acordului trebuie să fie în formă inteligibilă și ușor accesibilă, utilizând un limbaj clar și simplu; dacă sunt incluse mai multe aspecte, solicitarea acordului trebuie clar diferențiată de celelalte aspecte; retragerea consimțământului trebuie să poată fi făcută la fel de simplu cum a fost dat și mai ales, nu este admisă condiționarea consimțământului (de exemplu, condiționarea prestării unui serviciu sau livrării unui bun de acordul de prelucrare a datelor pentru marketing direct). Instituțiile publice (cu excepția instanțelor de judecată), companiile a căror activitate principală constă în operațiuni de prelucrare care necesită o monitorizare periodică și sistematică pe scară largă a persoanelor vizate, precum și companiile care prelucrează, pe scară largă, categorii speciale de date sau date referitoare la condamnări penale și infracțiuni, vor fi obligate să își angajeze un responsabil cu protecția datelor personale” .
1.2.2 Elicitația cerințelor
În realizarea acestei aplicații avem mai multe părți implicate precum beneficiarul Mitre Miruna, care dorește o extindere a afacerii în mediul online, și Mitre Ioan Adrian partea implicată în analiza, proiectarea și implementarea aplicației web. Deoarece ideea primordială a unei afaceri de comerț este creștere vânzărilor, avantajul adus de crearea acestui site este faptul că din această platformă se va putea comanda de pe o rază mai mare astfel că numărul de potențiali cumpărători va crește. Dezavantajul acestui aspect ar fi că nu există trafic ca într-un restaurant fizic, pentu a utiliza platforma trebuie să fii un client al restaurantului Miradin, sau să fii interesat de produsele acestuia. Un al doilea avantaj pentru stakeholder ar fi cheltuieli mai mici cu utilitățile și angajații.
Însă datorită existenței tot mai multor restaurante online, avem o concurență mai mare, care este posibil să diminueze din atenția pe care potențialii clienți ți-o pot acorda. Dacă organizația nu investește în reclamă/promovare, este posibil ca restaurantul să ajungă la faliment sau să rămână fără clienți.
Promovare gratuită prin social media – dacă produsele au o calitate bunăși un gust plăcut, vestea despre ele va ajunge la mai mulți oameni, într-un timp scurt prin intermediul site-urilor de socializare: Facebook, Twitter, Google + sau forumuri.
În cazuri mai puțin bune, apar riscuri cum ar fi, clientul ar putea lua măsuri drastice în defavoarea restaurantului, cum ar fi depunerea unei reclamații la ANPC (Autoritatea Națională pentru Protecția Consumatorilor) sau publicarea de comentarii negative la adresa restaurantului pe diferite forum-uri. În timp, aceste situații pot duce chiar la desființarea restaurantului, deoarece fără clienți, o afacere nu are cum să existe.
Pentru a putea înțelege și cunoaște mai bine nevoile clienților, de-a lungul timpului s-au creat anumite metode și tehnici precum: metoda interviului, metoda cazurilor de utilizare, chestionarul, metoda brainstormingului.
Metoda interviului
Această tehnică a fost folosită pentru a întelege elementele de detaliu și pentru a descoperii problemele reale. Interviul este una dintre modalitățile principale de abordare a realității în cercetarea calitativă, acesta este de cele mai multe ori nestructurat sau slab structurat. Permite explorarea liberă a universului supus investigației, fără constrângeri legate de forma, numărul sau ordinea întrebărilor. Avantajele acestui tip de interviu decurg din:
posibilitatea de a explora atitudini și caracteristici afective exprimate într-o formă naturală, specifică persoanei investigate;
faptul că poate fi înțeleasă structura și dinamica motivațională a persoanei în raport cu anumite situații;
posibilitatea de a studia fenomene sau evenimente a căror complexitate nu este ușor abordabilă prin metode standardizate;
favorizarea apropierii și încrederii dintre cercetător și persoana investigată, ceea ce permite abordarea unor subiecte sensibile
Am ales interviul, ca metodă deoarece este una directă care ne permite să intrăm în contact direct cu actorii și putem observa tipurile de reacție ale acestora. Timpul alocat unui interviu este de 1 oră, unde se înregistrează răspunsurile după care se analizează și studiază.
În urma interviului cu Mitre Miruna, administratorul Miradin restaurant am înregistrat o serie de răspunsuri. Întrebările din interviul susținut, vizează trasarea unor concluzii în ceea ce privește aspectul aplicației din punct de vedere grafic, a funcționalităților și a utilizabilității. Structura interviului a fost următoarea:
întrebări generale
Care este publicul țintă căruia i se adresează aplicația?Credeți că un restaurant online este esențial pentru domeniul acesta de activitate? Cum vă va ajuta această aplicație? Ce impact ar avea asupra Miradin restaurant?
întrebări despre aspectul produsului final, sistemul informatic
Care ar fi restricțiile impuse de dumneavostră în ceea ce privește interfața?
întrebări despre performanță și utilitate
Ce așteptări aveți din punct de vedere al utilizabilității, fiabilității, performanței aplicației?Ce ar trebuii să ofere utilizatorilor acest produs din punctul dumneavostră de vedere?
Metoda cazurilor de utilizare
Pentru a prezenta comportamentul de utilizare în platforma noastră, folosim reprezentarea UML, prin modelul Use Case.
Limbajul unificat de modelare este un limbaj grafic pentru vizualizarea, specificarea, construirea și documentarea artefactelor unui sistem intensiv software.
UML oferă un mod standard de a scrie modelele unui sistem, inclusiv lucruri conceptuale, cum ar fi procesele de afaceri și sistemul funcții, precum și lucruri concrete, cum ar fi declarațiile limbajului de programare, schemele bazei de date și componente software reutilizabile.
O diagramă a cazurilor de utilizare (use case diagram) prezintă o colecție de cazuri de utilizare și actori care:
• oferă o descriere generală a modului în care va fi utilizat sistemul
• furnizează o privire de ansamblu a functionalitatilor ce se doresc a fi oferite de sistem
• arată cum interacționează sistemului cu unul sau mai mulți actori
• asigura faptul că sistemul va produce ceea ce s-a dorit.
Un actor este un stereotip al unei clase. Actorii sunt reprezentați de utilizatori sau entități care pot interacționa cu sistemul. Ei nu fac parte din sistem și definesc mulțimi de roluri în comunicarea cu acesta.
Figură 4. Diagrama Use-Case:comportamentul de utilizare a celor trei tipuri de actori
Sursă: Realizat online în Creately
Un vizitator, care este client și pe care îl putem defini ca și actor principal al aplicației va folosi platforma cu intenția de a comanda mâncare online. Cazurile de utilizare pentru un user nou neautentificat sunt: căutarea meniurilor, vizualizarea detaliilor, sau crearea unui cont pentru a putea plasa o comandă. Ca și user autentificat pe lângă drepturile prezentate la user neautentificat mai este și posibilitatea adăugării produselor în coș, schimbarea parolei, finalizarea sau anularea unei comenzi și plata online. Administratorul are un cont specific care permite realizarea mai multor operațiuni precum adăugare de produse noi, ștergerea anumitor produse care nu se mai găsesc în meniu și gestionarea comenzilor.
Metoda chestionarului
Un chestionar este un instrument de cercetare constând dintr-o serie de întrebări și a altor solicitări în scopul de a aduna informații de la persoane.
În demersul de realizare a acestei platforme dorim să luăm în considerare și opinia utilizatorilor cu privire la ce așteaptă ei de la o astfel de platformă, dacă ar utiliza o aplicație în această manieră, cât ar fi dispuși să plătească lunar pentru mâncare și care stil de mâncare le place mai mult, ca mai apoi să știm cum să ne adresăm posibililor cumpărători.
Pentru realizarea acestor lucruri am creat un chestionar care a fost completat de persoane de diferite vârste, statut social sau profesional.
În conceperea chestionarului, am luat în considerare o listă de obiective clare: bugetul alocat lunar pentru mâncare, disponibilitatea de a comanda online, tipuri de mancare pe care le preferă.
Pentru realizaea acestui chestionar am folosit platforma Google Form pentru stocarea datelor în formular https://docs.google.com/forms/d/1SefLHLOl03oy3JeIzT9W99lEiMYHBrZOmWlF1exGIag/edit
Rezultatele obținute în urma chestionarului sunt cele drescrise mai jos sub forma de grafic:
Figură 5. Graficele rezultatelor chestionarului
Sursă: Răspunsurile din GoogleForm
Metoda brainstorming
Brainstormingul este o tehnică de creativitate în grup, menită să genereze un număr mare de idei, pentru soluționarea unei probleme.
Pentru adoptarea acestui sistem, am luat în calcul folosirea metoda brainstorming, o tehnică de creativitate în grup, la care au participat toți angajații Miradin restaurant.
Faza de realizare a acestei metode, a cuprins patru etape:
Etapa de pregătire
Alegerea temei și anunțarea sarcinilor de lucru;
Pregătirea celor necesare pentru trasarea ideilor;
Locația sediului companiei Baciu,Strada Galaxiei nr 9, Cluj;
Etapa de colectarea ideilor
Formularea ideiilor și notarea acestora, ele trebuie să fie clare, scurte și cât mai concrete, fără cenzură, nimeni nu are voie să facă observații negative.În acest caz funcționează principiul „cantitatea generează calitatea” ;
Afirmarea ideii, totul se înregistreză în scris;
Moderatorul postează ideea pe tablă, se lasă o pauză de câteva minute pentru „așezarea” ideilor emise și recepționate;
Ajustarea ideilor
Combinarea ideilor asemănătoare – se reiau pe rând ideile emise, iar grupul găsește criterii de grupare a lor pe categorii-simboluri, cuvinte-cheie, imagini care reprezintă posibile criterii.
1.3 Documentarea cerințelor
În acest subcapitol sunt transformate informațiile obținute din cercetările anterioare aplicând metode de elicitație în cerințe de sistem. Demare interes este în ultimul timp definirea cerințelor software dar și actualizarea acestora. De aceea, în acest subcapitol se descriu cerințele funcționale și nefuncționale, restricțiile de proiectare și alți factori necesari pentru descrierea completă.
În cadrul cerințelor funcționale sunt descrise cerințe utilizator și cerințe de sistem astfel:
Cerințe utilizator:
Aplicația propusă să fie ușor de utilizat;
Aplicația să descrie produsele restaurantului Miradin;
Aplicația să aibă un sistem de administrare ușor de utilizat de către persoane fără cunoștințe IT;
Cerințe de sistem:
Aplicația trebuie să ruleze pe orice browser, responsive;
Produsele să conțină un nume sugestiv, descriere, gramaj, preț, să poată fii adăugate în coș și cumpărate;
Mod de autentificare prin user și parolă specifică administratorului, cont care permite operațiuni de adăugare, modificare și ștergere a informațiilor din baza de date;
Cerințele ne-funcționale sunt dispersate în cerințe de performanță, securitate și interfață.
Cerințe de performanță
placã video – minim 64 Mb;
procesor – minim 1.4 GHz;
conexiunea la Internet;
Cerințe de securitate
Securitate pentru sistemul de operare: antivirus;
Securitate pentrtu baza de date a aplicației: criptarea md5 a parolelor;
Cerințe de interfață
Aplicația propusă funcționează pe sisteme de operare precum: Windows XP, Vista 7, 8, 10, Linux;
Pentru rularea sistemului este nevoie instalarea programelor: Apache, Xampp, MySQL, Notepad++.
1.3.1 Procese
În contextul actual, pentru ca o companie să concureze cu succes pe piață trebuie să dea dovadă de eficiență operațională, să ofere satisfacție mare clienților prin produse și servicii de calitate. Pentru a putea realiza aceste obiective, restaurantul nostru va adopta un proces care să optimizeze munca, să motiveze angajații, să reducă costurile și să mărească veniturile. Aceste procese sunt numite procese de afaceri.
Procesul de afaceri este un proces complex prin care se identifică, se documentează, se monitorizează și se îmbunătățește în mod constant modul în care funcționează afacerea. Scopul principal al managementului proceselor de afaceri este acela de a reduce efortul uman, de a elimina pe cât posibil posibilitatea de apariție a erorilor și de a reduce timpul necesar proceselor de business.
Cel mai bun instrument de control pentru procesele de afaceri este implementarea BPM (Business Process Management – Managementul Proceselor de Afaceri). După identificare proceselor business din Miradin Restaurant urmează documentarea acestora. Realizarea documentației se face schematic, utilizând metode specifice (UML-Unified Modeling Language, BPMN-Business Process Model and Notation).
Procesele care stau la baza aplicației Miradin restaurant sunt (tabelul 3):
Tabel 3. Procesele care stau la baza aplicației
Înainte de implementarea sistemului propus, observăm prin studiul procesului Order-to-Cash, că restaurantul online, din momentul inițierii unei comenzi și până în faza plății finale se desfășura începând prin cererea venită de la client, care este primită de către partea de vânzari (sales) verbal (Quote-to-Order), această se înregistrează manual într-un fișier excel care este folosit ca o bază de date pentru înregistrarea datelor despre comenzi. Mai departe se începe procesarea comenzii unde avem ca punct de decizie prepararea și timpul de preparare al comenzilor. Dacă lipsesc ingredinte necesare comenzi și avem nevoie de aprovizionare apelăm către furnizori, astfel încât să obținem ingredientele de care avem nevoie cât mai rapid.
Odată obținute toate cele necesare, angajații pot începe pregătirea comenzilor. (Manufacturing). Încheiat procesul de manufacturing produsele se împachetează și sunt pregătite de livrare prin emiterea facturii. În urma livrării obținem plata, unde clientul plătește cash sau el a plătit deja online, ramburs la primirea coletului și procesul se încheie (Procure-to-Pay).
Diagramele de activități sunt cazuri particulare ale diagramelor de stare care nu descriu însă un flux de control bazat pe evenimente, ci unul procedural, în care toate sau majoriatea tranzițiilor se efectuează automat, la terminarea acțiunilor efectuate în interiorul stărilor. Diagramele de activități se pot reprezenta pentru a descrie un caz de utilizare, un pachet sau implementarea unei operații.
Prin diagrama de activități am evidențiat interacțiunile utilizatorului cu sistemul pentru procesul Order-to-Cash care are loc după adoptarea aplicației de vânzare online.
Figură 6. Diagrama de activități:sistemul Order-to-Cash
Sursă: Realizat online în Creately
1.4. Model de dezvoltare
Modelarea agilă reprezintă o metodologie pentru modelare și documentare a sistemelor software bazată pe cele mai bune practici. Această este o colecție de valori și princpii care pot fi aplicate la un proiect de dezvoltare software. Metodologia este mult mai flexibilă decât metodele de modelare tradiționale, potrivindu-se mai bine într-un mediu care se află într-o contiua schimbare. Modelarea agilă este un supliment pentru celelalte metodologii agile cum ar fi Scrum, Programarea extremă și Procesul Rațional Unificat. Această metodă încearcă să micșoreze riscurile de dezvoltare și timpul de execuție prin implementarea proiectelor în formă flexibilă și interactivă.
Principal obiectiv pentru Miradin Restaurant este că, la terminarea fiecărei iterații, care are durat de obicei 1-4 săptămâni, să existe o versiune cât de cât funcțională (deși incompletă) a software-ului dezvoltat, cu un număr de buguri cât mai mic. La fel de importantă este comunicarea cu clientul. Folosind această metodă se prezintă pe scurt progresul, în ultima zi de lucru și problemele cu care ne-am confruntat, într-o scurtă ședință, denumită stand-up sau scrum.
Figură 7. Modelul de dezvoltare Agile
Sursă: http://docshare04.docshare.tips/files/31365/313657474.pdf
Metodologia Scrum este definită că o strategie de dezvoltare flexibilă și holistică în care echipa de dezvoltare lucrează împreună pentru a atinge un obiectiv comun, spre deosebire de abordarea tradițională, secvențială.
Figură 8. Schema procesului Scrum
Sursă: http://muhaz.org/metodologia-agile–scrum.html
Un sprint numit și iterație este principala unitate de dezvoltare în cadrul metodologiei Scrum. Fiecare sprint începe cu o ședința de planificare ce are ca scop definirea sarcinilor ce trebuiesc realizate în cadrul sprint-ului. Aceste task-uri sunt organizate în sprint backlog și pentru fiecare task sunt estimate durata acestuia în ore de muncă și sunt stabilite persoanele care vor lucra la acest task. Fiecare sprint va avea la sfârșit o ședința de retrospectivă în care se discută despre progresul realizat în timpul sprint-ului și produsul realizat în cadrul sprint-ului poate fi prezentat clientului.O Echipa Scrum se organizează astfel încât să producă o nouă unitate funționabila a produsului la sfărșitul unui sprint. Cu ajutorul acestora, sistemul se adaptează mai ușor la schimbări.
Diagrama Sprint-ului este un grafic al muncii rămase într-un Sprint față de durata Sprint-ului, creat astfel: se calculează munca rămasă prin adunarea zilnică a estimărilor din backlog. Cantitatea de muncă rămasă într-un Sprint este suma muncii rămase pentru întreg Backlog-ul Sprint-ului. Evidența acestor sume zilnice se păstrează și valorile sunt folosite pentru a crea un grafic care arată munca rămasă în funcție de timp. Prin desenarea unei linii prin punctele graficului. Echipa poate observa progresul din cadrul Sprint-ului. Se studiază munca rămasă și data estimată de finalizare.
CAPITOLUL II. PROIECTAREA APLICAȚIEI
2.1. Proiectare logică
În această faza, de proiectare logică, se va treve de la prezentarea structurării cerințelor de sistem la noul sistem creat și la modul de funcționare al acestuia. Din punct de vedere al strcturii site-ul restaurantului va fi compus astfel (tabel 4):
Tabel 4. Structura pe secțiuni a site-ului
Pentru a pune accent pe interacțiuni, schimburile de date care au loc în cadrul sistemului nostru am folosit reprezentarea prin Diagrama Data Flow (DFD).
O diagramă a fluxului de date este un mod de a reprezenta un flux de date printr-un proces sau un sistem. DFD oferă, de asemenea, informații despre rezultatele și intrările fiecărei entități și despre procesul în sine. O diagramă a fluxului de date nu are flux de control, nu există reguli de decizie și nici bucle. Operațiunile specifice bazate pe date pot fi reprezentate de o diagramă de flux.
Astfel că diagramă are ca obiectiv urmărirea modului de transfer al datelor între procesele de prelucrare, numindu-se și modele ale proceselor de prelucrare, iar operațiunea se numește modelarea proceselor. Împărțirea se face pe nivele, nivel 0.
Figură 9. Diagrama de flux-Schimburi de date-nivel 0
Sursă: Realizat online în Creately
Sursa datelor de intrare apare în reprezentarea de mai sus în pătratele colorate care definesc administratorul, userul autentificat și userul neautentificat. Nivelul 0 reprezintă fluxul de date la cel mai jos nivel al sistemului. Sistemul adoptat este unul multi-utilizator deoarece răspunde mai multor cereri ale utilizatorilor și datele se țin pe un singur server local care răspunde cererilor utilizatorilor. Toate datele sunt stocate într-o bază de date MySQL.
Figură 10. Diagrama de flux- schimburi de date- nivel 1
Sursă: Realizat online în Creately
În figura de mai sus, de nivel 1, componenta sistemului este împarțită în toate celelalte procese principale ale aplicației, cum ar fi: procesul de comandare a meniurilor.
După cum observăm în figura de mai sus, principalii pași reprezentați de cercurile colorate cu albastru sunt: căută produs, adăugarea lui în coșul de cumpărături, plasarea comenzii și plata acestuia, stocarea informațiilor în baza de date în diferite tabele conform pașilor respectiv în localstorage pentru coșul de cumpărături, autentificare care este necesară pentru securitate, pentru a putea adauga în coș, finaliza comanda și partea de administrare.
2.1.1 Arhitectura Sistemului
Sistemul de lucru al acestui site este unul client-server. În acest model client-server, aplicația are două componente, una client și una server. În componenta server (back-end), sunt executate majoritatea procesărilor și memorate în bazele de date, iar componenta client (front-end) se furnizează o interfață, prin intermediul căreia utilizatorul poate executa cereri către server.
Figură 11.Arhitectura sistemului
Interfața utilizator , logică aplicație Conectare, acces la baza de date,securitate
Cereri
Rezultate
CLIENT SERVER
Mai sus, în figura 11 putem observa că arhitectura client-server definește o stație de lucru sau un calculator personal, ca fiind CLIENTUL, unde utilizatorul cere SERVERULUI anumite operații. Modulul Client afișează utilizatorului interfața sistemului, adică acea parte a programului care decide ce acțiuni trebuie să se execute, implementând regulile.
Un server este un calculator sau un dispozitiv care oferă funcționalitate pentru alte programe sau dispozitive, numite „clienți”. Această arhitectură se numește modelul client-server. Serverele pot oferi diferite funcționalități, adesea numite „servicii”, cum ar fi partajarea de date sau resurse între mai mulți clienți sau efectuarea de calcul pentru un client. Un singur server poate servi mai mulți clienți, iar un singur client poate utiliza mai multe servere. Un proces client se poate rula pe același dispozitiv sau se poate conecta printr-o rețea la un server de pe un dispozitiv diferit. Sistemele client-server sunt astăzi cel mai frecvent implementate de modelul cerere-răspuns: un client trimite o solicitare către server, care efectuează o acțiune și trimite un răspuns înapoi clientului, de obicei cu un rezultat sau o confirmare.
În schema de mai jos, prin intermediul diagramei de execuție sunt prezenate componentele de bază ale arhitecturilor web și relațiile dintre ele.
O diagramă de implementare modelează implementarea fizică a artefactelor pe noduri. Pentru a descrie un site web, de exemplu, o diagramă de implementare ar arăta ce componente hardware există, ce componente software rulează pe fiecare nod și modul în care sunt conectate diferitele piese.
Figură 12. Diagrama de implementare
Sursă: prelucrări proprii
Pe partea de interfață, clientul când introduce adresa URL a site-ului web în bara de adrese a browserului, îl direcționează pe acesta să se conecteze la serviciul care rulează pe serverul web ce este responsabil pentru conținutul web. Acest serviciu, Apache, răspunde la cererea browserului dvs. trimițând date, de obicei sub formă de HTML și CSS. Browserul dvs, aranjează apoi datele în așa fel încât să arate așa cum au fost proiectat la construirea site-ului. Programele client și serviciile care au de-a face cu site-urile comunică între ele prin HTTP sau Hypertext Transfer Protocol.
Tehnologia Web a devenit suficient de sofisticată încât multe site-uri obișnuite utilizează acum mai mult decât HTTP și HTML. Sistemele de gestionare a conținutului, necesită de asemenea PHP și o bază de date MySql. PHP este un limbaj de programare numai pentru servere, ceea ce înseamnă că nu interacționează cu un client. În timp ce MySQL aplică și modelul client-server, deși clientul este în mod obișnuit local pe serverul propriu-zis.
Serverul Apache va fi pornit cu ajutorul programului Xampp Control Panel. XAMPP este un pachet de soluții de server web cu platformă transversală gratuită și deschisă, dezvoltat de Apache Friends, constând în principal din serverul HTTP Apache, baza de date MariaDB și interpreți pentru scripturi scrise în limbajele de programare PHP și Perl. Deoarece majoritatea implementărilor de server web utilizează aceleași componente ca XAMPP, este posibilă trecerea de la un server de test local la un server live.
Figură 13. Programul de deschidere a serverul
Sursă: programul Xampp Control Panel v 3.2.2
Pentru a putea rula aplicația creată este necesară deschiderea programului XAMPP și urmarea pașilor descriși mai jos:
instalare program Xampp Control Panel v 3.2.2;
pornirea serverului Apache și a bazei de date MySQL de la butoanele Start din dreptul fiecăruia din program;
în folderul în care se instalează aplicația XAMPP, se crează mai multe subfoldere, printre care și folderul htdocs, unde trebuie create proiectele, în cazul de față restaurantul online;
pentru a putea deschide site-ul trebuie să intrăm pe browser unde introducem în bara de căutare hostul local pe care lucrăm (http://localhost:8080/restaurant1);
structura fișierelor site-ul este descrisă în figura de mai jos.(figura 14)
Figură 14. Structură site
2.1.2 Baza Informațională
Apache este un software de server web deschis și gratuit, care alimentează aproximativ 40% din site-urile web din întreaga lume. Numele oficial este Apache HTTP Server și este întreținut și dezvoltat de Apache Software Foundation. Permite proprietarilor de site-uri să servească conținut pe web – de unde și numele de „server web”. Este unul dintre cele mai vechi și mai fiabile servere web, cu prima versiune lansată acum mai bine de 20 de ani, în 1995.
Baza de date folosită pentru acest proiect este MySQL, cel mai popular sistem de gestionare a bazelor de date SQL Open Source, este dezvoltat, distribuit și susținut de Oracle Corporation.
MySQL este un sistem de gestionare a bazelor de date. O bază de date este o colecție structurată de date. Poate fi orice, de la o simplă listă de cumpărături la o galerie de imagini sau cantitățile mari de informații dintr-o rețea corporativă. Pentru a adăuga, accesa și prelucra datele stocate într-o bază de date computerizată, este nevoie de un sistem de gestionare a bazelor de date, cum ar fi MySQL Server.
MySQL Server a fost inițial dezvoltat pentru a gestiona baze de date mari mult mai rapid decât soluțiile existente și a fost utilizat cu succes în medii de producție extrem de solicitante timp de câțiva ani. Deși în curs de dezvoltare constantă, MySQL Server oferă astăzi un set bogat și util de funcții. Conectivitatea, viteza și securitatea face serverul MySQL foarte potrivit pentru accesarea bazelor de date de pe Internet.
2.2 Proiectarea tehnică
Până acum, în etapele anterioare, etape ce țin de proiectare logică am descris în primul rând ce trebuie făcut, în această etapa vom stabili cum trebuie să se facă. Proiectarea tehnică sau efectiv proiectare fzică, este etapa în care fluxul informațional stabilit anterior este trasformat într-un flux cu prelucrare automată a datelor.
2.2.1 Proiectarea interfeței cu utilizatorul
Câteva din aspectele generale ale proiectării interfeței Web sunt luarea în calcul a interacțiunii cu elementele site-ului într-un mod dinamic, astfel este de preferat să adoptăm un design orientat spre utilizator care să ofere o interfață captivantă care să pună în valoare produsele Miradin restaurant.
Cea mai importantă problemă de interfață în cazul site-urilor Web este absența orientării în cadrul organizării locale a informației. Pictogramele clare, consistente, o privire de ansamblu asupra site-ului și o pagină de cuprins pot da utilizatorilor încrederea că au posibilitatea de a găsi informațiile dorite într-un mod eficient.
Aceste legături fundamentale, care ar trebui să fie prezente în fiecare pagină a site-ului, sunt butoane grafice sau ancore text, furnizând legături de navigare de bază și dând certitudinea utilizatorului că se află în continuare în domeniul site-ului. O interfață Web bună trebuie să țină cont de context, vizitatorii trebuind să fie conștienți de poziția lor în cadrul organizării informațiilor.
Pentru a putea începe activitatea propriu-zisă de proiectare a site-ului trebuie luăm n considerare aspectele generale privind proiectarea efectivă a site-ului. De cele mai multe ori utilizatorii nu citesc pasaje lungi de text scrise înghesuit și cu caractere mici, aceștia preferă informațiile clare, cât mai frumos accentuate, de aceea un aspect foarte important este contrastului vizual dintre blocurile de text și zonele înconjurătoare. Ochiul și mintea vizitatorului sunt atrase de contrastul ferm și de formele distincte oferite de o pagină Web.
Astfel că am hotărât să creonăm o schiță de tip Mockup online pentru a ne face o idee despre cum ar trebui să arate interfața cu utilizatorul pentru pagina de prezentare, cum ar trebui să arate panourile publicitare folosite pe această pagină și pe ce ar trebui să ne axăm pentru a avea un site cu un impact pozitiv.
Figură 15.Interfața cu utilizatorul-Home page
Sursă: https://mockflow.com/
2.2.2 Structura tehnică a datelor
Nivelul abstract reprezentat prin diagrama de mai jos, aplicabil indiferent de modul de stocare, ne arată tabelele bazei de date și legăturile dintre acestea.(figura 16)
Figură 16.Schema bazei de date la nivel abstract
Un nivel apropiat implementării este redat de diagrama cu notație crow foot în care sunt descrise tabelele, cheile, relațiile între ele într-un mod mai explicit este reprezentat în(figura 17):
Figură 17. Schema bazei de date
2.3 Tehnologii specifice
Tehnologiile folosite pentru dezvoltarea aplicației Restaurant online sunt:
Front-end: Jquery, PHP, CSS
Pentru partea vizibilă clientului, s-au folosit tehnologiile de creare a conținutului paginilor, PHP, stilizarea paginilor CSS incorporate prin foi de stil externe, custom css care se foloște de variabile de culoare, pentru funționalitatea paginilor Jquery.
Jquery este o bibliotecă JavaScript rapidă, mică și bogată în caracteristici. Se poate folosi pentru manipularea documentelor HTML și CSS, efecte și animații, cereri de tip AJAX.
PHP este un limbaj de scripting de uz general, cu cod-sursă deschis, utilizat pe scară largă, și care este potrivit în special pentru dezvoltarea aplicațiilor web și poate fi integrat în HTML. În locul unei mulțimi de comenzi pentru a afișa HTML, paginile PHP conțin HTML cu cod-sursă încorporat. Una din cele mai importante facilități ale limbajului este conlucrarea cu majoritatea bazelor de date relaționale, de la MySQL și până la Oracle.
CSS – „Cascading Style Sheets este un limbaj de foi de stil folosit pentru a descrie prezentarea unui document scris în HTML. Proprietățile și valorile CSS se formează în declarații, declarațiile multiple se formează în blocuri de declarație, iar blocurile de declarații și selectorii formează regulile complete CSS. Există multe tipuri de valori ale proprietățiilor CSS cum sunt valorile numerice, culori, funcții care efectuează o anumită acțiune (cum ar fi încorporarea unei imagini de fundal sau rotirea unui element.)”
Back-end: server Apache cu bază de date MySQL.
Pentru partea de back-end am ales cel mai popular SGBD open-source la ora actuală, fiind o componentă cheie a stivei LAMP (Linux, Apache, MySQL, PHP). Apache nu este doar un server web, ci mai degrabă un software care rulează pe un server. Sarcina sa este de a stabili o conexiune între un server și browserele vizitatorilor site-ului (Firefox, Google Chrome, Safari etc.), în timp ce livrează fișiere înainte și înapoi între ele (structura client-server). Poate găzdui site-uri web statice, precum și site-uri web dinamice care folosesc limbaje de scripturi din server, precum PHP, Python sau Perl. Suportul pentru aceste limbaje este implementat prin module sau pachete de instalare care sunt adăugate la instalarea standard Apache. Apache acceptă și alte module, care oferă opțiuni avansate de securitate, instrumente de gestionare a fișierelor și alte funcții.
MySQL este un sistem de gestiune a bazelor de date relaționale, 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 ar fi: C, C++, C#, Java, Perl, PHP, Python, FreeBasic, etc., fiecare dintre acestea folosind un tip specific API. Datele sunt organizate în tabele, între care sunt stabilite relații și constrângeri de intergritate. Pentru gestiunea datelor foloseste limbajul SQL (Structured Query Language) care este un standard în acest domeniu.Am ales această opțiune și datorită faptului că se pot realiza căutari ale unor câmpuri, domenii de valori, căutari pe baza unor expresii regulate sau căutări care utilizează funcții JavaScript definite de către utilizator.
CAPITOLUL III. IMPLEMENTAREA SISTEMULUI
Până la acest capitol au fost dezbătute conceptele de analiză a sistemului și proiectarea sistemului. Mai departe se trece la pașii propriu ziși a implementării site-ului. Plecăm de la ideea de bază vinderea produselor alimentare. Astfel, ne facem o schemă generală asupra site-ului care va fi împărțit în secțiuni de lucru.
3.1 Configurarea serverului
Pentru început este necesară configurarea web-hosting-ului, aceasta făcându-se prin autentificarea în cPanel, care este panoul de control, și se face setarea versiunii de PHP pe 5.6, deoarece această versiune comunică foarte bine cu mysql. Încărcarea codului sursă al restaurantului se poate face cu File Manager-ul din cPanel sau prin FTP cu un program File Zilla sau WinSCP. Mai trebuie copiate name servere-le web-hosting-ului la adresa domeniului pentru a se putea face legătura între acestea.
3.2 Abordarea dezvoltării bazei de date
Pentru păstrarea datelor care se vor introduce pe site, va fi necesară stocarea tuturor informațiilor într-o bază de date. Pentru o accesare cât mai facilă a bazei de date s-a folosit Mysql, cu ajutorul căreia putem gestiona, manipula și stoca cât mai corect datele.
3.2.1 Crearea bazei de date
Baza de date a fost creată în phpMyAdmin cu numele restaurant, unde au fost create mai multe tabele precum tabelul users care stochează informații despre persoanele care urmează să se înregistreze, memorând informații despre numele acestora, parola, email, adresa, etc; tabelul menus care de asemenea înregistrează date despre numele meniului, prețul acestuia, detalii, etc; tabelul orders va înregistra date referitoare la comenzi.
CREATE TABLE `users` (
`user_id` int(10) NOT NULL,
`user_role` varchar(100) NOT NULL,
`user_name` varchar(100) NOT NULL,
`user_nice_name` varchar(250) NOT NULL,
`user_password` varchar(100) NOT NULL,
`user_email` varchar(50) DEFAULT NULL,
`user_delivery_address` varchar(200) DEFAULT NULL,
`user_phone` int(14) NOT NULL,
`user_since` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
CREATE TABLE `menus` (
`menu_item_id` int(10) NOT NULL,
`menu_item_category` varchar(100) NOT NULL,
`menu_item_name` varchar(100) NOT NULL,
`menu_item_details` varchar(300) DEFAULT NULL,
`menu_preview_image` varchar(255) NOT NULL,
`menu_item_price_per_slice` double NOT NULL,
`menu_item_author` varchar(100) DEFAULT NULL,
`menu_date` timestamp NULL DEFAULT NULL)
CREATE TABLE `orders` (
`order_id` int(10) NOT NULL,
`order_payment_method` varchar(50) DEFAULT NULL,
`order_paypal_default` varchar(50) DEFAULT NULL,
`order_type` varchar(50) NOT NULL,
`order_comments` varchar(500) DEFAULT NULL,
`order_catering_products` varchar(500) NOT NULL,
`order_address` varchar(100) NOT NULL,
`order_value` varchar(100) NOT NULL,
`order_user_name` varchar(100) NOT NULL,
`order_user_email` varchar(100) NOT NULL,
`order_user_phone` int(14) NOT NULL,
`order_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`book_date_out` varchar(50) NOT NULL)
3.2.2 Conexiunea la baza de date
Conectarea site-ului cu baza de date se face modificând fisierul configuration.php adaugând numele bazei de date, userul și parola
Figură 18. Modul de conexiune cu baza de date
Sursă:Fișierul configuration.php al proiectului
3.3 Design
Partea de design este structurată în fișierul Skin al proiectului. Folderele care compun partea Skin sunt: folderul js care conține fișierele JavaScript necesare manipulării conținutului, folderul fonts care conține totalitatea fonturilor folosite pentru scrierea informațiilor pe site, fișierul css care cuprinde stilizarea paginilor web, fișierul images care este un cumul al tuturor imaginilor din site.
3.3.1 PHP
Partea de PHP ne conferă structura paginilor site-ului. Ca să fie mai ușor, am dezvoltat secțiuni de cod care să fie apelate în cadrul mai multor pagini ale aplicației precum partea de subsol:
Figură 19. Subsolul paginii
<?php
$informations = mysqli_query($con, "SELECT * FROM informations WHERE contact_id='1'") or trigger_error("Query Failed: " . mysqli_error($con));
$information = mysqli_fetch_array($informations);
//Social media
$social_fb = $information['social_fb'];
$social_tw = $information['social_tw'];
//Contact Open Hours
$contact_monday_hours = $information['contact_monday_hours'];
$contact_tuesday_hours = $information['contact_tuesday_hours'];
$contact_wednesday_hours = $information['contact_wednesday_hours'];
$contact_thursday_hours = $information['contact_thursday_hours'];
$contact_friday_hours = $information['contact_friday_hours'];
$contact_saturday_hours = $information['contact_saturday_hours'];
$contact_sunday_hours = $information['contact_sunday_hours'];
?>
<script type="text/javascript">
function initialize() {
var myLatLng = new google.maps.LatLng(<?php echo $information['contact_latitude']; ?>,<?php echo $information['contact_longitude']; ?> )
var mapProp = {
center:myLatLng,
zoom:17,
zoomControl: false,
scaleControl: false,
scrollwheel: false,
navigationControl: false,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById("googleMapFooter"),mapProp);
var marker = new google.maps.Marker({
position: myLatLng,
map: map
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
<footer>
<div class="row footer_top">
<div class="container">
<div class="col-md-3">
<a title="Restaurant Logo" href="<?php echo $CONF['installation_path']; ?>"><img alt="logo" src="<?php echo $CONF['logo_url']; ?>"></a>
<div class="clearfix"></div>
<strong><?php echo $lang['Address'] . ":"; ?></strong>
<div class="clearfix"></div>
<span><?php echo $information['contact_address']; ?></span>
<div class="cleafix"></div>
<ul class="social_links">
<?php if (!empty($social_fb)) { ?>
<li>
<a href="<?php echo $social_fb; ?>" title="Facebook">
<img src="<?php echo $CONF['installation_path']; ?>skin/images/social_media/facebook.png" alt="Facebook">
</a>
</li>
<?php } if (!empty($social_tw)) { ?>
<li>
<a href="<?php echo $social_tw; ?>" title="Twitter">
<img src="<?php echo $CONF['installation_path']; ?>skin/images/social_media/twitter.png" alt="Twitter">
</a>
</li>
<?php } ?>
</ul>
</div>
<div class="col-md-3 contact_area">
<h3><strong class="white"><?php echo $lang['ContactUsNow']; ?></strong></h3>
<span class="title"><?php echo $lang['PhoneOrders'] . ":"; ?></span>
<span class="content"><?php echo $information['contact_phone_number']; ?></span>
<span class="title"><?php echo $lang['EmailOrders'] . ":"; ?></span>
<span class="content"><?php echo $information['contact_email']; ?></span>
</div>
<div class="col-md-3">
<h3><strong class="white"><?php echo $lang['LocationOnTheMap']; ?></strong></h3>
<div id="googleMapFooter"></div>
</div>
<div class="col-md-3">
<h3><strong class="white"><?php echo $lang['OpenBetween']; ?></strong></h3>
<div class="row">
<label class="col-md-4"><?php echo $lang['Monday']; ?></label>
<label class="col-md-6"><?php echo $contact_monday_hours; ?></label>
</div>
<div class="row">
<label class="col-md-4"><?php echo $lang['Tuesday']; ?></label>
<label class="col-md-6"><?php echo $contact_tuesday_hours; ?></label>
</div>
<div class="row">
<label class="col-md-4"><?php echo $lang['Wednesday']; ?></label>
<label class="col-md-6"><?php echo $contact_wednesday_hours; ?></label>
</div>
<div class="row">
<label class="col-md-4"><?php echo $lang['Thursday']; ?></label>
<label class="col-md-6"><?php echo $contact_thursday_hours; ?></label>
</div>
<div class="row">
<label class="col-md-4"><?php echo $lang['Friday']; ?></label>
<label class="col-md-6"><?php echo $contact_friday_hours; ?></label>
</div>
<div class="row">
<label class="col-md-4"><?php echo $lang['Saturday']; ?></label>
<label class="col-md-6"><?php echo $contact_saturday_hours; ?></label>
</div>
<div class="row">
<label class="col-md-4"><?php echo $lang['Sunday']; ?></label>
<label class="col-md-6"><?php echo $contact_sunday_hours; ?></label>
</div>
</div>
</div>
</div>
<div class="row footer_bottom">
<div class="container">
<span class="text-left"><?php echo $lang['Copyright']; ?></span>
</div>
</div>
</footer>
Sursă:fișierul footer.php al proiectului
Figură 20. Grafica footer
Sursă: Interfața proiectului
3.3.2 CSS
CSS-ul este un limbaj de stilizare al elementelor html, al tagurilor html. Denumirea CSS provine din expresia Cascading Style Sheets. În Web Design-ul modern, pentru stilizarea paginilor web se folosește numai CSS. Acest lucru înseamnă că de la culoarea literelor și a backgroundului până și la poziționarea elementelor de pe o pagină web, totul este stilizat prin CSS. Stilurile folosite pe o pagină pot fi încorporate în pagină respectivă sau pot fi chemate din fișiere externe, fișiere CSS.
Stilizarea paginilor folosește variabile de culoare pentru o dinamică mai bună fiind partajate de toate fișierele de CSS. Structura proiectului are la baza două foldere CSS globale, unul pentru partea de Back-end și unul pentru Front-end, care cuprind totalitatea stilizarilor efectuate.
Figură 21.Exemplu CSS Meniu
/*MAIN MENU*/
nav .restaurant-main-menu li {
display: inline-table;
}
nav.navigation-menu{
z-index: 100;
margin: 0;
border-radius: 0;
-o-border-radius: 0;
-moz-border-radius: 0;
-webkit-border-radius: 0;
}
nav .restaurant-main-menu a {
display: block;
font-size: 18px;
font-weight: 300;
line-height: 65px;
padding: 1px 40px;
text-decoration: none;
transition: all 200ms ease-in-out;
-webkit-transition: all 200ms ease-in-out;
}
nav .restaurant-main-menu a i {
font-size: 21px;
margin-right: 6px;
}
nav .navbar-toggle .icon-bar{
background: white;
}
nav .navbar-toggle{
border: 1px solid white;
background: transparent;
1}
nav .navbar-brand,nav .navbar-brand:hover{
color: white;
text-decoration: none;
}
nav .navbar-brand{
display: none;
padding: 20px;
height: auto;
line-height: auto;
}
Sursă:fișierul styles.css al proiectului
Figură 22. Grafică Meniu
Sursă: Interfața proiectului
3.3.3 Interfață grafică
Figură 23. Pagina principală
Figură 24. Pagina de comanda
Figură 25. Pagina produselor
Figură 26. Pagina de log in/register
CAPITOLUL IV. TESTAREA SISTEMULUI
4.1 Scopul testării
Scopul principal al acestui capitol este detectarea tuturor problemelor din sistem și remedierea acestora. Astfel că recurgem la procesul de testare, pentru a putea găsi și elimina toate erorile. Procesul de testate are drept obiectiv detectarea tuturor problemelor, corectarea acestora, minimizarea celor care nu pot fi eliminate în totalitate, astfel că la final, să oferim utilizatorilor un produs calitativ.
Instrumentele pentru testarea performanțelor aplicațiilor web sunt folosite pentru a testa aplicații web și interfețe legate de web. Aceste instrumente sunt folosite pentru performanță, sarcină, și teste de stres pentru aplicații web, site-uri web, servere web și alte interfețe web. Instrumentele pentru testarea performanțelor aplicațiilor web simulează utilizatori virtuali. Astfel, instrumentul este util pentru a verifica strangulării în trafic și probleme de performanță ale site-ului sau aplicației web în curs de testare.
4.2 Testare de compatibilitate
Pentru a observa compatibilitatea site-ului creat am efectuat un test cu ajutorul unui site de testare LAMBDATEST (https://accounts.lambdatest.com/dashboard). În urma testului efectuat, am observat ca site-ul nostru este compatibil cu majoritatea browser-lor, însă la anumite rezoluții putem observa anumite modificări din punct de vedere al designului, cum ar fi bara meniu. Situația se prezintă astfel (tabel 5):
Tabel 5. Testarea compatibilității site-ului cu diferte tipuri de browsere
Figură 27. Testarea site-ului
Sursă: https://app.lambdatest.com/console/test-logs
4.3 Testarea de utilizabilitate
Această metodă de testare prezintă utilizatorilor un produs, iar ma apoi le cere să descrie ce este produsul respectiv și să folosească site-ul pentru a îndeplini o sarcină.
Este considerată un test de evaluare a produsului deoarece oferă informații reale și directe despre cum folosesc utilizatorii aplicație. Principalul obiectiv este acela de a ne arată cât de ușor se folosește aplicația. Pentru site-ul nostru am fost interesați de eficiența aplicației, adică de cât timp au nevoie utilizatorii ca să finalizeze o sarcină.
Acest test are trei secțiuni:
Testarea propriu zisă
După testare
Triaj
Pentru a face testarea, am ales 5 utilizatori, care nu au avut legătură cu proiectul și care nu sunosc detalii despre acesta, care să simuleze utilizatorul final. Acest process a avut loc în prezența testărului care a monitorizat activitatea și se prezintă în următorul fel:
Testarea propriu-zisă
Utilizatorul este rugat să interacționeze cu paginile, să gândească cu voce tare, astfel încât să putem trage concluzii în urma testării despre părerea sa asupra designului, elementelor care îi atrag atenția, cu ce este tentat să interacționeze prima oară.
Realizarea unor task-uri precum înregistrare pe site, căutarea unui produs, comandarea unui meniu.
Pe măsura realizării cerințelor sunt analizate deciziile utilizatorului, cerându-i-se explicații.
Proces după testare
Rezolvarea problemelor
Triaj
Problemele ignorate sunt cele în care utilizatorul greșește anumiți pași dar reușește să își dea seama singur de problemă.
Sunt rezolvate problemele foarte vizibile care induc utilizatorul într-o stare de disconfort sau problemele mari detectate în urma testului.
Nu se vor face modificări propuse de utilizator dacă acestea nu sunt importante pentru proiect, nu vizează domeniul de activitate, sau au costuri prea mari.
4.4 Testarea de încărcare
Testarea de încărcare constă în măsurarea răspunsului aplicației și parametrilor. Acesta este conceputpentru determinarea comportamentul unui sistem sub condiții normale de funcționare. În acest mod putem observa care este capacitatea maximă de operare a aplicației, dar și unde se află punctele ei slabe. Aplicația noastră funționează astfel:
Figură 28. Rezultatele testării pe desktop
Sursă:https://developers.google.com/speed/pagespeed/insights/?url=http%3A%2F%2Fmirunaioana.mtrady.tk%2F&tab=desktop
Figură 29. Oportunității pentru rezolvarea problemelor
Sursă:https://developers.google.com/speed/pagespeed/insights/?url=http%3A%2F%2Fmirunaioana.mtrady.tk%2F&tab=desktop
Figură 30. Rezultatele testării pe android
Sursă:https://developers.google.com/speed/pagespeed/insights/?url=http%3A%2F%2Fmirunaioana.mtrady.tk%2F&tab=mobile
Figură 31.Oportunității pentru rezolvarea problemelor
Sursă:https://developers.google.com/speed/pagespeed/insights/?url=http%3A%2F%2Fmirunaioana.mtrady.tk%2F&tab=mobile
CONCLUZII
Obiectivul principal al acestei lucrării a fost realizarea unui sistem necesar pentru nevoile și dorințele de afirmare a restaurantului Miradin în mediu online. Astfel că am conceput o platformă online de prezentare și comercializare a meniurilor, care va fi updatată și actualizată mereu conform cerințelor pieței.
Nevoia adoptării acestei platforme a făcut subiectul lucrării, și a fost dezvoltată și detaliată în cele patru capitole ale lucrării. Informațiile necesare pentru a dezvolta acest site le-am adunat atât de la personalul restaurantului, administratorilor acestuia cât și de la publicul larg prin aplicarea unui chestionar.
De-a lungul celor patru capitole am urmărit ca rezultatele finale să fie dintre cele mai pune astfel că, în capitolul I, am motivat nevoile creării acestui site, am analizat cerințele sistemului și ne-am documentat în legătură cu acestea, ca pe finalul capitolul că creăm un model de dezvoltare conform nevoilor și necesităților Miradin Restaurant.
În capitolul II, am realizat efectiv proiectarea aplicației, astfel că platforma a fost proiectată pentru a oferi interacțiune cu clienții de orice categorie socială sau vârstă, abordând un design classic dar cu iz modern. Tot în acest capitol am descris structura bazei de date și tehnologiile specifice pentru dezvoltarea acestui site.
Descrierea implementării site-ului se găsește în capitolul III, unde am detaliat modul în care am configurat serverul, în care am dezvoltat baza de date și programele cu care am realizat designul. Tehnologia folosită este una modernă, de actualitate, care a permis implementarea sistemului pâna la stadiul deplasare a comenzii, satisfăcând necesitățile clienților, dar cu perspectivă de dezvoltare în ceea ce privește panoul de administrare securitate și integratoare de plăți moderne.
Iar în capitolul de încheiere am descris și prezentat modul în care am testat site-ul astfel încât să putem observa rapiditatea de lucru al acestuia, compatibilitatea lui cu anumite browsere pe diverse sisteme de operare, felul în care acesta funționează și răspunde cerințelor și nevoilor clienților.
Pe viitor societatea ar putea să își actualizeze și modernizeze site-ul conform evoluției pieței, să se înscrie în cadrul grupurilor de livratori precum Foodpanda și să își dezvolte o aplicație compatibilă cu IOS și Android care să ușureze și faciliteze modul de cumpărare a produselor online. Din testele făcute obsevăm că există cerere și clienții doresc și sunt interesați să își procure astfel hrana ceea ce ne face să credem că o afacere care dorește să fie cât mai rentabilă, în acest domeniu, vă cauta extinderea online cât mai mult.
Bibliografie
Robert Buchmann (2018). Proiectarea și Analiza Sistemelor Informatice (CURS-UBB-FSEGA-Cluj-Napoca).
Nicolae Tomai(2009) . „Rețele de calculatoare, Structuri, Programe, Aplicații”
ANSPDC, Responsabilul cu protecția datelor cu caracter personal, Disponibil online : https://www.dataprotection.ro/?page=Responsabilul_cu_protectia_datelor
Apache, Disponibil online: https://techterms.com/definition/apache
Brainstorming, Disponibil online: https://ro.wikipedia.org/wiki/Brainstorming
Ce este Agile și cum ne ajută într-o organizație? Disponibil online: https://www.brandingmagazine.ro/ce-este-agile-si-cum-ne-ajuta-intr-o-organizatie/
Ce este PHP?,Disponibil online: https://www.php.net/manual/ro/intro-whatis.php
Ce trebuie să știi despre managementul proceselor de afaceri?, Disponibil online: https://romanulfinanciar.ro/economic/ce-trebuie-sa-stii-despre-managementul-proceselor-de-afaceri/
CSS,Disponibil online: https://web.ceiti.md/lesson.php?id=2
Cum funcționează un server Web?, Disponibil online: https://www.nav.ro/blog/cum-functioneaza-un-server-web/
Data-flow diagram, Disponibil online: https://en.wikipedia.org/wiki/Data-flow_diagram
Familiarizarea cu diagramele de activitate. Elemente de bază, Disponibil online: https://sites.google.com/site/uml4students/diagrama-de-activitate
Jquery ,Disponibil online: https://ro.wikipedia.org/wiki/JQuery
M. Gabroveanu, Modelarea Cazurilor de Utilizare,Disponibil online: http://inf.ucv.ro/~mihaiug/courses/is/lab/lab3-4.pdf
M. Popa,Metodologia cercetării, Disponibil online: http://www.apio.ro/upload/mc11_cerc_calit_2018_01.pdf
Metodologia Agile – Scrum, Disponibil online: http://muhaz.org/metodologia-agile–scrum.html
MySQL, Disponibil online: https://ro.wikipedia.org/wiki/MySQL
MySQL, Disponibil online: https://www.mysql.com/products/enterprise/
Regulament GDPR explicat în 5 minute, Disponibil online: https://legalup.ro/regulament-gdpr/
Server (computing), Disponibil online: https://en.wikipedia.org/wiki/Server_(computing)
Sisteme Informatice , Disponibil online http://www.seap.usv.ro/~sorinv/Proiectarea%20Sistemelor%20Informatice%20Curs%201-3.pdf
Testarea unui site web și a aplicațiilor web, Disponibil online: https://www.setthings.com/ro/testarea-unui-site-web-si-a-aplicatiilor-web/
Test de utilizabilitate, Disponibil online: http://andrei.clubcisco.ro/cursuri/f/f-sym/4ioc/labs/Test_de_utilizabilitate.pdf
Tutoriale CSS, Disponibil online: https://it.webdesign-galaxy.ro/ce-este-css/
What is Apache? An In-Depth Overview of Apache Web Server, Disponibil online: https://www.hostinger.com/tutorials/what-is-apache
What is MySQL?,Disponibil online: https://docs.oracle.com/cd/E17952_01/mysql-8.0-en/what-is-mysql.html
XAMPP, Disponibil online: https://en.wikipedia.org/wiki/XAMPP
Anexe
Anexa 1- Întrebări chestionar
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: Conf. univ. dr. Dan-Andrei SITAR-TĂUT 2020 UNIVERSITATEA BABEȘ-BOLYAI Facultatea de Științe Economice și Gestiunea Afacerilor Informatică Economică… [303531] (ID: 303531)
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.
