ooiwenjieaia201314f online restaurant management system

232
i ( ( O O R R M M S S ) ) O O N N L L I I N N E E R R E E S S T T A A U U R R A A N N T T M M A A N N A A G G E E M M E E N N T T S S Y Y S S T T E E M M By Ooi Wen Jie FACULTY OF APPLIED SCIENCES AND COMPUTING TUNKU ABDUL RAHMAN UNIVERSITY COLLEGE KUALA LUMPUR ACADEMIC YEAR 2013/2014

Upload: cylinder-ooi

Post on 31-Dec-2015

1.329 views

Category:

Documents


2 download

DESCRIPTION

This is Final Documentation for TARC University 2013/2014 Final Year Project Online Restaurant Management System

TRANSCRIPT

Page 1: OoiWenJieAIA201314F Online Restaurant Management System

i

((OORRMMSS))OONNLLIINNEE RREESSTTAAUURRAANNTT

MMAANNAAGGEEMMEENNTT SSYYSSTTEEMM

By

Ooi Wen Jie

FACULTY OF APPLIED SCIENCES AND COMPUTING

TUNKU ABDUL RAHMAN UNIVERSITY COLLEGE

KUALA LUMPUR

ACADEMIC YEAR

2013/2014

Page 2: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management

Project ii

Online Restaurant

Management System

By

Ooi Wen Jie

Supervisor: Dr. Chong Jin Hui

A project report submitted to the

Faculty of Applied Sciences and Computing

in partial fulfillment of the requirement for the

Bachelor of Science, Campbell University, U.S.A,

And

Advanced Diploma in Science.

Department of Information and Communication Technologies

Faculty of Applied Sciences and Computing

Tunku Abdul Rahman University College

Kuala Lumpur

2013/2014

Copyright 2013 by Tunku Abdul Rahman University College.

All rights reserved. No part of this project documentation may be reproduced,

stored in retrieval system, or transmitted in any form or by any means without

prior permission of Tunku Abdul Rahman University College.

Page 3: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Declaration

Project iii

DDeeccllaarraattiioonn The project submitted herewith is a result of my own efforts in totality and in every

aspect of the project works. All information that has been obtained from other

sources had been fully acknowledged. I understand that any plagiarism, cheating or

collusion or any sorts constitutes a breach of College rules and regulations and would

be subjected to disciplinary actions.

__________________________

Student‟s Name : Ooi Wen Jie

Programme :Advanced Diploma in Science (Information System Engineering Year 2)

Page 4: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Abstract

Project iv

AAbbssttrraacctt

In partial fulfillment of the requirement of Bachelor of Science, we are required to carry out a

final year project development. The purpose of this project is to help the restaurant to

maintain all the restaurant information, accept food orders from the mobile application or

web application, efficiently arrange food preparing lists for kitchen, manage customer

reservation and generate useful report.

This project will be consisting two types of application which is the web application and

mobile application. The web application of this system is used to maintain restaurant data

such as membership maintenance and menu maintenance manage reservation, perform food

ordering, payment, kitchen maintenance and reporting. While the mobile application will be

consist of customer mobile applications and captain mobile application. The details of the

module will be discussed in this document.

The methodology practiced is the SDLC methodology which emphasized on project

development start from the initial phase through the maintenance phase of the completed

system. The development process will be the start of the sequence of system planning,

requirement analysis, system design, system implementation, system testing and system

maintenance. This project is developed using Microsoft Visual Studio 2012 and the database

used is MsSQL. IBM RSA and MS Project 2010 also used in the project documentation.

At the end, the project is fully implemented complied with the project objective and aims

declared at the earliest stages. The strength of the project is interactive, efficient,

unambiguous, user friendly, maintainable, portable and reliable. The weakness of the project

is inability of supporting more than one restaurant, inaccessible when no Internet access and

slow performance when dealing with databases.

In a nutshell, I had learned and gained much experience after completing this project in term

of coding or documentation. The project implemented is considered as a complete system as

it able to provide all the necessary functions and services that request by the user. All of the

basic functions that a traditional a restaurant system should have is included in this project.

The project implemented still can be improved by implementing password encryption, forum

discussion, ability in inventory control and managing more than one restaurant.

Page 5: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Acknowledgement

Project vi

AAcckknnoowwlleeddggeemmeenntt

I wish to express my sincere gratitude to project supervisor, Dr. Chong Jin Hui, for his

guidance, constant support and encouragement throughout the completion of this final

year project. I would also like to convey my heartfelt appreciation to Dr. Chong for

contributing his ideas and in-depth knowledge in the field.

A warm thank is extended to my FYP partner Mr. Lim Sau Jian for sharing his

resources, opinions, knowledge, experience and skills in programming and

development methodology, so generously. I would also like to personally thank my

family, friends in TAR University College and my fellow course-mates who have one

way or another extended their assistance in completing this project.

Last, but not least, I wish to acknowledge the unwavering support shown by Dr.

Chong Jin Hui and Moderator Mr. Peter Lai Joo Choi.

Page 6: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Table of Contents

Project vii

TTaabbllee ooff CCoonntteennttss

Declaration.............................................................................................................................. iii

Abstract .................................................................................................................................... iv

Acknowledgement ................................................................................................................... vi

1.1 Introduction ........................................................................................................................... 2 1.2 Problem Outline .................................................................................................................... 2 1.3 Project Aims and Objectives ................................................................................................. 3 1.4 Targeted Customer ................................................................................................................ 4 1.5 System Functionalities Chart ................................................................................................ 5 1.6 Project Scope (Web Application) ......................................................................................... 6 1.7 Project Scope (Mobile Application) ................................................................................... 10 1.8 Development Environment ................................................................................................. 12 1.9 Operation Environment ....................................................................................................... 13 1.10 Business Architecture ...................................................................................................... 14 1.11 System Architecture ........................................................................................................ 15 1.12 Network Architecture ...................................................................................................... 16 1.13 Project Schedule .............................................................................................................. 17 1.14 Project Team and Organization ....................................................................................... 18 1.15 Methodology Used .......................................................................................................... 18 1.16 Chapter Summary ............................................................................................................ 19

2. Requirements Analysis ................................................................................................... 21

2.1 Introduction ......................................................................................................................... 21 2.2 Fact Gathering..................................................................................................................... 21 2.3 Functional Requirement ...................................................................................................... 23 2.4 Non-Functional Requirement ............................................................................................. 37 2.5 Overview Use Case Diagram .............................................................................................. 39 2.6 Detail Use Case Diagram and Use Case Description ......................................................... 40 2.7 Business Level Activity Diagram ....................................................................................... 56 2.8 Detailed Activity Diagram .................................................................................................. 60 2.9 Sequence Diagram .............................................................................................................. 67 2.10 Collaboration Diagram .................................................................................................... 73 2.11 Chapter Summary ............................................................................................................ 79

3. System Design .................................................................................................................. 81

3.1 Introduction ......................................................................................................................... 81 3.2 Final Class Diagram............................................................................................................ 81 3.3 Data Dictionary ................................................................................................................... 82 3.4 Normalization ..................................................................................................................... 86 3.5 Screen Design (Sketch Layout) .......................................................................................... 87 3.6 Screen Design ..................................................................................................................... 95 3.7 Report Template Design ................................................................................................... 117 3.8 Core System Flow Design ................................................................................................ 122 3.9 Chapter Summary ............................................................................................................. 126

4. Programming ................................................................................................................. 128

4.1 Introduction ....................................................................................................................... 128 4.2 Critical Coding Within System ......................................................................................... 128

Page 7: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Table of Contents

Project viii

4.3 Chapter Summary ............................................................................................................. 145

5. Software Testing ............................................................................................................ 147

5.1 Introduction ....................................................................................................................... 147 5.2 Level of Testing ................................................................................................................ 147 5.3 Test Plan ........................................................................................................................... 150 5.4 Chapter Summary ............................................................................................................. 163

6. Conclusion ...................................................................................................................... 165

6.1 Introduction ....................................................................................................................... 165 6.2 Link to Seminar ................................................................................................................ 165 6.3 Tools, Techniques and Methodologies ............................................................................. 166 6.4 Achievement of Project Objectives .................................................................................. 167 6.5 Project Management Issues .............................................................................................. 168 6.6 Strengths and Weaknesses ................................................................................................ 169 6.7 Suggestions for Future Improvement................................................................................ 171 6.8 Personal Reflection ........................................................................................................... 172 6.9 Chapter Summary ............................................................................................................. 173

7. References ...................................................................................................................... 174

8. Appendices ..................................................................................................................... 176

9. User Guide ..................................................................................................................... 185

9.1 System Document ............................................................................................................. 185 9.2 Operation Document ......................................................................................................... 198

10. Softcopy .......................................................................................................................... 225

Page 8: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 1 : System Planning

Online Restaurant Management System 1

Chapter 1

System Planning

Page 9: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 1 : System Planning

Online Restaurant Management System 2

1.1 Introduction

This chapter will discuss about the problems faced by most of the restaurant, the proposed

solution with project aims and objectives to overcome the problems, targeted company for the

new system, project scope, overview diagram and general description about the modules of

the system, the system development environment, operational environment, system

architecture, network architecture as well as the methodology practiced in the project

development. This chapter also includes the information about project scheduling and project

team organization.

1.2 Problem Outline

Problem faced by most of the restaurant is the insufficient worker to server large number of

customers, especially during peak hour. Increasing the workforce just to solve peak hour

problem, not seem to be the best solution as it decreases the total profitability of the

restaurant.

Most of the restaurants tend to be practiced old style and inefficient order processing. A

traditional way of taking orders, proceed to the kitchen and then to serve food to the customer

are not current practice anymore. The complex way of ordering increased the waiting time for

another customer and lead non-satisfactory to the customer.

Old styles of ordering tend to have high human mistakes which increasing unnecessary

operating budget. Wrong order processing due to the human mistake will cause wastage of

food and increase the operating budget. The writing of a staff is the main factor, because the

order might be mistakenly interpreted by the other staff. For example, the digit „1‟ might see

wrongly as „7‟, character „C‟ see wrongly as „G‟. This problem mostly happens during the

peak hour as everyone in the restaurant is in a rush condition.

Page 10: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 1 : System Planning

Online Restaurant Management System 3

1.3 Project Aims and Objectives

All the problems mentioned in the above are unjust as it can be solved by our solution -

Online Restaurant Management System, a web application that runs the restaurant service

together with a mobile application. Since the main problem faced by most of the restaurant is

the inefficient and insufficient work force to serve a large number of customers, especially

during peak hour. Therefore, this system serves to improve restaurant service and

management by maintaining all the restaurant information, accept food order from the mobile

application, efficiently arrange food preparing lists for kitchen, manage customer reservation

and generate useful report.

The customer mobile application of this system allows walk-in customers to place their

food order without the need of waiter. They can request a self-order via the application and

restaurant captain will approve their request (via the mobile application for captain) if the

table is seated. Other features for customer is my food list, this feature allow customers to

track their food order status (Served/Preparing/Queuing). Some other functions of the mobile

application include request bill, view menu details, and view restaurant details.

Besides, captain mobile application will be specially designed for restaurant captain.

Restaurant captain will use the mobile application to approve the order request, view/edit

table status, take orders and close order.

The web application of this system is used to maintain restaurant data, manage reservation,

perform food ordering, payment, and reporting. Data maintenance includes membership and

menu. While for the kitchen, system is featured with intelligent food order arrange to improve

food preparing. Staff can mark the food status to served, preparing or queuing.

The aims and objective of this system are to:

Reduce human workforce in the restaurant. Since some of the manual works is

being computerized such as staff management, customer reservation and customer

membership, therefore the needs of larger workforce is not necessary.

Page 11: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 1 : System Planning

Online Restaurant Management System 4

Reduce human mistakes as the system that we develop allows the waiter to enter the

customer‟s order and the system will then display the order in the kitchen‟s monitor.

By implementing this type of working style, it prevents the kitchen staff to

misinterpret the customer order due to handwriting issues and also the chances of

losing of the order sheet.

Simplify food ordering process by allowing the dine-in customers to make their own

food ordering through our developed restaurant mobile application that install in the

customer mobile after the approval and confirmation by the on duty restaurant‟s

captain.

Allow the kitchen department to work in an efficient and effective environment as

the priority queue arrangement of food list is implemented in this system. Besides, the

order taken by front desk can be clearly seen on the monitor and able to obtain the

new orders in a shorter time.

Allow the restaurant staff to efficiently in maintaining the restaurant information

such as customer membership, and menu information. The staff in-charge just need to

key in the details through our system and our system will provide information

maintenance to be made in a simple and easy way.

1.4 Targeted Customer

Our target industry for this Online Restaurant Management System is a restaurant service

industry. Our target user is those restaurants that wish to reduce human workforce in running

their daily operation, eliminate the needs of certain manual works and also computerizing in

their management work.

Page 12: OoiWenJieAIA201314F Online Restaurant Management System

5

1.5 System Functionalities Chart

Diagram 1.5 System Functionalities Chart

Page 13: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 1 : System Planning

Online Restaurant Management System 6

1.6 Project Scope (Web Application)

Diagram 1.6.1 ORMS Web Application Functionalities Chart

Page 14: OoiWenJieAIA201314F Online Restaurant Management System

7

Web Application

Customer Maintenance

Add New Member – allows user to register new membership.

Search Member Details – allows user to search for a particular member's details

Edit Member Details – allows user to make changes in the existing member

information and update the changes in the system database.

Delete Member – allows user to delete a particular membership from the

system database if the customer is no longer having the membership privilege.

Menu Maintenance

Add New Item – allows user to insert a new menu item which includes the new

item name, description, price and category.

Search Item Details – allows user to search for a particular item in system

database by entering a specific keyword such as the item name, item category

and etc.

Edit Item Details – allows user to make changes in the existing menu item

information and update the changes in the system database.

Food Order

Add New Order – allows user to enter the order details that taken from

customers.

Search / View Order – allows user to search for the customer‟s order or view

on the details of the order by entering a specific keyword such as table number.

Edit Order Details – allows user to make changes on the order details when the

customer request for changes if the food status is not “Served” or “Preparing”.

Remove Order – allows user to remove the order that made by the customer if

the customer have canceled the order.

Check Order Status – allows user to check on the status of each item in the

order to make sure that all orders have been served on the customer table.

Page 15: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 1 : System Planning

Online Restaurant Management System 8

Reservation

Verifies Membership – allows user to verify the validity of customer

membership before a reservation is made. This verification process requires the

customer name or customer member ID.

Check seat & time slot availability – allows user to check for the table and time

slot availability that request by the customer.

Update Reservation – allows user to record the reservation details after a

reservation is successfully made.

Reservation Notification (System Alert – SMS) – generate a short message

service to the customer that make reservation to act as a reminder.

Remove Reservation – allows user to remove the reservation details from the

system database when the customer have cancelled their reservation.

Kitchen

Display Food – allow the kitchen department to display on the current restaurant

orders that are not served to the customer.

Filter List – allow the kitchen department to arrange or filter the list of the

orders that being served based on the given condition.

Edit Food Status – allow the kitchen department to edit the food ordering status

either to Queuing or Preparing state to an order listed.

Report

Identify Report Type – allows user to choose the report type that they wish to

have such as daily sales report, unattended reservation report and so on.

Retrieve Database – search through the system database for the required

information to generate the report.

Generate Report – allows user to view on the report that they requested on the

screen. The user may also export the report into both softcopy and hardcopy.

Page 16: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 1 : System Planning

Online Restaurant Management System 9

Payment

Identify Payment Type – allows the user to choose what type of payment that

customer wish to carry out such as cash payment or credit payment.

Calculate Payment – calculate the total payment need to be paid by the customer

when billing is requested by customer.

Calculate Balance – will enter the cash amount given by the customer and the

system will calculate the balance of the payment.

Generate Receipt – generate a receipt to the customer after the payment is

successfully paid.

Generate Bill – generate a billing statement when a customer request to make

payment for his/her orders.

Page 17: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 1 : System Planning

Online Restaurant Management System 10

1.7 Project Scope (Mobile Application)

Diagram 1.7.1 ORMS Mobile Application Functionalities Chart

Mobile Application For Customer

Customer can use this mobile application to place orders, request bill, track food status,

edit profile details, and search food details

Food Menu

Search Food – Search menu items using keyword and category

Display Description – Display detail description of food after search

Order

Request Order – Requests a self-order and wait approval from the captain

Add Order Item – Click on the image button to order desire food

Edit Order Item – Edit quantity, add remarks or remove order item

Display Payment – Calculate and display total payment required

Request Bill – Notify waiter to collect payment

Page 18: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 1 : System Planning

Online Restaurant Management System 11

Food List

Track Food – Check food status whether (Served, Preparing, Queuing)

Cancel Food – Remove unwanted food only if the food has not yet prepared

Profile

Display Profile – Display profile using signed-in user ID.

Edit Profile – Edit user details if the customer is signed-in

Change password – Allow user to change new password

Mobile Application For Captain

This application will be owned by the restaurant captain to approve orders, take orders,

check all table status, close order and receive bill notification.

Order Management

Create order – Generate new order and payment.

Approve Order – Allow customer to make self-order after further verify the

customer existence

Take Order – Captain will order food that ordered by the customer

Edit Order – Captain will change quantity or remove food ordered by the

customer

Close Order – Cancel order if customer not going to take any order

Table Management

View Status – Check table status (reserved, available, seated)

Edit Status – Change table status (cancel reserved to available)

Page 19: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 1 : System Planning

Online Restaurant Management System 12

1.8 Development Environment

Diagram 1.8.1 ORMS Development Environment

ORMS will be developed using the C# language because this language is supported in both

mobile and web application development in Microsoft Visual Studio 2012. This will be an

advantage because the developers can provide support to each other through the familiarities

on same programming language. The Microsoft SQL Database server will be the shared

database for the entire system to ensure the data consistency through different access from

multiple applications. All the details about the development of ORMS will be documented

using Microsoft Word 2013 and the system diagrams will be prepared using Microsoft

Project and Smart Draw Modelling tool. The main communication methods along the

development of ORMS will be face to face meeting, emailing using Gmail, and web

conferencing using Skype.

Page 20: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 1 : System Planning

Online Restaurant Management System 13

1.9 Operation Environment

Diagram 1.9.1 ORMS Operational Environment

Two tables above specified the minimum requirement for mobile device and computer to

support all the features of ORMS system. ORMS will be hosted on a web server where it can

be accessed by device browsers that fulfil minimum capability mentioned. While the mobile

application will be implemented in mobile device that operate under the Windows Phone

operating system. Besides, ORMS would need the support of hardware such as a printer,

switch, cashier machine, and receipt printer. Both of the software and network architecture of

