FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT IOAN SLAVICI [604543]

FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI”
TIMIȘOARA
UNIVERSITATEA “IOAN SLAVICI” TIMIȘOARA
FACULTATEA DE INGINERIE
DOMENIUL CALCULATOARE ȘI TEHNOLOGIA INFORMAȚIEI
FORMA DE ÎNVĂȚĂMÂNT – ZI

PROIECT DE DIPLOMĂ

COORDONATOR ȘTIINȚIFIC
Prof. Doctor Inginer Vlăduțiu Mircea

ABSOLVENT: [anonimizat]
2019

FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI”
TIMIȘOARA
UNIVERSITATEA “IOAN SLAVICI” TIMIȘOARA
FACULTATEA DE INGINERIE
DOMENIUL CALCULATOARE ȘI TEHNOLOGIA INFORMAȚIEI
FORMA DE ÎNVĂȚĂMÂNT – ZI

APLICATIE WEB PENTRU
EFICIENTIZAREA SERVICIILOR IN
CADRUL UNUI RESTAURANT

COORDONATOR ȘTIINȚIFIC
Prof. Doctor Inginer Vlăduțiu Mircea

ABSOLVENT: [anonimizat]
2019

Cuprins
CAPITOLUL 1. INTRODUCERE 1
1.1 Contextul actual 1
1.2 Obiective 3
1.3 Tema și structura proiectului 3
CAPITOLUL 2. STUDIU BIBLIOGRAFIC 4
CAPITOLUL 3. SPECIFICAȚIILE APLICAȚIEI 7
3.1 Schema bloc a aplicației 7
3.2 Funcțiile sistemului 8
3.3 Stocarea bazei de date 10
CAPITOLUL 4. IMPLEMENTAREA APLICAȚIEI 14
4.1 Tehnologia ASP.NET 14
4.2 Arhitectura sistemului 16
4.3 Descrierea modulelor aplicației 17
4.4 Descrierea funcțiilor sistemului 21
CAPITOLUL 5. UTILIZAREA APLICAȚIEI 30
5.1 Interfața cu utilizatorul 30
5.2 Testarea aplicației 40
CAPITOLUL 6. CONCLUZII
6.1 Ce s‐a realizat? 40
6.2 Direcții de dezvoltare 41
BIBLIOGRAFIE 42

UNIVERSITATEA DIN ORADEA
FACULTATEA de Inginerie Electrică și Tehnologia Informației
DEPARTAMENTUL Calculatoare și tehnologia informației

TEMA _______________

Proiectul de Finalizare a studiilor a student: [anonimizat]____JURCA Alexandru_ ____

1). Tema proiectului de finalizare a studiilor:
_____Aplicație web pentru eficientizarea serviciilor in cadrul unui restaurant________________
2). Termenul pentru predarea proiectului de diplomă:
_____ 19 Iunie 2019 __________________________________ ___________________________
3). Elemente inițiale pentru elaborarea proiectului de finalizare a studiilor:
_____ Documentația aferenta: cărți, internet ____________________________________ _______
_____ Platforme de experimentare: Microsoft Visual Studio, M ySql_______________________
4). Conținutul proiectului de finalizare a studiilor:
______ Capitolul introductiv ce descrie o soluție de eficientizare a modului de operare in
domeniul ospitalier, obiectivele si structura lucrării; partea aplicativa referitoar e la specificațiile
aplicației, implementării si utilizării acesteia; concluzii rezumative; lista surselor de literatura
folosite;_____
5). Material grafic:
_____Schema bloc a aplicației si a bazei de date ; reprezentări grafice corespunzătoare pașilor
efectuați in implementare; imagini ce oferă ajutor cititorului in înțelegerea ușoară a utilizării
aplicatiei;______________________________________________________________________
6). Locul de documentare pentru elaborarea proiectului de diplomă:
______Bi blioteca Universității „Politehnica” din Timișoara______________________________
7). Data emiterii temei:
__20 Octombrie 201 8 ___________________________________________________________

Coordonator științific
Prof. Doctor Inginer Vlăduțiu Mircea

UNIVERSITATEA DIN OR ADEA

FACULTATEA DE INGINERIE ELECTRICĂ
ȘI TEHNOLOGIA INFORMAȚIEI
Adresa Oradea, Cod 410087, Bihor, Romania, Strada Universității, nr. 1 ,
Tel/Fax :+40 259/408412, Tel:+40 259/40810 4; +40 259/408204

REFERAT
PRIVIND PROIECTUL DE DIPLOMĂ
A

ABSOLVENTULUI / ABSOLVENTEI : . …JURCA ALEXANDRU ………

DOMENIUL Calculatoare și tehnologia informației
SPECIALIZAREA Tehnologia informației
PROMOȚIA 2019

1. Titlul proiectului …………………………………………………………………………………………….
………… APLICATIE WEB PENTRU EFICIENTIZAREA SERVICIILOR IN CADRUL UNUI
RESTAURAN T……… ……………………………………………………………………………. ……..
2. Structura proiectului ……………………………………………………………….. ……
……………… 1. INTRODUCERE ………………….. ……………………………………………………………………….
……………….2. STUDIU BIBLIOGRAFIC ……………………………… ………………………………………. ……..
……………….3. SPECIFICAȚIILE APLICAȚIEI …….. …………………………… …………………………………
……………….4. IMPLEMENTAREA APLIC AȚIEI ……………….. ………………………… ……………………..
………………. 5. UTILIZAREA APLICAȚIEI …………………………… ……………………………………. ……….
……………….6. CONCLUZII ………… ……………….. ……………………………………………………………………. .
……………….7. BIBLIOGRAFIE …………………………………………………………………………………………….
…………… …………………………………………………………………………………………………………….. …………….
3. Aprecieri asupra conținutului proiectului de DIPLOMĂ ( finalizare a studiilor ),
mod de abordare, complexitate, actualitate, deficiențe
…….Lucrarea se caracterizează printr -o construcție echilibrat ă cu o bun ă ponderare între
dezvoltarea naturilor teoreti ce si descrierea aplicativa…………………………………………………………..
…….Lucrarea este corect divizata pe capitole si paragrafe, între care exista o bună coerenta…..
…………………………………………………. ……………………………………………………………………………………..

4. Aprecieri asupra proiectului (se va menționa: numărul titlurilor bibliografice
consultate, frecvența notelor de subsol, calitatea și diversitatea surselor
consultate; modul în care absolventul a prelucrat informațiile din surse
teoretice)
…….Sursele bibliografice sunt alese în mod corespunzător ……………………………………………………
…….Materialul grafic este executat în mod îngrij it, fiind complementar părții redactate…….
…………………………………………………………………………………………………………….. ………………………….
(se va menționa: opțional locul de documentare și mo dul în care absolventul a realizat
cercetarea menționându -se contribuția autorului)
…….. Autorul alege in mod corect sursele de literatura, lucrarea având la baza un număr de 10 titluri
bibliografice. Informațiile preluate din surse teoretice sunt citat e in mod corespunzător , fiind
inserate in lucrare doar pe măsură ce sunt utilizate pentru înlesnirea urmăririi părții aplicative……
…………………………………………………………………………………………………………. ……………………………..
5. Concluzii (coordonatorul proiectului trebuie să aprecieze valoarea proiectului
întocmit, relevanța studiului întreprins, competențele absolventului,
rigurozitatea pe parcursul elaborării proiectului, consecvența și serio zitatea de
care a dat dovadă absolventul pe parcurs)
……… In baza celor mai sus menționate , apreciez ca lucrarea elaborata de absolvent este valoroasa,
fiind bazata pe un amplu studiu de literatura de specialitate, absolventul dovedind o reala
competen ta…………………………………………………………………………………………………………….. ………….
………. De asemenea, pe parcursul elaborării lucrării de licență , autorul a dovedit rigurozitate,
consecventa si s eriozitate……………………………………………………………………………………………………. .
…………………………………………………………………………………………………………….. ………………………….

