0% found this document useful (0 votes)
40 views203 pages

AJU191324

The document outlines the development of an Online Restaurant Management System aimed at enhancing customer convenience and operational efficiency for restaurants. It describes the system's features, including online food ordering, table reservations, and customer data management, while addressing the limitations of traditional methods. The project utilizes various technologies and methodologies to create a user-friendly interface for both customers and restaurant staff, ultimately improving service delivery and customer satisfaction.

Uploaded by

gurucoder31
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
40 views203 pages

AJU191324

The document outlines the development of an Online Restaurant Management System aimed at enhancing customer convenience and operational efficiency for restaurants. It describes the system's features, including online food ordering, table reservations, and customer data management, while addressing the limitations of traditional methods. The project utilizes various technologies and methodologies to create a user-friendly interface for both customers and restaurant staff, ultimately improving service delivery and customer satisfaction.

Uploaded by

gurucoder31
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 203

Submittedin

partialfulfilmentforth
e
awardoftheDegreein
The Online Restaurant Management System provides convenience for the
customers. It overcomes the disadvantages of the traditional queuing
system. This system increases the takeaway of foods than visitors.
Therefore, this system enhances the speed and standardization of taking
the order from the customer. It provides a better communication platform.
The user’s details are noted electronically. This System set up menu online
and the customers easily places the order with a simple mouse click. By
using the food menu online anyone can easily track the orders, maintain
customer's database and improve food delivery service. This system allows
the user to select the desired food items from the displayed menu. The user
orders the food items. The payment can be made online or pay-on-delivery
system. The user’s details are maintained confidential because it maintains
a separate account for each user.

This web application for restaurant management system will provide service
facility to restaurant and also to the customer. .The services that are
provided is food ordering and reservation table management and party
organisation by the customer through the system online, customer
information management and staff information management , menu
information management and report. Restaurant requires to move to a
computerized solution. This will help to run their operations smoothly and in
more efficient manner.

Suggested system allows Selena restaurant to increase the scope of the


business . Current trend is also going for an online solution. This system
allows restaurant to quickly and easily manage online menus and customers
can navigate and place orders really fast. Restaurant staff also quickly view
orders and prepare orders without previous miscommunication. Graphical
interfaces are really efficient and effective for both customers and
restaurant staff. For the managers and owners this system is very effective
because they can view their requirements in reporting module. This system
has used MVC (Model View Controller) architecture. Object Oriented
approaches have been used in developing. For analysis and design, Uniform
resource modeling was used.
Php, html, JavaScript ect has used to develop the website. mySQl has
been used to create todatabases.Any web browser such as Edge,
Chrome, Firefox can be used to access the website in any environment
such as windows or Linux.
I would like to express my sincere gratitude to several individuals and organization for
supporting me throughout the completion of my project.

First, I wish to express my sincere gratitude to my mentor (Dr Arun Kumar Marandi) for his
enthusiasm patience, insightful comments, helpful information, practical advices and
unceasing ideas that have helped me tremendously at all times in my Project and writing of
this thesis. His immense knowledge, profound experience and professional expertise in
Backend has enabled me to complete this project successfully. Without his support and
guidance, this project would not have been possible.

I am also thankful to our respected H.O.D and all faculty members for loving inspiration and
timely guidance. I also wish to express my sincere thanks to the Department of Computer
science & Information technology of ARKA JAIN UNIVERSITY for accepting this project.

Thanks for all your encouragement!

i
ii
CHAPTER 1 : INTRODUCTION 03
Chapter Overview 04
Project Objective 05
Existing System 06
Need For New System 06
Objective of New System 07
Problem Definition 07
Scope Of Project 08
Core Components 08
Advantages and Limitations 09

CHAPTER 2 BACKGROUND 14

Introductio
n 14

Overvie
w 14

Comparison of development life cycle 15

REQUIREMENT DETERMINATION
CHAPTER
3 AND SYSTEM ANALYSIS
17

3
Requiremen determination
t 17

Requirement Analysis
17

Methodology
18

Targete User
d 19

System Requirement Phase


19

Softwar and Hardware Requirement


e 21

CHAPTER 4 System Design Phase


22

Use-Case Diagram
22
Class Diagram
24
Activity Diagram

25

Sequence

Diagram -48
26

CHAPTER 5 DESIGN
30

Component Diagram
4
30
Data Storage
30

5
RDBM & XML
S 31
Storag method chosen
e 32

Normalisatio
n 33
E Diagram
R
3
4
Dat base design concept
a
37
GU
I
38
Flowchar
t 39
DATA FLOW DIAGRAM 40
DATA DICTIONARY 44

SCREENSHOT 49-
60
Admin
Produc
t
Food
Category
Table Book
Dashboard
Staff
Develpoment
59

6
CODING 60-
102

LOGIN CONTROLLER

7
Product
Controller Cart
Controller Home
Controller
ADMIN FUNCTIONALITY
Product
Controller Order
Controller Cart
Controller Home
Controller
Party Book
Controller Review
Controller Staff
Controller
Table Book Controller

CONCLUSIO
N 103
BIBLIOGRAPHY
104

The problem that many Restaurant businesses face today is to make sure
that they attract new customers and also they keep their existing
customers. The cost to attract a new customer is costlier than retaining
the old customer. Therefore, there is an argument that for a business,
existing customer is worthier than a new customer. In this industry, a
customer is likely to return to the restaurant in the future if they received

8
an excellent customer service as well as appetizing food . However, if they
had to wait for an unreasonable amount of time or there was a mistake in
the order, it’s very unlikely the customer would return.This chapter gives
an introduction to the

9
project by defining the problems encountered by restaurants, the main
objectives that the system expects to achieve and a brief introduction to
existing solutions.

The project, Restaurant Management System is a web-based


application that allows the restaurant manager

to handle all restaurant activities online. Interactive GUI and the ability to
manage various food and table bookings

and make this system very flexible and convenient. The restaurant
manager is a very busy person and does not have

the time to sit and manage the entire activities manually on paper. This
application gives him the power and flexibility

to manage the entire system from a single online system. The system
is hence useful for both customers, managers

and also for the employees to portable manage the restaurant activities.

According to a research article written by Horizons [7], in 2006 within


restaurant sector was worth billion,any restaurant generating a good
business reputation could lead to the making of a very successful and
profitable business. The problem for many businesses is to ensure that
they not only attract new customers but to ensure they maintain their
existing clientele. It has been argued many times that an existing
customer is worth more to a business than a new customer as the cost to
attract a new customer can be up to five times the cost to retain an old
customer. An online article by Paul Lemberg [9], discusses the pros and
cons of this argument. Within the restaurant sector, a customer is likely to

1
0
return to the restaurant in the future if they received an excellent
customer service as well as appetising food. However, if they

1
1
had to wait for an unreasonable amount of time or there was a mistake in
the order, it’s very unlikely the customer would return. Restaurant uses
least efficient methods such as paper-based or verbal method to
communicate between the restaurant and kitchen. Even though this
approach is implemented in successful profitable restaurants, there are
several problems which could be seen as reducing the restaurant’s
efficiency that can be identified using above scenario:

Sometimes handwriting can lead to miscommunication.

Order logging is unmanageable.

Inefficient restaurant-kitchen communication.

Difficult order tracking and time management.

Difficult stock management.

Limited statistical output [2].