ORMS will be presented in the next part of this document.

Page 21: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 1 : System Planning

Online Restaurant Management System 14

1.10 Business Architecture

Diagram 1.10 Business Architecture

In our final year project, three tiers architecture is implemented. It consists of presentation

tier, application tier and data tier. In the presentation tier or known as top layer, we will have

all the user device such as PCs and mobile devices which implement the graphical user

interface and display the system information. In the application tier or middle layer, we will

install the Online Restaurant Management System in the application server and database will

be in the data tier. The users interact with the system in the presentation tier by sending

request through the interface or receive result from the application tier. Application tier will

be in-charge of all processing and request from client while data tier is responsible to store all

the data or information about the restaurant.

Three-tier architecture ensures:

Data Integrity. The application tier will ensure all the updates from presentation tier

are valid data before it update to the database. Therefore, this architecture can

improve the data integrity and reduce the risk of client application corrupting the

database data.

Security. Three-tier application is more secure because the client does not get access

to the database directly. Thus, the client will not obtain unauthorized data or modified

the data in the database easily.

Maintainability. Each of the tiers is independent layer, this allow us make changes

easily without affecting any other tier. For example, any changes on the user interface

will not resulting changes on the application tier. Therefore, it makes the maintenance

work become easier.

Page 22: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 1 : System Planning

Online Restaurant Management System 15

1.11 System Architecture

Diagram 1.10.1 ORMS System Software Architecture

In Online Restaurant Management System (ORMS), Microsoft SQL Server database will

directly attach to web application. To make all mobile applications and the web application

access the same data, we use (WCF) Windows Communication Foundation to expose all

operations for mobile application. To form a service oriented environment, all mobile

applications will be consuming the service for any features that need communication with the

shared database. Other benefits of using WCF as the bridge for the communication is this

technology does support integration to non-windows based application, which mean the

future expansion of system to Android and IOS platform can be done at minimum effort.

Page 23: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 1 : System Planning

Online Restaurant Management System 16

1.12 Network Architecture

Diagram 1.11.1 ORMS System Network Architecture

The system will operate under both internal and external networks. Restaurant customers can

access to the website using their personal devices while restaurant staff can connect to

company network and server resources via Internet. One broadband Internet connection will

be shared within the area of restaurant by setting up a wireless access point and internal

network using a switch. We will set up a server for restaurant web application, email and

database which connected to the ADSL modem. The internal network includes the sharing of

Internet connection, printer and server resources. Mobile ordering can be done in the

restaurant by connecting the server via a wireless access point.

Page 24: OoiWenJieAIA201314F Online Restaurant Management System

17

1.13 Project Schedule

Diagram 1.13.1 ORMS Project Management Gantt Chart

Page 25: OoiWenJieAIA201314F Online Restaurant Management System

18

1.14 Project Team and Organization

Lim Sau Jian Ooi Wen Jie

Mobile application: Customer Web Application

Food menu Customer maintenance Food order Menu maintenance Food preparing status Food order Profile setting Payment

Mobile application: Captain Reservation

Order Management Kitchen Table Management Report

Web Services Database

All WCF methods All Database design

1.15 Methodology Used

The methodology that practiced in this project development is System Development Life

Cycle or known as SDLC. SDLC is a conceptual model that widely used in project

management which describes the stages involved in an information system development

project start from the initial phase through the maintenance phase of the completed system.

The common development phases in SDLC are system planning, requirement analysis,

system designing, system implementation, deployment and maintenance. Although there are

many other approaches available for selection, however SDLC is still more suitable to our

development condition.

In general, an SDLC methodology practicing the following steps:

1. The existing system is evaluated to identify the deficiencies by interviewing the

system user or consulting with the support personnel.

2. The new system requirement and solution to overcome the identified deficiencies are

defined to act as an improvement for the new system.

3. The new system is designed. Plans are created to address the physical construction,

hardware requirement, operating systems, programming and security issues.

4. The new system is then developed. The new components and programs must be

obtained and installed. Users of the system will be provided training in its use, and all

aspects of performance must be tested thoroughly. A necessary adjustment is made at

this stage to meet the user requirement.

Page 26: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 1 : System Planning

Project 19

5. The system is put into use. The new system can phased in according to application or

location, and the old system gradually replaced. In some other cases, it is more cost-

effective if shut down the old system and replaced by the new system.

6. Once the new system is up and running, it should be closely evaluated by the

development team. Maintenance must be available all the times to overcome the

problems met. Users of the system will be kept up-to-date on the latest modifications

and procedures.

1.16 Chapter Summary

Basically, this chapter served to summarize the initial phase of the project development

which is focused on the introductions of the system and the planning of the project

development.

Besides, in this chapter also describe the project objectives and aim to provide a better

direction of the services the system should provide and problem that the system should

overcome. At the same time, project scope and project schedule are provided in order to

allow the user to have the preview on the overall structure of the project development and the

estimated duration to complete the overall project development. Development environment,

operation environment, system architecture as well as network architecture is described to

provide better understanding to ensure that the final system can be developed and operate in a

smooth manner. At last, a Gantt Chart is provided by the deliverable submission deadline to

allow us to organize the project task properly and to ensure utilization of time during project

development.

Page 27: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 1 : System Planning

Project 20

Chapter 2

Requirements Analysis

Page 28: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 21

22.. RReeqquuiirreemmeennttss AAnnaallyyssiiss

2.1 Introduction

In this chapter, it will discuss about the system requirement specification which is the

functional and non-functional requirements to provide a clear direction to the user what

services does the new system provide. Besides, UML diagrams such as Use Case Diagram,

Activity Diagram, Business Level Activity Diagram, Sequence Diagram as well as

Collaboration Diagram are provided to allow the user to better understanding of the system

workflow.

2.2 Fact Gathering

Generally, there are many fact finding techniques that are available to be used by the system

analyst to gather the information for the system requirement. It is important for the system

analyst to understand the needs of the client so that it would not bring up any conflict during

the implementation stage. The user requirement can be identified through the common fact

finding techniques which is interview, questionnaire and observation.

2.2.1 Interview

The interview is one of the face-to-face fact-gathering techniques that widely used by a

system analyst to gather information from the user or client and the interviewee will respond

to the questions asked which include open-ended and closed-ended and the answer will be

documented. The interviewer will prepare an Interview Plan before the interview is carried

out which clearly identified the objectives, time and venue, the interviewee and the

predefined questions.

2.2.2 Questionnaire

Questionnaires are of the research technique that can be applied in fact finding for system

projects where the users of the system are given a list of questions noted in the questionnaires

to be filled up and returned to the system analyst after completion. Questionnaires are a

useful fact-finding technique when the system analysts wish to gather information from a

large number of potential users due to time frame limitation. The reason is it is impossible for

the system analyst to interview each individual to gather all information needed.

Page 29: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 22

Questionnaires are divided into two types: Open-Response Based and Closed-Response

Based. Open-Response Based questionnaires are normally used to gather information where

the information are essential and important features of the system while Close-Response

Based questionnaire is used to collect factual information about the system.

2.2.3 Observation

Observation is a powerful tool for information gathering regarding the current system. The

system analyst can experience the usage of the system rather than describe and hearing from

the interviewees. The system analyst can experience the perspective and better understanding

the system procedures and the requirements needed to use the system. Besides, the system

analyst can observe the current Restaurant Management System processes or procedures to

understand the business flow/ needs and make necessary improvement.

Page 30: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 23

2.3 Functional Requirement

Module: Membership Maintenance

Diagram 2.4.1 Membership Maintenance

User Requirement

This system must allow users to add new member, update‟s member details, delete

and search for existing member details.

System Requirement

1.0 Add new member (Member Registration)

The system must allow the user to enter new member details.

The system must allow the user to enter desirable username.

The system must validate the details enter by user such as IC Number, Phone

Number, Email and so on.

If the user enters invalid member details, an error message will be prompt and

user needs to re-enter the invalid details.

If the member details are valid, the system will prompt a confirmation

message.

If user clicks on confirm button, the system will display a successful message,

store the details into database and an email will be sent.

2.0 Edit member details (Member Profile)

The system shall display the searching result based on member login

credentials.

If the member details cannot be matched in the database, the system will

prompt an error message.

Page 31: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 24

The system shall allow the user to make changes in the current data displayed

on screen such as address, phone and etc.

The system will validate the information that edits by users.

If the user enters invalid information, the system will prompt an error

message and user needs to reenter the information.

If the member details are valid, the system will prompt a confirmation

message.

If user clicks on confirm button, the system will display a successful message

and updates the details in the database.

3.0 Search member details

The system must allow the user to enter a specific input such as the username

for searching purpose.

The system shall display the searching result if found in database.

If the member details cannot be matched in the database, the system will

prompt an error message.

The system shall allow the user to reenter the searching details.

4.0 Delete member

The system must allow the user to enter a specific input such as the username

for searching purpose.

The system shall display the searching result if found in database.

If the member details cannot be matched in the database, the system will

prompt an error message.

The system shall allow the user to reenter the searching details.

The system shall allow the user to delete the selected member membership.

The system shall prompt a confirmation message when the user clicks on the

delete button.

The system must be able to update the member status from the database,

prompt a successful message and send an email to deleted member email.

Page 32: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 25

Module: Menu Maintenance

Diagram 2.4.2 Menu Maintenance

User Requirement

This system must allow users to add new items, update‟s item details and search for

existing item details.

System Requirement

1.0 Add new item

The system must allow the user to enter new item details.

The system must be able to generate a new item ID.

The system must validate the details enter by the user.

If the user enters invalid item details, an error message will be prompt and

user needs to re-enter the invalid details.

If the item details are valid, the system will prompt a confirmation message.

If user clicks on confirm button, the system will display a successful message

and store the details into the database.

2.0 Search item details

The system must allow the user to enter a specific input such as an item ID for

searching purpose.

The system shall display the searching result if found in database.

If the item details cannot be matched in the database, the system will prompt

an error message.

The system shall allow the user to reenter the searching details.

Page 33: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 26

3.0 Edit item details

The system must allow the user to enter a specific input such as an item ID for

searching purpose.

The system shall display the searching result if found in database.

If the item details cannot be matched in the database, the system will prompt

an error message.

The system shall allow the user to reenter the searching details.

The system shall allow the user to make changes in the current data displayed

on screen such as address, phone and etc.

The system will validate the information that edits by users.

If the user enters invalid information, the system will prompt an error

message and user needs to reenter the information.

If the item details are valid, the system will prompt a confirmation message.

If user clicks on confirm button, the system will display a successful message

and updates the details in the database.

Page 34: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 27

Module: Food Order

Diagram 2.4.3 Food Order

User Requirement

The system allows user to add new order details, update order details, remove an

order, check and search for existing order details.

System Requirement

1.0 Add new order

The system must allow the user to enter new order details.

The system must be able to generate a new order ID.

The system will prompt a confirmation message when the user clicks on

“Confirm” button.

If user clicks on confirm button, the system will display a successful message

and store the details into the database.

The system shall create a new payment details for each new order stored.

The system will display the order details on kitchen screen.

2.0 Search / View order

The system must allow the user to enter a specific input such as order ID for

searching purpose.

The system shall display the searching result if found in database.

If the item details cannot be matched in the database, the system will prompt

an error message.

The system shall allow the user to reenter the searching details.

Page 35: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 28

3.0 Edit order details

The system must allow the user to enter a specific input such as order ID for

searching purpose.

The system shall display the searching result if found in database.

If the entered details cannot be matched in the database, the system will

prompt an error message.

The system shall allow the user to reenter the searching details.

The system shall allow the user to add-in additional order details into the

order displayed on screen.

The system will update the details in database when user makes changes on

the item details.

The system shall also update the order details screen in the kitchen and also

the payment for that order.

The system shall allow the user to make changes in the order display on

screen.

The system prohibited user to make changes on the item list states that are

shown “Preparing” or “Served”, only items with status “Queuing” can make

changes.

4.0 Remove order

The system must allow the user to enter a specific input such as order ID for

searching purpose.

The system shall display the searching result if found in database.

If the item details cannot be matched in the database, the system will prompt

an error message.

The system shall allow the user to choose which item to delete.

The system prohibited user to make changes on the item list states that are

shown “Preparing” or “Served”, only items with status “Queuing” can be

make delete.

The system will prompt an error message if the user deletes the item status that

shown “Preparing” or “Served”.

The system shall prompt a confirmation message when the user clicks on the

delete button.

Page 36: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 29

The system must be able to delete the order record from the database and

prompt a successful message.

The system shall also update the order details screen in the kitchen and also

the payment for that order.

5.0 Check order status

The system must allow the user to enter a specific input such as order ID for

searching purpose.

The system shall display the searching result if found in database.

If the item details cannot be matched in the database, the system will prompt

an error message.

The system shall allow the user to reenter the searching details.

Page 37: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 30

Module: Reservation

Diagram 2.4.4 Reservation

User Requirement

The system must be able to verify the customer membership, allow user to select seats

and time slot availability, update the reservation, send out reservation notification and

also remove reservation from the database.

System Requirement

1.0 Verify Membership

The system must allow the user to enter a specific input such as member

username for searching purpose.

The system shall display the searching result if found in database.

If the member details cannot be matched in the database, the system will

prompt an error message.

The system shall allow the user to reenter the searching details.

The system prohibits customer that is not member to make reservation.

2.0 Select seat & time slot

The system shall display all table status on the screen.

After verification of customer status is successful, the system will display the

seat and time slot availability on the screen.

The system shall allow the user to choose the time slot for reservation.

The system shall allow the user to choose the seat for reservation.

Page 38: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 31

3.0 Update Reservation

If the criteria choose by user is not available, the system will prompt an error

message.

The system shall allow the user to reselect the reservation details.

If the time slot and seat choose by user is valid, a confirmation message will

be prompt on the screen.

If user clicks on confirm button, the system will display a successful message

and store the reservation in the database.

4.0 Reservation notification

The system will retrieve the reservation details from the database.

The system will send out a short message service notification to the customer

that makes the reservation when the staff clicks on send button.

5.0 Remove Reservation

The system must allow the user to enter a specific input such as member

username for searching purpose.

The system shall display the searching result if found in database.

If the member details cannot be matched in the database, the system will

prompt an error message.

The system shall allow the user to reenter the searching details.

The system shall allow the user to choose the reservation record to delete.

The system shall prompt a confirmation message when the delete button is

clicked.

If the reservation is successfully removed, the system shall update the

reservation details in the database.

Page 39: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 32

Module: Payment

Diagram 2.4.5 Payment

User Requirement

This system must allow customers to make their fee payment via online (PayPal) or

cash payment. This system must also generate a receipt upon the completion of

payment.

System Requirement

1.0 Identify Payment Type

The system must allow the user to enter a specific input such as table number,

order ID for searching purpose.

The system shall display the searching result if found in database.

If the payment details cannot be matched in the database, the system will

prompt an error message.

The system shall allow the user to reenter the searching details.

The system will run 2.0 Calculate Payment function.

The system shall allow the user to choose which types of payment the

customer wants to carry out.

If the user chooses cash payment, the system will run 3.0 Calculate Balance

function.

If the user chooses payment via online, the customer shall be able to access to

their PayPal account via this module.

The system will prompt a warning message if the wrong ID / password is

entered for accessing customer Paypal account.

Page 40: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 33

The customer shall be able to make their payment via this system after

customer access to their Paypal account successfully.

If Paypal method is selected and the customer Paypal amount is not enough to

clear the payment, the system shall cancel the transaction and prompt an

unsuccessful message.

The system shall be able to update the customer payment status after the

payment is made.

If the payment is successfully made, the system will run 4.0 Generate receipt

function.

2.0 Calculate Payment

The system will retrieve the order details from the database.

The system will identify the customer membership status for discount purpose.

The system will calculate the total payment for that order.

The system will display the total payment to be paid on screen.

3.0 Calculate Balance

The system shall allow the user to enter the cash amount paid by the customer.

The system will compare the cash amount received with the actual amount of

payment.

The system will prompt an error message if the cash amount paid is lesser

than the actual amount of payment.

The system will calculate the balance if the cash amount paid is greater than

the actual amount of payment

The system will display the total balance on the screen.

The system will update the customer payment details.

The system will run 4.0 Generate Receipt function.

4.0 Generate Receipt

The system shall be able to retrieve the successful paid payment details from

the database.

The system shall allow the user to choose want to print the receipt or export

the receipt to softcopy.

Page 41: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 34

5.0 Generate Bill

The system must allow the user to enter a specific input such as table number,

order ID for searching purpose.

The system will display the searching payment result on the screen.

The system shall allow the user to print the bill for showing to the customer.

If the payment details cannot be matched in the database, the system will

prompt an error message.

Page 42: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 35

Module: Report

Diagram 2.4.6 Report

User Requirement

This system must allow users to select 5 choices of report type and print out the report.

System Requirement

1.0 Identify report type

The system shall allow user to choose the report type such as Daily Sales

report, Unattended Reservation Report, Member Registration Report, Top 5

Customer Report and Top 5 Sales Report.

The system shall allow user to select the parameter to generate reports such as

start date and end date.

The system will validate the parameter select by the user.

The system will prompt an error message if the parameter selected is not

valid.

2.0 Retrieve database

The system will retrieve the information based on the details select by the

user.

3.0 Generate report

The system will display a report on the screen.

The system shall allow the user to print the report.

The system shall allow the user to export the report to softcopy.

Page 43: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 36

Module: Kitchen Maintenance

Diagram 2.4.7 Kitchen Maintenance

User Requirement

This application must allow the user to manage the food preparing list and the food

ordered will be arranged according to the algorithm used to improve the efficiency of

food preparing.

System Requirement

1.0 Display Food

This application will retrieve the order details from the database.

This application will display the ordered food to prepare on the screen.

2.0 Filter List

This application shall allow user to select the type of filter list “Queue” or

“Dequeue”.

If “Dequeue” filter type is chosen, the kitchen preparing screen will display

the food ordering list based on food status and the order taken time only.

If “Queue” filter type is chosen, the kitchen preparing screen will display the

food ordering list based on the food status and merge the same type of food

item that orders intervals are between 5 minutes.

3.0 Edit Food

This application shall display the food ordered list on screen.

This application shall allow user to change the food status such as from

“Queuing” to “Preparing”.

Page 44: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 37

2.4 Non-Functional Requirement

Usability

Usability quality attributes measures the degree of how satisfaction of the user when they use

the system in term of meeting their requirements, intuitive to use and easy to navigate

(MSDN, n.d.). The Online Restaurant Management System must be able to meet the end

users requirements so that the end users can carry out their work effectively and will not

resist the system. The Restaurant Mobile Application must be designed in a user familiar way