6. Redactarea proiectului respectă …..ca forma , conținut si claritate. ………….. cerințele
academice de redactare (părți, capitole, subcapitole, note de subsol și
bibliografie).

7. Consider că proiectul îndeplinește/ nu îndeplinește condițiile pentru susținere în
sesiunea de Ex amen de LICENȚĂ ( finalizare a studiilor ) din IULIE 2019 și
propun acordarea notei ………………

Oradea,
Data Coordonator științific

1
Capitolul 1. Introducere

1.1 Contextul actual

Evoluția tehnologiei a ajuns, în zilele noastre, să își pună amprenta aproape în toate
domeniile. Nu mai suntem nevoiți să ne deplasăm pentru a ne plăti facturile, să plătim sume foarte
mari pe serviciile de telefonie pentru a păstra legătura cu rudele sau amicii plecați în străinătate,
întrucât prin inter mediul internetului lucrurile devin mult mai simple și mai puțin costisitoare. Până
și cafeaua o putem servii de la automate, toate aceste facilității ne ușurează existența.

Tendința de automatizare o întâlnim zilnic, în toate activități le pe care le desfășurăm.
Putem achiziționa haine de pe internet, putem comanda mâncare la domiciliu, putem rezerva
vacanțe în străinătate, bilete de avion până și alimente.

În cadrul acestei lucrări de diplomă am realizat o aplicație we b care este destinată
eficientizării serviciilor unui restaurant. Aplicația poate fii utilizată atât de ospătar, bucătar,
administratorul cât și de clienții restaurantului.

Prin intermediul aplicației se dorește plasarea de comenzi online de către clien t, în
cadrul restaurantului, recepționarea acestora de către ospătar și bucătar, și generarea de rapoarte de
către administrator. Ideea constă în posibilitatea de vizualizare a notei de plata precum și a
produselor comandate, de către client, în orice m oment al șederii sale în restaurant. În aceeași
ordine de idei și angajații primesc instant comanda efectuată de client.
De asemenea aplicația oferă clientului informații despre disponibilitatea produselor din
meniu și a stocului de alimente sa u băuturi epuizat, pentru bucătar sau administrator. Eficientizarea
serviciilor constă în posibilitatea de comandare online a produselor, de conștientizare, a angajaților
a timpului rămas pentru onorarea comenzii.

2
Clientul având acces online la comanda și nota lu i de plată poate știi care este timpul
de preparare al produselor comandate, cât va trebui să mai aștepte până la onorarea
comenzii. De asemenea angajații se vor strădui să satisfacă cererile clienților în timp util, ceea ce
duce la o diminuare a timpului epuizat.

Pentru realizarea aplicației am folosit tehnologia ASP.NET cu limbajul C# din mediul
de dezvoltare Microsoft Visual Studio , pe platforma .NET Framework și baza de date MySql .

C# este un limbaj sim plu, ce permite programarea structurată, modulară și orientată
obiectual, conform perceptelor moderne ale programării profesioniste [4].

Visual Studio este un mediu integrat de dezvoltare (IDE) de la Microsoft, care este
folosit pentru de zvoltarea aplicațiilor de tip consolă, aplicații cu interfață grafică, aplicații client –
server, pagini web, aplicații și servicii web [1].

ASP.NET este o tehnologie Microsoft pentru crearea de aplicații web și servicii web.
ASP.NET este succesorul lui ASP ( Active Server Pages ) și beneficiază de puterea platformei de
dezvoltare .NET, și de setul de instrumente oferite de mediul de dezvoltarea al aplicației „Visual
Studio .NET” [3].

Microsoft .NET Framework este o platformă software care poate să ruleze pe orice
calculator pe care se află instalat orice sistem de operare Windows de la Microsoft. Conține o largă
librărie de soluții , în cod, la cele mai întâlnite probleme de programare și o mașină virtuală care
execută programele scrise pentru platforma .NET [2].

Cu MySQL se pot construi aplicații în orice limbaj major. Am ales utilizarea bazei de date
MySql întrucât este o bază de date performantă și scalabilă, oferită gratuit.

3
1.2 Obiective

Obiectivele acestei aplicații sunt:

• plasarea de comenzi online, în cadrul unui restaurant de către clienții din restaurant
• cerea notei de plată de către clienți
• recepționarea comenzilor clienților, de către ospătar
• recepționarea notelor de plată ale clienților, de către ospătar
• recepționarea comenzilor plasate de clienți de către bucătar, ora la care s -a efectuat, precum
și timpul de preparare, astfel se încearcă satisfacerea cererilor într -un timp cât mai util
• modificarea rețetelor, de c ătre bucătar
• obținerea de rapoarte ale comenzilor, pe zile

1.3 Tema și structura proiectului

Tema aleasă pentru această lucrare își propune să ofere o soluție de eficientizare a
modului de onorare a comenzilor într -un restaurant, gestion area stocului de alimente și băuturi,
dar și controlul total al administratorului asupra tuturor comenzilor. Site-ul este conectat la o bază
de date MySql din care sunt încărcate informații despre produse, comenzi și note de plată.

Structura lucrării de diplomă este următoarea:

➢ în capitolul 2, STUDIU BIBLIOGRAFIC vor fii prezentate site -urile de referință cu
ajutorul cărora s -a realizat aplicația, de unde am preluat numele restaurantului, pozele
pentru galerie, produsele din meniu și datele de contact.

➢ în capitolul 3, SPECIFICAȚIILE APLICAȚIEI sunt prezentate schema bloc a

4
aplicației, cerințele aplicației și stocarea bazei de date precum și legăturile dintre tabele.
Cerințele aplicației sunt prezentate detaliat, nivelurile de acces ale aplicației și drepturile
fiecărui utilizator în funcție de tipul său.

➢ în capitolul 4, IMPLEMENTAREA APLICAȚIEI , sunt prezentate tehnologia ASP.NET,
arhitectura aplicației, în care sunt prezentate toate fișierele aplicației . Tot aici sunt
prezentate funcțiile utilizate în realizarea programului, cu exemple din cod, chiar și cu
imagini din program.

➢ în capitolul 5, UTILIZAREA APLICAȚIEI, sunt prezentați pașii de utilizare ai aplicației,
pentru fiecare tip de utilizator.

➢ în capitolul 6, CONCLUZII, se prezintă ceea ce s -a realizat, precum și direcțiile de
dezvoltare ale aplicației.

Capitolul 2. Studiu bibliografic