Online system that proposed here will simplify the ordering process and it
will be helpful to both restaurant and customer. The proposed system will
be developed with interactive menus, pop-up messages etc. for the
easiness of the user. Customer can select the required food item with
available customizations and the can change the order at any time before
checking out online. If order is confirmed, it will display a pop-up message
as confirmation to the customer. When the order is placed it’s recorded in
the database and retrieved in real time manner. Through this option
Restaurant Employees are allowed to quickly go through the orders which
they have received. Therefore, they can process all orders efficiently and
effectively with minimal delays and confusion.

Therefore a solution to this problem would be to minimise mistakes within


the order and bill, and help eradicate delays as well as encouraging team
work and communication within the team.

The next section will go into the objectives of the proposed solution.

1
2
The objective of this project is to build an electronic restaurant management system

1
3
using all of the skills

and techniques from the field ensuring that no common development


mistakes are reproduced. Project

management is critical to all software engineering projects and keeping to


a project plan will be of

similar importance.

One of the main objectives of any business is to maximize profit by


increasing efficiency and decreasing

overheads without compromising customer satisfaction. Currently, many


restaurants use a paper-based

system to communicate between the restaurant and kitchen which can be


shown to be one of the least

efficient approaches. Even though this approach is implemented in


successful profitable restaurants,

there are several problems which could be seen as reducing the


restaurant’s efficiency:

By introducing an online restaurant management system these problems


can be avoided or improved leading to an increase in profits. Maximizing
the profit is one of main objectives of any business. This can achieve by
increasing efficiency and decreasing overheads without compromising
customer satisfaction. Through better application of daily operations
restaurant can increase the efficiency and can offerimproved services to
the customers. Because almost all processes are manual and time
consuming, all the processes should be automated.

The Main Objective: To build a web based restaurant management system


for Restaurant. In order to fulfill the main objective following goals have to
be achieved.

Improve customer relationship management

Proposed system enables visual confirmation to the customers that the


order was placed correctly and will decrease difficulties. When the order is

1
4
ready, kitchen can update the food order status as ready. Same time,
customer and the cashier will be

1
5
notified. This will reduce miscommunication and workload of the cashier.
Reducing waiting time of the customer will improve the customer
satisfaction.

Avoid long queues

This solution will help to increase the efficiency of restaurant’s staff. It


eliminates paper work and increase level of accuracy. Staff can handle
more customers in little time because web based solution can improve
speed of service, sales volume and customer satisfaction.

Bulk Processing

Order retrieval is simple and kitchen can see the order as bulks. Then
kitchen can process more orders because they can complete several same
type of orders at the same time.

Customer feedback

Customers can give feedback which is very valuable for improvements


of the restaurant.

Stock Control

All the kitchen ingredient stock levels can be maintained through the
system. Proposed system will facilitate restaurant to maintain kitchen
stock.

Menu item management.

Kitchen can maintain possible meals and can update which item cannot be
provided in relevant day.

Discounts

Providing special discounts and promotions. They can assign,” Item of the
Day” for special discount. System can identify whether the customer is
new customer or regular customer. For the regular customer, system can
provide special discounts. Increase the customer satisfaction and make
them retain with the restaurant.

1
6
There are many computerised restaurant management systems
available but for each system there exist

disadvantages or missing features. The most common type of


restaurant management system contains a static

order entry computer system usually in the shape of a desktop


computer with a touch screen. Typically

this common approach is adequate to the restaurants requirements


but still requires handwritten orders

to be relayed to the order entry computer system.

• This system is newly developed, existing system is not there all


component are developed to fulfil

restaurant administrator requirement

• The existing system is manual

• The restaurant management has to keep record manually

• Lack of security of data.

• More manpower.

• Time Consuming.

• Need manual calculations.

• To overcome the problems of manual system, online Restaurant


management system is proposed.

• The main purpose of Restaurant management is to provide online


facility to food order and reserve tables.

• Restaurant administrator has to manage other activities like


employee data, food orders etc.

1
7
• This system can manage and keep the record of Restaurant.

• Security of data.

• Ensure data accuracy.

• Greater efficiency.

• Better service.

• User friendliness and interactive.

• Minimum time required.

• We are developing a system, which can deal with daily activity of


restaurant business.

• This system is providing an ability to the customer for food order


and reserve table online.

• Hence other side admin can manage other activities of


restaurant like employee, menu, food order, parties,

table management.

• This system is providing an easy way to manage business


activity and employee details and more.

• The employee will use system for manage profile and check
upcoming party schedule etc.

• If employee wants to take a leave, he can apply for the leave and
admin can manage leaves of employees.

• Enable easy authorized modification of data

1
8
• Smart Restaurant handle the system as Table booking and Food
ordering by digitally which become save manpower and time of staff of
hotel, There are several ways in which online food ordering from
restaurant may occur, restaurant can have its own website with easy
features for placing an order for pick-up, This application gives the power
and flexibility to administrator for manage the entire system from a single
online system.

• Restaurant’s business requires utmost management skills. Right


from managing the

reservations, to allotting tables, to keeping a tab on timely delivery of

orders, each aspect needs to be managed up to perfection. Any delay or

error in these activities can lead to major customer dissatisfaction. A

simple way to avoid such errors is to use restaurant management system.

• Automation of Restaurant Management

• Achieve Food Order Online.

• Easy Table Booking.

• User Friendly.

• No Need to do Paper Work

• To save the environment by using paper free work

• Management of Employee Data.

• To increase the accuracy and efficiency of placement procedure

• The size and scope of Restaurant Management System’s vary among


1
9
organization.

• The point-of-sale(POS) system

• The kitchen management system

• Inventory and Menu Management

• Real-time order management system.

• Easily understandable functions

• Customer can see the available menu on web

• Online payment options

• Pre-reservation of table

• Customer order, booking and profile management.

• Employee details management

• Notify the order information of the customers

• Manage customer orders by admin side

• Enhanced flexibility.

The aim of this project is to create a restaurant management system that can
incorporate the benefits of all the existing solutions but without any of the
drawbacks as well as including many new features. A list of proposed
features can be found in table 1.1.

Many of the existing solutions to POS (Point-of-Sale) systems are sold with the
required expensive hardware so for any business looking to work to a
budget, the more enriched software solutions are just out of their range.

2
0
Project Name Restaurant Management
System
Developed by Priti Kumari

Front End tool HTML, CSS, BOOTSTRAP

Back End tool ASP.NET

Database MYSQL

User must be trained for basic computer functionalities.

 All the inputs should be checked for validation


and messages should be given
for the improper data.

 Details provided by the vendor during his sign up


should be stored in database.

2
1
 Simplifies Front Office Tasks

 Improves guest reservations

 Increases multi-tasking

 Centralizes Restaurant management

 Improve Customer Relationships


 Quick & Easy Scheduling
 Keep Staff Up-To-Date
 Improved Customer Experience

If there is a power failure while making a reservation, all the information


has to be feed again.

Chapter 2 – Background

Second chapter describes the background of the system. This will describe
similar systems that available and alternative technologies available
relevant to the system. It will include essential background information
with references and strengths and weaknesses of those alternatives.

Chapter 3 - Methodology

Analysis and Designing of the system described here. Description about


the current system,user requirements as well as functional and non-
functional areas will describe here. It will describe the details about how
system is designed. It will contain relevant UML diagrams etc.

Chapter 4- Implementation

Implementation plan of the system will describe in this chapter. Plan of


implementing this system and what have been achieved up to date
through results that already have accomplished will describe here.
Furthermore, this chapter covers

2
2
content of the changed work from the original proposal with reasons. And
problem faced when implementing the system, the scope

of the project compared with the time plan as well as result that have
achieved. Furthermore, it will describe test plan that was used to verify
and validate system, and description of the effect of errors.

Chapter 5 – Testing and evaluation