so that the mobile users can use it intuitively without excessive training or guidance required.

Availability

Availability quality attributes measures the percentages of system downtime over a

predefined period of time (MSDN, n.d.). It can be defined as the proportion time which the

system is operating and data are available as needed. ORMS is an online system and therefore

it is important to ensure that the system is highly available for its end-user such as restaurant

staff when they need it for the restaurant business transaction. In other words, the staffs must

be able to access the system all the time and obtain the services or information that they want.

Conceptual integrity

Conceptual integrity quality attributes defining the consistency and coherence among the

components or modules designed (MSDN, n.d.). It is important to maintain the consistency

among the modules designed as the Online Restaurant Management System (ORMS) is made

up from 7 modules. If consistency does not practice, it would require a longer time for the

technician to carry out system maintenance and system upgrade due to different programmer

for each module will have a different variable declaration for the same specific input and

coding styles.

Understandability

Understandability quality attributes measures the degrees of the project team‟s understanding

towards the system‟s purpose and requirements at the end of the initiation phase (Anon.,

2009). The duration of completing the ORMS project is a three month project which is a tight

schedule. It is important for the project team understand the problem that proposed by the

client and come out with solutions that does not need to change the business nature of the

client. Besides, it also prevents any frequent changes in the project during the development of

the client.

Page 45: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 38

Portability

Portability quality attributes measure the ability of the system to operate in different

computing environments (Computer Hope, n.d.). The Online Restaurant Management System

is an online system that will be using web hosting services which allows the restaurant staff

access to the system through any web browser from any computing devices at any time with

Internet availability.

Interoperability

Interoperability quality attributes measures the ability of two or more systems to

communicate and cooperate at runtime by exchanging information and use the information

exchanged for their operations (MSDN, n.d.). In this project, Online Restaurant Management

System and Restaurant Mobile Application will be implemented. It is important to ensure that

both of the system can communicate to each other and exchanging information as the orders

that taken from Restaurant Mobile Application will be displayed in the kitchen module of

Online Restaurant Management System.

Page 46: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 39

2.5 Overview Use Case Diagram

Overview Use Case Diagram of Online Restaurant Management System

Diagram 2.5.1 Overview Use Case Diagram of ORMS

Page 47: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 40

2.6 Detail Use Case Diagram and Use Case Description

Membership Maintenance Detail Use Case Diagram

Diagram 2.6.1 Membership Maintenance Detail Use Case Diagram

Membership Maintenance Use Case Description

Use Case Name : Membership Maintenance

Actors : Staff

Brief Description: This use case describes how a staff can record their member profile,

update, delete and edit their profile.

Pre-condition: The Staff is logged-in into the system.

Normal Flow of Events :

Actor Actions System Response

1. User clicks on „Membership

Maintenance‟ button to enter the page.

3. User decides whether they want to add,

search, edit or delete the member‟s

profile.

2. The system will display the

maintenance interface.

Page 48: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 41

If the user wants to add a new member

profile S-1 : add new member is

performed.

If the user wants to search a member

profile S-2 : search member is performed.

If the user wants to edit a member profile

S-3 : edit member is performed.

If the user wants to delete a member

profile S-4 : delete member is performed.

Sub Flows:

S-1: Add Member

1. The system will display a membership form.

2. The user will enter the member details.

3. The system will validate the detail entered.

4. If valid, the new member is inserted into the membership database.

S-2: Search Member

1. The user will enter the keyword required for searching a particular member.

2. The system will search the particular member record based on the keyword

and display in proper format.

S-3 : Edit Member

1. The user will enter the keyword required for searching a particular member.

2. The system will search the particular member record based on the keyword

and display in proper format.

3. The staff can edit the member detail and click on submit button.

4. The system will validate the updated detail.

5. If valid, the system will update the member detail in the database.

S-4 : Delete Member

1. The user will enter the keyword required for searching a particular member.

2. The system will search the particular member record based on the keyword

and display in proper format.

3. The Staff can delete the member detail by click on the delete button.

4. The system will prompt a confirmation message.

5. If the user clicks on confirm button, the system will delete the member

detail from the database.

Page 49: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 42

Alternate Flows:

S-1, 3a1: If user enter an invalid member details, the system prompt an error message and

goes back to Step 2 of S-1.

S-2, 1a1: If user enters an invalid keyword for searching the member detail, the system will

prompt an error message and goes back to Step 1 of S-2.

S-3, 1a1: If user enters an invalid keyword for searching the member detail, the system will

prompt an error message and goes back to Step 1 of S-3.

S-3, 3a1: If user enter an invalid updated member details, the system prompt an error

message and goes back to Step 3 of S-3.

S-4,1a1: If user enters an invalid keyword for searching the member detail, the system will

prompt an error message and goes back to Step 1 of S-4.

Page 50: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 43

Menu Maintenance Detail Use Case Diagram

Diagram 2.6.2 Membership Maintenance Detail Use Case Diagram

Menu Maintenance Use Case Description

Use Case Name : Menu Maintenance

Actors : Staff

Brief Description: This use case describes how a staff can add, update, delete and edit their

menu detail.

Pre-condition: The Staff is logged-in into the system.

Normal Flow of Events :

Actor Actions System Response

1. User clicks on „Menu Maintenance‟

button to enter the page.

3. User decides whether they want to add,

search, edit or delete the member‟s

profile.

If the user wants to add a new menu

record S-1 : add new menu is performed.

2. The system will display the

maintenance interface.

Page 51: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 44

If the user wants to search a menu record

S-2 : search menu is performed.

If the user wants to edit a menu record S-

3 : edit menu is performed.

Sub Flows:

S-1: Add Menu

1. The system will display a menu form.

2. The user will enter the menu details.

3. The system will validate the detail entered.

4. If valid, the new menu record is inserted into the menu database.

S-2: Search Menu

1. The user will enter the keyword required for searching a particular menu

record.

2. The system will search the particular menu record based on the keyword

and display in proper format.

S-3 : Edit Menu

1. The user will enter the keyword required for searching a particular menu

record.

2. The system will search the particular menu record based on the keyword

and display in proper format.

3. The staff can edit the menu detail and click on submit button.

4. The system will validate the updated detail.

5. If valid, the system will update the menu detail in the database.

Alternate Flows:

S-1, 3a1: If user enter an invalid menu details, the system prompt an error message and

goes back to Step 2 of S-1.

S-2, 1a1: If user enters an invalid keyword for searching the menu record, the system will

prompt an error message and goes back to Step 1 of S-2.

S-3, 1a1: If user enters an invalid keyword for searching the menu record, the system will

prompt an error message and goes back to Step 1 of S-3.

S-3, 3a1: If user enter an invalid updated menu detail, the system prompt an error message

and goes back to Step 3 of S-3.

Page 52: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 45

Food Order Detail Use Case Diagram

Diagram 2.6.3 Food Order Detail Use Case Diagram

Food Order Use Case Description

Use Case Name : Food Order

Actors : Staff

Brief Description: This use case describes how a staff can add, edit, remove an order and

check the order detail.

Pre-condition: The Staff is logged-in into the system.

Normal Flow of Events :

Actor Actions System Response

1. User clicks on „Food Order‟ button to

enter the page.

3. User decides whether they want to add,

edit, remove or check the order detail.

If the user wants to add a new order S-1 :

add new order is performed.

If the user wants check an order S-2 :

2. The system will display the food

ordering interface.

Page 53: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 46

check order is performed.

If the user wants to edit an order S-3 :

edit order is performed.

If the user wants to remove an order S-4 :

remove order is performed.

Sub Flows:

S-1: Add Order

1. The system will display a menu list with ordering form.

2. The user will enter the order details.

3. The system will validate the detail entered.

4. If valid, the new order is inserted into the order database and new payment

is created in the payment database.

S-2: Check Order

1. The user will enter the keyword required for searching a particular order

detail.

2. The system will search the particular order detail based on the keyword and

display in proper format.

S-3 : Edit Order

1. The user will enter the keyword required for searching a particular order

detail.

2. The system will search the particular order detail based on the keyword and

display in proper format.

3. The staff can edit the order detail and click on submit button.

4. The system will validate the updated detail.

5. If valid, the system will update the order detail and payment detail in the

database.

S-4 : Remove Order

1. The user will enter the keyword required for searching a particular order

detail.

2. The system will search the particular order detail based on the keyword and

display in proper format.

3. The Staff can remove the order detail by click on the delete button.

4. The system will prompt a confirmation message.

5. If the user clicks on confirm button, the system will delete the order detail

from the database and void the payment detail too.

Page 54: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 47

Alternate Flows:

S-1, 3a1: If user enter an invalid order details, the system prompt an error message and

goes back to Step 2 of S-1.

S-2, 1a1: If user enters an invalid keyword for searching the order detail, the system will

prompt an error message and goes back to Step 1 of S-2.

S-3, 1a1: If user enters an invalid keyword for searching the order detail, the system will

prompt an error message and goes back to Step 1 of S-3.

S-3, 3a1: If user enter an invalid updated order details, the system prompt an error message

and goes back to Step 3 of S-3.

S-4,1a1: If user enters an invalid keyword for searching the order detail, the system will

prompt an error message and goes back to Step 1 of S-4.

Page 55: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 48

Reservation Detail Use Case Diagram

Diagram 2.6.4 Reservation Detail Use Case Diagram

Reservation Use Case Description

Use Case Name : Reservation

Actors : Staff

Brief Description: This use case describes how a staff can add, delete, search a reservation

and check for the reservation detail.

Pre-condition: The Staff is logged-in into the system.

Normal Flow of Events :

Actor Actions System Response

1. User clicks on „Reservation‟ button to

enter the page.

3. User will enter the member ID.

5. User decides whether they want to add,

search, edit or delete the member‟s

profile.

2. The system will display the reservation

interface.

4. The system will validate the existence

of the member ID.

Page 56: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 49

If the user wants to add a new reservation

S-1 : add reservation is performed.

If the user wants to search a reservation

detail S-2 : search reservation is

performed.

If the user wants to delete a reservation

record S-3 : delete reservation is

performed.

Sub Flows:

S-1: Add Reservation

1. The system will display a reservation form.

2. The system will retrieve the seat and time slot detail from the database.

3. The user will enter the reservation detail.

4. The user will select the seat and time slot that is available.

5. The system will validate the reservation detail.

6. If valid, the new reservation is inserted into the reservation database.

7. The system will send a SMS notification to the user.

S-2: Search Reservation

1. The user will enter the keyword required for searching a particular

reservation detail.

2. The system will search the particular reservation detail based on the

keyword and display in proper format.

S-3 : Delete Reservation

1. The user will enter the keyword required for searching a particular

reservation detail.

2. The system will search the particular reservation detail based on the

keyword and display in proper format.

3. The Staff can delete the reservation detail by click on the delete button.

4. The system will prompt a confirmation message.

5. If the user clicks on confirm button, the system will delete the reservation

detail from the database.

Alternate Flows:

S-1, 5a1: If user enter an invalid reservation details, the system prompt an error message

and goes back to Step 3 of S-1.

S-2, 1a1: If user enters an invalid keyword for searching the reservation detail, the system

will prompt an error message and goes back to Step 1 of S-2.

S-3, 1a1: If user enters an invalid keyword for searching the member detail, the system will

prompt an error message and goes back to Step 1 of S-3.

Page 57: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 50

Payment Detail Use Case Diagram

Diagram 2.6.5 Payment Detail Use Case Diagram

Payment Use Case Description

Use Case Name : Payment

Actors : Staff

Brief Description: This use case describes how a staff can generate bill, receipt and carry out

payment transaction.

Pre-condition: The Staff is logged-in into the system.

Normal Flow of Events :

Actor Actions System Response

1. User clicks on „Payment‟ button to enter

the page.

3. User decides whether they want to

generate bill, receipt or make payment

transaction.

If the user wants to generate bill S-1 :

generate bill is performed.

2. The system will display the payment

interface.

Page 58: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 51

If the user wants to make payment S-2 :

make payment is performed.

If the user wants to generate receipt S-3 :

generate receipt is performed.

Sub Flows:

S-1: Generate Bill

1. The user will enter the table ID.

2. The system will retrieve the ordering detail and payment detail from the

database based on the table ID.

3. The system will display the billing information.

4. The user will click on generate bill button.

5. The system will print the bill.

S-2: Make Payment

1. The system will identify the payment method selected by user.

2. The staff needs to enter PIN code to access customer‟s PayPal account.

3. PayPal system, the external entity transfer amount and update customer‟s

balance.

4. The system will update the payment status.

S-3 : Generate Receipt

1. The user will enter the table ID.

2. The system will validate the latest payment status based on the table ID.

3. The system will retrieve the payment history based on the table ID.

4. The system will display the receipt information.

5. The user will click on generate receipt button.

6. The system will generate the receipt.

Alternate Flows:

S-1, 1a1: If user enters an invalid table ID, the system prompt an error message and goes

back to Step 2 of S-1.

S-2, 2a2: If user enters the insufficient amount for the payment transaction, the system will

prompt an error message and goes back to Step 1 of S-2.

S-2, 3a1: PayPal system, the external party system will validate the username and

password, if the password and username mismatch, it will goes back to Step 2 of S-2.

S-2, 3a2: If the customer PayPal account balances are insufficient for the payment, the

transaction will be cancel and back to Step 1 of S-2.

S-3, 1a1: If user enters an invalid table ID, the system prompt an error message and goes

back to Step 2 of S-1.

S-3, 2a1: If the payment status is unpaid, the system will prompt an error message and goes

back to Step 1 of S-3.

Page 59: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 52

Report Detail Use Case Diagram

Diagram 2.6.6 Report Detail Use Case Diagram

Report Use Case Description

Use Case Name : Report

Actors : Staff

Brief Description: This use case describes how a staff can view and generate the report.

Pre-condition: The Staff is logged-in into the system.

Normal Flow of Events :

Actor Actions System Response

1. User clicks on „Report‟ button to enter

the page.

4. User will select the report criteria.

8. User will decide whether to print the

report or not to print the report.

If user wants to print the report S-1: Print

Report is performed.

2. The system will display the report

interface.

3. The system will display the report

criteria selection.

4. The system will validate the report

criteria selected.

5. The system will retrieve the

information from the database based on

the report criteria selected.

Page 60: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 53

6. The system will generate the report.

7. The system will display the report

information in proper format.

Sub Flows:

S-1: Print Report

1. The user will click on print button.

2. The system will prompt a confirmation message whether to print the report.

3. If user clicks on confirm button, the system will print the report.

Alternate Flows:

4a1: If the report criteria selected by user is invalid, the system will prompt and error

message and goes back to Step 4.

Page 61: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 54

Kitchen Detail Use Case Diagram

Diagram 2.6.7 Kitchen Detail Use Case Diagram

Kitchen Use Case Description

Use Case Name : Kitchen Maintenance

Actors : Staff

Brief Description: This use case describes how a staff can view the food list and update the

food status

Pre-condition: The Staff is logged-in into the system.

Normal Flow of Events :

Actor Actions System Response

1. User clicks on „Kitchen Maintenance‟

button to enter the page.

4. User decides whether they want to filter

the food list or edit the food status.

If the user wants to filter the food list S-

1 : filter food list is performed.

If the user wants to edit food status S-2 :

edit food status is performed.

2. The system will display the

maintenance interface.

3. The system will display the existing

food list.

Page 62: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 55

Sub Flows:

S-1: Filter Food List

5. The system will filter and rearrange the existing food list.

6. The system will redisplay the food list.

S-2: Edit Food Status

3. The user click on the edit button.

4. The system will update the selected food record and update the database.

Page 63: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 56

2.7 Business Level Activity Diagram

Business Level Membership Maintenance Activity Diagram

Diagram 2.7.1 Business Level Membership Maintenance Activity Diagram

Business Level Menu Maintenance Activity Diagram

Diagram 2.7.2 Business Level Menu Maintenance Activity Diagram

Page 64: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 57

Business Level Food Order Activity Diagram

Diagram 2.7.3 Business Level Food Order Activity Diagram

Business Level Reservation Activity Diagram

Diagram 2.7.4 Business Level Reservation Activity Diagram

Page 65: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 58

Business Level Payment Activity Diagram

Diagram 2.7.5 Business Level Payment Activity Diagram

Business Level Report Activity Diagram

Diagram 2.7.6 Business Level Report Activity Diagram

Page 66: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 59

Business Level Kitchen Activity Diagram

Diagram 2.7.7 Business Level Kitchen Activity Diagram

Page 67: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 60

2.8 Detailed Activity Diagram

Membership Maintenance Detail Activity Diagram

Diagram 2.8.1 Membership Maintenance Detail Activity Diagram

Page 68: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 61

Menu Maintenance Detail Activity Diagram

Diagram 2.8.2 Menu Maintenance Detail Activity Diagram

Page 69: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 62

Food Order Detail Activity Diagram

Diagram 2.8.3 Food Order Detail Activity Diagram

Page 70: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 63

Reservation Detail Activity Diagram

Diagram 2.8.4 Reservation Detail Activity Diagram

Page 71: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 64

Payment Detail Activity Diagram

Diagram 2.8.5 Payment Detail Activity Diagram

Page 72: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 65

Report Detail Activity Diagram

Diagram 2.8.6 Report Detail Activity Diagram

Page 73: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 66

Kitchen Detail Activity Diagram

Diagram 2.8.7 Kitchen Detail Activity Diagram

Page 74: OoiWenJieAIA201314F Online Restaurant Management System

67

2.9 Sequence Diagram

Membership Maintenance Sequence Diagram

Diagram 2.9.1 Membership Maintenance Sequence Diagram

Page 75: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 68

Menu Maintenance Sequence Diagram

Diagram 2.9.2 Menu Maintenance Sequence Diagram

Page 76: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 69

Food Order Sequence Diagram

Diagram 2.9.3 Food Order Sequence Diagram

Page 77: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 70

Reservation Sequence Diagram

Diagram 2.9.4 Reservation Sequence Diagram

Page 78: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 71

Payment Sequence Diagram

Diagram 2.9.5 Payment Sequence Diagram

Page 79: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 72

Kitchen Sequence Diagram

Diagram 2.9.6 Kitchen Sequence Diagram

Page 80: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 73

2.10 Collaboration Diagram

Membership Maintenance Collaboration Diagram

Diagram 2.10.1 Membership Maintenance Collaboration Diagram

Page 81: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 74

Menu Maintenance Collaboration Diagram

Diagram 2.10.2 Menu Maintenance Collaboration Diagram

Page 82: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 75

Food Order Collaboration Diagram

Diagram 2.10.3 Food Order Collaboration Diagram

Page 83: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 76

Reservation Collaboration Diagram

Diagram 2.10.4 Reservation Collaboration Diagram