Pentru documentarea temei am folosit unele site -uri ce aparțin unor restaurante
cunoscute, atât din Timișoara cât și din București. Numele restaurantului “Casa Bunicii” este al
unui restaurant din Timișoara, l -am găsit foarte rustic și foarte familial [8]. Tot din cadrul acestui
site au fost preluate și datele de contact ale restaurantului. Pe baza adresei, găsită în pagina de
contact( Figura 2.1 ), am realizat o hartă, cu ajutorul Google maps, care va ajuta clientul să
localizeze localul.

5

Figura 2.1 Pagina de contact a restaurantului „Casa Bunicii” [8]

Meniul restaurantului l -am construit pe baza celui din pagina Restaurantului “P erla” din București
(Figura 2.2 )[9].

Figura 2.2 Meniul Restaurantului “ Perla” [9]

6
Pentru galeria foto am folosit pozele Restaurantului “Piccadilly”, din București( Figura 2.3 )[10].

Figura 2.3 Galeria foto a Restaurantului ”Piccadilly” [10]

Pe baza acestor informații, culese, după bunul meu plac, am creat restaurantul
prezentat în lucrare. Toate restaurantele prezentate mai sus nu dețin un astfel de sistem informatic,
cu posibilitate de comandă în cadrul localului.
In aplicația preze ntată în această lucrare clientul se va putea conecta doar în local, pe baza
unei parole obținute de la ospătar, și va putea face comenzi doar la fața locului. O dată ce clientul
s-a deconectat el nu va mai avea acces la cont cu aceeași parolă primită, deoarece atunci când
clientul se conectează se activează un algoritm de generare automată a parolei, această modificare
se realizează și în baza de date. Noile parole generate pot fii obținute numai de la administrator sau
ospătar. Posibilitatea unor eventual e comenzi la domiciliu poate fii privită ca o posibilă directivă
de dezvoltare pe viitor.

7
Capitolul 3. Specificațiile aplicației

3.1 Schema bloc a aplicației

Figura 3.1 Relațiile între componentele sistemului

Aplicația es te un site destinat unui restaurant, acesta are mai multe funcționalități. Ea poate
fii accesată doar informativ, pentru a se vizualiza poze din restaurant, meniul de care dispune și
datele de contact. Aplicația dispune de un meniu format din :
– Acasă – Meniu – Băuturi
– Galerie – Servicii – Contact

Pentru a accesa “Servicii” -le utilizatorul trebuie să se autentifice. Există patr u tipuri de
utilizatori: administrator ; bucătar ; ospătar ; client ;

Server

Web

Motor

Asp.NET

Motor

MySQL

Browser

ul

Internet

Date

M
y
S
Q
L

Pagini
ș
i

scripturi

stocate

Fi
ș
iere

de

date

8
În funcție de tipul de utilizator există diferite nivele de acces ale aplicației.
Administratorul are dreptul să creeze conturi, să vizualizeze rapoarte ale comenzilor ș i notelor de
plată, să alimenteze stocurile de alimente și băuturi, precum și posibilitatea de modificare a
parolelor pentru conturile de client. Clientul are dreptul comandă a produselor, din „Meniu” și
„Băuturi”, și posibilitatea de a cere nota de plat ă. Ospătarul are acces la comenzile efectuate de
clienți, la notele de plată cerute, dar și dreptul de a modifica parolele de autentificare ale clienților.
Bucătarul primește instant comenzile plasate de clienți, poate alimenta stocul de alimente, poate
modifica rețete, și poate obține rapoarte despre stocul zero de alimente.

3.2 Funcțiile sistemului

Sistemul format din aplicația restaurant și server care are rolul de a trimite datele
meteo către aplicația restaurantului la cererea acesteia. În continuare vor fi specificate funcțiile
serverului și ale aplicației.

Funcțiile aplicației:
trimite date către server:
▪ atunci când se creează un cont nou
▪ când se realizează o comandă
▪ când se modifică o rețetă
▪ când se alimentează stocurile
primește date de la server:
▪ atunci când un utilizator se conectează

9
▪ atunci când se dorește vizualizarea informațiilor despre comenzi, note de plată, rețete,
stocuri

Aplicația dispune de un mecanism de stabilire a faptului că produsul comandat po ate
fii onorat, dacă sunt disponibile toate ingredientele necesare pentru realizarea produsului. Printr -un
mecanism de refresh automat comenzile plasate vor fii afișate instant ospătarului și bucătarului.

Funcțiile server -ului :
primește date desp re:
▪ meniu, atunci când utilizatorul realizează o comandă
▪ utilizatori, atunci când administratorul creează un cont nou
▪ note de plată, atunci când utilizatorul cere o notă de plată
▪ rețete, când bucătarul modifică o rețetă
▪ stocuri, atunci când acestea v or fii alimentate
trimite, către aplicație, date :
▪ despre comenzi atunci când ospătarul, bucătarul sau administratorul doresc să vizualizeze
comenzile
▪ despre note de plată atunci când administratorul sau ospătarul doresc sa vizualizeze notele
de plată
▪ despre datele utilizatorului ,la conectare
▪ despre rețete când se dorește consultarea lor
▪ despre stocuri, când se dorește un raport al stocurilor

10

3.3 Stocarea bazei de date

O bază de date este o colecție structurată de date, un program ce poate stoca o
cantitate foarte mare de informații și o poate organiza într -un format ce este ușor accesibil în mod
direct sau de către un alt program [Lar5].
Toate aceste informații sunt stocate într -o bază de date în format MySQL numită
“restaurant ” și care conține șapte tabele. În cele ce urmează vom descrie fiecare tabelă împreună
cu câmpurile ce le conține .

Tabela ” users” conține date despre utilizatorii creați:
– NumeUtilizator – numele cu care se autentifică utilizatorul;
– Parola -parola criptată ce o folosește utilizatorul;
– E-mail-adresa de e -mail a utilizatorului;
– TipUtilizator -tipul de utilizator: client, administrator, ospătar sau bucătar;

Tabela ” parole ” conține parolele clienților:
– nume_client – numele mesei la care s -a așeza t clientul;
– parola -parola corespunzătoare mesei respective, care se va modifica automat din aplicație,
imediat după ce clientul se conectează;

Tabela ” meniu ” conține date despre fiecare produs în parte:

11
– id_produs -fiecare produs deține un cod unic de i dentificare;
– nume_produs -numele produsului;
– timp_preparare -timpul necesar pentru prepararea produsului
– ingrediente -ingredientele necesare pentru prepararea produsului;
– pret-prețul de vânzare al produsului;

Tabela ” ingrediente ” conține toate ingredientele necesare realizării produselor:
– id_ingredient -fiecare ingredient are un cod unic de identificare;
– nume_ingredient -numele ingredientului;
– cantitate -cantitatea disponibila în grame;

Tabela ” băuturi ” conține informații despre toate băuturile din bar:
– id-fiecare băutură are un cod unic de identificare;
– nume -numele băuturii;
– doza -cantitatea unei doze în ml;
– cantitate -cantitatea de băutura disponibila în bar;
– pret-prețul unei doze;

Tabela ” comenz i”, aici se înr egistrează toate comenzile efectuate de clienți:

12
– nr_crt -numărul curent al comenzii, este unic;
– client -numele mesei de la care se face comanda;
– id_produs -codul produsului comandat;
– nume_produs -numele produsului comandat;
– timp_preparare -timpul necesar p reparării produsului;
– data -data la care s -a efectuat comanda;
– ora-ora la care s -a efectuat comanda;
– cantitate -cantitatea în care s -a comandat produsul respectiv;
– pret-prețul produsului;
– onorat -aici ospătarul notează dacă a onorat comanda sau nu;

Tabela ” notaplata ”, aici se înregistrează notele de plată cerute de clienți:
– nume_client -numele mesei de unde se face cererea;
– suma -suma consumată de client;
– data -data în care s -a efectuat nota de plată;
– ora-ora la care s -a efectuat nota de pla tă;
– achitat -aici ospătarul notează dacă nota de plată a fost achitată sau nu;

13
În Figura 3.2 este prezentată baza de date formată din tabelele prezentate mai sus, aici
sunt reprezentate prin săgeți câmpurile prin care se leagă tabelel e între ele:

Figura 3.2 Tabelele relaționate

14
Capitolul 4. Implementarea aplicației

4.1 Tehnologia ASP.NET

Într-o aplicație Web realizată cu ASP.NET vom avea următoarele tipuri de fișiere și
directoare importante [6]:

➢ Fișiere cu extensia .aspx este locul unde este stocat conținutul paginii web[6].

➢ Fișierele cu extensia .cs reprezintă codul continand variabile, functii si clase , ce se va
executa pe server. [6].

➢ Fișierul web.config este un fișier de configurare unde sunt stocate informatiile aplicați ei
web si definite proprietatiile acesteia [6].

➢ Directorul BIN este folosit pentru a salva diverse fișiere dll folosite în aplicație [6].

➢ Directorul App_Code conține codul ce se va compila , find vizibil în fiecare pagină
a aplicației web. [6].

➢ Directorul App_Data conține fișiere mdf specifice baze i de date MySQL [6].

Pentru a realiza layout -ul unei pagini web, ASP.NET pune la dispoziția programatorului
o serie de controale predefinite, precum și posibilitatea definirii unor controale proprii. Controalele
ASP.NET se mai numesc și controale server deoarece po t fi programate, prin intermediul unui cod
server -side, să răspundă la anumite evenimente din pagină . Pentru a putea fi accesate prin
intermediul codului, aceste controale trebuie sa conțină atributele id și runat=”server” . Exista

15
două ti puri de controale server: Web și Html. Controalele server HTML corespund controalelor
standard HTML [7].

Paginile ASP.NET rulează pe server -ul web Microsoft IIS . În urma prelucrării pe server,
rezultă o pagină web Html, care este trimisă către browser.Ciclul de viață al unei pagini web a re
următorii pași:

➢ User -ul scrie adresa unei pagini web. Acest lucru înseamnă o o cerere a browserul -ui web
către server, prin intermediul metodei HTTP GET . Pe server, pagina rulează pentru prima
dată, executându -se și codul C# existent.

➢ Rezultatul e ste o pagină Html care este trimisă browser -ului.

➢ User -ul poate introduce date sau apăsa un buton,și pagina este trimisă înapoi
server -ului.Dacă utilizatorul accesează un link, se încarcă o altă pagină , și nici o prelucrare
nu este efectuată de pagin a inițială.

➢ Pagina este trimisă către browser prin intermediul metodei HTTP POST. În ASP.NET
această acțiune se numește PostBack [7].

➢ Pe server -ul web, pagina rulează din nou, și sunt prelucrate informațiile introduse
de către utilizator în browser.

➢ Rezultatul este trimis browser -ului, și astfel se reia ciclul

Procesul de prelucrare a paginii web de către server este împărțit în mai multe etape.
Fiecare etapă corespunde unui eveniment asociat paginii. Printre cele mai importante evenimente
asociate p aginii sunt:

➢ Init – se inițializează fiecare control server

16
➢ Load – se execută la fiecare cerere a paginii
➢ Render – se generează codul html ce va fi trimis browser -ului
UnLoad – sunt
eliberate resursele folosite [7].

4.2 Arhitectura sistemului

După cum putem observa în Figura 5.1 sistemul este format dintr -un Master Page, în
care există un meniu din care se pot accesa Acasă, Meniu, Băuturi, Galerie, Servicii și Contact.
Toate aceste componente sunt de fapt fișiere plasate în Co ntentHolder în MasterPage.

17

Figura 4.1 Arhitectura sistemului

4.3 Descrierea modulelor aplicației

Aplicația este un WebSite project , realizat cu ajutorul ASP.NET și limbajul C#. Pentru
a realiza această aplicație am folosit MasterPages . Toate paginile din meniu vor fii încărcate în
ContentPlaceHolder -ul care ii corespunde din MasterPage, numai MasterPage -ul va rămâne fix
în pagină.

18

Figura 4.2 MasterPage și ContentPlaceHolder

Fiecare pagină care va fii încărcată în MasterPage va avea structura ca și în codul
prezentat mai jos, din fereastra de proprietăți (din MasterPage ) se setează numele
ContentPlaceHolder -ului asignat paginii, iar acest nume va fii plasat în ID -ul celui de -al doilea
ContentPl aceHolder din codul paginii încărcate. Codul pentru un ContentPlaceHolder în
MasterPage este:

@ Master Language ="C#"
AutoEventWireup ="true"
CodeFile ="MasterPage.master.cs" Inherits ="MasterPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transi tional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1 -transitional.dtd">
<html xmlns ="http://www.w3.org/1999/xhtml">
<head runat ="server">
<title>Untitled Page </title>
<asp:ContentPlaceHolder id="head" runat ="server">

19
</asp:ContentPlaceHold er> </head>
<asp:ContentPlaceHolder ID="ParoleHolder" runat ="server
</asp:ContentPlaceHolder >
</html>
Tot în MasterPage este plasat un meniu care conține butoanele: Acasă, Meniu, Băuturi,
Galerie, Servicii, Contact. Pentru fiecare dintre acestea există plasat un ContentPlaceHolder în
MasterPage. La fel și pentru sub meniurile de la Băuturi și Meniu, fiecare categorie de mâncăruri
deține câte o pagină care are un ContentPlaceHolder în MasterPage .
În pagina Default.aspx există plasat un Image control care conține poza unui produs,
acesta are scop publicitar. Codul pentru acest control este:
<asp:Image ID="Image1" runat ="server"
Height ="149px" ImageUrl ="./31.jpg"
style ="margin -left: 51px" Width ="229px" />
Pentru pagina Meniu.aspx am adăugat câte un control ImageButton și LinkBut ton, butonul
imagine a fost personalizat cu poza fiecărei subdiviziune a meniului, acest lucru realizându -se din
proprietățile controlului( Figura 5.4 ), iar în codul C# link -ul către pagina spre care redirectează
butonul.

Figura 5.4 Pagina Meniu.aspx ș i caseta de proprietăți a unui ImageButton

20
Pentru crearea galeriei am folosit lightbox2.51 , acesta este un script care permite
afișarea imaginilor într -un mod atractiv. Lightbox folosește Jquery și CSS. Am integrat directoarele
CSS, JS și IMAGES în proiect și codul adecvat.