This chapter describes the testing techniques, test plans and client

evaluation. Chapter 6 –Conclusion

Experience gained through the project along with areas for future
recommendations are

discussed in this chapter.

Summary

This chapter has given the introduction to the project and to the documentation.
Next chapter

will give background study before analyzing the current situation.

• Requirement Analysis: Requirements of the system


including identification, list of features and
tabulated requirements.

• Design: Project design process using several diagrammatic techniques.

• Implementation: Discusses the implementation of the software


with the help of diagrams and pseudocode.

• Results: Illustrates the system using screenshots.

• Testing: Documents how the system was tested.

• Conclusion: Project conclusion with future development ideas.

2
3
This chapter gives an insight to Restaurant Management system similar in
nature to that of the one being developed in this project. It also gives a
brief introduction to the importance of requirement gathering, a
discussion on development methodologies available as well as a
justification on the platform and software used in this project.

Use of Restaurant management system helps to manage staff, sales,


customers in easier manner,Restaurant Management helps to run a
restaurant in more efficient manner. It helps to manage orders, menus,
inventory and sales. This kind of system usually contains hardware,
such a cash register, large displays or touch panels, barcode scanner
and receipt printer as well as software.It provides a comprehensive tool
that allows to see restaurant and its needs at a glance, which

can simplify the workload on a day-to-day basis.

What is a restaurant management

system?

“A restaurant management system (RMS) is a type of point-of-sale (POS)


software specifically designed for restaurants, bars, food trucks and
others in the food service industry. Unlike a POS system, and RMS
encompasses all back-end needs, such as inventory to staff
management. A system typically includes software and hardware, such
as registers, scanners and receipt printers.”

Types of RMS currently available


2
4
Because every restaurant has unique needs, there are different RMS types to
choose from. To determine which type best suits the restaurant, one
has to focus

2
5
on the features that business requires and how important each of those
features [9].

1. End to end

This is the most robust and comprehensive type of RMS. Main features
include core POS, inventory control, CRM, staff, menu, order and
payment management, technical support, and reporting and analytics.
Depending on the RMS vendor, developer may be able to mix and
match features.

2. POS

This is the core of the system and allows to integrate it with third-party
systems for inventory, accounting, marketing and other key systems.

3. iPad or Android only

Most systems are designed to run only on one device type to maintain
the integrity of the system. Determine which device type will use in the
restaurant.

4. General POS

This system is designed for businesses that have both retail and food
services available. It offers seamless crossover with add-on modules

Comparison of development life cycles


It is very important to identify best method to do the development of
the system. Variety of software development life cycle models are
available. Success of any project is depending on selecting a suitable
model for a specific development project. In the background study,
waterfall, spiral, incremental/iterative (agile), v- model is considered as
the alternative software development model

2
6
2
7
> Requirements are collected using customer and Admin needs

 Customer need online platform to make food order.


 They want to see updated Food Menu on web.
 Online payment gateway.
 Review page to see other customer’s review.
 Need system where all activity of restaurant should be done.
 Admin don,t want to keep records on paper.
 Can Update Menu .
 Admin wants to show offers.
 Staff can apply for leave.
 Need report of online food orders.
 Questionnaire

2
8
 The order should be based on local area.
 The kitchen manager can see the order and check weather this order
 can be taken or not and then confirm the order and start preparing.
 The order will take initial time to be prepared.
 Table reservation should be done before restaurant opening time.
 The whole system is secured, only Admin can access all the data.

Introduction
This chapter is focused about stakeholders of the system, and
requirements of the system. Also
this chapter will look at the system design. System design is explained with the
aid of diagrams
to illustrate graphically certain sections of the software system

Analysis
Existing method in this restaurant is all manual and study of the current system
is done by using
the following fact finding techniques.
Observations
Interviews
According to the information that gathered from interviews, employees
have following
problems.

Kitchen Staff and serving staff


It is difficult to remember large number of orders at once. And sometimes they have

2
9
to prepare same food item several times. They prepare bulks. But it’s
difficult to pack the orders during busy times. If there is a method to view
orders by food items(Bulks) it’s easy to prepare. There should be a way to
view orders separately for easiness of packing purpose for take-away
customers. It’s easy for serving staff to arrange the orders in frequent
manner and that will help to serve customers as first come first out.

Cashiers
Currently they have to remember all the item codes, if there is a new
employee it is very difficult to bill the order in cash register and its time
consuming. If there is a method to see the items in category wise that
would be easy and efficient.
By observing the working environment, it is very clear about the
drawbacks of the current system. Current method causes customer
dissatisfaction and due to that competitors also getting advantages.

Nature of the current method


The current method is based on papers. Only way to track order is cash
register and the bill that given to the customer. Menu cards are also paper
based or verbal. Those menu cards are printed and if any change is
required restaurant must redesign the menu cards and reprint them. This
is a big waste and it is costly and it is impossible to reprint every time
even for a miner change. Current system is time consuming.
Customers have to waste their time in queue and
place the order. Several case of serving a wrong order are also happened
due to miscommunication. Therefore, briefly,
For placing any orders customers have to visit restaurant to know about
food items and then place order and pay. In this method time and manual
work is required. It is difficult to ensure whether the order has placed
correctly or not because cash register codes are unknown to the
customer. Sometime there are miscommunication between kitchen and
front
desk. No database is present; therefore, analysis is impossible

3
0
Menu Management Function
Provides functionality for the Admin User only. It will not be available to any other

3
1
users of
the system like Restaurant Employees or Customers.
Using a graphical interface, it will allow an Admin to manage the menu
that is displayed to
users of the web ordering system:

Description Task/Responsibilities

Refers to the Admin can manage


privileged actor employee, food
who has control order, table
over the
whole reservation, parties,
system leave, etc.
Customer of Customer can
the order food
system and reserve table
etc.
Employee Employee can edit
their profile and
of Restaurant apply for leave etc.

Restaurant Management System

● Microsoft Visual Studio is an integrated development environment (IDE)


from Microsoft. It is used to develop computer programs for Microsoft
Windows, as well as web sites, web applications and web services.
Visual Studio uses Microsoft software development platforms such as

3
2
Windows API, Windows

3
3
Forms, Windows Presentation Foundation, Windows Store and Microsoft
Silverlight. It can produce both native code and managed code.

● Visual Studio includes a code editor supporting


IntelliSense (the code completion component) as well as code
refactoring. The
integrated debugger works both as a source-level debugger and a machine-
level debugger. Other built-in tools include a forms designer for
building GUI applications, web designer, class designer, and database
schema designer. It accepts plug-ins that enhance the functionality at
almost every level—including adding support for source-control systems
(like Subversion) and adding new tool sets like editors and visual
designers for domain-specific languages or toolsets for other aspects of
the software development lifecycle (like the Team Foundation Server
client: Team Explorer).

● XAMPP is an abbreviation where X stands for Cross-Platform, A


stands for Apache, M stands for MYSQL, and the Ps stand for PHP and
Perl, respectively. It is an open-source package of web solutions that
includes Apache distribution for many servers and command-line
executable along with modules such as Apache server, Maria DB, PHP,
and Perl.

● PHP is a general-purpose scripting language geared toward web


development. It was originally created by Danish-Canadian programmer
Rasmus Lerdorf in 1994 The PHP reference implementation is now
produced by The PHP Group. PHP originally stood for Personal Home
Page, but it now stands for the recursive initialism PHP: Hypertext
Preprocessor.

3
4
● JavaScript is used by programmers across the world to create
dynamic and interactive web content like applications and browsers.
JavaScript is so popular