Page 84: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 77

Payment Collaboration Diagram

Diagram 2.10.5 Payment Collaboration Diagram

Page 85: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 2 : Requirement Analysis

Project 78

Kitchen Collaboration Diagram

Diagram 2.10.5 Payment Sequence Diagram

Page 86: OoiWenJieAIA201314F Online Restaurant Management System

79

2.11 Chapter Summary

Basically, this chapter discuss on the requirement analysis phase which including the fact

finding technique, system requirements and related UML Diagrams. A complete and detail

requirement must be available before proceeding to the system design stages to ensure that

the developer does understand on the needs and expectation of the user. The requirement

analysis first starts with 3 type of fact finding technique which is interviews, questionnaire

and observation which allow us to have a better understanding on the demanding system

workflow or procedures. Besides, all functional requirements for each module and non-

functional requirement of the system is well described to prevent any user conflict in the later

stage.

Furthermore, 5 types of UML Diagram which is Use Case Diagram, Activity Diagram,

Business Level Activity Diagram, Sequence Diagram and Collaboration Diagram are drawn

based on the information gathered. All of these diagrams are drawn using IBM Rational

Software Architect and served to provide description between the interaction of system user

and the system under a specific condition to complete a task.

Page 87: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 80

Chapter 3

System Design

Page 88: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 81

33.. SSyysstteemm DDeessiiggnn

3.1 Introduction

This chapter will be discussing on how the overall system is designed in term of the database

design with data dictionary, layout sketching design and screen layout design. This chapter is

crucial to the project development life cycle as it plays an important role in project

implementation and testing stage.

3.2 Final Class Diagram

Diagram 3.2.1 Final Class Diagram

Page 89: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 82

3.3 Data Dictionary

Table Name: Member

Field Name Data Type Data Description Key Reference

UserName Nvarchar(50) Member login username PK

Name Nvarchar(50) Member name

IC Nchar(14) Member IC

Gender Nchar(7) Member Gender

Phone Nchar(12) Member Phone Number

Email Nchar(50) Member Email Address

Address Nvarchar(50) Member Housing Address

City Nvarchar(50) Member City

State Nvarchar(50) Member State

Postcode Nvarchar(5) Member Postcode

DateJoined Date Date of Registration

ValidStatus Nvarchar(20) Membership status

ConfirmStatus Nvarchar(20) Confirmation status for

registration

ImagePath Nvarchar(Max) Path for member profile image

OrderID Nchar(15) To ensure each member having

only 1 order at a visit

FK ResOrder

Password Nchar(12) Use to login to the system

Page 90: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 83

Table Name: Menu

Field Name Data Type Data Description Key Reference

MenuID Nchar(10) Menu Unique ID PK

MenuItemName Nvarchar(50) Menu name

MenuItemDescription Nvarchar(50) Menu description

Category Nvarchar(50) Menu category

UnitPrice Decimal(18,2) Item selling price per unit

Status Nvarchar(20) Item available status

ImagePath Nvarchar(Max) Path for menu item image

Table Name: Payment

Field Name Data Type Data Description Key Reference

PaymentID Nchar(15) Payment Unique ID PK

PaymentStatus Nvarchar(50) Payment status

TotalBeforeDiscount Decimal(18,2) Amount to pay before discount

TotalAfterDiscount Decimal(18,2) Amount to pay after discount

PaymentAmount Decimal(18,2) Amount to be pay

PaymentMethod Nvarchar(50) Payment method

PaymentDate Date Date of the payment

ReceiptID Nvarchar(50) Receipt reference for the

payment

PaymentGeneratedDate Date Date payment generated

PaymentExpiredDate Date The latest date for the payment

TransactionID Nvarchar(30) Transaction reference for

PayPal

UserName Nvarchar(50) Member unique username FK Member

Page 91: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 84

Table Name: Reservation

Field Name Data Type Data Description Key Reference

ReservationID Nchar(10) Reservation Unique ID PK

UserName Nvarchar(50) Member unique username FK Member

Phone Nchar(12) Member phone number

Time Time(5) Reservation time

Date Date Reservation date

Status Nvarchar(50) Status of the reservation

Pax Nvarchar(2) Number of person

AlertStatus Nvarchar(50) SMS status

Remark Nvarchar(Max) Remark message for reservation

Table Name: ResOrder

Field Name Data Type Data Description Key Reference

OrderID Nchar(15) Order Unique ID PK

OrderType Nvarchar(50) Customer order type

TableID Nchar(10) Customer sitting table FK ResTable

Pax Int Number of customer

Date Date Date of customer order

TimeIn Time(7) Time of customer order

TimeOut Time(7) Time of customer payment

PaymentID Nchar(15) Order unique payment FK Payment

TotalInitialPrice Decimal(18,2) Customer total order item initial

price

TotalAfterDiscount Decimal(18,2) Amount to pay after discount

Page 92: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 85

Table Name: ResOrderDetail

Field Name Data Type Data Description Key Reference

OrderID Nchar(15) Order unique ID Composite Key ResOrder

MenuID Nchar(10) Menu unique ID Composite Key Menu

Index int Unique ordering sequence PK

Quantity Int Number of item ordered

Status Nvarchar(50) Status of ordered item

InitialPrice Decimal(18,2) Initial price for ordered item

TimeCooked Time(7) Time of order item prepared

KitchenIndex Int Use for kitchen department

to filter food list

Table Name: ResTable

Field Name Data Type Data Description Key Reference

TableID Nchar(10) Table unique ID PK

TableDescription Nvarchar(50) Description for the table

MaximumSeat int Maximum seat for the table

Status Nvarchar(50) Status of the table

OrderID Nchar(10) Order unique ID FK ResOrder

CallingFromlient Nvarchar(50) Used for requesting billing

Table Name: Staff

Field Name Data Type Data Description Key Reference

StaffID Nchar(20) Staff unique ID PK

Position Nvarchar(20) Position of the staff

Password Nvarchar(20) Use to login to the system

Page 93: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 86

3.4 Normalization

Third Normal Form(3rd

NF)

Member(UserName, Name, IC, Gender, Phone, Email, Address, City, State, PostCode,

DateJoined, ValidStatus,ConfirmStatus, ImagePath, OrderID*, Password)

Menu(MenuID, MenuItemName, MenuItemDescription, UnitPrice, ImagePath, Category,

Status)

Payment(PaymentID, PaymentStatus, TotalBeforeDiscount, TotalAfterDiscunt,

PaymentAmount, PaymentMethod, PaymentDate, ReceiptID, PaymentGeneratedDate,

PaymentExpiredDate, TransactionID, UserName*)

Reservation(ReservationID, UserName*, Phone, Time, Date, Pax, Status, AlertStatus,

Remark)

ResOrder(OrderID, OrderType, TableID*, Pax, Date, TimeIn, TimeOut, PaymentID*,

TotalInitialPrice, TotalAfterDiscount)

ResOrderDetail(OrderID*, MenuID*, Index, Quantity, Status, InitialPrice, TimeCooked,

KitchenIndex)

ResTable(TableID, TableDescription, MaximumSeat, Status, OrderID*, CallingFromClient)

Staff(StaffID, Position, Password)

Page 94: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 87

3.5 Screen Design (Sketch Layout)

Membership Maintenance Sketch Layout

Diagram 3.5.1 Membership Maintenance Sketch Layout

Page 95: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 88

Menu Maintenance Sketch Layout

Diagram 3.5.2 Menu Maintenance Sketch Layout

Page 96: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 89

Food Order Sketch Layout

Diagram 3.5.3 Food Order Sketch Layout

Page 97: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 90

Reservation Sketch Layout 1

Diagram 3.5.4 Reservation Sketch Layout 1

Page 98: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 91

Reservation Sketch Layout 2

Diagram 3.5.5 Reservation Sketch Layout 2

Page 99: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 92

Payment Sketch Layout

Diagram 3.5.6 Payment Sketch Layout

Page 100: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 93

Report Sketch Layout

Diagram 3.5.7 Report Sketch Layout

Page 101: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 94

Kitchen Sketch Layout

Diagram 3.5.8 Kitchen Maintenance Sketch Layout

Page 102: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 95

3.6 Screen Design

Home Page Screen Design

Diagram 3.6.1 Home Page Screen Design

This is the Home Page of the Online Restaurant Management System. On this page, it will

show the static information about the restaurant which is Dizzy Restaurant.

Page 103: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 96

About Page Screen Design

Diagram 3.6.2 About Page Screen Design

This is the About Page of ORMS. On this page, it will provide the static information such as

people‟s testimony, history about the restaurant and so on.

Page 104: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 97

Gallery Page Screen Design

Diagram 3.6.3 Gallery Page Screen Design

This is the Gallery Page. On this page, it will show the static menu image and menu

description that is available in the restaurant.

Page 105: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 98

Registration Page Screen Design

Diagram 3.6.4 Registration Page Screen Design

This is Registration Page. On this page, public users are able to register themselves as a part

of the restaurant system user. A confirmation email will be sent to the user email with the

login credential. The system will be able to store the member profile and information

securely.

Page 106: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 99

Term & Condition Screen Design

Diagram 3.6.5 Term & Condition Screen Design

This is Term & Condition Page, it will show the term and condition to sign up as the member

of the system. It will list down as clear as possible to protect the member data as well as the

benefit of the restaurant.

Page 107: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 100

Contact Us Screen Design

Diagram 3.6.6 Contact Us Screen Design

This is Contact Page, this allows the non-member user to send a recommendation or feedback

to the restaurant management and this page also serves as a communication channel for the

restaurant to non-member user. Besides, it also provides the contact information and location

information to the user.

Page 108: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 101

Staff View Member Screen Design

Diagram 3.6.7 Staff View Member Screen Design

This is Staff View Member Page which allows the staff to search for a member‟s details. The

staff will need to enter the customer username; if it's found in the database, then the

information will be displayed according to the field provided.

Page 109: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 102

Staff Remove Membership Screen Design

Diagram 3.6.8 Staff Remove Membership Screen Design

This is a Staff Remove Membership page which allows the staff to remove the membership

status of a particular member. The staff will need to enter the customer username to verify the

member existence. If a membership removal is a must to the particular member, the staff will

need to enter the reason in the text area provided and an email with removal reason will be

sent to the member.

Page 110: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 103

Staff Add Menu Screen Design

Diagram 3.6.9 Staff Add Menu Screen Design

This is Staff Add Menu Page which allows the staff dynamically adds in new menu item to

the restaurant. When a new item is offered in the restaurant, the staff can add in the new

menu item with the information such as menu name, description, unit price and etc.

Page 111: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 104

Staff Edit Menu Screen Design

Diagram 3.6.10 Staff Edit Menu Screen Design

This is Staff Edit Menu Page which allows the staff to make modification on the existing

menu information such as unit price, description, name and also the menu image.

Page 112: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 105

Staff Add Order Screen Design

Diagram 3.6.11 Staff Add Order Screen Design

This is Staff Add Order Page which allows the staff to make an order for taking the orders

from customers. A menu will be shown on the left side while the information requires the

staff to enter is placed on the right side.

Page 113: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 106

Staff Edit Order Screen Design

Diagram 3.6.12 Staff Edit Order Screen Design

This is Staff Edit Order Page which allows the staff to make modification of the existing

order. The modification can be like adding or removing an ordered item, but must fulfil the

condition such as the food are still not in preparing.

Page 114: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 107

Staff Kitchen Screen Design

Diagram 3.6.13 Staff Kitchen Screen Design

This is Staff Kitchen Page which will only be used by the kitchen staff. This page will show

the order list on the existing order and item that required the kitchen department to prepare.

The kitchen staff is provided with the option to filter and update the status of item list

displayed.

Page 115: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 108

Staff Add Reservation Screen Design

Diagram 3.6.14 Staff Add Reservation Screen Design

This is Staff Add Reservation Page which allows the staff to make reservations for the

restaurant member. The staff is required to enter the member username to verify their

existence and then only enter the reservation detail in the field provided.

Page 116: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 109

Staff Edit Reservation Screen Design

Diagram 3.6.15 Staff Edit Reservation Screen Design

This is Staff Edit Reservation Page which allows the staff to help the member to update their

reservation information. This page also allows the staff to search for the upcoming

reservation on the selected date. The staff can also send SMS reminder to the member

through this page.

Page 117: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 110

Staff Update Table Reservation Screen Design

Diagram 3.6.16 Staff Update Table Reservation Screen Design

This is Staff Update Table Reservation Page which allows the staff to reserve a table for the

upcoming reservation. Green color will be indicating free, the red color will indicate seated

and yellow color will be indicates reserved.

Page 118: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 111

Staff Make Payment Screen Design

Diagram 3.6.17 Staff Make Payment Screen Design

This is Staff Payment Page which allows the staff to carry out payment transaction. The

amount of the payment will be auto calculated. Besides, the payment method is divided into 2

which is cash payment and PayPal payment. If customer chooses cash payment, then the staff

will require to enter the amount receive, else if PayPal payment is selected then it will

redirect to the PayPal payment page.

Page 119: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 112

PayPal Success Screen Design

Diagram 3.6.18 PayPal Success Screen Design

This is PayPal Success Page which will be directed from PayPal payment page upon the

payment is successfully made. The information will be displayed on this page will be the

transaction ID of the PayPal payment which allow the customer to trace back the payment

paid.

Page 120: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 113

PayPal Failed Screen Design

Diagram 3.6.19 PayPal Failed Screen Design

This is PayPal Failed Page which will be directed from PayPal payment page upon the

payment is canceled or failed. The information will be displayed on this page will be the

payment ID, payment amount and also provided a button to redirect back to the Payment

Page.

Page 121: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 114

Member Edit Profile Screen Design

Diagram 3.6.20 Member Edit Profile

This is Member Edit Profile Page which allows the member to make changes in their

information. Besides, they are also allowed to change their profile picture, password and etc.

Page 122: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 115

Member Make Reservation Screen Design

Diagram 3.6.21 Member Make Reservation Screen Design

This is Member Make Reservation Page which allows the member to make reservation by

themselves through the reservation form provided. The information of the member will be

automatically retrieved when the member come to this page. However, they are still allowed

to make changes in the information. They required to enter the reservation details and

clicking on the confirmation button.

Page 123: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 116

Staff Generate Report Screen Design

Diagram 3.6.22 Staff Generate Report Screen Design

This is Staff Report Page which allows the staff to generate or download the report from the

system. The staff is provided with 5 options of the report, which is Member Registration

Report, Unattended Reservation Report, Top 5 Customer Report, Top 5 Sales Report and

Daily Sales Report. The staff can also specify the duration period of the report which select

the from date and to date.

Page 124: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 117

3.7 Report Template Design

Member Registration Report

Diagram 3.7.1 Member Registration Report

This is Member Regisration Report which show the member that register themselves between

the duration period specify by the staff. The purpose of this report is that the Online

Restaurant Management System is open to public, the staff does not know who register to use

the system. So by generating this report, it allowed the staff to have an information about who

is registered on their system.

Page 125: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 118

Unattended Reservation Report

Diagram 3.7.2 Unattended Reservation Report

This is an Unattended Reservation Report which allows the staff to know which member

having a high unattended reservation number. The purpose of this report is that only member

of the system is allowed to make a reservation, if a member make too many false reservations,

it will make the staff to reserve a table for a reservation which will not be attending, so it will

affect the business performance. The staff can use this report to determine which member‟s

membership status should be removed.

Page 126: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 119

Top 5 Customer Report

Diagram 3.7.3 Top 5 Customer Report

This is Top 5 Customer Report which will display the top 5 spending member between the

duration periods specify by the staff. This report allowed the staff to know which 5 members

having a high spending at the restaurant and can send them a voucher to thank them.

Page 127: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 120

Top 5 Sales Report

Diagram 3.7.4 Top 5 Sales Report

This is Top 5 Sales Report which allow the staff to know which top 5 product are the most

selling in the duration period specified by the staff. This report allowed the restaurant

management to have an idea that which product is more popular in their restaurant and can

make requests to have extra stock of that product to prevent leakage of that product.

Page 128: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 121

Daily Sales Report

Diagram 3.7.5 Daily Sales Report

This is Daily Sales Report which allow the management to know the daily performance of the

particular day. If the sales on that day do not reach the expectations, they can figure out

solutions to prevent the same situation happen on the upcoming days.

Page 129: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 122

3.8 Core System Flow Design

Order Request handler

This section will discuss about how RapidCaptain will respond to a self-ordering request

from RapidOrder.

Handler of Self-Order Event

Diagram 3.8.1 Overview Kitchen Preparing List Sorting

Discussion

Handling of self-order request involved both RapidOrder and RapidCaptain activity. Self-

ordering will be requested by RapidOrder while RapidCaptain will approve or cancel the self-

ordering request.

1. Whenever a RapidOrder wish to do a new order, it must send a ordering request by

invoking WCF method, requestTable(tableID). Eg. requestTable(A). Immediately, a

DispatcherTimer is start to constantly check on Table A status.

Page 130: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 123

2. RapidCaptain will detect the status changes on restaurant table by periodically

invoking WCF method, getAllStatus(). Detected requesting status on Table A and

prompt notification on system interface until the request is respond.

3. RapidCaptain will approve/cancel the request by invoking WCF method,

ResponseRequest(tableID). Eg. ResponseRequest(A)

Approve request caused A status changed from “Requesting” to “Seated.”

Cancel request caused B status changed from “Requesting” to “Free”

4. RapidOrder will detect the status changes on Table A by constantly invoke WCF

method, getStatus(A). DispatcherTimer immediately stop and two possible result are:

Table A status is “seated”, orderID is generated and allowed to self-ordering

Table A status is “free” and RapidOrder have to try again

Intelligent Food Sorting in Kitchen Module

This section will discuss about how changes in order detail will caused notification in kitchen

interface on web application. The order sequence is follow by order A -> order B.

Kitchen Preparing List Sorting Diagram

Diagram 3.8.2 Overview Kitchen Preparing List Sorting

Page 131: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 124

Diagram 3.8.3 Kitchen Preparing List Sorting

Without sorting result

# Food Status Quantity Order

1 M01 Cooking 2 A

2 M02 Queuing 2 A

3 M03 Queuing 1 A

4 M01 Queuing 1 B

5 M02 Queuing 1 B

6 M03 Queuing 1 B

With sorting result

# Food Status Quantity Order

1 M01 Cooking 2 A

2 M02 Queuing 3 A-2,B-1

3 M03 Queuing 2 A-1,B-1

4 M01 Queuing 1 B

Page 132: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 125

Discussion

In Kitchen Module, there will be a constant check implemented to check the changes made in

the kitchen index of order detail. When the value of the kitchen index has been modified such