<script src="./js/jquery‐1.7.2.min.js"></ script >
<script src="./js/lightbox.js"></ script >
<link href="./css/lightbox.css" rel="stylesheet" />
</asp:Content >
<asp:Content ID="Content2" ContentPlaceHolderID ="Gale rieHolder" Runat ="Server">
<br />
<table class ="style7">
<tr>
<td class ="style8"> &nbsp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;
<a href="images/examples/01.jpg" rel="lightboxt[a]">< img src="images/examples/01.jpg"
width ="100" height ="100" border ="0" /></a> </td>
<td class ="style10"> &nbsp&nbsp
<a href="images/examples/03.jpg" rel="lightboxt[a]">< img
src="images/examples/03.jpg" width ="100" height ="100" border ="0" /></a>
</td>
<td class ="style9"> &nbsp&nbsp
<a href="images/examples/04.jpg" rel="lightboxt[a]">< img
src="images/examples/04.jpg" width ="100" height ="100" border ="0" /></a>
</td>
<td>&nbsp&nbsp
<a href="images/examples/05.jpg" rel="lightboxt[a]">< img
src="images/examples/05.jpg" width ="100" height ="100" border ="0" /></a>
</td>
</tr>

21
În pagina de Servicii.aspx nu avem cod pentru design, deoarece aici vom fii redirectați spre
pagina de LogIn , dacă nu există utilizator conectat, sau vom accesa pagina utilizatorului conectat,
în cazul în care acesta este conectat. Pentru aceasta s-a utilizat instrucțiunea switch, selecția se face
în funcție de tipul utilizatorul ui car e este preluat la conectare prin Session.
Pagina de Contact.aspx deține câteva informații despre restaurant, acestea sunt plasate
într-un tabel, tot aici putem vizualiza o hartă care este de fapt un Image control și un LinkButton
care redirectează spre pagina de Facebook a restaurantului .

4.4 Descrierea funcțiilor sistemului

În pagina master este plasat un Timer , pentru acest timer a fost nevoită plasarea unui
ScriptManager . Timerul este activat atunci când un client se conectează. La o anumită perioadă,
după ce clientul s -a conectat o nouă parolă va fii generată, ceea ce duce la o modificare a tabelelor
users și parole.
În MasterPage există 3 meniuri, cel central va rămâne vizibil pe toată perioada de vizitare,
celelalte 2 meniuri vor fii ascunse, unul în funcție de celălalt. Dacă nu există utilizator conectat
meniul cu butonul ”Conectare” va fii vizibil iar cel cu ”Bine ai venit” va fii ascuns, și invers, dacă
utilizatorul s -a conectat numele său va f ii preluat prin Session și adăugat la numele meniului,
obținându -se un buton de forma ”Bine ai venit Client”.
Funcția RandomNumber(min,max) generează aleator un număr în intervalul precizat.
Modificările în baza de date se vor face cu update asupra tabelei precizate, se definește o nouă
comandă MySqlCommand care va fii executată cu ExecuteNonQuery(). Pentru fiecare modificare
în tabelă se realizează o nouă conexiune. String -ul de conectare la baza de date precizează baza la
care ne conectăm, parola, user-ul, portul și timpul de răspuns.
Atunci când administratorul se conectează, are posibilitatea de creare a unui cont nou, de
precizat este faptul că el este singurul care are acest drept.

22
Paginile de Meniu și Băutur i au funcționalitate atunci când este conectat un client.
Funcționalitatea constă în faptul că butoanele de comandă și de cantitate sunt activate. Pentru
cantitate am adăugat un DropDownList iar pentru comandă un buton simplu pe care l -am
personalizat. Fiecare produs are câte un Label, al cărei vizibilitate este false ca default, această
proprietate devine true în momentul comandării pro dusului respectiv. Textul Label -ului se
modifică, poate fii ”Comanda a fost trimisă!” sau ”Comanda nu poate fii onorată!”. Când butonul
Comandă este apelat într -o variabilă id se pune codul unic al produsului și într -o variabilă cantitate
se preia valoarea selectată din DropDownList, valoarea este convertită la tipul int.

protected void Button1_Click1( object sender, EventA rgs e)
{ id = 113;
cantitate = Convert .ToInt32(DropDownList1.SelectedItem.ToString());
insert(cantitate, id,Label2);
}

Funcția insert(int cantitate,int id,Label l) are rolul de adă ugare a comenzii efectuate,
dacă produsul este disponibil sau de setare a Label -ului în cazul în care acesta nu poate fii
comandat. Verificarea ingredientelor necesare pentru a realiza produsul se face cu ajutorul funcției
ingrediente_cant(int id,), care p reia cantitatea ingredientului din baza de date si o returnează.

În funcția insert() avem o variabilă de tip boolean care va fii setată cu valoarea true, această
valoare se va modifica doar dacă unui din ingredientele necesare preparării nu este disponibil. Se
deschide o conexiune nouă cu baza de date, se preiau datele necesare plasării comenzii și aceste
valori vor fii plasate în variabile, după ce au fost convertite. Deoarece rețeta este formată astfel:
id_produs(cantitate),id_produs1(cant itate1), …, id_produsN(cantitateN), aflarea ingredientelor se
va face printr -un split în funcție de virgulă. Vom obține un șir de caractere de forma:
ingr=(”id_produs(cantitate)”, ”id_produs1(cantitate1)” ,…, ” id_produsN(cantitateN)”), astfel
ingr[0] =”id_produs(cantitate)”.

23

În continuare vom folosi o structură cu număr cunoscut de pași, vom parcurge șirul în
funcție de lungimea sa folosind ingr.length(), astfel vom parcurge fiecare ingredient și cantitatea
necesară. În ciclul for, pent ru fiecare produs vom obține id -ul printr -un split în funcție de “(“, pentru
a obține cantitatea vom face din nou un split în funcție de ”)”.Tot în ciclu vom apela funcția
ingrediente_cant() pentru a obține cantitatea ingredientului din baza de date, vom stabili dacă
produ sului poate fii comandat printr -o structură decizională if, în care vom întreba dacă cantitatea
care se găsește în baza de date înmulțită cu numărul de cantitate comandat este mai mic decât
cantitatea necesară preparării înmulțită cu canti tatea comandată. Dacă nu există cantitate
disponibila variabila boolean -ă va fii setată pe false .
În funcție de valoarea variabilei de tip boolean vom decide dacă comanda va fii inserată
sau dacă vom afișa numai mesajul ” Comanda nu poate fi i onorată! ”. Dacă comanda va fii inserată
cantitatea de ingrediente a fiecărui produs va fii modificată în baza de date în funcție de comandă.

În funcția de încărcare a paginii vom întreba dacă utilizatorul conectat este unul de tip
client , și vom afișa butonul de Comandă și de Cantitate .

Dacă utilizatorul conectat este unul de tip client, drepturile lui vor fii:
• de comandă, după cum a menționat și mai sus
• de vizualizare a comenzii efectuate
• de cerere a notei de plată
• de plată cu car dul

Dreptul de comandă a fost explicat mai sus. În continuare vom explica cum poate
clientul să -și vizualizeze comanda, să ceară nota de plată, sau să plătească online. Pentru afișarea

24
comenzilor efectuate am folosit un control GridVie w care va fii încărcat din cod cu un DataSet
obținut în urma interogării tabelei.