3
5
that it’s the most used programming language in the world, used as a client-
side programming language by 97.0% of all websites. Client-side
languages are those whose action takes place on the user’s computer,
rather than on the server.

Client Side

Server Side

3
6
Client Side

Server Side

3
7
38
39
40
41
42
43
44
45
This chapter will focus on the design of the system using
diagrams to illustrate graphically certain sections of the
software system.

This project has been designed using numerous


diagrammatic techniques, the most general modelling
language to describe both the structure and behaviour of a
software system is Unified Modelling language (UML).
Use case diagrams have already been used in the
requirements analysis as a way to graphically overview the
order process within the system. Other diagrams from the
UML family are used in the design stage to show the
structure and behaviour of numerous sophisticated design
features.

A component diagram is part of UML and its main purpose


is to show the structural relationship between components
in the system. A component diagram is useful for this
system as it shows the higher architecture.
.

The restaurant management system will be built around the

46
data storage technique therefore choosing the most
appropriate persistent1 data

47
storage is critical to a successful project and we can assume a
flat file storage approach is inadequate. The two most popular
types of persistent data storage available are relational
database management system (RDBMS) and extensible markup
language (XML).

A relational database management system (RDBMS) is a


database managed system based around a relational model and
are the corner stone’s to many software systems including web
based systems.

RDBMS are one of the most popular data storage methods


out in the market and offer many advantages including:
• Fast data extraction using structured query language (SQL).

• Good management of data and security through the


management system.
• Good level of data consistency.
• Advanced features including functions and triggers.
• Requirement of a data model to be developed; leading to
long term cost effectiveness.

In industry, there are numerous expensive highly functional


RDMBSs including Oracle and SQLServer that are very popular and
offer technical support. However, there are also numerous open-
source solu- tions with many adjudged to be as good or better and
are becoming even more popular with small scale software
systems.

XML is a markup language that was designed to transport


and store data and is another example of a persistent data
storage technique. However, it is not a predefined language

48
thus all tags must be defined and due to its
hierarchically data structure all

49
elements must be promoted or demoted.
XML could be used in two different ways in data storage;
storing the XML documents within a database or having the
XML documents as the fundamental unit of storage. In both
cases the XML can be queried using either XPATH or
XQUERY which are query languages for extracting data
from XML documents.

The main difference between XML and RDBMS is that XML


is hierarchical and RDBMS is relational. As restaurant data
can be best represented in a hierarchical way one would
believe that XML would be the best approach but it’s not
always that straight forward. SQL is an extremely flexible
and robust querying language and for the queries required
and the type of software system begin designed, it was
concluded that RDBMS would be the best storage method.
The next choice was to decide on the type of RDBMS to use.
As discussed there are many open source RDBMSs available
for us to choose from and for the main reason of experience,
MySQL was the preferred option. it shows just how
competitive the performances of different RDBMSs are .

Figure 4.2: Database comparison diagram

50
Normalisation comes in many forms ranging from first
normal form to sixth normal form. The normalisation of a
database is a systematic way to free the database of
undesirable characteristics where inserts, updates and
deletions of data could lead to the loss of data integrity.
The greater the normal form, the greater the data integrity
of the database.
The database in this system was designed to be in Boyce-
Codd normal form which is a slightly stronger version of the
third normal form. For the database to be in Boyce-Codd
normal form, it had to pass for all previous normal forms as
well as Boyce-Codd normal form.
A well designed database will normally abide by the first, second
and third normal forms as they are the basics to a well
structured relational database. According to Horsforth School
[17], the first three normal forms can be defined as:

1. : Every attribute is atomic or single valued


therefore there are no repeating fields.

2. : All attributes not part of the primary key must


be dependent on the full key.

3. : There must be no transitive determinants, or


each attribute that is not part of the key must be
determined only by the key.
Finally for the database to be in the desired Boyce-Codd normal form, all

51
tables must abide by the first, second and third normal forms
and must not have any determinants that are not candidate
keys for the table.

An entity relationship (ER) diagram is a modelling language


used to represent a type of semantic data model of a
system. The ER diagrams are often used to represent a
relational database and its requirements in a top-down
fashion usually defined as the database schema. The
database schema for this database has been split into two
ER diagrams (Figures 4.3 and 4.4).
Figure 4.3 graphically shows the objects and their
relationships that are contained within a meal. The meal
object will be made of at least two ingredients that can be
either a normal ingredient or a prepared ingredient. Note, a
prepared ingredient is a collection of ingredients used to
either group commonly used ingredients or to group
optional ingredients. Each ingredient will have a default and
manual measurement with the default measurement
entered on input of the ingredient and the manual
measurement entered if the meal ingredient link requires a
different amount.
Also, each ingredient will be part of a generic ingredient
object as there are many ingredients that are the same
item but packaged in a different way at a different price.
This allows the database to be in Boyce-Codd normalised
52
state. An example of this would be the drink Coca-Cola
which can be bought by bottle, can or draught, thus are

53
the same item but packaged differently at a different price
and amount. Finally each ingredient and prepared
ingredient can be part of a category allowing optional
ingredients to be interchanged with other ingredients in the
same category.
Figure 4.4 graphically shows the relationships for the
menu, order and offer objects. The menu consists of a date
time relationship that provides the intervals to when the
menu is active and a menu section relationship that
contains the colour variables and items under that
particular menu section.
The order consists of one to many suborders with the
suborder consisting of one to many items. The order stores
all the ingredients within each item and also the replaced
ingredient if that optional ingredient was replaced.
The offer consists of a date time relationship that
provides the intervals to when the offer is active and a offer
section relationship that contains the sets required by the
offer.

54
The database was the backbone to some highly important functional

55
requirements, therefore the schema (Figures 4.3 and 4.4)
needed to have the structure to deal with them.
Some important design concepts of the database are:

 Ability to store prepared ingredients to reduce the size of the


meal ingredient list. Recall, that a prepared ingredient is a
collection of ingredients.
 Ability to allow numerous options for optional ingredients
within meals so that every ingredient (or prepared
ingredient) is part of a category. If an ingredient is
optional, then that ingredient should be able to be
removed or swapped with any other ingredient in the same
category.
 Ability to control the stock levels by allocating a variable to
all prepared ingredients and meals with the variable
reacting in real time to the status of the item’s ingredient
stock level.
 Ability to cope with new supplies where the price differs to
the current price within the database

The graphical user interface (GUI) is the only component of


the system that the user interacts with therefore is of great
importance. The design had to be simple, clear and concise
but whilst also showing all of the required features. The
main objective was to create a GUI that allowed the user to
get the order completed in the minimum time possible. This
was judged by the time taken to complete the order as well
as the number of clicks required to get from the start to the
finish. In total, there are 3 different GUIs within the
restaurant management system with each GUI requiring a
different design specification.
Order GUI
Kitchen GUI Management GUI
56
A flow chart is a diagram used to represent the process flow of an
algorithm, problem or some transaction within a business. Therefore, a
flow chart was used to graphically represent the process flow of an order.

This chapter has displayed many graphical representations of the


design of the system. The impel- mentation of the system is
documented in the next chapter.

Restaurant Management system Data flow diagrams often used as preliminary step

57
to create an overview, of the restaurant without going into great detail,
which can later be elaborated. It normally consists of overall application
data flow and process of the Restaurant Process. It contains all the user
flow and their entities,such as all the flow of
restaurant,employees,items,sells,payment,order,item, category.All of the
below diagrams has been used for the visualization of the data processing
and structured design of the Restaurant Process and working flow.

ZERO LEVEL DFD:

FIRST LEVEL DFD:

58
SECOND LEVEL DFD:

59
60
Primary Key: admin_id
Table description: Stores the basic details of admin.

Primary Key: cat_id


Table Description: Shows the categories in variety of food

Cat_Id Int Primary Key id 1

Cat_name Varchar (15) Not null customer name Burger

61
Primary Keys: l_id
Table Description: Stores the basic details of staff leave.

& DUWBLG , QW 3 ULP DU\ . H\ ,G

8 VHUBLG , QW 5 HI HUHQFH NH\ 8 VHU¶V LG

3 URGXFWBLG , QW 5 HI HUHQFH NH\ 3 URGXFW¶V LG

3 URGXFWBQDP H 9 DUFKDU 0 $ ; 5 HI HUHQFH NH\ 3 URGXFWBQDP H % XUJ HU

3 URGXFWBLP DJH 9 DUFKDU 0 $ ; 1 XOO 3 URGXFWLP DJH , P DJH

3 URGXFWBGHVF 9 DUFKDU 0 $ ; 1 XOO 3 URGXFWBGHVF 6 SLF\

3 URGXFWBSULFH , QW 1 RWQXOO 3 URGXFWBSULFH

8 QLWBQR LQW 1 RWQXOO 8 QLWBQR

7 RWDOBTW\ 9 DUFKDU 1 RWQXOO 7 RWDOBTW\

7 RWDOBSULFH , QW 1 RWQXOO 7 RWDOBSULFH

3 URGXFWBW\ SH 9 DUFKDU 1 RWQXOO 3 URGXFWBW\ SH

, QBFDUW 9 DUFKDU 1 RWQXOO , QBFDUW

62
Primary Key: offer_id
Table Description: Stores the basic details of food offer.

Primary Key: p_id


Table Description: Stores the details of upcoming parties.

63
:

Primary key: order_id


Table Description: Stores all the details of food order.

Primary Key: product_id


Table Description: Stores the details of product.

51
Primary Key: staff_id
Table Description: Stores the detail of staff.

Primary Key: table_id


Table Description: Stores the detail of table book.

52
Primary Key: user_id
Table Description: Stores the basic details of
customer who register in Restaurant Management
system

usr_id int Primary Key Customer’s id 1

Firstname Varchar(20) Not null Customer_fnam Rafa


e
Email Varchar(20) Not null Customer’s rafas@gmail.co
email m
Password Varchar(20) Not null Customer’s 123
password
Address Varchar(MAX) Not null Customer’s Jugsalai
address
Phone_no Int Not null Customer’s 0792682631
phone_no
State Varchar(10) Not null Customer’s Jharkhand
state
City Varchar(10) Not null Customer’s city Jamshedpur

Zip code Int Not null Customer’s zip 831013


code

53
54
55
56
57
58
59
60
61
62
63
64
 The project entitled “RESTAURANT
MANAGEMENT SYSTEM” has been

proposed to be implementing to replace the


manual system

 The developed system accomplishes all the


objectives stated for the

need for the change of the system

 This system helps administrator to handle daily


activity of restaurant

business

 Thus, this enhanced feature will bring


improvements in the

environment of the restaurant.

65
- Code compile without warnings.

- Follow camel case.

- Using names based on roles, not types.

- Avoiding overloads on return type.

- Choosing good parameter names that serve as documentation.

- Taking advantage of default parameters.

- Variable name starts with small letters and the all word start
with capital letters.

- Proper and related variable name.

66
User Profile Manage All Function(Login
,Signup,
ForgotPassword,Logout,ChangePassword,Update
UserProfile)

[HttpPost]

public ActionResult Index(Users Objusr)

Objusr = _bal.GetLoginDetails(Objusr);

if (Objusr.email != null)

Session["Email"] = Objusr.email;

Session["Id"] = Objusr.usr_id;

Session["FName"] = Objusr.firstname;

Session["address"] = Objusr.address;

Session["phone"] = Objusr.phone_no;

Session["zipcode"] = Objusr.zipcode;

Objusr = _bal.GetCartCount(Objusr.usr_id);

Session["count"] = Objusr.count;

FormsAuthentication.SetAuthCookie(Objusr.email, false);

TempData["Message"] = "1";

67
return RedirectToAction("Index", "Home");//method,controller,object

else

TempData["Message"] =

"0"; ModelState.Clear();

return View();

[HttpPost]

public ActionResult Register(Users ObjUser)

if (!string.IsNullOrEmpty(ObjUser.firstname) &&

!string.IsNullOrEmpty(ObjUser.email) &&

!string.IsNullOrEmpty(ObjUser.password) &&

!string.IsNullOrEmpty(ObjUser.address)

&& ObjUser.phone_no != null &&

!string.IsNullOrEmpty(ObjUser.state) &&

!string.IsNullOrEmpty(ObjUser.city) &&

ObjUser.zipcode != null)

selenadal selenadal = new

selenadal(); int result;

68
result =

selenadal.AddUserDetails(ObjUser); if

(result == 1)

// SendMail(ObjUser.FirstName, ObjUser.LastName, ObjUser.Email);

TempData["Message"] = "1";

ModelState.Clear();

//TempData["msg"] = "Your Account has been made, please


verify it by clicking the activation link that has been send to your email.";

return RedirectToAction("Index");

else

TempData["Message"] =

"2"; ModelState.Clear();

return RedirectToAction("Index");

return RedirectToAction("Index");

[Authorize]

public ActionResult Update(Users users)

Users u = new Users();

69
u= _bal.UpdateUser(users);

Session["FName"] = u.firstname;

TempData["Message"] = "0";

return RedirectToAction("Index", "MyAccount");

[Authoriz

e]

[HttpPost

public ActionResult ChangePassword(Users ObjUser)

int id =

Convert.ToInt32(Session["Id"]); users

= _bal.GetData(id);

if (ObjUser.password == users.password)

string newPassword = ObjUser.nPassword;

_bal.ChangePassword(newPassword,

id); TempData["Message"] = "ch";

return RedirectToAction("Index", "MyAccount");

TempData["Message"] = "f";
70
return RedirectToAction("Index", "MyAccount");

71
}

public ActionResult Forgot()

return View();

[HttpPost]

public ActionResult ForgotPassword(Users ObjUsers)

if (ObjUsers.email != null)

users = _bal.GetForgotPassword(ObjUsers);

if (users.password != null)

String ToEmailAddress = users.email;

String Username = users.firstname;

String EmailBody = "Hi ," + Username + ",<br/><br/>Your Password Is


<br/> <br/>" + users.password;

MailMessage PassRecMail = new MailMessage("065aayush@gmail.com",


ToEmailAddress);

PassRecMail.Body = EmailBody;

PassRecMail.IsBodyHtml = true;

PassRecMail.Subject = "ForGot

Password"; using (SmtpClient client =

new SmtpClient())

72
{

client.EnableSsl = true;

client.UseDefaultCredentials =

false;

client.Credentials = new NetworkCredential("065aayush@gmail.com",


"password123&&&");

client.Host = "smtp.gmail.com";

client.Port = 587;

client.DeliveryMethod = SmtpDeliveryMethod.Network;

client.Send(PassRecMail);

TempData["Message"] =

"mail"; return

RedirectToAction("index");

else

TempData["Message"] =

"3"; return

RedirectToAction("index");

else

73
TempData["Message"] =

"3"; return View();

74
}

public ActionResult Logout()

FormsAuthentication.SignOut

(); Session.Clear();

Session.Abandon();

TempData["Message"] =

"11";

return RedirectToAction("Index", "Home");

75
Get All Products category wise