as 1 indicating new item added, 2 indicating item status updated and 3 indicating item is

deleted, it will prompt a message box to inform the kitchen staff. Besides, there will an

Intelligent Food Sorting for queuing item implemented in Kitchen Module too. The condition

to be merged is that the item ordered are the same item that in queuing status but is taken

from different order and most important is that the time taken for both order taken time are

not difference more than 5 minutes. If the above does not meet, then the ordered food will be

shown in separate list.

For example, Order A is taken on 10:00am and having item of M01-Cooked, M02-Queued

and M03-Queued. Meanwhile Order B is taken on 10:03am and having item M01-Queued,

M02-Queued and M03-Queued. With the Intelligent Food Sorting, the entire item with

Queued status will be taken to compare with each other and merged together if the condition

meets. The Order B M02-Queued and M03-Queued will be merging with Order A M02-

Queued and M03-Queued because both of the order time taken difference is not more than 5

minutes. The reason why Order B M01-Queued and Order A M01-Cooked is because of the

Order A M01-Cooked is already in cooking status, only food item with Queue will be

compare and merged.

Page 133: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 3 : System Design

Project 126

3.9 Chapter Summary

This chapter summarizes out the details of system design which including data design, screen

design and report design. The project data designs are presented in the class diagram, third

normalization table as well as a data dictionary. Data dictionary will contain the information

such as attribute name, data type, description, key type and reference table of all database

tables used in the system.

Furthermore, screen layout sketch design and screen design is practiced to ensure that the

design screen or user interface do meet the requirement that gathered at previous stages.

Besides, it is a good practiced that we designing the user interface based on the diagrams that

drawn on the previous stage as it is more efficient in meeting requirement of the proposed

system. Lastly, 5 types of report design is created to serve the needs of the restaurant

management or for business purposes.

Page 134: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 4 : Programming

Project 127

Chapter 4

Programming

Page 135: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 4 : Programming

Project 128

44.. PPrrooggrraammmmiinngg

4.1 Introduction

This chapter will be providing a description of the critical programming code that used in

developing the system. The main language that we used to develop the Online Restaurant

Management System is Asp.Net C#. However, PayPal API, SMS API and JQuery were also

being used in the development to enhance the functionality and visibility of the entire system.

4.2 Critical Coding Within System

Real Time Notification

<link rel="stylesheet" type="text/css" href="notification_js/buttons.css"/> <script src="notification_js/jquery-1.7.2.min.js"></script> <script type="text/javascript" src="notification_js/noty/jquery.noty.js"></script> <script type="text/javascript" src="notification_js/noty/layouts/top.js"></script> <script type="text/javascript" src="notification_js/noty/themes/default.js"></script> <script type="text/javascript"> var soundObject = null; function generate(layout, id) { if (soundObject != null) { document.body.removeChild(soundObject); soundObject.removed = true; soundObject = null; } soundObject = document.createElement("embed"); soundObject.setAttribute("src", "notify.wav"); soundObject.setAttribute("hidden", true); soundObject.setAttribute("autostart", true); document.body.appendChild(soundObject); setTimeout(function () { var n = noty({ text: '<div style="font-family: PT Sans, Tahoma, Arial, serif; line-height: 13px ">Table <b>' + id + 'ask for billing. Do you want to response ? </div>', type: 'alert', dismissQueue: true, layout: layout, theme: 'defaultTheme', buttons: [ { addClass: 'btn btn-primary', text: 'Ok', onClick: function ($noty) {

Page 136: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 4 : Programming

Project 129

$noty.close(); noty({ dismissQueue: true, force: true, layout: layout, theme: 'defaultTheme', text: '<div style="font-family: PT Sans, Tahoma, Arial, serif; line-height: 13px ">Please print the bill and proceed to customer</div>', type: 'success' }); window.open("RealTimeNotificationResponse.aspx?id=" + id, "_blank"); } }, { addClass: 'btn btn-danger', text: 'Cancel', onClick: function ($noty) { $noty.close(); noty({ dismissQueue: true, force: true, layout: layout, theme: 'defaultTheme', text: '<div style="font-family: PT Sans, Tahoma, Arial, serif; line-height: 13px ">Unfortunately, you have ignored this notification</div>', type: 'error' }); } } ] }); console.log('html: ' + n.options.id); }, 800); } </script>

Diagram 4.2.1 Sample Code for Real Time Notification

This Real Time Notification code is used in the Staff Master Page. When the client used the

Restaurant Mobile Application and request for billing, the Real Time Notification Code

Behind will trigger the code above and prompt a message box with sound object to alert the

staff which table is requesting for billing. If the staff response “Ok” to the message, it will

redirect to another page and billing information of the table will be generated.

Page 137: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 4 : Programming

Project 130

Real Time Notification Code Behind

protected void Refresh_Load(object sender, EventArgs e) { consMenu = new SqlConnection(connStr); consMenu.Open(); cmdSelectTable = new SqlCommand("SELECT * FROM ResTable WHERE CallingFromClient='yes'", consMenu); SqlDataAdapter da = new SqlDataAdapter(cmdSelectTable); DataTable dt = new DataTable(); da.Fill(dt); if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { String id = dt.Rows[i]["TableID"].ToString(); ScriptManager.RegisterClientScriptBlock(this, typeof(System.Web.UI.Page), "generate", "generate('top','" + id + "');", true); cmdUpdateTable = new SqlCommand("Update ResTable set CallingFromClient='' WHERE TableID=@id", consMenu); cmdUpdateTable.Parameters.AddWithValue("@id", id); cmdUpdateTable.ExecuteNonQuery(); } } consMenu.Close(); refreshEveryNanoSecond.Value = GetLatestTick().ToString(); }

Diagram 4.2.2 Real Time Notification (Code Behind)

This Real Time Notification Code Behind will run in every NanoSecond to check the

database to determine whether the dine-in customer has requested for billing. If the condition

is met which is retrieving a value “Yes” from the RestaurantTable database table, then it will

trigger the Real Time Notification Function show on Diagram 4.2.1 and update the “Yes”

value to NULL. If no value “Yes” is obtained, it will not trigger the Real Time Notification

Function.

Page 138: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 4 : Programming

Project 131

SMS Code Behind

protected void sendNotificationSMS() { // http://isms.com.my/sms_api.php string receiver = "0164550987"; string msgContent = "Hi Mr/Ms, we are pleased to remind you that you have made a reservation to Dizzy Restaurant which dated on" + tempdate + " " + time + ". We are happy to serve you."; Uri myUri = new Uri("http://isms.com.my/isms_send.php?un=abc&pwd=123456&dstno=6" + receiver + "&msg=" + msgContent + "&type=1&sendid=60198972233"); WebRequest myWebRequest = WebRequest.Create(myUri); WebResponse myWebResponse = myWebRequest.GetResponse(); StreamReader reader = new StreamReader(myWebResponse.GetResponseStream()); string s_ResponseString = reader.ReadToEnd(); }

Diagram 4.2.3 SMS Code Behind

The SMS Code Behind shows the function of sending SMS. This function is used in

Reservation module which allows the staff to send the SMS act as a reminder to the member

that has made a reservation for that particular day. This SMS API is provided by the ISMS

Company that located in Penang. When this function is triggered, it will create a URI which

including the API Link, Username, Password, SMS Receiver Number and Message content.

The URI will be used to create the WebRequest and which will be responded to send the

SMS.

Page 139: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 4 : Programming

Project 132

Zopim Live Chat

<!--Start of Zopim Live Chat Script--> <script type="text/javascript"> window.$zopim || (function (d, s) { var z = $zopim = function (c) { z._.push(c) }, $ = z.s = d.createElement(s), e = d.getElementsByTagName(s)[0]; z.set = function (o) { z.set. _.push(o) }; z._ = []; z.set._ = []; $.async = !0; $.setAttribute('charset', 'utf-8'); $.src = '//v2.zopim.com/?1i7ZzL7ea2RlBEUi3RLAzy4WDSnxFByL'; z.t = +new Date; $. type = 'text/javascript'; e.parentNode.insertBefore($, e) })(document, 'script'); </script> <!--End of Zopim Live Chat Script-->

Diagram 4.2.4 Zopim Live Chat

This Zopim Live Chat is a dashboard that allows the restaurant staff to manage the live chat

session with the system user. This Zopim Live Chat API allowed the instant messaging chat

box being implemented in the Member Master Page or every page that the member can

access. The code above is managed by JavaScript. However, in order for the restaurant staff

to respond to the live chat session, they are required to login in the dashboard in Zopim Main

Website.

Generate Bill Code Behind

using iTextSharp.text; using iTextSharp.text.pdf; protected void generateBill() { String payid = txtPaymentid.Text; String receiptID = "R" + txtPaymentid.Text.Substring(1); String datetime = DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss"); String tabid = ""; String pax = ""; String paymentamount = ""; String tbdiscount = ""; String discount = txtDiscount.Text; if (discount.ToString() == "") {discount = "-"; } consPayment = new SqlConnection(connStr); consPayment.Open(); cmdPayment = new SqlCommand("Select r.Pax, r.TableID, p.PaymentAmount, p.TotalBeforeDiscount From ResOrder r, Payment p WHERE r.PaymentID=@id AND r.PaymentID=p.PaymentID", consPayment); cmdPayment.Parameters.AddWithValue("@id", payid); dtrSelectPayment = cmdPayment.ExecuteReader(); if (dtrSelectPayment.Read()) { tabid = dtrSelectPayment["TableID"].ToString(); pax = dtrSelectPayment["Pax"].ToString(); paymentamount = dtrSelectPayment["PaymentAmount"].ToString();

Page 140: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 4 : Programming

Project 133

tbdiscount = dtrSelectPayment["TotalBeforeDiscount"].ToString(); } dtrSelectPayment.Close(); string path = path = Server.MapPath("Payment_Receipt"); var doc1 = new Document(new iTextSharp.text.Rectangle(300f, 800f)); PdfWriter.GetInstance(doc1, new FileStream(path + "/" + receiptID + ".pdf", FileMode.Create)); doc1.Open(); cell.HorizontalAlignment = 1; //0=Left, 1=Centre, 2=Right table.AddCell(cell); PdfPCell cell2 = new PdfPCell(new Phrase("11-12-10, BL Avenue")); cell2.Colspan = 3; cell2.Border = PdfPCell.NO_BORDER; cell2.HorizontalAlignment = 1; //0=Left, 1=Centre, 2=Right table.AddCell(cell2); PdfPCell btm1 = new PdfPCell(new Phrase(" ")); btm1.Colspan = 3; btm1.Border = PdfPCell.BOTTOM_BORDER; btm1.HorizontalAlignment = 0; //0=Left, 1=Centre, 2=Right table.AddCell(btm1); table.AddCell(""); table.AddCell("SubTotal:"); table.AddCell(tbdiscount); doc1.Add(table); doc1.Close(); String temppath = "Payment_Receipt/" + receiptID + ".pdf"; Response.Write(string.Format("<script>window.open('{0}','_blank');</script>", temppath)); } }

Diagram 4.2.5 Generate Bill Code Behind

Diagram 4.2.5 shows the code that use to generate Bill to customer upon request. The

generate Bill code will be using the iTextSharp Library to create a PDF and append the

information into the PDF created. After that, the created Bill PDF will be opened by using the

Response.Write code.

Page 141: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 4 : Programming

Project 134

PayPal API

Code Behind protected void paypal_transaction() { string redirecturl = ""; redirecturl += "https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_xclick&business=" + ConfigurationManager.AppSettings["paypalemail"].ToString(); redirecturl += "&item_name= ORMS Payment"; redirecturl += "&amount=" + txtTotalAmount.Text; redirecturl += "&currency_code=MYR"; redirecturl += "&return=" + ConfigurationManager.AppSettings["SuccessURL"].ToString(); redirecturl += "&cancel_return=" + ConfigurationManager.AppSettings["FailedURL"].ToString(); Response.Redirect(redirecturl); }

WebConfig

<appSettings> <!--<add key="paypalemail" value="[email protected]" />--> <add key="paypalemail" value="[email protected]" /> <add key="PayPalSubmitUrl" value="https://www.sandbox.paypal.com/cgi-bin/webscr" /> <add key="FailedURL" value="http://sjlim-solution.somee.com/MP_Fail.aspx" /> <add key="SuccessURL" value="http://sjlim-solution.somee.com/MP_Success.aspx" /> </appSettings>

Diagram 4.2.6 PayPal API

This code shows the PayPal API which allows the customer of the restaurant to carry out

payment through PayPal. In order to use PayPal API, we required to add the code above in

the Web Config file. When the PayPal method is selected, it will redirect to the PayPal

Payment page with the information included in the Redirect URL. In order to redirect back to

the system from PayPal Payment Page, it will be control of the code added in appSettings

(Failed URL/SuccessURL).

Page 142: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 4 : Programming

Project 135

Preview Report Code Behind

private void preview() { int count = 0; string reportPath = "", sql = "", spath = ""; ReportDocument staffReport; staffReport = new ReportDocument(); reportPath = Server.MapPath("~/Report/CrystalReport1.rpt"); string type = ddlType.Text; if (type.Equals("Member Registration Report")) { if (txtfromdate.Text.Length < 1 || txttodate.Text.Length < 1) { Response.Write(@"<script language='javascript'>alert('Please specify from & to date');</script>"); } else { String date1 = txtfromdate.Text; String date2 = txttodate.Text; DateTime fromdate = Convert.ToDateTime(date1); DateTime todate = Convert.ToDateTime(date2); int result = DateTime.Compare(fromdate, todate); if (result > 0) { Response.Write(@"<script language='javascript'>alert('ToDate cannot greater than FromDate!');</script>"); } else { spath = "~/Report/MemberRegistrationReport.pdf"; reportPath = Server.MapPath("~/Report/MemRegistration.rpt"); sql = "SELECT m.UserName,m.Name, m.Phone, m.Email FROM Member m WHERE m.ValidStatus='Valid' AND (DateJoined >= ' " + date1 + "') AND (DateJoined <= '" + date2 + "')"; count = 1; } } } if (count == 1) { staffReport.Load(reportPath); consReport = new SqlConnection(connStr); consReport.Open(); SqlDataAdapter adpt = new SqlDataAdapter(sql, consReport); DataTable dt = new DataTable(); adpt.Fill(dt); if (dt.Rows.Count > 0) { staffReport.SetDataSource(dt); CrystalReportViewer1.ReportSource = staffReport; CrystalReportViewer1.Visible = false; staffReport.ExportToDisk(ExportFormatType.PortableDocFormat, Server.MapPath(spath)); string pageurl = spath;

Page 143: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 4 : Programming

Project 136

Response.Write("<script>"); Response.Write(String.Format("window.open('{0}','_blank')", ResolveUrl(pageurl))); Response.Write("</script>"); ddlType.SelectedIndex = 0; txtfromdate.Text = ""; txttodate.Text = ""; } else { ScriptManager.RegisterStartupScript(this, this.GetType(), "Alert", "alert('No data generate in the report.')", true); } } }

Diagram 4.2.7 Preview Report Code Behind

This code shows the function in Report Module which is Preview Report. The selected

reports will be displayed in a new window without downloading it. At first, the report path

must be declared based on the report selection. After that, the source of report viewer is then

declared so that the appropriate report will generate and displayed based on user selection.

The report generation tool is Crystal Report.

Page 144: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 4 : Programming

Project 137

Download Report Code Behind

private void download() { int count = 0; string reportPath = "", sql = "", spath = ""; ReportDocument staffReport; staffReport = new ReportDocument(); reportPath = Server.MapPath("~/Report/CrystalReport1.rpt"); string type = ddlType.Text; if (type.Equals("Member Registration Report")) { if (txtfromdate.Text.Length < 1 || txttodate.Text.Length < 1) { Response.Write(@"<script language='javascript'>alert('Please specify from & to date');</script>"); } else { String date1 = txtfromdate.Text; String date2 = txttodate.Text; DateTime fromdate = Convert.ToDateTime(date1); DateTime todate = Convert.ToDateTime(date2); int result = DateTime.Compare(fromdate, todate); if (result > 0) { Response.Write(@"<script language='javascript'>alert('ToDate cannot greater than FromDate!');</script>"); } else { spath = "Member Registration Report"; reportPath = Server.MapPath("~/Report/MemRegistration.rpt"); sql = "SELECT m.UserName,m.Name, m.Phone, m.Email FROM Member m WHERE m.ValidStatus='Valid' AND (DateJoined >= ' " + date1 + "') AND (DateJoined <= '" + date2 + "')"; count = 1; }}} if (count == 1) { staffReport.Load(reportPath); consReport = new SqlConnection(connStr); consReport.Open(); SqlDataAdapter adpt = new SqlDataAdapter(sql, consReport); DataTable dt = new DataTable(); ddlType.SelectedIndex = 0; txtfromdate.Text = ""; txttodate.Text = ""; adpt.Fill(dt); if (dt.Rows.Count > 0) { staffReport.SetDataSource(dt); CrystalReportViewer1.HasToggleGroupTreeButton = true; CrystalReportViewer1.DisplayToolbar = true;

Page 145: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 4 : Programming

Project 138

CrystalReportViewer1.ReportSource = staffReport; BinaryReader stream = new BinaryReader(staffReport.ExportToStream(CrystalDecisions.Shared.ExportFormatType. PortableDocFormat)); Response.ClearContent(); Response.ClearHeaders(); Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "attachment; filename=" + spath); Response.AddHeader("content-length", stream.BaseStream.Length.ToString()); Response.BinaryWrite(stream.ReadBytes(Convert.ToInt32(stream.BaseStream.Length))); Response.Flush(); Response.Close(); } else { ScriptManager.RegisterStartupScript(this, this.GetType(), "Alert", "alert('No data generate in the report.')", true); } } }

Diagram 4.2.8 Download Report Code Behind

This code shows the function in Report Module which is Download Report. The selected

report will be downloaded without preview. At first, the report path must be declared based

on the report selection. After that, the source of report viewer is then declared so that the

appropriate report will generate and downloaded based on user selection. The report

generation tool is Crystal Report.

Page 146: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 4 : Programming

Project 139

Kitchen Filter Food List