Figura 4.6 Pagina Client.aspx
După cum se vede în Figura 4.6 toate butoanele necesare sunt plasate într -o singură pagină,
ele sunt setate Visible=false, dar vor fii puse pe true atunci când este cazul. Deoarece interogarea
se face pe aceeași tabelă de comenzi, pentru a nu exista probleme în vizualizarea unui produs care
nu a fost comandat de același user, vom folosi ca motiv de interogarea data la care se con ectează
clientul și cere ca ora să fie mai mare decât ora la care s -a conectat. Inițial el va primit un mesaj
”Nu aveți comenzi momentan . Click pe meniu pentru a comanda.”. După ce clientul va comanda
primul produs, el poate să -și vizualizeze comanda, iar sub tabelul de comenzi va vedea permanent
nota de plată, pe care dacă o cere aceasta va fii inserată în tabelul notaplata .
Deoarece data actuală are un format ”MM/DD/YYYY HH:MM:SS PM/AM” vom realiza
un split după spațiu pentru a obține data și ora. Cu funcția DateTime.Now vom obține data și ora
actuală.

25
Dacă utilizatorul care este conectat este unul de tip ospătar atunci el va avea dreptul
să:
• vizualizeze comenzile după data selectată pe calendar
• să modifice parolele cliențilo r
• să vizualizeze notele de plată și să le modifice statusul

În pagina ospătarului se găsește un control Calendar, la selectarea unei date din
calendar se preia automat data selectată în control, acest lucru este posibil prin adăugarea event-
ului onSelectionChanged="GetSelectedDate1", în codul controlului, în pagina
Ospătar.aspx .
<asp:Calendar ID="Calendar2" runat ="server" onSelectionChanged ="GetSelectedDate1"
Visible ="False"></ asp:Calendar >

Data selecta tă este preluată într -un control de tip HiddenField, acest lucru este
realizat pentru a putea folosi data selectată și în alte funcții. Cu split după spațiu se preia numai
data, deoarece data selectată este de tipul ”MM/DD/YYYY HH:MM:SS PM/ AM”. Pe urmă s e
face o interogare în funcție de data obținută, valorile obținute vor fii plasate GridView -ului. În urma
populării vom întreba dacă există date în GridView, dacă nu există date vom afișa un mesaj ” Nu
exista comenzi la aceasta data!” și vom ascunde Label -urile, TextBox -urile și butoanele necesare
modificării unei comenzi . Căsuțele text existente vor fii golite de informații, întrucât noi comenzi
sunt disponibile și nici una nu este selectată.

Umplerea TextBox – urilor cu datele aferente comenzii selectate din GridView se face
din codul C#. Dar pentru a avea acces la un eveniment al GridView –ului acest lucru trebuie
specificat în codul controlului din pagina .aspx, adăugând
onrowcommand="GridView1_RowCommand2".

26

Pentru a avea acces la comanda select este nevoie adăugarea unui câmp în GridView .
În GridView1_RowCommand2 întrebăm dacă este selectat vreun rând, preluam index -ul rândului
în variabila num, prin conversie. Casetele text vor fii încă rcate cu datele de pe rândul selectat.

GridView -ul suportă opțiunea de sortare, pentru aceasta este nevoie adăugarea
atributelor OnSorting="SortRecords" AllowSorting="true" DataKeyNames="nr_crt" în pagina
.aspx . De menționat este faptul că SortRecords este evenimentul care produce sortarea, acesta este
dezvoltat în codul C#. DataKeyNames reprezintă câmpul primary key al tabelei.
În SortDirection se realizează un get și set al direcției de sortare, în funcție de direcți a
actuală de sortare a GridView – ului se va stabili direcția inversă a sensului de sortare. Pe urmă se
face afișarea tabelei cu sensul stabilit. De asemenea aceste rapoarte obținute pot fii transportate în
Excel , acest lucru l -am realizat prin includerea î n proiect a unei clase GridViewExportUtil. Codul
de legătură între această clasă și GridView este:

protected void Button10_Click( object sender, EventArgs e) {
GridViewExportUtil .Export( "Customers.xls" , this.GridView1); }

Dacă se dorește modificarea statusului comenzii se selectează din GridView rândul
corespunzător comenzii, căsuțele text vor fii umplute cu datele corespunzătoare câmpului selectat,
dar numai câmpul Onorat este disponibil pentru modificări. Celelalt e căsuțe text au fost setate cu
proprietatea Enable=false . La apăsarea butonului Modificare, schimbările vor fii trecute în baza de
date și noua tabelă va fii afișată.

Pentru realizarea butonului Stergere s-a realizat o comandă de delete la nivelul tabe –
lei, ștergerea și modificarea s -au realizat după id -ul comenzii selectate care a fost păstrat în
HiddenField3 , o dată cu selectarea rândului din tabelă . În HiddenField2 este păstrată data selectată

27
din calendar , acest lucru ne ajută ca după ștergere să afișăm tot comenzile din data selectată, dar
fără cea ștearsă, întrucât aceasta nu mai există.

De menționat este faptul că pagina Ospatar.aspx se va reîmprospăta automat la un
două minute. Pentru aceasta am folosit tag-ul meta din hmtl:
<meta http-equiv ="refresh" content ="120" >

Modificarea parolelor și vizualizarea notelor de plată sunt asemănătoare vizualizării și
modificării comenzilor.
Administratorul are dreptul :
• de a crea cont uri noi
• de a vizualiza rapoartele fel ca și ospătarul
• de a alimenta stocul de băuturi și ingrediente
• de a modifica parolele clienților, la fel ca și ospătarul
Atunci când acesta dorește să creeze un cont nou, va fii redirectat către o pagină
Înregistrare.aspx, în cadrul căreia se găsesc mai multe căsuțe text, etichete, un DropDownList
pentru alegerea tipului de utilizator, și două butoane, unul care efectuează înregistrarea sau celălalt
care anulează înregistrarea. Înregistrarea se va efectua numai când toate condițiile sunt îndeplinite:
– toate câmpurile sunt completate
– numele de utilizator nu mai există în baza de date
– parolele coincid
Pentru toate aceste validări s -a lucrat cu structura decizională if.

28
Odată introduse toate aceste câmpuri, și respectate toate condițiile de mai sus, la
apăsarea butonului înregistrare se realizează o interogare pe tabelă prin care se numără câți
utilizatori au numele ca și cel introdus în prima căsuță, doar dacă acest număr este zero se pot
continua interogările cu privire la condițiile menționate. Introducerea parolei în baza de date se
face după ce aceasta a fost criptată, cu funcția FormsAuthentication.HashPasswordForStoringInConfigFile ,
astfel parolele nu vor putea fii preluate din baza de date. Însă parolele clienților vor fii inserate și
în tabela parole.
Căutarea unei băuturi, sau a unui ingredient în baza de date se face cu LIKE:

protected void Button8_Click( object sender, EventArgs e)
{
TextBox9.Text = "";
TextBox10.Text = "";
Label11.Visible = false; try {
MySqlConnection con = new MySqlConnection (sCon);
String s = "select * from ingrediente where nume_ingredient like '" +
TextBox5.Text.ToString() + "%'";
MySqlDataAdapter dat = new MySqlDataAdapter (s, con);
DataSet ds = new DataSet ();
MySqlCommand cmd = new MySqlCommand (s, con);
dat.SelectCommand = cmd; dat.Fi ll(ds, "ingrediente" );
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind(); con.Close();
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
if (GridVi ew1.Rows.Count == 0)
{
Label8.Visible = true;

}
else { Label8.Visible = false ; … }
}

29
Dacă produsul căutat nu a fost găsit se va afișa un mesaj ” Acest produs nu se
găsește pe stoc!! !”.
Bucătarul are următoarele drepturi:
• de vizualizare a comenzilor din ziua respectivă pe care nu le -a onorat
• de vizualizare și modificare a rețetelor
• de vizualizare și modificare a stocului de alimente
Toate acestea sunt realizate ca și î n celelalte pagini prezentate mai sus, la fel ca și ospătarul,
pagina bucătarului se va actualiza la două minute.
Pentru pagina de conectare LogIn.aspx am folosit două etichete și două casete text. Atunci
când se apasă butonul conectare se vor realiza niște interogări asupra tabelei users . Dacă se
introduce un utilizator care nu există se va afișa mesajul ”Utilizator Inexistent”, dacă parola
introdusă este greșită se va afișa mesajul ” Parolă greșită” . Dacă unul sau ambele câmpuri nu au
fost comp letate se va afișa un mesaj ” Introduceți utilizatorul/parola”.
Prima dată se interoghează faptul că utilizatorul există în baza de date, dacă acesta
există se pot continua verificările, dacă nu se afișează mesajul ”Utilizator Inexistent” . Dacă există
utilizatorul atunci textul introdus în a doua căsuță text va fii criptat și se va realiza o interogare pe
tabelă dacă parola din tabelă coincide cu cea criptată recent, dacă nu coincide se va afișa mesajul
”Parolă greșită”. Dacă toate datele sunt corecte atunci în funcție de tipul utilizatorului, printr -o
instrucțiune switch, aplicația redirectează utilizatorul spre pagina corespunzătoare tipului său de
utilizator. Vor fii stocate în sesiuni ora de intrare, tipul utilizatorului și numele, într ucât aceste date
vor fii folosite și în celelalte pagini.

Pentru deconectare ,atunci când se conectează un utilizator , el primește instant
acces la butonul de deconectare. De oriunde este accesat acest buton, el are aceeași funcțional itate,
întrerupe sesiunea utilizatorului și redirectează spre pagina de conectare LogIn.aspx.

30
Capitolul 5. Utilizarea aplicației

5.1 Interfața cu utilizatorul
În momentul accesării aplicației se va încărca pagina “Default.aspx” ilustr ată în figură
(Figura 5.1).

Figura 5.1 Pagina „Acasă” a aplicației

Interfața din figură (Figura. 5.1) este formată din mai multe părți. În partea de sus a
paginii se află un „header” ce cuprinde o poză din interio rul restaurantului, tot aici ,în partea
dreaptă sus, se află linkul către pagina de autentificare, butonul “Conectare” . Meniul poate fii
accesat atât din partea de sus a paginii cât și din „ footer” . La accesarea paginii „Acasă” utilizatorii

31
vor vizualiza câteva fraze, cu caracter descriptiv, menite să instige curiozitatea clientului de a
vizita localul.

Accesarea butonului “Meniu” (Figura 5.2) conduce la vizualizarea meniului
restaurantului, accesând aceste butoane se pot vizuali za preparatele care fac parte din categoria
selectată. Aceeași situație este valabilă și în cazul butonului „Băuturi” .

Figura 5.2 Meniul restaurantului
Accesând butonul ”Galerie” (Figura 5.3) vom putea vizualiza poze atât di n
interiorul cât și din jurul restaurantului. Prin apăsarea click -ului pe una dintre poze se va deschide
un slideshow care va mări poza. Prin aducerea mouse -lui în partea dreaptă a pozei vom observa
apariția butonului ”înainte”, prin apăsarea lui se trece la poza următoare, la fel se întâmplă și pentru
poza precedentă, în partea stângă a pozei. Închiderea slideshow -ului se face prin apăsarea butonului

32
”X”. De asemenea sub poză vom vizualiza câte poze deține galeria și numărul curent al pozei
selectate.

Figura 5.3 Galeria restaurantului

Butonul ”Servicii” va avea funcționalitate numai dacă utilizatorul este conectat, altfel
vom fii redirectați către pagina de conectare( Figura 5.4). Dacă există utilizator conec tat, în funcție
de drepturile sale aplicația va avea diferite funcționalități noi.

33

Figura 5.4 Pagina de conectare a restaurantului

Atunci când utilizatorul conectat este unul de tip client, paginile de Meniu și Băuturi
vor permite r ealizarea de comenzi online prin apariția butoanelor ”Comandă” și apariția câmpului
cantitate( Figura 5.5).Utilizatorul poate selecta un număr de produse cuprins între unu și cinci la
apăsarea butonului ” Comandă” ospătarul și bucătarul vor primi instant cer erea clientului. Dacă
produsul comandat nu este comandat se va afișa un mesaj de avertizare, dacă comanda poate fii
onorată și în acest caz se va afișa un mesaj de înștiințare. Datele de conectare vor fii primite de la
ospătar, odată cu așezarea la masă. Numele utilizatorului va fii corespondentul mesei la care este
așezat clientul, iar parola primită va fii valabilă doar la o singură autentificare, întrucât odată cu
conectarea clientului la un scurt interval aplicația va genera o nouă parolă, care poate fi i obținută
numai de către client sau administrator.

34

Figura 5.5 Pagina de Băuturi cu posibilitate de comandă

Odată ce comenzile au fost plasate, clientul își poate vizualiza comanda apăsând
butonul ”Servicii”( Figura 5.6).Tot aici vedem că se calculează automat un total al comenzii. Se
poate cere nota de plată prin apăsarea butonului ”Cere nota de plată”, și ca directivă de dezvoltare
m-am gândit la o eventuală plată cu cardul( Figura 5.7), pe viitor. Pentru a se deconecta utilizator ul
poate apăsa butonul ”Deconectare” din stânga sus sau jos a paginii .

35

Figura 5.6 Pagina clientului

Figura 5.7 Plata cu cardul

36
Ospătarul are dreptul de a vizualiza comenzile din data cure ntă, dar și din alte date pe
care le poate selecta din calendarul afișat în pagina lui. Prin selectarea datei el va obține o afișare
a comenzilor din ziua respectivă( Figura 5.8).Prin apăsarea butonului ”Raport comenzi” se vor
exporta în Excel comenzile d in ziua selectată. De asemenea poate să vizualizeze toate comenzile
din restaurant, dar și să modifice statusul comenzilor. Modificarea o va realiza prin selectarea din
tabel a liniei aferente comenzii dorite, se vor umple căsuțele text cu date despre acea stă comandă,
modificarea se poate realiza numai asupra câmpului onorat , celelalte fiind dezactivate. Pentru
salvarea modificărilor se apasă butonul Modifică , iar pentru a șterge comanda respectivă se va
apăsa butonul Sterge.

Figura 5.8 Pagina ospătaru lui

Ospătarul mai are posibilitatea de a sorta comenzile în funcție de fiecare câmp, pentru a
realiza sortarea el va fii nevoit să facă click asupra capului de tabel în funcție de care vrea să facă
sortarea. La primul click datele se vor sorta într -o anumită ordine iar la următorul în ordine inversă
celei anterioare. Pentru a vizualiza parolele clienților se apasă butonul Parole , în urma căruia se

37
vor afișa toate conturile clienților cu parolele aferente, prin selectarea clientului d orit, se vor încărca
datele în căsuțe text unde se vor putea face modificările.
La fel se întâmplă și în cazul notelor de plată, care se pot afișa în funcție de dată ca și
comenzile. Prin aceeași metodă de modificare a datelor prezentată î n cazul comenzilor și al
parolelor, se vor realiza modificările și pentru notele de plată. De asemenea ca și în cazul
comenzilor se vor putea obține rapoarte Excel pentru notele de plată selectate. Deconectarea
utilizatorului se face prin accesarea butonul ui Deconectare.

Figura 5.9 Pagina de comenzi a bucătarului

Bucătarul are posibilitatea de a vizualiza comenzile din ziua respectivă care nu au fost
onorate. Ora la care s -a făcut comanda și timpul de preparare vor fii utile pentru aces ta, pentru a
știi cât timp mai are la dispoziție pentru a onora comanda. Tot aici se poate schimba statusul
comenzii, prin modificarea câmpului onorat el va elimina din tabelă comenzile pe care le -a onorat
deja( Figura 5.9).

38
De asemenea el mai poate vizualiza și căuta rețete prin accesarea butonului Rețete . La
fel și pentru stocul de ingrediente, aici mai are posibilitatea de obținere a unui raport de stoc zero
al ingredientelor.

Figura 5.10 Pagina administratorului

Admini stratorul are posibilitatea de a crea noi conturi ( Figura 5.10), de a genera
rapoarte despre comenzi la fel ca și ospătarul, de a alimenta stocul de ingrediente și băuturi la fel
ca și bucătarul, și de a modifica parole la fel ca și ospătarul.

Pentru a crea un cont nou acesta este nevoit să introducă datele cerute pentru înregistrare,
în cazul în care aceste date nu sunt valide el va primi un avertisment să introducă date valide
(Figura 5.10 ).

39

Figura 5.11 Pagina de înregistrare

Datele de contact pot fii obținute prin apăsarea butonului ”Contact ” (Figura 5.12) ,aici
există și o hartă, menirea ei este să ajute la localizare fizică a localului , tot aici există și un buton
de redirectare către pagina de Facebook a restaurantu lui.

Figura 5.12 Pagina de contact a restaurantului

40

5.2 Testarea aplicației
Testarea aplicației s -a realizat pe măsură ce aceasta a fost scrisă. Fiecare buton nou
adăugat a fost testat în combinație cu toate celelalte butoane existente deja, dar s -au testat și
celelalte funcționalități deja existente, odată cu introducerea unui element nou, pentru a verifica
dacă nu s -au introdus regresii.

Capitolul 6. Concluzii

6.1 Ce s -a realizat?

Ceea ce s -a realizat în cadrul aces tei lucrări de diplomă este o aplicație de plasare de
comenzi online, în cadrul unui restaurant Această aplicație a fost dezvoltată cu ajutorul tehnologiei
ASP.NET care ușurează munca programatorului prin modul design care permite plasarea de
controale ne cesare dezvoltării aplicației.

Această aplicație este foarte utilă pentru mesele organizate în scop festiv în care
sărbătoritul este cel care plătește toată consumația, acesta va știi în orice moment care este suma
de plată fără a fii nevoie să ceară no ta ospătarului, sau să -l agaseze pe acesta cu întrebări.

De asemenea această aplicație reprezintă o soluție de eficientizare a onorării
comenzilor într -un restaurant. De multe ori se întâmplă ca un ospătar să uite de un anume produs
comandat sau să -l înlocuiască cu alt produs, având la dispoziție o asemenea aplicație va putea
consulta la orice moment tabela de comenzi și va știi exact unde și ce trebuie să onoreze.

Bucătarii vor fii ajutați de această aplicație pentru a finaliza în timp util produsele

41
comandate, el va știi ora exacta la care s -a plasat comanda. Deoarece la comandarea unui produs
se scad ingredientele necesare preparării produsului comandat, administratorul va realiza ușor un
raport a l ingredientelor și băuturilor care nu mai există pe stoc. Acest lucru îl va ajuta la
aprovizionare.

Eu consider că această aplicație poate fii pusă în practică, poate cu niște cerințe mai
exacte de la client pentru a sa tisface cât mai multe din necesitățile sale.

6.2 Direcții de dezvoltare

O bună direcție de dezvoltare ar fii cea realizare a plății comenzii cu cardul, dar
probabil acest lucru ar necesita un contract cu o anumită bancă, necesită un ti mp mai mare de
investigare și probabil o investiție financiară semnificativa.

De asemenea ca o directivă de viitor ar putea fii luată în calcul o dezvoltare a părții de
gestiune a restaurantului, a facturilor, salariilor angajați lor.

Consider că și un sistem de organizare a marilor evenimente, precum nunțile ,botezurile
ar putea fii considerat ca o direcție de dezvoltare, acesta poate fii util pentru păstrarea: datei exacte
a evenimentului, numărului de participan ți, meniului ales, decorului ales. Toate acestea vor facilita
viitoarele programări de mari evenimente.

42
Bibliografie

1. [1] http://en.wikipedia.org/wiki/Microsoft_Visual_Studio
2. [2] https://support.microsoft.com/ro -ro/help/2698555/microsoft -net-framework -repair –
tool-is-available
3. [3] https://www.livehosting.ro/asp -net.html
4. [4] http://www.cs.ubbcluj.ro/~vcioban/Bistrita/Manuale/Manual_POO_si_Vizuala.pdf
5. [Lar5] Larry Ullman, PHP pentru WORLD WIDE WEB în imagini, Editura „Teora”
6. [6] http://pu nctnet.blogspot.ro/2009/01/structura -unei-aplicatii -web-in-asp-net.html
7. [7] http://www.cs.ubbcluj.ro/~vcioban/Bistrita/Manuale/Manual_ASP.pdf
8. [8] https://casa -bunicii.ro/
9. [9] http://www.restaurant -perla.ro/
10. [10] https://restaurantpiccadilly.ro/

DECLARAȚIE DE AUTENTICITATE
A
PROIECTULUI DE FINALIZARE A STUDIILOR

Titlul proiectului: APLICATIE WEB PENTRU EFICIENTIZAREA
SERVICIILOR IN CADRUL UNUI RESTAURANT

Autorul proiectului: JURCA ALEXANDRU

Proiectul de finalizare a studiilor este elaborat în vederea susținerii examenului
de finalizare a studiilor organizat de către Facultatea
____________ I.E.T.I. ____________________ _____ din cadrul Universității din
Oradea, sesiunea________ iulie_________ a anului universitar __ 2019 ___________.

Prin prezenta, subsemnatul __ JURCA ALEXANDRU , CNP: 1880717204971 ,
declar pe proprie răspundere că aceast proiect a fost scris de către mine, fără nici un
ajutor neautorizat și că nici o parte a proiectului nu conține aplicații sau studii de caz
publicate de alți autori.

Declar, de asemenea, că în proiect nu există idei, tabele, grafice, hărți sau alte
surse folosite fără respectarea legii rom âne și a convențiilor internaționale privind
drepturile de autor.

Oradea,
Data Semnătura

Similar Posts