public JsonResult GetProductById(int id)

var product = selenabal.GetProductById(id);

return Json(product, JsonRequestBehavior.AllowGet);

public ActionResult GetProductOnCategory(string id)

product.lstBestProduct = selenabal.GetProductsIdwisec(id);

product.categories = selenabal.GetCategory();

return View(product);

76
Add to cart Product and check out Order , Online Payment
Function ,Cart Manage , Order Manage

public JsonResult AddToCart(int para1, int para2, string para3,

string para4, int para5, int para6, string para7,string para8,string para9)

DataSet ds = new DataSet();

ds = selenabal.AddToCart(para1, para2, para3, para4,


para5, para6, para7,para8,para9);

if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)

return Json("Already Added!", JsonRequestBehavior.AllowGet);

else

return Json("Add Successfull!", JsonRequestBehavior.AllowGet);

public JsonResult UpdateToCart(int para1, string para2, int para3)

var product = selenabal.UpdateToCart(para1, para2,

para3); return Json(product,

JsonRequestBehavior.AllowGet);

77
[Authoriz

e]

[HttpPost

public JsonResult DeleteCart(int id)

selenabal.DeleteCartItem(id);

return Json("Delete Successfull!");

public ActionResult Checkout()

int x = (int)System.Web.HttpContext.Current.Session["Id"];

ViewBag.StripePublishKey

=
ConfigurationManager.AppSettings["stripePublishableKey"];

product.cartList = selenabal.GetCartItem(x);

product.cartListTotal =

selenabal.GetCartTotal(x); product.users =

selenabal.GetData(x);

return View(product);

78
}

[Authorize]

79
[HttpPost]

public ActionResult CheckOutOrder(string firstname, string email,string


address, string city,

string state,

int zipcode, string phone_no, string stripeToken, string


stripeEmail,int price,string paymentmethod)

int id =

(int)System.Web.HttpContext.Current.Session["Id"];

Users users = new Users();

product.cartList =

selenabal.GetCartItem(id); users =

selenabal.GetData(id);

Random rnd = new

Random(); int rendom =

rnd.Next(100, 999);

var nwDt = DateTime.Now.ToString("dd-mm");

string invoiceNo = id.ToString() + nwDt.ToString() + users.firstname +


rendom.ToString();

string trx = firstname +

rendom.ToString(); if

(paymentmethod == "card")

80
Stripe.StripeConfiguration.SetApiKey("pk_test_51IlZwLSEQrbvHrn8lOmmsq
SOoLWJ
uSDawHTlMbbIy49wKHrbg58JRT5dpaXNTWy7gJ6DpQJCkyOtCPfLHPOZicZd
00Wlj BzOS2");

81
Stripe.StripeConfiguration.ApiKey =
"sk_test_51IlZwLSEQrbvHrn8woaFiLR0dyvAneYBHxNfGrgp02x6VE7XFgYhFP8q79Yx
Eig8f3opvOpTXRLWSomBD9hUO8JO00EKw9cNV2";

var options = new ChargeCreateOptions

Amount = price*100,

Currency = "INR",

Description = "Selena

Food", Source =

stripeToken,

Metadata = new Dictionary<string, string>

{ "order_id", stripeToken },

},

};

var service = new

ChargeService(); var charge =

service.Create(options);

selenabal.AddToOrder(users, invoiceNo, firstname, email, address,


city, state, zipcode, phone_no, paymentmethod, stripeToken);