private void preparing() { String date = DateTime.Now.ToString("MM/dd/yyyy"); DateTime datetime = Convert.ToDateTime(date); List<Food> list = new List<Food>() { }; Food[] foodFromDb = new Food[100]; SqlDataAdapter commandData; DataTable orderDataTable = new DataTable(); DataTable orderDataTableQ = new DataTable(); consKitchen = new SqlConnection(connStr); consKitchen.Open(); int i = 0; //First Retrieve Preparing Only cmdSearchKitchen = new SqlCommand("Select DISTINCT ro.TableID, ro.OrderID, rod.MenuID, ro.TimeIn, rod.TimeCooked, m.Category, m.MenuItemName, rod.Quantity, rod.Status FROM ResOrder ro, Menu m, ResOrderDetail rod, Payment p WHERE ro.OrderID= rod.OrderID AND ro.PaymentID=p.PaymentID AND rod.MenuID=m.MenuID AND rod.Status=@sta2 AND rod.KitchenIndex=@kit ORDER BY ro.TimeIn, rod.Status, m.MenuItemName,ro.TableID,ro.OrderID, m.Category ", consKitchen); cmdSearchKitchen.Parameters.AddWithValue("@kit", 0); cmdSearchKitchen.Parameters.AddWithValue("@sta2", "Preparing"); commandData = new SqlDataAdapter(cmdSearchKitchen); commandData.Fill(orderDataTable); if (orderDataTable.Rows.Count > 0) { for (i = 0; i < orderDataTable.Rows.Count; i++) { Food orderList = new Food(); orderList.Index = list.Count + 1; orderList.MenuID = orderDataTable.Rows[i]["MenuID"].ToString().Trim(); orderList.MenuName = orderDataTable.Rows[i]["MenuItemName"].ToString(); orderList.TableID = orderDataTable.Rows[i]["TableID"].ToString(); orderList.Quantity = orderDataTable.Rows[i]["Quantity"].ToString().Trim(); orderList.Status = orderDataTable.Rows[i]["Status"].ToString().Trim(); orderList.TimeIn = orderDataTable.Rows[i]["TimeIn"].ToString(); orderList.TimeCook = orderDataTable.Rows[i]["TimeCooked"].ToString(); list.Add(orderList); } } //Second Retrieve Queuing Only cmdSearchKitchen = new SqlCommand("Select DISTINCT ro.TableID, ro.OrderID, rod.MenuID, ro.TimeIn, rod.TimeCooked, m.Category, m.MenuItemName, rod.Quantity, rod.Status FROM ResOrder ro, Menu m, ResOrderDetail rod, Payment p WHERE ro.OrderID= rod.OrderID AND ro.PaymentID=p.PaymentID AND rod.MenuID=m.MenuID AND rod.Status=@sta2 AND rod.KitchenIndex=@kit ORDER BY ro.TimeIn, rod.Status, m.MenuItemName,ro.TableID,ro.OrderID, m.Category ", consKitchen); cmdSearchKitchen.Parameters.AddWithValue("@sta2", "Queuing"); cmdSearchKitchen.Parameters.AddWithValue("@kit", 0);

Page 147: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 4 : Programming

Project 140

commandData = new SqlDataAdapter(cmdSearchKitchen); commandData.Fill(orderDataTableQ); if (orderDataTableQ.Rows.Count > 0) { for (int k = 0; k < orderDataTableQ.Rows.Count; k++) { Food orderList = new Food(); var itemCount = list.Count; if (itemCount == 0) { orderList.Index = list.Count + 1; orderList.MenuID = orderDataTableQ.Rows[k]["MenuID"].ToString().Trim(); orderList.MenuName = orderDataTableQ.Rows[k]["MenuItemName"].ToString(); orderList.TableID = orderDataTableQ.Rows[k]["TableID"].ToString(); orderList.Quantity = orderDataTableQ.Rows[k]["Quantity"].ToString().Trim(); orderList.Status = orderDataTableQ.Rows[k]["Status"].ToString().Trim(); orderList.TimeIn = orderDataTableQ.Rows[k]["TimeIn"].ToString(); orderList.TimeCook = orderDataTableQ.Rows[k]["TimeCooked"].ToString(); list.Add(orderList); } else { int count = 0; for (int j = 0; j < itemCount; j++) { String entrystatus = orderDataTableQ.Rows[k]["Status"].ToString().Trim(); String entryid = orderDataTableQ.Rows[k]["MenuID"].ToString().Trim(); TimeSpan entrytimein, listtimein; if (list[j].MenuID.Equals(entryid)) { if (entrystatus.Equals("Queuing") && list[j].Status.Equals("Queuing")) { listtimein = TimeSpan.Parse(list[j].TimeIn); entrytimein = TimeSpan.Parse(orderDataTableQ.Rows[k]["TimeIn"].ToString()); TimeSpan span2 = TimeSpan.FromMinutes(5); if (listtimein.Add(span2) > entrytimein) { list[j].TableID = list[j].TableID.ToString() + "," + orderDataTableQ.Rows[k]["TableID"].ToString().Trim(); int value = Convert.ToInt32(list[j].Quantity.ToString()) + Convert.ToInt32(orderDataTableQ.Rows[k]["Quantity"].ToString()); list[j].Quantity = value.ToString(); count += 1; }

Page 148: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 4 : Programming

Project 141

} } } if (count == 0) { orderList.Index = list.Count + 1; orderList.MenuID = orderDataTableQ.Rows[k]["MenuID"].ToString().Trim(); orderList.MenuName = orderDataTableQ.Rows[k]["MenuItemName"].ToString(); orderList.TableID = orderDataTableQ.Rows[k]["TableID"].ToString(); orderList.Quantity = orderDataTableQ.Rows[k]["Quantity"].ToString().Trim(); orderList.Status = orderDataTableQ.Rows[k]["Status"].ToString().Trim(); orderList.TimeIn = orderDataTableQ.Rows[k]["TimeIn"].ToString(); orderList.TimeCook = orderDataTableQ.Rows[k]["TimeCooked"].ToString(); list.Add(orderList); } } } } GridView2.DataSource = list; GridView2.DataBind();

}

Diagram 4.2.9 Kitchen Filter Food List-Queue

This code shows the Kitchen Filter Food List-Queue which used in the kitchen module. At

first, the food record will be retrieved and stored in a data table. After retrieving all the in

food record, arrange or filtering is carried out of the food record store in the data table. If the

food record that having same item and the order time taken interval between 5 minutes will

be merged together. After all filtering is made, the kitchen preparing screen will display the

food ordering list based on the food status.

Page 149: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 4 : Programming

Project 142

Kitchen Display Food List

private void display() { List<Food> list = new List<Food>() { }; Food[] foodFromDb = new Food[100]; SqlDataAdapter commandData; DataTable orderDataTable = new DataTable(); DataTable orderDataTableQ = new DataTable(); consKitchen = new SqlConnection(connStr); consKitchen.Open(); int i = 0; cmdSearchKitchen = new SqlCommand("Select DISTINCT ro.TableID, ro.OrderID, rod.MenuID, ro.TimeIn, rod.TimeCooked, m.Category, m.MenuItemName, rod.Quantity, rod.Status FROM ResOrder ro, Menu m, ResOrderDetail rod, Payment p WHERE ro.OrderID= rod.OrderID AND ro.PaymentID=p.PaymentID AND rod.MenuID=m.MenuID AND (rod.Status=@sta2 OR rod.Status=@sta1) AND rod.KitchenIndex=@kit ORDER BY rod.Status, ro.TimeIn, m.MenuItemName,ro.TableID,ro.OrderID, m.Category ", consKitchen); cmdSearchKitchen.Parameters.AddWithValue("@sta2", "Preparing"); cmdSearchKitchen.Parameters.AddWithValue("@sta1", "Queuing"); cmdSearchKitchen.Parameters.AddWithValue("@kit", 0); commandData = new SqlDataAdapter(cmdSearchKitchen); commandData.Fill(orderDataTable); if (orderDataTable.Rows.Count > 0) { for (i = 0; i < orderDataTable.Rows.Count; i++) { Food orderList = new Food(); orderList.Index = list.Count + 1; orderList.MenuID = orderDataTable.Rows[i]["MenuID"].ToString().Trim(); orderList.MenuName = orderDataTable.Rows[i]["MenuItemName"].ToString(); orderList.TableID = orderDataTable.Rows[i]["TableID"].ToString(); orderList.Quantity = orderDataTable.Rows[i]["Quantity"].ToString().Trim(); orderList.Status = orderDataTable.Rows[i]["Status"].ToString().Trim(); orderList.TimeIn = orderDataTable.Rows[i]["TimeIn"].ToString(); orderList.TimeCook = orderDataTable.Rows[i]["TimeCooked"].ToString(); list.Add(orderList); } } GridView2.DataSource = list; GridView2.DataBind(); } }

Diagram 4.2.10 Kitchen Display Food List

This code shows the Kitchen Display Food List that used in the kitchen module. This code

will first retrieve the food list record from the database and store in the data table. The food

list only will be arranged by the status, then followed by the time order taken. After that, data

table will be the source to bind to the grid view for displaying purpose.

Page 150: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 4 : Programming

Project 143

Real Time Kitchen Display List

protected void Refresh_Load(object sender, EventArgs e) { string orderid, menuid, indexx, kitindex; int xc = 0; int xp = 0; int xd = 0; consKitchen = new SqlConnection(connStr); consKitchen.Open(); SqlDataAdapter LoadKitchen, LoadUpdated, LoadDeleted; DataTable kitchentable = new DataTable(); DataTable updatedtable = new DataTable(); DataTable deletedtable = new DataTable(); cmdSearchKitchen = new SqlCommand("Select * FROM ResOrderDetail Where KitchenIndex = @in ", consKitchen); cmdSearchKitchen.Parameters.AddWithValue("@in", 1); LoadKitchen = new SqlDataAdapter(cmdSearchKitchen); LoadKitchen.Fill(kitchentable); if (kitchentable.Rows.Count > 0) { for (int a = 0; a < kitchentable.Rows.Count; a++) { orderid = kitchentable.Rows[a]["OrderID"].ToString().Trim(); menuid = kitchentable.Rows[a]["MenuID"].ToString().Trim(); indexx = kitchentable.Rows[a]["Indexx"].ToString(); kitindex = kitchentable.Rows[a]["KitchenIndex"].ToString(); cmdUpdateKitchen = new SqlCommand("UPDATE ResOrderDetail SET KitchenIndex=@kit WHERE OrderID=@oid AND MenuID=@mid AND Indexx=@ind", consKitchen); cmdUpdateKitchen.Parameters.AddWithValue("@kit", 0); cmdUpdateKitchen.Parameters.AddWithValue("@oid", orderid); cmdUpdateKitchen.Parameters.AddWithValue("@mid", menuid); cmdUpdateKitchen.Parameters.AddWithValue("@ind", indexx); cmdUpdateKitchen.ExecuteNonQuery(); xc = 1; } } cmdSearchKitchen = new SqlCommand("Select * FROM ResOrderDetail Where KitchenIndex =@in", consKitchen); cmdSearchKitchen.Parameters.AddWithValue("@in", 2); LoadUpdated = new SqlDataAdapter(cmdSearchKitchen); LoadUpdated.Fill(updatedtable); if (updatedtable.Rows.Count > 0) { for (int aa = 0; aa < updatedtable.Rows.Count; aa++) { orderid = updatedtable.Rows[aa]["OrderID"].ToString().Trim(); menuid = updatedtable.Rows[aa]["MenuID"].ToString().Trim(); indexx = updatedtable.Rows[aa]["Indexx"].ToString(); kitindex = updatedtable.Rows[aa]["KitchenIndex"].ToString(); cmdUpdateKitchen = new SqlCommand("UPDATE ResOrderDetail SET KitchenIndex=@kit WHERE OrderID=@oid AND MenuID=@mid AND Indexx=@ind", consKitchen); cmdUpdateKitchen.Parameters.AddWithValue("@kit", 0); cmdUpdateKitchen.Parameters.AddWithValue("@oid", orderid); cmdUpdateKitchen.Parameters.AddWithValue("@mid", menuid); cmdUpdateKitchen.Parameters.AddWithValue("@ind", indexx); cmdUpdateKitchen.ExecuteNonQuery();

Page 151: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 4 : Programming

Project 144

xp = 1; } } consKitchen.Close(); if (xc == 1) { ScriptManager.RegisterStartupScript(this, this.GetType(), "Alert", "alert('New food item added in the table!')", true); preparing(); } if (xp == 1) { ScriptManager.RegisterStartupScript(this, this.GetType(), "Alert", "alert('Food item status updated!')", true); preparing(); } if (xd == 1) { ScriptManager.RegisterStartupScript(this, this.GetType(), "Alert", "alert('An item from queue is deleted.')", true); preparing(); }

Diagram 4.2.11 Real Time Kitchen Display List

This code shows the Real Time Kitchen Display List that used in the kitchen module. The

displaying list of the kitchen is real time as it will trigger the code shows every nanosecond.

If any deletion or addition of food item, the displaying list will display a message to inform

the kitchen staff about the changes. This function will prompt a message when a value which

is 1 indicating new item is added, value 2 indicating a food status is updated and value 3

indicating an item is deleted.

Page 152: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 4 : Programming

Project 145

4.3 Chapter Summary

Basically, this chapter will be summarizing the discussion and description for the critical

programming code that used to develop the entire system. Although there are several

problems faced in developing the critical function, however the problems are still being

solved through research on the Internet. Besides, it is important to ensure the software quality

and implementation consistency during the implementation by following the coding standard,

screen design standard and etc.

During the implementation, extra library such as iTextSharp to support PDF writer, Crystal

Report to support report generation is added in Visual Studio 2012 to improve the

functionality of the system. JQuery also be used in the system to provide a better visual

solution of the system.

Page 153: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management System Chapter 4 : Programming

Project 146

Chapter 5

Software Testing

Page 154: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 5 : Software Testing

Project 147

55.. SSooffttwwaarree TTeessttiinngg

5.1 Introduction

This chapter will be providing description of software testing phase of the project

development. There are several levels of system testing will be involved in this system testing

to ensure that the system is able to function well, errorless and meet the user requirement.

Furthermore, several test cases are created to act as a guide in the testing process to ensure

that the system is working on the way it should be.

5.2 Level of Testing

Diagram 5.2 Level of System Testing

The diagram above shows the various levels of testing that will be involved in system testing

phases. The system testing will be starting with unit tests, followed by integration test, system

test and user acceptance test. The system must pass all the testing listed to ensure that the

system is reliable and dependable to be in used.

Page 155: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 5 : Software Testing

Project 148

Unit Test

Unit test of a software application is carried out during the code construction stage. The

objective of carrying out the unit testing is to insulate each section of the program‟s code and

verify its correctness. Every unit tested may be an individual function or procedure of the

application.

The Online Restaurant Management System is made up of modules consist of many small

units so it is tested in term of the flow of input and output, security and usability. A volume

of predefined inputs is used in testing to gain the expected outputs. If expected output cannot

be collected, this means bugs occur and require solving it immediately. Unit testing during

construction stage will help to save up time and money in the end because more resources can

be used in other testing or stages.

Integration Test

After completion of each module, the modules will be integrated logically to form a whole

system. Integration testing will focuses on the interfaces and the data communication

between the modules that has been integrated and to explore the error occurs between the

integrated modules. The integration links are the main concern in this testing as the unit

functions are tested on unit testing at the early stage.

The Online Restaurant Management System consists of many modules that provide different

functions. The testing will be carried out by joining the modules that are related

incrementally and test the function that should be provided by each of the modules. This is to

ensure the passing of data between each interface of the modules will work in the way they

should.

Page 156: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 5 : Software Testing

Project 149

System Test

System test is carried out at the end of the construction stage. System testing is used to

measure the efficiency and effectiveness of the system implemented. System testing will be

carried out based on the business workflow of the organization or the written system

specification.

The Online Restaurant Management System is tested based on the system specification

requirement that defined at the earliest stage to ensure that the system work as a whole and

provide services in the expected process, all the interfaces of the modules are working

correctly and the input /output specifications are acceptable.

Acceptance Test

Acceptance testing is carried out at the final stage of the testing phase. It is to ensure that the

system has met the requirements stated in the system requirement specification. The end user

who carries out acceptance test will be monitored by the developer side and minimum

guidance will be provided to prevent the result of testing being affected.

A number of end users have been invited on the spot using the Online Restaurant

Management System and every input or action that are done by the end user will be recorded.

ORMS is implemented based on the system requirement specification, it might stand a

chance that different understanding of the requirement and implement it in the way not

actually wanted by the end user. Through this testing, the changes or abnormal behavior can

be noticed and refine the system to meet user satisfaction.

.

Page 157: OoiWenJieAIA201314F Online Restaurant Management System

150

5.3 Test Plan

Membership Maintenance Module Test Plan

Project : Online Restaurant Management System Test Case No: 1

Module Name: Membership Maintenance Reference No. : Use Case 2.6.1

Actor(s): Staff, Member

Test Case:

No Objective/Test Cases Test Data Expected Result Test Result Remark

1. For Staff and Non

Member Add new

member with valid data

Enter new valid member information a) Prompt a successful message Pass

2. For Staff and Non

Member Add new

member with invalid data

a) Enter new member

information but omit one or

more compulsory field.

b) Enter username that already

exist

c) Enter name with incorrect

format

d) Enter IC with incorrect format

e) Enter phone number with

incorrect format

f) Uncheck term and condition

checkbox

a) Display “This field cannot be

empty”

b) Prompt an error message

c) Display “Name must be

alphabetic”

d) Display “IC must be 12 digit”

e) Display “Phone number must

be 10 digit”

f) Prompt an error message

Pass

Page 158: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 5 : Software Testing

Project 151

3. For Staff view member

information with correct

search keyword

Enter search keyword Member information will be displayed Pass

4. For Staff view member

information with incorrect

search keyword

Enter incorrect search keyword Prompt an error message Pass

5. For Staff remove

membership with correct

data

Enter membership removal reason Prompt an successful message Pass

6. For Staff remove

membership with

incorrect data

Omit the “Reason” field

Display “This field cannot be empty” Pass

7. For Member edit profile

with correct data

Enter new valid member information Prompt an successful message Pass

8. For Member edit profile

with incorrect data

a) Enter new member

information but omit one or

more compulsory field.

b) Enter phone number with

incorrect format

a) Display “This field cannot be

empty”

b) Display “Phone number must

be 10 digit”

Pass

Page 159: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 5 : Software Testing

Project 152

Menu Maintenance Module Test Plan

Project : Online Restaurant Management System Test Case No: 2

Module Name: Menu Maintenance Reference No. : Use Case 2.6.2

Actor(s): Staff

Test Case:

No Objective/Test Cases Test Data Expected Result Test Result Remark

1. To test the auto-generate unique Menu ID

Add new valid menu information a) Prompt a successful message

b) Menu ID field value will auto

plus one

Pass

2. For Staff add new

menu with valid

information

Add new valid menu information a) Prompt a successful message

b) Menu ID field value will auto

plus one

Pass

3. For Staff add new

menu with invalid

information

a) Enter new menu

information but omit one

or more compulsory field.

b) Enter unit price with

incorrect format

