Restaurant Management System
Restaurant Management System
Restaurant Management System
B.C.A
Author:
Charu Awasthi
Cafe Management System
Abstract
This report documents the process of designing, developing and testing a software system to be used in a
restaurant; usually given the name restaurant management system. The restaurant management system
is there to help communication between all teams within a restaurant by minimising the probability
ofhumanerrors.
Acknowledgements
Iwould like to thank my project supervisor,manish sir ,for providing an awful amount of guidance and input
throughout the writing ofthis report.Inaddition,I’dlike tothank my family forthe support throughout my fi
nalyearatuniversity,andforcheckingovermyreport.
Contents
1 Introduction 6
1.1 Chapter Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 The Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Project Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Existing Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5 Project Proposal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.6 Summary of Chapters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.7 Commonly Used Words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.8 Closing Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2 Background 10
2.1 Chapter Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 Point-of-Sale (POS) Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 Existing Point-of-Sale (POS) Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4 Platform Choice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5 Software Choice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.6 UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.7 Requirement Gathering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.8 Development Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.9 Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3 Requirement Analysis 14
3.1 Chapter Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2 Stakeholder Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3 Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.5 Measureable Goals and Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.5.1 Functional Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.5.2 Non-Functional Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.6 Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4 Design 20
4.1 Chapter Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.3 Component Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.4 Data Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.4.1 Relational Database Management System (RDBMS) . . . . . . . . . . . . . . . . 20
4.4.2 Extensible Markup Language (XML) . . . . . . . . . . . . . . . . . . . . . . . . . 21
3
4.4.3 Storage Method Chosen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.4.4 Normalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.4.5 Entity Relationship Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.4.6 Database Design Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.5 Graphical User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.5.1 Order GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.5.2 Kitchen GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.5.3 Management GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.6 Pricing Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.7 Flow Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.8 Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5 Implementation 32
5.1 Chapter Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.2 Implementing Extreme Programming (XP) . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.3 Data Storage and Retrieval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.4 Stock Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.5 GUI Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.5.1 Order GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.5.2 Kitchen GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.5.3 Management GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.6 Pricing Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.7 Code Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.8 Version Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.9 Error Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.10 Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6 Results 42
6.1 Chapter Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.2 Management Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.2.1 Data Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.2.2 Stock Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.2.3 Offer Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.2.4 System Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.2.5 Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.3 Order Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
6.4 Kitchen Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.5 Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
7 Testing 61
7.1 Chapter Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7.2 Testing Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7.2.1 Unit Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7.2.2 User Acceptance Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
7.2.3 Usability Testing and Usability Inspection . . . . . . . . . . . . . . . . . . . . . . 63
7.3 Testing Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
7.4 Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8 Conclusion 65
8.1 Chapter Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.2 Project Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.3 Further Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.3.1 Graphical User Interface (GUI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.3.2 Table Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.3.3 Cooking Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.3.4 Online Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.4 Reflection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.5 Skills Attained . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.6 Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Bibliography 66
List of Figures 69
List of Tables 71
List of Listings 72
C Database Structure 78
E Pricing Algorithm 81
Chapter 1
Introduction
6
Even though this approach is implemented in successful profitable restaurants, there are several
problems which could be seen as reducing the restaurant’s efficiency:
• Miscommunication caused by handwriting.
7
Table 1.1: A table showing the proposed features of the system and the motivation behind the features.
Feature Motivation
Automated stock control. Real-time view of ingredient stock levels so
only the meals with enough ingredient stock
can be sold.
Meal option and preference selection. Flexible meal options available for the cus-
tomer.
Wireless order system. Waiters no longer required to walk to and from
the central order computer system.
Advanced discount function. Calculating the best price for the customer.
Order alerts. Kitchen and bar staff in direct communication
with waiters allowing the kitchen to notify the
waiter that service is required.
Flexible GUI design. Software capable of being used on any sized
screen and so must have a flexible design.
Order logging. All orders logged for future query generation.
Large kitchen order display. Easy tracking and viewing of all active2 orders.
8 Carl Abernethy
Table 1.2: A table showing the commonly used words throughout this report.
Word Definition
Ingredient Ingredient of a meal.
Prepared ingredient Collection of ingredients.
Item A meal or drink.
Menu section A section of menu for example starters, meats,
puddings etc.
Suborder A collection of customer ordered items.
Order A set of suborders.
9 Carl Abernethy
The proposed features in table 1.1 were generated from research into numerous POS systems. Table
2.1 shows the comparison between some of the proposed features and the features of other POS systems.
All these POS systems were found on the first page of a Google search on the 14th October 2009.
2.5 UML
Diagrammatic techniques are used to visualise, construct and document software systems under de-
velopment. The most general modelling language to describe both the structure and behaviour of a
software system is Unified Modelling language (UML) created by the Object management group. The
diagrams one can create using UML can be shown by a class diagram (Figure 2.1). Throughout this
report, numerous models defined within the UML class diagram (Figure 2.1) will be used to graphically
representthesystem.
11
when the project has a strict deadline to work to. Roughly a £1 cost of change in the requirement
gathering can cost up to £100 in the testing stage and £1000 in the deployment stage to fix.
13 Carl Abernethy
Chapter 3
Requirement Analysis
Therefore using these 4 questions as a guide, we can generate a list (Table 3.1) of the stakeholders
in this project.
14
RESTAURANT MANAGEMENT SYSTEM CHAPTER 3. Requirement Analysis
Figure 3.1 shows several use case scenarios of the system that convey how the stakeholders interact
with the features to achieve a business requirement. The use case scenarios from figure 3.1 can be
found in Appendix B.
The use case diagram is designed to be sequential so by following the use cases down the spine, one
can follow the major steps of an order and several post features to query the data.
3.4 Features
An important part of requirements gathering is the production of a list of system features that cat-
egorises on priority.
Table 3.2: A table showing the proposed system features and allocated priorities.
Feature Priority
Communication of data between each application. 1
Minimum click touch screen GUI design for efficient ordering. 1
Meal ingredient and cooking preference options. 1
Interface to view active orders in the kitchen. 1
Ability to add flexible discounts; calculating best price for the customer. 1
Interface to maintain and manage the menus and associated meals. 1
Stock control for all ingredients; reducing/increasing stock automatically. 1
Ability to define groups of ingredients that may be used in numerous meals. 2
Flexible meal grid design to fit any screen size. 2
Real time waiter status alerts. 2
User login functionality. 3
Interface for table management and selection. 3
Figure generation; management can view statistics in numerous forms. 3
Automatic daily stock level alerts. 3
Ability to define meals by images as well as text. 3
15 Carl Abernethy
Restaurant Management System
Book Table
Check/Deduct Stock
Waiter Chef
<<include>>
<<include>> <<include>>
Collect Order
Staff Bar Staff Call Server
Customer
Serve
Food/Drink
Eat Food
<<include>>
Generate Reports
Manage menu
& ingredients
Order Stock
<<include>>
<<include>>
Stock Check
Login
Figure 3.1: Use case diagram showing some of the major features within the restaurant management
system.
16 Carl Abernethy
(SRS) is a complete list of requirements to be designed and developed and can take the form of functional
or non-functional requirements.
17
Table 3.5: Order application functional requirements.
Requirements Priority
Ability to view the active suborder details. 2
Ability to add a new order to a table. 1
Ability to add a new order without defining a table. 1
Ability to add a suborder to an existing order. 1
Ability to delete a suborder that has not yet been confirmed within the order system. 1
Ability to view optional ingredients in a meal. 1
Ability to view cooking preferences of ingredients that can be cooked different ways. 1
Ability to only view the active4 menus. 1
Ability to view the status of all active suborders. 2
Ability to print customer receipts on order completion. 3
Ability to view transaction list of current order. 3
Ability to alert the waiter when the drinks are complete. 3
Ability to delete an item or clear the transaction list. 2
4A menu is active when the current time is within the specified time interval of the menu.
18
Table 3.7: Management application non-functional requirements.
Requirements Priority
Ability to interact with the MySQL database. 1
Means of refreshing menus, menu sections and meals live. 3
Only accessible by management staff. 3
Means of displaying the links therefore being able to view the ingredients in a meal etc. 1
Means of searching the database using wild cards for easier data input. 2
19
Chapter 4
Design
4.2 Introduction
This project has been designed using numerous diagrammatic techniques. Recall from Section 2.6, that
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.
20
<< Server >>
MySQL
<< database >>
JDBC
{}
<< requires >> {}
<< requires >>
Figure 4.1: Component diagram showing the higher level architecture of the system.
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).
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.
21
Receipt Name
Display Name Available Stock
Key
Price Description
Relationship
Relationship
Meal
attribute
Attribute
Price ID Name
Measurement
ID Name
ID ID Name
Name
Description
0..n 1
BelongsTo
Strength (Drink only)
24
Key Discounted Price
Table # Complete
Relationship
User # Price
Start Time
Entity Call Server
Defined
ID Ingredient Price
entity Order
Relationship
attribute
1
Attribute
Contains
Cooked
Suborder Time ID
1..n ID Price
User #
0..n 1..m
Complete Suborder Contains Suborder Product
Active
Removed
Contains Contains
Food/Drink
Food/Drink
Name Optional
1 1
ID Name Colour
ID Active
1..n
From
ActiveOn
0..n 0..n
To 0..n
0..n
0..m Replaced Replaced
Original
Original
ID
Days
0..1 0..1
0..1
0..1
Name
1..n
0..m
From Contains Set #
ActiveOn
To 0..m Ingredient
Prepared Ingredient
1..n
ID ID Name
Menu Height/Width
N Set 2
Figure 4.4: Entity Relationship of the menu, order, offer and system settings.
25 Carl Abernethy
Select Menu => Select Item(s) => Show Item(s) Select Menu => Select Item(s)
Food
Select Food/drink Drink
Food
=> Select Menu
Drink
Menus
Select Food/drink
=> Select Menu
Menus
Transaction
Grid of items
List
Grid of items
Tables
Tables
Price
Command buttons
Command buttons
3 2 3
Starters
Main Course
1 2 3 1 2 3
1 2 3 1 2 3
Menu
Ordered Food Items
Section
Menu List Of
Ordered Food Items
Section Suborders
Menu
Ordered Food Items
Section
Command
Ordered Food Items
buttons
Tabs
Tabs: Different forms for inputting data
Search
tool
Details of
the selected
item
Items
Different
functions
available
Command buttons
T1
O1
S1
O2
T2
O1 O3
T3
T4
O1
S2
O2 O2
R T5
O3
T6
O3
T7
O1
S3
O2
T8
O3
T9
Start
Table
Table or no table?
No table
No
Add
another
item
Automatically deduct
stock amount.
Confirm order.
Yes
Order contain
Prepare drinks
drink items?
No
Drink: No
&
Drink complete; Food: No
Order contain
infrom server.
food items?
Colour: Colour 2
Drink: Yes
& Food: Yes
Food: No
Cook food.
Food complete;
inform server.
Colour: Colour 3
Server collects
complete food/drink
Yes