else
82
{

stripeToken = "0";

selenabal.AddToOrder(users, invoiceNo, firstname, email,


address, city, state, zipcode, phone_no, paymentmethod,stripeToken);

Session["count"] = 0;

TempData["Message"] = "00";

return RedirectToAction("Index", "Home");

public ActionResult ShowOrder(string Id)

int x =

(int)System.Web.HttpContext.Current.Session["Id"];

product.showOrder = selenabal.OpenOrder(Id, x);

product.cartListTotal = selenabal.GetOrderTotal(Id,

x); return View(product);

public JsonResult OrderCancel(string id)

selenabal.CancelOrder(id);

return Json("Cancel Successfull!");

83
Table Booking ,Feedback ,Contact us ,

public ActionResult Feedback()

category.lstReview =

selenabal.GetReview(); return

View(category);

public ActionResult Offers()

Offers ofr = new Offers();

ofr.lstoffers=

selenabal.GetOffers(); return

View(ofr);

public ActionResult TableBook()

return View();

[HttpPost]

public ActionResult TableBook(table_book tbl)

selenabal.TableBook(tbl);

TempData["Message"] =
84
"tbl";

85
return RedirectToAction("Index");

Category Controller

Product Category Manage(create,update,delete,View)

public ActionResult Index()

category.lstCategory= selenabal.GetCategories();

return View(category);

public JsonResult DeleteCategory(int id)

selenabal.DeleteCategory(id);

return Json("Delete

Successfull!");

86
public ActionResult UpdateCategory(int id)

category =

selenabal.GetCategoryById(id); return

View(category);

[Authoriz

e]

[HttpPost

public ActionResult UpdateCategory(Category category)

category =

selenabal.UpdateCategory(category);

TempData["Message"] = "2";

return RedirectToAction("Index");

public ActionResult AddCategory()

return View();

87
[HttpPost]

public ActionResult AddCategory(Category category)

88
{

TempData["Message"] = "1";

category = selenabal.AddCategory(category);

return RedirectToAction("Index");

89
Product Manage(create,update,delete,View)

public ActionResult index()

product.lstProduct =

selenabal.GetProducts(); return

View(product);

[Authorize]

public JsonResult DeleteProduct(int id)

selenabal.DeleteProduct(id);

return Json("Delete

Successfull!");

public ActionResult AddProduct()

return View();

[Authoriz

e]

[HttpPost

public ActionResult AddProduct(Product product,


HttpPostedFileBase product_img)

90
if (ModelState.IsValid)

var allowedExtensions = new[] {

91
".Jpg", ".png", ".jpg", "jpeg"

};

product.product_img= product_img.ToString();

var fileName =

Path.GetFileName(product_img.FileName); var ext

= Path.GetExtension(product_img.FileName);

var size = product_img.ContentLength / 1024 /

1024; if (allowedExtensions.Contains(ext) &&

size <= 2)

{ //check what type of extension

string name = Path.GetFileNameWithoutExtension(fileName);


//getting file name without extension

string myfile = name + "_" + product.product_name+


"_" + product.product_id + ext; //appending the
name with id

// store the file inside


~/project folder(Img)

//string path =
Path.Combine(myfile);

string path = Path.Combine("Z://Selena//Selena//Selena-foods//Selena-


foods//Content//P_img//", myfile);

product.product_img = myfile;

product_img.SaveAs(path);

92
}

93
TempData["Message"] = "1";

product =

selenabal.AddProduct(product); return

RedirectToAction("Index");

public ActionResult UpdateProduct(int id)

product =

selenabal.GetProductById(id); return

View(product);

[Authoriz

e]

[HttpPost

public ActionResult UpdateProduct(Productproduct,


HttpPostedFileBase product_img)

if (ModelState.IsValid)

var allowedExtensions = new[]

{ ".Jpg", ".png", ".jpg",

"jpeg"

};

94
product.product_img = product_img.ToString();

var fileName =

Path.GetFileName(product_img.FileName); var ext

= Path.GetExtension(product_img.FileName);

if (allowedExtensions.Contains(ext))

95
{ //check what type of extension

string name = Path.GetFileNameWithoutExtension(fileName);


//getting file name without extension

string myfile = name + "_" + product.product_name+


"_" + product.product_id+ ext; //appending the name
with id

// store the file inside


~/project folder(Img)

//string path =
Path.Combine(myfile);

string path = Path.Combine("Z://Selena//Selena//Selena-foods//Selena-


foods//Content//P_img//", myfile);

product.product_img=

myfile;

product_img.SaveAs(path

);

product =

selenabal.UpdateProduct(product);

TempData["Message"] = "2";

return RedirectToAction("Index");

return View();

96
97
public ActionResult Index()

product.ListOrder =

selenabal.FetchOrder(); return

View(product);

public ActionResult Pendingorder()

product.ListOrder =

selenabal.FetchPendingOrder(); return

View(product);

public ActionResult AcceptOrder()

product.ListOrder =

selenabal.FetchAceptOrder(); return

View(product);

98
[Authorize]

99
[HttpPost]

public JsonResult OrderAccept(string para1)

selenabal.OrderAccept(para1);

return Json("Order Accept Successfull!");

[Authoriz

e]

[HttpPost

public JsonResult OrderCancel(string id)

selenabal.OrderCancel(id);

return Json("Order Cancel Successfull!");

public ActionResult ShowOrder(string id)

product.showOrder =

selenabal.OpenOrder(id);

product.cartListTotal =

selenabal.GetOrderTotal(id); return

View(product);

}
10
0
public ActionResult ShowInvoice(string id)

10
1
{

product.showOrder =

selenabal.OpenOrder(id);

product.cartListTotal =

selenabal.GetOrderTotal(id); return

View(product);

public void DownloadExcel()

List<SelectListItem> category = new

List<SelectListItem>(); Product entities = new

Product();

entities.ListOrder = selenabal.FetchAceptOrder();

ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

ExcelPackage Ep = new ExcelPackage();

ExcelWorksheet Sheet = Ep.Workbook.Worksheets.Add("Report");

int counter = 0;

Sheet.Cells["A1"].Value =

"No.";

Sheet.Cells["B1"].Value = "Customer

Name"; Sheet.Cells["C1"].Value = "Order

Id"; Sheet.Cells["D1"].Value = "Order

Status"; Sheet.Cells["E1"].Value =
10
2
"Order Total"; Sheet.Cells["F1"].Value =

"Order Date";

10
3
int row = 2;

foreach (var item in entities.ListOrder)

counter++;

Sheet.Cells[string.Format("A{0}", row)].Value = counter;

Sheet.Cells[string.Format("B{0}", row)].Value = item.firstname;

Sheet.Cells[string.Format("C{0}", row)].Value = item.invoice_no;

Sheet.Cells[string.Format("D{0}", row)].Value = item.order_sts;

Sheet.Cells[string.Format("E{0}", row)].Value = item.total_price;

Sheet.Cells[string.Format("F{0}", row)].Value =

item.order_date.ToString("dd
-MMM-yyyy");

row++;

Sheet.Cells["A:AZ"].AutoFitColumns();

Response.Clear();

Response.ContentType =
"application/vnd.openxmlformats-
officedocument.spreadsheetml.sheet";

Response.AddHeader("content-disposition", "attachment:
filename=" +
"Report.xlsx");

Response.BinaryWrite(Ep.GetAsByteArray

10
4
()); Response.End();

10
5
}

Dashboard Controller

Manage Offer, Staff Leave, Users,

public ActionResult ManageLeave()

LeaveRecord l = new LeaveRecord();

l.leaveRecords =

selenabal.GetLeave(); return View(l);

public ActionResult ManageUsers()

Users l = new Users();

l.listUsers =

selenabal.GetUsers(); return

View(l);

public ActionResult viewOffers()

Offers l = new Offers();

l.lstoffers = selenabal.GetOffers();

10
6
return View(l);

public JsonResult DeleteOffers(int id)

selenabal.DeleteOffers(id);

return Json("Delete Successfull!");

public ActionResult AddOffers()

return View();

[HttpPost]

public ActionResult AddOffers(Offers ofr,HttpPostedFileBase img)

var allowedExtensions =

new[] { ".Jpg", ".png",

".jpg", "jpeg"

};

ofr.img= img.ToString();

var fileName =

Path.GetFileName(img.FileName); var ext =

Path.GetExtension(img.FileName);
10
7
var size = img.ContentLength / 1024 / 1024;

if (allowedExtensions.Contains(ext) && size <= 2)

{ //check what type of extension

string name = Path.GetFileNameWithoutExtension(fileName);


//getting file name without extension

string myfile = name + "_" + ofr.offer_name+ "_" + ext; //appending the


name
with id

// store the file inside


~/project folder(Img)

//string path =
Path.Combine(myfile);

string path =
Path.Combine("D://Selena//Selena-foods//Selena-
foods//Content//P_img//", myfile);

ofr.img= myfile;

img.SaveAs(path);

ofr = selenabal.AddOffer(ofr);

TempData["Message"] = "1";

return RedirectToAction("viewOffers");

[Authorize]

10
8
[HttpPost]

public JsonResult LeaveAccept(int para1)

selenabal.LeaveAccept(para1);

return Json("Leave Approval Successfull!");

[Authoriz

e]

[HttpPost

public JsonResult LeaveCancel(int para1)

selenabal.LeaveCancel(para1);

return Json("Leave Cancel Successfull!");

10
9
Admin Login, Staff Login, Logout

[HttpPost]

public ActionResult Index(Admin ObjAdmin)

ObjAdmin = selenabal.GetLoginDetails(ObjAdmin);

if (ObjAdmin.email != null)

Session["Email"] =

ObjAdmin.email; Session["Id"]

= ObjAdmin.admin_id;

Session["type"] = "a";

FormsAuthentication.SetAuthCookie(ObjAdmin.email, false);

return RedirectToAction("Index",
"DashBoard",
ObjAdmin);//method,controller,object

else

TempData["Message"] =

"1"; ModelState.Clear();

return View();

11
0
}

11
1
}

[HttpPost]

public ActionResult Staff(Staff staff)

staff =

selenabal.GetLoginDetailsStaff(staff); if

(staff.email != null)

Session["Email"] = staff.email;

Session["Id"] = staff.staff_id;

Session["type"] = staff.type;

ViewBag.Page = "s";

FormsAuthentication.SetAuthCookie(staff.email, false);

return RedirectToAction("Dashboard",
"Staff", staff);//method,controller,object

else

TempData["Message"] =

"1"; ModelState.Clear();

return RedirectToAction("Index");

public ActionResult Logout()

11
2
FormsAuthentication.SignOut

(); Session.Clear();

Session.Abandon();

TempData["Message"] = "Logout

Successfully"; return

RedirectToAction("Index", "Home");

11
3
public ActionResult Index()

Party_Book u = new Party_Book();

u.party_Books =

selenabal.GetParty_Books(); return

View(u);

public ActionResult AddParty()

return View();

[HttpPost]

public ActionResult AddParty(Party_Book party_Book)

party_Book =

selenabal.AddPartyBook(party_Book);

TempData["Message"] = "1";

return RedirectToAction("Index");

public JsonResult DeleteParty(int id)

11
4
selenabal.DeleteParty(id);

11
5
return Json("Delete Successfull!");

public ActionResult UpdatePartyBook(int id)

Party_Book s = new

Party_Book(); s =

selenabal.GetPArtyData(id);

return View(s);

[HttpPost]

public ActionResult UpdatePartyBook(Party_Book party_Book)

Party_Book p = new Party_Book();

p = selenabal.UpdatePartyBook(party_Book);

TempData["Message"] = "Update

Successfully"; return

RedirectToAction("Index");

11
6
public ActionResult Index()

review.listReview =

selenabal.GetReview(); return

View(review);

public JsonResult DeleteReview(int id)

selenabal.DeleteReview(id);

return Json("Delete Successfull!");

11
7
[Authorize]

public ActionResult Dashboard()

int id =

Convert.ToInt32(Session["Id"]);

Staff s = new Staff();

s=

selenabal.GetstaffData(id);

return View(s);

[Authorize]

public ActionResult ChnagePassword()

int id =

Convert.ToInt32(Session["Id"]);

Staff s = new Staff();

s=

selenabal.GetstaffData(id);

return View(s);

[Authoriz

e]

[HttpPost
11
8
]

public ActionResult ChnagePassword(Staff staff)

Staff sf = new Staff();

11
9
int id = Convert.ToInt32(Session["Id"]);

sf = selenabal.GetstaffData(id);

if (staff.password == sf.password)

selenabal.chnagePassword(staff.CPassword,

id); TempData["Message"] = "Update

Successfully"; return

RedirectToAction("Dashboard");

else

TempData["Message"] = "8";

return RedirectToAction("Dashboard");

[Authorize]

public ActionResult MyProfile()

int id =

Convert.ToInt32(Session["Id"]);

Staff s = new Staff();

s = selenabal.GetstaffData(id);
12
0
return View(s);

[Authoriz

e]

[HttpPost

public ActionResult Update(Staff staff)

Staff u = new Staff();

u = selenabal.UpdateUser(staff);

Session["FName"] = u.firstname;

TempData["Message"] = "Update

Successfully"; return

RedirectToAction("Dashboard");

public ActionResult Partybook()

Party_Book u = new Party_Book();

u.party_Books=

selenabal.GetParty_Books(); return

View(u);

public ActionResult LeaveRecord()


12
1
{

int id = Convert.ToInt32(Session["Id"]);

12
2
LeaveRecord l = new LeaveRecord();

l.leaveRecords =

selenabal.GetStaffLeaveId(id); return View(l);

public JsonResult DeleteRequest(int id)

selenabal.DeleteLeave(id);

return Json("Delete Successfull!");

public ActionResult ApplyLeave()

return View();

[HttpPost]

public ActionResult ApplyLeave(LeaveRecord leaveRecord)

int id = Convert.ToInt32(Session["Id"]);

leaveRecord =

selenabal.AddLeave(leaveRecord,id);

TempData["Message"] = "1";

return RedirectToAction("LeaveRecord");

12
3
public ActionResult Viewstaff()

Staff s = new Staff();

s.listStaff = selenabal.GetStaff();

return View(s);

public ActionResult AddStaff()

return View();

[HttpPost]

public ActionResult AddStaff(Staff staff)

staff =

selenabal.AddStaff(staff);

TempData["Message"] =

"1";

return RedirectToAction("ViewStaff");

public JsonResult Deletestaff(int id)

selenabal.Deletestaff(id);
12
4
return Json("Delete Successfull!");

public ActionResult UpdateStaff(int id)

Staff s = new Staff();

s=

selenabal.GetstaffData(id);

return View(s);

[Authoriz

e]

[HttpPost

public ActionResult Updatestaff(Staff staff)

Staff u = new Staff();

u = selenabal.UpdateStaff(staff);

Session["FName"] = u.firstname;

TempData["Message"] = "Update

Successfully"; return

RedirectToAction("ViewStaff");

}
12
5
12
6
public ActionResult Index()

table.table_Books = selenabal.GetTableBook();

return View(table);

Proposed Enhancements

We are planning to add stock and attendance


management on the admin side.

 The project entitled “RESTAURANT


MANAGEMENT SYSTEM” has been

12
7
proposed to be implementing to replace the
manual system

 The developed system accomplishes all the


objectives stated for the

need for the change of the system

 This system helps administrator to handle daily


activity of restaurant

business

 Thus, this enhanced feature will bring


improvements in the

environment of the restaurant

12
8
1] Ian Alexander. Computing & control engineering. Volume 14(Issue
1):22–26, April 2003.

[2] Ezee Burrp. Software Features. Accessed on


14 October, 2009. http://www.ezeeburrp.com/
features.html.

[3] HSQL db. Database comparison.


Accessed on 13 September, 2009.
http://hsqldb.org/images/ imola_retrieve.jpg.

[4] Business Dictionary. Stakeholder. Accessed on


2 April, 2010. http://www.businessdictionary.
com/definition/stakeholder.html.

[5] Geoffrey Elliot. Global business information technology: an


integrated systems approach. Pearson Education, 2004.

[6] Beefeater Grill. Beefeater Grille. Accessed on


24 September, 2009. http://www.beefeater.co.
uk/ourFoodAndDrink.

[7] Horizon. Restaurant Sector Overview.


Accessed on 4 May, 2010.
http://www.caterersearch. com/Articles/2006/05/12/306737/Restaurant-

12
9
sector
-overview.htm.

[8] Java JDBC. Java SE Technologies - Database. Accessed on 3 May, 2010.

13
0
http://java.sun.com/ javase/technologies/database/.

[9] Paul Lemberg. Which is Better: New


customers or repeat business?. Accessed on 12
October, 2009.
http://www.businessknowhow.com/marketing/new-customers.htm.

[10] Agile Manifesto. Principles


behind Agile Manifesto. Accessed on
20 September, 2009. http:

//www.agilemanifesto.org/principles.html.

[11] Craig Murphy. Improving Application Quality Using Test-


Driven Development (TDD). Accessed on 16
October, 2009.
http://www.methodsandtools.com/archive/archive.php?id=20.

[12]A Nutt. History of pos equipment. Computers and Internet


community, 1:1, March 2009.

[13] Point of Success. Products and Features.


Accessed on 14 October, 2009. http://www.
pointofsuccess.com/softwarefeatures.htm.

[14] Abacre POS. Major Features.


Accessed on 14 October,
2009. http://www.abacre.com/ restaurantpos/features.htm.

[15] Steve Rosenberg. Fast food, German-style. Accessed on 15


October, 2009. http://news.bbc.co. uk/1/hi/7335351.stm.
• www.youtube.com
• www.developers.google.com
• www.github.com

13
1
• www.stackoverflow.com
• www.smartsheet.com
• www.000webhost.com

13
2
• www.lucidcharts.com

13
3
13
4
13
5
13
6
13
7
13
8
13
9
14
0
14
1
14
2
14
3
14
4
14
5
14
6
14
7
14
8
14
9
15
0
15
1
15
2
15
3
15
4
15
5
15
6
15
7
15
8
15
9
16
0
16
1
16
2
16
3
16
4
16
5
16
6
16
7
16
8
16
9
17
0
17
1
17
2
17
3
17
4
17
5
17
6
17
7
17
8
17
9
18
0
18
1
I would like to express my sincere gratitude to several individuals and
organization for supporting me throughout the completion of my
project.

First, I wish to express my sincere gratitude to my mentor (Dr Arun


Kumar Marandi) for his enthusiasm patience, insightful comments,
helpful information, practical advices and unceasing ideas that have
helped me tremendously at all times in my Project and writing of this
thesis. His immense knowledge, profound experience and professional
expertise in Backend has enabled me to complete this project
successfully. Without his support and guidance, this project would not
have been possible.

I am also thankful to our respected H.O.D and all faculty members for
loving inspiration and timely guidance. I also wish to express my sincere
thanks to the Department of Computer science & Information
technology of ARKA JAIN UNIVERSITY for accepting this project.

Thanks for all your encouragement!

18
2
18
3

You might also like