a) Display “This field cannot be

empty”

b) Display “Incorrect currency

format”

Pass

4. For Staff edit new

menu with correct

search key and correct

menu data

Enter correct search key and menu

data

a) Menu information will be

displayed

b) Prompt a successful message

Pass

5 For Staff edit new

menu with incorrect

search key and

a) Enter incorrect search key

b) Enter updated menu

a) Prompt an error message

b) Display “This field cannot be

Pass

Page 160: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 5 : Software Testing

Project 153

incorrect menu data information but omit one

or more compulsory field.

c) Enter unit price with

incorrect format

empty”

c) Display “Incorrect currency

format”

Page 161: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 5 : Software Testing

Project 154

Food Order Module Test Plan

Project : Online Restaurant Management System Test Case No: 3

Module Name: Food Order Reference No. : Use Case 2.6.3

Actor(s): Staff

Test Case:

No Objective/Test Cases Test Data Expected Result Test Result Remark

1. To test the auto-generate unique Menu ID

a) Add new order with valid

information

b) Constantly change on table

drop down list

c) Constantly change on

order type

a) New order id will be generated

b) New order id will be generated

c) New order id will be generated

Pass

2. For Staff add new order

with correct order data

Enter new valid order data Prompt a successful message Pass

3. For Staff add new order

with incorrect order

data

a) Check on “Member‟s

Order” but does not enter

member username

b) Click confirm button

without make any item

selection

c) Click on remove button

without “Check” on any

item record

a) Display “Please fill in this

field”

b) Prompt an error message

c) Prompt an error message

Pass

Page 162: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 5 : Software Testing

Project 155

4. For Staff edit new order

with correct order data

Enter new valid order data Prompt a successful message Pass

5. For Staff edit new order

with incorrect order

data

a) Edit on item status that is

not in “Queue”

b) Click on remove button

without “Check” on any

item record

a) Prompt error message

b) Prompt error message

Pass a)Only item with

status “Queue”

can be edited.

Page 163: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 5 : Software Testing

Project 156

Reservation Module Test Plan

Project : Online Restaurant Management System Test Case No: 4

Module Name: Reservation Reference No. : Use Case 2.6.4

Actor(s): Staff, Member

Test Case:

No Objective/Test Cases Test Data Expected Result Test Result Remark

1. For Staff Add reservation

with correct search key

and reservation data

Enter correct search key and new

valid reservation information

Prompt a successful message Pass

2. For Staff Add reservation

with incorrect search key

and reservation data

a) Enter incorrect search key

b) Enter new reservation

information but omit one or

more compulsory field.

c) Enter phone number with

incorrect format

d) Select an earlier reservation

date

e) Make 2 reservation on a

same date for a same

member

a) Prompt error message

b) Display “This field cannot

be empty”

c) Display “Phone number

must be 10 digit”

d) Prompt an error message

e) Prompt an error message

Pass

3. For Member Add

reservation with correct

reservation data

Enter new valid reservation

information

Prompt a successful message Pass

Page 164: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 5 : Software Testing

Project 157

4. For Member Add

reservation with incorrect

reservation data

a) Enter new reservation

information but omit one or

more compulsory field.

b) Enter phone number with

incorrect format

c) Select an earlier reservation

date

d) Make 2 reservation on a

same date for a same

member

a) Display “This field cannot

be empty”

b) Display “Phone number

must be 10 digit”

c) Prompt an error message

d) Prompt an error message

Pass

5. For Staff Edit reservation

detail with correct search

key and reservation data

a) Enter correct search key and

new valid reservation

information

b) Click on “Send SMS”

button

c) Click on “Attended” button

a) Prompt a successful

message

b) Prompt “SMS has sent”

c) Prompt “Reservation

status updated”

Pass

6. For Staff Edit reservation

detail for reservation that

has been attended

Click on edit button Prompt an error message Pass

7. For Staff Edit reservation

detail with incorrect search

key and reservation data

a) Enter incorrect search key

b) Enter phone number with

incorrect format

c) Select an earlier reservation

a) Prompt an error message

b) Display “Phone number

must be 10 digit”

c) Prompt an error message

Pass

Page 165: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 5 : Software Testing

Project 158

date

d) Make 2 reservation on a

same date for a same

member

e) Click on “Send SMS” but

SMS status is “Sent”

d) Prompt an error message

e) Prompt an error message

8. For Staff remove

reservation with correct

search key

Enter correct search key and

remove the reservation

Prompt a successful message Pass

9 For Staff remove

reservation with incorrect

search key

a) Enter incorrect search key

b) Remove on “Attended”

reservation

a) Prompt an error message

b) Prompt an error message

Pass

10. For Staff reserve a table

for upcoming reservation

with correct steps

a) Select on upcoming

reservation

b) Select on a table

a) Prompt a successful

message

b) Change table color to

Yellow

Pass Green –Free

Red-Seated

Yellow-Reserved

11 For Staff reserve a table

for upcoming reservation

with exceptional flows

a) Select on a table without

select on upcoming

reservation

b) Select on seated or reserved

table

a) Prompt error message

b) Prompt error message

Pass

Page 166: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 5 : Software Testing

Project 159

Payment Module Test Plan

Project : Online Restaurant Management System Test Case No: 5

Module Name: Payment Reference No. : Use Case 2.6.5

Actor(s): Staff

Test Case:

No Objective/Test Cases Test Data Expected Result Test Result Remark

1. For Staff Make payment

with correct payment

information

Enter correct payment information a) Prompt a successful message

and balance will be calculate if

exists

b) A receipt will be generated

Pass

2. For Staff Make payment

with incorrect cash

payment information

a) Enter payment information

but omit one or more

compulsory field.

b) Enter amount receive with

incorrect format

c) Enter insufficient amount

d) Check on Member‟s Order

radio button but did not enter

member username

e) Enter non-exist member

username

a) Display “This field cannot be

empty”

b) Display “Incorrect currency

format”

c) Prompt an error message

d) Display “Please enter member

username”

e) Prompt an error message

Pass

Page 167: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 5 : Software Testing

Project 160

3. To determine the result

when no payment

available

a) Click on “Dine In” button

b) Click on “Take Away” button

a) Prompt “No payment

available”

b) Prompt “No payment

available”

Pass

4. To determine discount is

given to member

payment

Enter valid member username Payment will be recalculate and

display on the screen with discount

information

Pass

5. For Staff to Print Bill Select an available payment and

click on print bill button

Payment billing information will be

created as a PDF and display on new

window

Pass

6. For Staff make Paypal

payment with

exceptional flow

a) Paypal do not have enough

money

b) Pay-pal login fail

c) Cancel Paypal payment

a) Redirect to MP_Failed page

and prompt an error message

b) Redirect to MP_Failed page

and prompt an error message

c) Redirect to MP_Failed page

and prompt an error message

Pass

7 For Staff make Paypal

payment with

exceptional flow

Login and make payment with

Paypal account that have sufficient

money.

Redirect to MP_Success page and

prompt a receipt in a new window.

Pass

Page 168: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 5 : Software Testing

Project 161

Report Module Test Plan

Project : Online Restaurant Management System Test Case No: 6

Module Name: Report Reference No. : Use Case 2.6.6

Actor(s): Staff

Test Case:

No Objective/Test Cases Test Data Expected Result Test Result Remark

1. For Staff Preview

Report with correct

report criteria

Enter correct date selection The selected report will be displayed

in new window

Pass

2. For Staff Preview

Report with incorrect

report criteria

a) Enter report criteria but omit

one or more compulsory field.

b) Enter ToDate earlier than

FromDate

a) Display “This field cannot be

empty”

b) Prompt error message

Pass

3. For Staff Download

Report with correct

report criteria

Enter correct date selection The selected report will be

downloaded

Pass

4. For Staff Download

Report with incorrect

report criteria

a) Enter report criteria but omit

one or more compulsory field.

b) Enter ToDate earlier than

FromDate

a) Display “This field cannot be

empty”

b) Prompt error message

Pass

Page 169: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Chapter 5 : Software Testing

Project 162

Kitchen Module Test Plan

Project : Online Restaurant Management System Test Case No: 7

Module Name: Kitchen Reference No. : Use Case 2.6.7

Actor(s): Staff

Test Case:

No Objective/Test Cases Test Data Expected Result Test Result Remark

1. For Staff Click on filter

food list- Queue

Click on “Queue” button The display food list will be filter by merging

the same food order within 5 minute interval

Pass

2. For Staff Click on filter

food list- Dequeue

Click on “Dequeue”

button

The display food list will be arrange and

displayed without any merging

Pass

3. For Staff Click filter on

empty list

Click on “Queue” or

“Dequeue” when the list is

empty

Prompt error message Pass

4. For Staff Click on

update food status

Click on “Update” button The food item status will be updated Pass Queue to

Prepare

Prepare to

Served

Page 170: OoiWenJieAIA201314F Online Restaurant Management System

163

5.4 Chapter Summary

Basically, this chapter will be summarized on the information about software testing

requirement of the development project. This testing process will indirectly ensure a good

quality and reliable system is being delivered. During the testing process, any error encounter

will be given appropriate corrective action to prevent the faulty system being sign-off.

Besides, a good test plan must be available before any testing process is carried out. A good

test plan will lead the system testing process to success as the system tester carried out testing

based on the well-defined test plan. The common level of testing carried out would be the

unit testing, integration testing, system testing and also user acceptance testing. Furthermore,

extra testing techniques also carried out to ensure the project is able to work under different

environment such as stress testing and performance testing. After completing all levels of

testing, the result of the testing is recorded and enables us to trace back the errors and

proposed the suitable solution to overcome it.

Page 171: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Conclusion

Project 164

Chapter 6

Conclusion

Page 172: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Conclusion

Project 165

66.. CCoonncclluussiioonn

6.1 Introduction

This chapter would be discussed about the linkage to seminar, evaluation against the project

objectives, project management issues, methodology, critical evaluation on project, the

strength and weaknesses of project as well as the future improvement of this project.

6.2 Link to Seminar

My seminar title is jQuery Web Development Technique. As a brief explanation, jQuery is a

JavaScript library that allows web designers to simplify their client-side scripting to build an

interactive web application. In the Online Restaurant Management System, I have used

jQuery in improving the interactivity between the user and the application and enhance the

visual of the system. Besides focusing on the graphical user interface, I am also using the

script provided to implement the system function.

In terms of GUI improvement, I have used jQuery Smooth Menu Bar in implementing the

menu bar used in all of the pages in the system. The menu bar created with jQuery provides

more interaction, visual than the normal menu bar as it provides a slow smooth motion. On

the home page of the system, I am using the jQuery Dual Slider for showing the related

pictures and information which allows the content to be dynamically changed. Besides, I also

applied the jQuery Calendar function in the Reservation Modules and Report Modules. It

allowed the users to select date from a calendar displayed when they click on the Text Box.

By having these functionalities applied, it greatly improves the design of web application.

Furthermore, I also used jQuery in creating the system function which is a Real Time

Function that implemented in almost all pages only the staff can access. In this

implementation, the real time script is bind with the function created in the code behind. The

system will detect any real time changes from the database and trigger the expected result.

Example, when a client is requesting for billing, the function created will detect the changes

value of the database and respond to the client which is printed bill information for the client.

Page 173: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Conclusion

Project 166

By having this real time function, it allowed the system to respond to the request at a shorter

time.

In a nutshell, by applying jQuery in the project development, it allows us to create a higher

level of interactive and interesting web application that will lead to higher customer

satisfaction. It also greatly reduces my learning time, development time in creating the result

that the system should provide as jQuery emphasized on a low learning curve. Lastly, jQuery

has helped to increase the system value in term of visual and functions.

6.3 Tools, Techniques and Methodologies

I have used several tools in my project development either in the project management

documentation or project implementation. In project documentation, I have used Rational

Software Architecture (RSA) in drawing all the diagrams such as Use Case Diagram, Activity

Diagram and etc. Besides, I used Microsoft Project 2010 for my project scheduling as it

provides a good platform for drawing Gantt chart.

Meanwhile, for the system coding implementation, I have used Microsoft Visual Studio

2012. The main reason for selecting Microsoft Visual Studio 2012 is that this version

supports mobile application implementation. My Final Year Project includes 2 types of

application which is Online Restaurant Management System and Restaurant Mobile

Application. Besides, Microsoft Visual Studio 2012 is also easy in their uses which

eventually save up my time spent in building complex coding. Besides, the MsSQL database

that provided by Microsoft Visual Studio 2012 also used as the system database.

The software development methodology that practiced in this project development is System

Development Life Cycle (SDLC). This methodology emphasized on completion of the

project development phase by phase, which starts from system planning, requirement

analysis, system design, system implementation, system testing and maintenance. This

methodology ensures a high quality system will be produced as in each stage, a deliverable is

essential to produce. Therefore, it does provide a quality assurance to the project developed.

Page 174: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Conclusion

Project 167

6.4 Achievement of Project Objectives

In the system planning stage, the project objectives that the system must achieve are clearly

stated and provide with clear description. The first objective is to reduce the human

workforce in the restaurant. By using the new Online Restaurant Management System, some

of the manual works is being computerized. Therefore, the needs of the larger workforce to

complete customer registration and registration are no longer needed.

The second objective to achieve is to reduce human mistake. Now, by using the system

implemented to carry out the daily transaction, such as order processing, the waiter just need

to enter the customer order into the system and the system will process the order and display

on the kitchen monitor. The misinterpretation of order taken due to handwriting issues is now

eliminated and also the chances of losing of the order sheet. The third objective is to simplify

the food ordering process as now the system allows the dine-in customer to make their own

food ordering through our developed restaurant mobile application after the approval and

confirmation by the in-charge supervisor or captain.

Furthermore, the fourth objective to achieve is to allow the kitchen department to work in an

efficient and effective environment as the system is implemented queuing algorithm in

arrangement of ordering food item list. Besides, the order taken by front desk can be clearly

seen on the monitor and able to obtain the new orders in a shorter time. The last objective is

to allow the restaurant staff efficiently in maintaining the restaurant information such as

customer membership, and menu information. The staff in-charge just need to key in the

details through our system and our system will provide information maintenance to be made

in a simple and easy way.

In a nutshell, the project objectives that stated in the System Planning phase are successfully

implemented and achieved. The Online Restaurant Management System with Restaurant

Mobile Application is now preparing to provide better service to the restaurant and

customers.

Page 175: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Conclusion

Project 168

6.5 Project Management Issues

The overall project development process does not bring up any critical management issue.

The problem raises is still manageable with proper management control and tolerable

minimum time of delay. It is a need to understand that there are several tests and assignments

is given to student while having the project development process on-going and some

deliverable need to be handed in to the supervisor. Time management has become a critical

element for students that having their Final Year Project in hand while still need to manage

their studies. A high effort is essential in doing research and concept of thinking out of the

book is required in developing the system to make the system more relate to the real world

society.

In terms of communication, me and my partner does not face any difficulties in discussing

and sharing information as both of us are staying together. Any discussion and problems

relate to FYP can be asked immediately and come out with a solution in a short time.

Besides, there were no module integration problem occur as I will in-charge of the whole

Web Application development and my partner will be in-charging on the Restaurant Mobile

Application. The integration problem that can be raised is only the database integration issue

as the Web Application and Mobile Application are sharing a same database. However, the

tolerance and patience given in solving the problems do not bring up any critical issue in the

database integration perspective.

In a nutshell, proper time management, hard effort shows and communication is essential to

prevent any critical management issues to be rose thus affecting the overall project

development process.

Page 176: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Conclusion

Project 169

6.6 Strengths and Weaknesses

Strengths

Interactive

The system is developed with multiple interactive events between the system user and the

system. The entire interactive event is created by the use of jQuery Web Development

technique.

Efficient

In the kitchen module, it is developed with a queuing algorithm in the filtering food list

which allows the ordered item is efficiently arranged and merged under the condition

programmed.

Unambiguous

The user manual, design, labeling, information, instruction, objectives shows on the screen

are using English Languages and it is unambiguous, clear and easy to understand.

User friendly

The system interface is designed and created in a user friendly manner so that the user does

not face any hard time or having a low learning curve using the system services or functions.

All screen design also emphasized on the consistent concept.

Maintainable

The system does provide facilities which allow the user to check and change their personal

data, allowing the staff control of the menu maintenance, food order information and any

latest information could be made immediately through the system.

Page 177: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Conclusion

Project 170

Reliable

In maintenance module, several validations are programmed to ensure that reliable data is

stored in the database and provided to its user. It is mostly validated on the user input such as

IC number, Phone Number, Unit Pricing and etc.

Portable

By using the web hosting, it allows the Online Restaurant Management System to be

accessed at any location with the availability of Internet access. Now, the system is no longer

tied to local use only.

Weakness

Inaccessible when no Internet access

The system is unable to access when there is no Internet access. The Online Restaurant

Management System is only workable provided with the Internet access as the system is

managed and host by web server. If there is an Internet service breakdown in the restaurant,

the restaurant is unable to carry out its daily transaction.

Slow Performance when dealing with databases

It possesses a slow performance environment when a transaction is dealing with the database.

The reason is because the database of the system is stored and managed on the web server. So

every transaction dealing with database will need to send request to the database locate in the

web server and waiting the response from the web server. All of this request and response are

controlled by the Internet access speed.

Inability of supporting more than one restaurant branch

The system does not provide any facility in identifying which restaurant is currently using the

system. At the moment, the system developed only can serve one restaurant because there is

no facility programmed to identify which food orders is belong to which restaurant branch.

Page 178: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Conclusion

Project 171

6.7 Suggestions for Future Improvement

After carrying a series of project evaluation, it found out that the project is still able to be

improved by the following suggestion:

Password encryption

The system can be more secure to its information by further improve the security of the login

module by providing encrypted password. By implementing password encryption, it will

increase the security level of the system towards the system user. It is difficult for the

unauthorized person to obtain the login credential even though they illegally access to the

database.

Forum Discussion

Although now the system is designed to have instant messaging between the restaurant

member and the restaurant staff, however, it is best to allow the restaurant member to

communicate with another restaurant member in exchanging information and feedback of

visiting the restaurant. It can be served as a platform for sharing feedback and comment

which is open to public.

Ability in inventory control and managing more than one restaurant

The system implemented does not provide inventory control facilities which can further be

improved. Every restaurant is guaranteed to involve in stock managing, if inventory control is

implemented, then the system can be said as a more complete system. Besides, the system

can also be implemented to support the restaurant business grows as there is a possibility that

the restaurant will expands their business with several branches.

Page 179: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Conclusion

Project 172

6.8 Personal Reflection

Final Year Project to me is the most challenging project that I ever have in my education

either in diploma or advanced diploma. My Final Year Project will be involved of 2 types of

application which is a web application and mobile application. It has forced me to apply all

my experience and knowledge learnt throughout this few years in this final year project.

However, I have put a lot of effort and time in doing research and able to complete it as a

complete system.

During diploma and advanced diploma studies, almost every assignment that relates to

system implementation, most of the time I will be assigned to in charge on the front end

modules. There is very low possibility for me to handle the back end modules. This has put

me in a difficult situation when handling the final year project as now I will be in charge of

the entire web application which include front end and back end modules. I had faced quite a

number of program logic problems when implements the system. However, this does not

create a barrier for me to complete the system. I tend to search the Internet for solution and

seek for advice from my partner. At here, I would also like to thank my partner for sharing

his information, experience in implementing the system and provide guidance to me although

he is busy with his mobile application implementation.

Since this is the final year project, I am excited to apply new technology in my system to

make it distinct from the previous system that I have implemented. In this project, I tend to

make it more interactive and attractive by applying the jQuery web development technology.

I am glad that I am given a chance for selecting jQuery as my seminar research to increase

my understanding, knowledge in this technology. When implementing my system with

jQuery, I am able to manage it as it not considered fresh to me anymore.

Finally, my Final Year Project development has come to its end. I am glad that my system

works fine in the way it should while meeting all the project aims and objective defined at the

earlier stage. This is a valuable experience for me in handling the project before exposes to

the real IT environment. I am very grateful that I have Mr. Lim Sau Jian as my FYP partner.

Page 180: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Conclusion

Project 173

His help and guidance is a part of the reason why this project succeeds. I guarantee that our

friendship would be strengthened after completing this project together. Lastly, I would like

to say thousands thanks to my supervisor Dr. Chong Jin Hui for his precious comments,

suggestion, experience to the real IT environment and guiding us along the final year project

development process and the seminar.

6.9 Chapter Summary

At the end of this chapter, I feel achieved that I have completed the whole system

development and documentation. This chapter would describe about my feeling about the

whole project development. I am proud and satisfied with my teammate who put a lot of

effort on this project development. Dr. Chong, my supervisor who is kind enough to give his

precious comment and suggestion to lead us along the system development.

To: Dr. Chong and Mr. Lim Sau Jian and others,

“Your efforts are appreciated. Thanks”

Page 181: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Conclusion

Project 174

77.. RReeffeerreenncceess

1. Anon., n.d. What is System Testing?. [Online] Available at:

http://www.guru99.com/system-testing.html[Accessed 5 1 2014].

2. Computer Hope, n.d. Portability. [Online] Available at:

http://www.computerhope.com/jargon/p/portabil.htm [Accessed 3 1 2014].

3. guru99, 2012. guru99 Integration Testing: Tutorial 5. [Online] Available at:

http://www.guru99.com/integration-testing.html [Accessed 5 1 2014].

4. guru99, 2012. guru99 Unit Testing :Tutorial 4. [Online] Available at:

http://www.guru99.com/unit-testing.html [Accessed 5 1 2014].

5. guru99, System & Acceptance Testing: Tutorial 6. guru99. [Online] Available at:

http://www.guru99.com/system-acceptance-testing.html [Accessed 5 1 2014].

6. home.btconnect, 2012. home.btconnect DATA ITEM DESCRIPTION. [Online]

Available at: http://home.btconnect.com/managingstandard/sipdid.htm [Accessed 1 1

2013].

7. Howitz C., 2012. What Is 3-Tier(Multi-Tier) Architecture And Why Do You Need It?. [Online]

Available at: http://blog.simcrest.com/what-is-3-tier-architecture-and-why-do-you-need-it/

[Accessed 26 5 2013].

8. Joomla. 2013. Unit Testing. [Online] Available: http://docs.joomla.org/Unit_Testing.

[Accessed 5 1 2014].

9. Kendra Gaines, 2012. Great jQuery plugins for fresh websites. [Online] Available at:

http://www.webdesignerdepot.com/2012/08/great-jquery-plugins-for-fresh-websites/.

[Accessed 1 1 2013].

10. Lindley, C., 2009. jQuery Cookbook. O'Reilly Media, pp. 2. [Accessed 10 5 2013].

11. Margaret Rouse. 2009. Systems development life cycle (SDLC).[Online] Available:

http://searchsoftwarequality.techtarget.com/definition/systems-development-life-

cycle . [Accessed 10 1 2014].

12. Marie Catribs. 2013. Web Design.[Online] Available:

http://mariecatribs.com/.[Accessed on 5 2 2013].

Page 182: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Conclusion

Project 175

13. Miller-Francisco, E 2010, 'Creating Dynamic Websites Using jQuery', Computers In

Libraries, 30, 6, pp. 26-28, Business Source Complete, EBSCOhost. [Accessed on 10

5 2013].

14. MSDN, n.d. Chapter 16: Quality Attributes. [Online] Available at:

http://msdn.microsoft.com/en-us/library/ee658094.aspx [Accessed 3 1 2014].

15. MSDN, n.d. Implementing System-Quality Attributes. [Online] Available at:

http://msdn.microsoft.com/en-us/library/bb402962.aspx [Accessed 3 1 2014].

16. Research and, M 2013, 'Research and Markets: jQuery Fundamentals Training',

Business Wire (English), 2, Regional Business News, EBSCOhost, [Accessed on 10 5

2013].

17. Rutter, J., 2010. Smashing jQuery : Professional Techniques with Ajax and JQuery.

Hoboken, NJ, USA: Wiley, pp 100-102. [Accessed on 11 5 2013].

18. Veda. (2013). Web Design.[Online] Available:

http://www.vedatakeout.com/index.php.[Accessed on 5 2 2013].

Page 183: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Appendices

Project 176

88.. AAppppeennddiicceess

Interview Questions

1. Are you satisfied the current business processes? Why?

2. What are the procedures required from an order to payment process?

3. How do you store all the menu, orders, employees and reservation data?

4. Do you face any redundancy in handling all the important data?

5. What are the procedures needed if a customer wishes to make a reservation?

6. How order payment is calculated?

7. Can you list some mistakes that often occurred in restaurant? How does it solved?

8. Do you think that customers are satisfied with the service? Why?

9. Which procedures in the daily transaction require improvement?

10. Do you think that some of the steps should be kept in manually way rather than using

a system? Why?

11. If Dizzy is offering membership to customer, how many categories and what are the

privileges should be offered for each category?

12. Do you have any suggestions or opinions in the plan of developing a Dizzy restaurant

management system?

13. What are your expectations on the features of new system?

Page 184: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Appendices

Project 177

Questionnaire of Dizzy Restaurant

Please complete the following survey so that we may have a clear idea of your opinions

on new system. Thank You.

Instruction: Please tick (√) your answer.

1. Please select your department:

Kitchen (skip question 4)

Front Desk (skip question 5)

2. How long have you worked for Dizzy Restaurant?

Less than 1 year 1 – 3 Year

3 – 5 Year More than 5 year

3. What category of job you belong to?

Supervisor Floor Staff / Hostess

Asst. Chef Kitchen Crew

4. How much the time needed to take an order from customer?

< 3minutes 3 – 5 minutes

5 – 10 minutes > 10 minutes

5. Please tick the preferred method you wish to receive order in the kitchen.

Human power Using system

6. Do you encounter any problems or inconvenient in complete your task?

Yes (continue question 7) No (skip question 7)

7. What are the problems you often faced? (May tick more than one)

Wrong order taken Produce the wrong food

Miscalculate payment Unclear handwriting in order

Serve food to wrong table

Other: ___________________

8. How would you rate the current method of reservation?

Complicated Moderate Simple Enough

9. Do you think that Dizzy restaurant should have customer membership? If yes, how many

categories should Dizzy have?

Yes, __ category No

Page 185: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Appendices

Project 178

10. Which procedures should be improved in Dizzy? (May tick more than one)

Order from customer Order to kitchen

Payment calculation Checking of reservation record

Method to handle important data Other: _____________________

11. Please indicate how satisfied you are with your current workload.

Satisfied Moderate Dissatisfied

12. How do you rate your level of knowledge in using a computer?

High Moderate Low

13. Do you wish have an opportunity to involve the use of technology in restaurant? Why?

Yes, ________________________ No, ________________________

14. Do you have any ideas and suggestions on the restaurant system to be developed?

________________________________________________________________________

________________________________________________________________________

________________________________________________________________________

____________________________________________________________

THANK YOU. HAVE A NICE DAY.

Page 186: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Appendices

Project 179

Veda Healthy Indian Take Out (Online Restaurant System)

Diagram 8.1 Veda‟s Home Page

Diagram 8.2 Veda‟s Order & Menu Page

Page 187: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Appendices

Project 180

Diagram 8.3 Veda‟s About Page

Diagram 8.4 Veda‟s Delivery Page

Page 188: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Appendices

Project 181

Diagram 8.5 Veda‟s Location Page

Diagram 8.6 Veda‟s Cateing Page

Page 189: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Appendices

Project 182

Diagram 8.7 Veda‟s Contact Us Page

Diagram 8.8 Veda‟s Legal Notice Page

Page 190: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Appendices

Project 183

Maria Catrib Online Restaurant System

Diagram 8.9 Maria‟s Home Page

Diagram 8.10 Maria‟s Contact Us Page

Page 191: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management Appendices

Project 184

Diagram 8.11 Maria‟s Menu Page

Diagram 8.12 Maria‟s Store Page

Page 192: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 185

99.. UUsseerr GGuuiiddee

9.1 System Document

9.1.1 Crystal Report 2012 Installation

Step 1: - Visit scn.sap.com/docs/DOC-7824

-Click Support Pack 8 to start downloading

Diagram 9.1.1.1 Step 1

Step 2: - Double click the installer shown

Diagram 9.1.1.2 Step 2

Page 193: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 186

Step 3: -Extracting of the installation files

Diagram 9.1.1.3 Step 3

Step 4:- Click “OK” button

Diagram 9.1.1.4 Step 4

Page 194: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 187

Step 5: - Click “Next” button

Diagram 9.1.1.5 Step 5

Step 6: -Tick “I accept the License Agreement

-Click “Next” button

Diagram 9.1.1.6 Step 6

Page 195: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 188

Step 7: -Click “Next” button

Diagram 9.1.1.7 Step 7

Step 8: -Tick “Yes, install 64-bit runtime”

-Click “Finish” button

Diagram 9.1.18 Step 8

Step 9: Installation for Crystal Report 2012 is completed.

Page 196: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 189

9.1.2 Web Hosting Steps

Step 1:- Visit www.somee.com

-Click on “Login”

Diagram 9.1.2.1 Step 1

Step 2:- Enter login credential

: Click “Login” button

Diagram 9.1.2.2 Step 2

Page 197: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 190

Step 3:- Copy your entire project file into one zip file

Diagram 9.1.2.3 Step 3

Step 4: Click “Website”

Diagram 9.1.2.4 Step 4

Page 198: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 191

Step 5: Click “Create”

Diagram 9.1.2.5 Step 5

Step 6:-Enter your website information

-Click „Create Website‟ button

Diagram 9.1.2.6 Step 6

Step 7: Successful message will be shown

Diagram 9.1.2.7 Step 7

Page 199: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 192

Step 8:Click “Database”

Diagram 9.1.2.8 Step 8

Step 9: Click “Create”

Diagram 9.1.2.9 Step 9

Step 10: -Enter your database information and click “Create Empty Database”

Diagram 9.1.2.10 Step 10

Page 200: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 193

Step 11: Successful Message will be shown

Diagram 9.1.2.11 Step 11

Step 12: Click “Attach Database”

Diagram 9.1.2.12 Step 12

Step 13: Click “Choose File” button

Diagram 9.1.2.13 Step 13

Page 201: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 194

Step 14: Upload .ldf file and .mdf file

-Click “Upload the files and attach”

Diagram 9.1.2.14 Step 14

Step 15: Successful message will be shown

Diagram 9.1.2.15 Step 15

Step 16: Change the project web configuration file

Diagram 9.1.2.16 Step 16

Page 202: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 195

Step 17: Click “File Manager”

Diagram 9.1.2.17 Step 17

Step 18: Click “Choose File”

Diagram 9.1.2.18 Step 18

Step 19: Upload this zip file

Diagram 9.1.2.19 Step 19

Page 203: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 196

Step 20: Your fill will be uploaded

-Click on “Upload and Unzip the folder”

Diagram 9.12.20 Step 20

Step 21: Your entire project file will be uploaded

Diagram 9.1.2.21 Step 21

Page 204: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 197

Step 22: Your project already upload to web server

Visit to http://sjlim-solution.somee.com/Default.aspx

Staf Login

ID: wenjie

Password: admin

Member Login

ID:wenjie5709s

Password: 12345678

Diagram 9.1.2.2 Step 22

Page 205: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 198

9.2 Operation Document

Login

Diagram 9.2.1

1: Enter your login username

2: Enter your password

3: Click “Log-in” button

Page 206: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 199

Registration

Diagram 9.2.1

1: Enter your desire username and Click “Check” button

2: Enter your name

3: Enter your IC

4: Select your gender

5: Select your profile picture

6: Upload your profile picture

7: Enter your phone number

8: Enter your email address

9: Enter your address

10: Enter your city

11:Enter your postcode

12: Select your state

13: Tick “I have read the term and condition”

14: Click Submit button

Diagram 9.2.3

1: Successful message prompt for registration

Page 207: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 200

Diagram 9.2.4

1: Error message prompt when username is not available

Diagram 9.2.5

1: Successful message prompt when username is available

Page 208: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 201

Send feedback & recommendation

Diagram 9.2.6

1: Enter your name

2: Enter your email address

3: Enter your email subject

4: Enter your message

5: Click submit button

Diagram 9.2.7

1: Successful message prompt when the feedback & recommendation email is sent

Page 209: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 202

Forgot Password

Diagram 9.2.8

1: Enter your username

2: Click ok button

Diagram 9.2.9

1: Error message prompt when username not exist

Diagram 9.2.10

1: Successful message prompt when forgot password email is send

Page 210: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 203

Member Edit Profile

Diagram 9.2.11

1: After edit your personal information click update button

2: After select your new profile picture click upload button

3: After key in your old and new password click change button

Page 211: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 204

Instant Messaging

Diagram 9.2.12

1: Enter your message

2: Click send message button

Page 212: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 205

Member Reservation

Diagram 9.2.13

1: Enter your phone number

2: Select your date

3: Select your reservation time

4: Select your number of people

5: Enter your message for reservation

6: Click submit button

Page 213: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 206

Diagram 9.2.14

1: Calendar displayed for date selection

Diagram 9.2.15

1: Confirmation message shown and click ok button

Diagram 9.2.16

1: Successful message shown when reservation is made

Page 214: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 207

Staff View Member Detail

Diagram 9.2.17

1: Enter member username and click search button

Diagram 9.2.18

1: Error message shown when the member username does not exits

Page 215: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 208

Staff Remove Membership

Diagram 9.2.19

1: Enter member username and click search button

2: Enter removal reason

3: Click remove button

Diagram 9.2.20

1: Confirmation message prompt when remove button is click

Page 216: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 209

Diagram 9.2.21

1: An inform message will send to member when membership removal is successful

Page 217: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 210

Staff Add Menu

Diagram 9.2.22

1: Select your menu category

2: Choose your menu picture

3: Upload your menu picture

4: Enter your menu name

5: Enter your menu description

6: Enter your item unit price

7: Click submit button

Diagram 9.2.23

1: A confirmation message will be prompt when submit button is click

Diagram 9.2.24

1: Successful message prompt when new menu is added

Page 218: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 211

Staff Edit Menu

Diagram 9.2.25

1: Enter menu id and click search button

2: Upload your new menu picture

3: Enter your new menu name

4: Enter your new menu description

5: Enter item new unit price

6: Click submit button

Diagram 9.2.26

1: A confirmation message will be prompt when submit button is click

Page 219: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 212

Diagram 9.2.27

1: Successful message is prompt when the menu information is updated

Diagram 9.2.28

1: Error message prompt when the menu id does not exist

Page 220: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 213

Staff Add Order

Diagram 9.2.29

1: Select menu category

2: Select order item

3: Select member type

4: Select serving type

5: Select table

6: Select pax number

7: Click confirm button

Diagram 9.2.30

1: Confirmation message prompt when confirm button is click

Page 221: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 214

Diagram 9.2.31

1: Successful message prompt when order is successfully added

Page 222: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 215

Staff Edit Order

Diagram 9.2.32

1: Select order id to edit

2: Select menu category

3: Add in new order item

4: Select an existing order record

5: Click remove to remove the selected record

Page 223: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 216

Staff Add Reservation

Diagram 9.2.33

1: Enter member username

2: Enter member phone number

3: Select reservation date

4: Select reservation time

5: Select number of person

6: Enter remark message for reservation

7: Click submit button

Diagram 9.2.34

1: Successful message shown when reservation is made

Page 224: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 217

Staff Edit Reservation

Diagram 9.2.35

1: Select date for edit reservation

2: Select reservation record

3: Click edit button

4: After edit the reservation information click update button

5: Click attend button when the reservation is attended

6: Click SMS button to send SMS Reminder

7: Click remove button when reservation is cancel

Diagram 9.2.36

1: Successful message show when attend button is click

Page 225: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 218

Diagram 9.2.37

1: Successful message show when SMS button is click

Diagram 9.2.38

1: Successful message show when remove button is click

Diagram 9.2.39

1: Successful message show when attend button is click

Page 226: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 219

Staff Update Reservation Table

Diagram 9.2.40

1: Select a reservation record

2: Select a table to reserve for the reservation selected

Page 227: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 220

Staff Kitchen Maintenance

Diagram 9.2.41

1: Update the food status for selected food list

Diagram 9.2.42

1: Successful message show when food status updated

Diagram 9.2.43

1: Click queue button to change the food list filter option

Page 228: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 221

Staff Make Payment

Diagram 9.2.44

1: Select on serving type

2: Select table id

3: Select order id

4: Select member type

5: Enter member username

6: Select payment method

7: Enter amount receive if cash payment

8: Click make payment button

9: Click generate bill button to generate bill

Page 229: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 222

Diagram 9.2.45

1: Example of receipt

Diagram 9.2.46

1: PayPal payment page

Page 230: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 223

Diagram 9.2.47

1: Payment PayPal successful page redirected from PayPal when payment is success

Page 231: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 224

Staff Generate Report

Diagram 9.2.48

1: Select report type

2: Select From Date

3: Select To Date

4: Click preview button for preview report

5: Click download button to download the report

Page 232: OoiWenJieAIA201314F Online Restaurant Management System

Online Restaurant Management User Guide

Project 225

1100.. SSooffttccooppyy