Download as pdf or txt
Download as pdf or txt
You are on page 1of 232

(ORMS)ONLINE RESTAURANT MANAGEMENT SYSTEM

By

Ooi Wen Jie

FACULTY OF APPLIED SCIENCES AND COMPUTING TUNKU ABDUL RAHMAN UNIVERSITY COLLEGE KUALA LUMPUR ACADEMIC YEAR 2013/2014

Online Restaurant Management

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.

Project

ii

Online Restaurant Management System

Declaration

Declaration
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.

__________________________ Students Name : Ooi Wen Jie Programme :Advanced Diploma in Science (Information System Engineering Year 2)

Project

iii

Online Restaurant Management System

Abstract

Abstract
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.

Project

iv

Online Restaurant Management System

Acknowledgement

Acknowledgement
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.

Project

vi

Online Restaurant Management

Table of Contents

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

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


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

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


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

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


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

Project

vii

Online Restaurant Management 4.3

Table of Contents

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

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


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

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


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

7. References ...................................................................................................................... 174 8. Appendices ..................................................................................................................... 176 9. User Guide ..................................................................................................................... 185
9.1 9.2 System Document ............................................................................................................. 185 Operation Document ......................................................................................................... 198

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

Project

viii

Online Restaurant Management

Chapter 1 : System Planning

Chapter 1 System Planning

Online Restaurant Management System

Online Restaurant Management

Chapter 1 : System Planning

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.

Online Restaurant Management System

Online Restaurant Management

Chapter 1 : System Planning

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.

Online Restaurant Management System

Online Restaurant Management

Chapter 1 : System Planning

Reduce human mistakes as the system that we develop allows the waiter to enter the customers order and the system will then display the order in the kitchens 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 restaurants 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.

Online Restaurant Management System

1.5

System Functionalities Chart

Diagram 1.5 System Functionalities Chart

Online Restaurant Management

Chapter 1 : System Planning

1.6

Project Scope (Web Application)

Diagram 1.6.1 ORMS Web Application Functionalities Chart

Online Restaurant Management System

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 customers 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.

Online Restaurant Management

Chapter 1 : System Planning

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.

Online Restaurant Management System

Online Restaurant Management

Chapter 1 : System Planning

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.

Online Restaurant Management System

Online Restaurant Management

Chapter 1 : System Planning

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

Online Restaurant Management System

10

Online Restaurant Management

Chapter 1 : System Planning

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)

Online Restaurant Management System

11

Online Restaurant Management

Chapter 1 : System Planning

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.

Online Restaurant Management System

12

Online Restaurant Management

Chapter 1 : System Planning

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.

Online Restaurant Management System

13

Online Restaurant Management

Chapter 1 : System Planning

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.

Online Restaurant Management System

14

Online Restaurant Management

Chapter 1 : System Planning

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.

Online Restaurant Management System

15

Online Restaurant Management

Chapter 1 : System Planning

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.

Online Restaurant Management System

16

1.13 Project Schedule

Diagram 1.13.1 ORMS Project Management Gantt Chart

17

1.14 Project Team and Organization


Lim Sau Jian
Mobile application: Customer Food menu Food order Food preparing status Profile setting Mobile application: Captain Order Management Table Management Web Services All WCF methods

Ooi Wen Jie


Web Application Customer maintenance Menu maintenance Food order Payment Reservation Kitchen Report Database 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.
18

Online Restaurant Management

Chapter 1 : System Planning

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 costeffective 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.

Project

19

Online Restaurant Management

Chapter 1 : System Planning

Chapter 2 Requirements Analysis

Project

20

Online Restaurant Management System

Chapter 2 : Requirement Analysis

2.
2.1

Requirements Analysis
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.
Project
21

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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.

Project

22

Online Restaurant Management System

Chapter 2 : Requirement Analysis

2.3

Functional Requirement

Module: Membership Maintenance

Diagram 2.4.1 Membership Maintenance User Requirement This system must allow users to add new member, updates 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.

Project

23

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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.

Project

24

Online Restaurant Management System

Chapter 2 : Requirement Analysis

Module: Menu Maintenance

Diagram 2.4.2 Menu Maintenance User Requirement This system must allow users to add new items, updates 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.

Project

25

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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.

Project

26

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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.

Project

27

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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.

Project

28

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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.

Project

29

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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.

Project

30

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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.

Project

31

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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.

Project

32

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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.

Project

33

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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.

Project

34

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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.

Project

35

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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.

Project

36

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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 teams understanding towards the systems 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.

Project

37

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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.

Project

38

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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

Project

39

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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 1. User clicks on Membership Maintenance button to enter the page. 3. User decides whether they want to add, search, edit or delete the members profile. System Response 2. The system will display maintenance interface.

the

Project

40

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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.

Project

41

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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.

Project

42

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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 1. User clicks on Menu Maintenance button to enter the page. 3. User decides whether they want to add, search, edit or delete the members profile. If the user wants to add a new menu record S-1 : add new menu is performed. System Response 2. The system will display maintenance interface.

the

Project

43

Online Restaurant Management System

Chapter 2 : Requirement Analysis

If the user wants to search a menu record S-2 : search menu is performed. If the user wants to edit a menu record S3 : 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.

Project

44

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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 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 : System Response 2. The system will display the food ordering interface.

Project

45

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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.

Project

46

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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.

Project

47

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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 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 members profile.
Project
48

System Response 2. The system will display the reservation interface. 4. The system will validate the existence of the member ID.

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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.

Project

49

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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 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. System Response 2. The system will display the payment interface.

Project

50

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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 customers PayPal account. 3. PayPal system, the external entity transfer amount and update customers 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.

Project

51

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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 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. System Response 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.

Project

52

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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.

Project

53

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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 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 S1 : filter food list is performed. If the user wants to edit food status S-2 : edit food status is performed. System Response 2. The system will display maintenance interface.

the

3. The system will display the existing food list.

Project

54

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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.

Project

55

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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

Project

56

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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

Project

57

Online Restaurant Management System

Chapter 2 : Requirement Analysis

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

Project

58

Online Restaurant Management System

Chapter 2 : Requirement Analysis

Business Level Kitchen Activity Diagram

Diagram 2.7.7 Business Level Kitchen Activity Diagram

Project

59

Online Restaurant Management System

Chapter 2 : Requirement Analysis

2.8

Detailed Activity Diagram

Membership Maintenance Detail Activity Diagram

Diagram 2.8.1 Membership Maintenance Detail Activity Diagram

Project

60

Online Restaurant Management System

Chapter 2 : Requirement Analysis

Menu Maintenance Detail Activity Diagram

Diagram 2.8.2 Menu Maintenance Detail Activity Diagram

Project

61

Online Restaurant Management System

Chapter 2 : Requirement Analysis

Food Order Detail Activity Diagram

Diagram 2.8.3 Food Order Detail Activity Diagram

Project

62

Online Restaurant Management System

Chapter 2 : Requirement Analysis

Reservation Detail Activity Diagram

Diagram 2.8.4 Reservation Detail Activity Diagram

Project

63

Online Restaurant Management System

Chapter 2 : Requirement Analysis

Payment Detail Activity Diagram

Diagram 2.8.5 Payment Detail Activity Diagram

Project

64

Online Restaurant Management System

Chapter 2 : Requirement Analysis

Report Detail Activity Diagram

Diagram 2.8.6 Report Detail Activity Diagram

Project

65

Online Restaurant Management System

Chapter 2 : Requirement Analysis

Kitchen Detail Activity Diagram

Diagram 2.8.7 Kitchen Detail Activity Diagram

Project

66

2.9

Sequence Diagram

Membership Maintenance Sequence Diagram

Diagram 2.9.1 Membership Maintenance Sequence Diagram

67

Online Restaurant Management System

Chapter 2 : Requirement Analysis

Menu Maintenance Sequence Diagram

Diagram 2.9.2 Menu Maintenance Sequence Diagram

Project

68

Online Restaurant Management System

Chapter 2 : Requirement Analysis

Food Order Sequence Diagram

Diagram 2.9.3 Food Order Sequence Diagram

Project

69

Online Restaurant Management System

Chapter 2 : Requirement Analysis

Reservation Sequence Diagram

Diagram 2.9.4 Reservation Sequence Diagram

Project

70

Online Restaurant Management System

Chapter 2 : Requirement Analysis

Payment Sequence Diagram

Diagram 2.9.5 Payment Sequence Diagram

Project

71

Online Restaurant Management System

Chapter 2 : Requirement Analysis

Kitchen Sequence Diagram

Diagram 2.9.6 Kitchen Sequence Diagram

Project

72

Online Restaurant Management System

Chapter 2 : Requirement Analysis

2.10 Collaboration Diagram


Membership Maintenance Collaboration Diagram

Diagram 2.10.1 Membership Maintenance Collaboration Diagram

Project

73

Online Restaurant Management System

Chapter 2 : Requirement Analysis

Menu Maintenance Collaboration Diagram

Diagram 2.10.2 Menu Maintenance Collaboration Diagram

Project

74

Online Restaurant Management System

Chapter 2 : Requirement Analysis

Food Order Collaboration Diagram

Diagram 2.10.3 Food Order Collaboration Diagram

Project

75

Online Restaurant Management System

Chapter 2 : Requirement Analysis

Reservation Collaboration Diagram

Diagram 2.10.4 Reservation Collaboration Diagram

Project

76

Online Restaurant Management System

Chapter 2 : Requirement Analysis

Payment Collaboration Diagram

Diagram 2.10.5 Payment Collaboration Diagram

Project

77

Online Restaurant Management System

Chapter 2 : Requirement Analysis

Kitchen Collaboration Diagram

Diagram 2.10.5 Payment Sequence Diagram

Project

78

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 nonfunctional 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.

79

Online Restaurant Management System

Chapter 3 : System Design

Chapter 3 System Design

Project

80

Online Restaurant Management System

Chapter 3 : System Design

3.
3.1

System Design
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

Project

81

Online Restaurant Management System

Chapter 3 : System Design

3.3

Data Dictionary

Table Name: Member Field Name UserName Name IC Gender Phone Email Address City State Postcode DateJoined ValidStatus Data Type Nvarchar(50) Nvarchar(50) Nchar(14) Nchar(7) Nchar(12) Nchar(50) Nvarchar(50) Nvarchar(50) Nvarchar(50) Nvarchar(5) Date Nvarchar(20) Data Description Member login username Member name Member IC Member Gender Member Phone Number Member Email Address Member Housing Address Member City Member State Member Postcode Date of Registration Membership status Confirmation registration ImagePath OrderID Nvarchar(Max) Path for member profile image Nchar(15) To ensure each member having FK only 1 order at a visit Password Nchar(12) Use to login to the system ResOrder status for Key PK Reference

ConfirmStatus Nvarchar(20)

Project

82

Online Restaurant Management System

Chapter 3 : System Design

Table Name: Menu Field Name MenuID MenuItemName MenuItemDescription Category UnitPrice Status ImagePath Data Type Nchar(10) Nvarchar(50) Nvarchar(50) Nvarchar(50) Decimal(18,2) Nvarchar(20) Nvarchar(Max) Data Description Menu Unique ID Menu name Menu description Menu category Item selling price per unit Item available status Path for menu item image Key PK Reference

Table Name: Payment Field Name PaymentID PaymentStatus TotalBeforeDiscount TotalAfterDiscount PaymentAmount PaymentMethod PaymentDate ReceiptID Data Type Nchar(15) Nvarchar(50) Decimal(18,2) Decimal(18,2) Decimal(18,2) Nvarchar(50) Date Nvarchar(50) Data Description Payment Unique ID Payment status Amount to pay before discount Amount to pay after discount Amount to be pay Payment method Date of the payment Receipt payment PaymentGeneratedDate PaymentExpiredDate TransactionID Date Date Nvarchar(30) Date payment generated The latest date for the payment Transaction PayPal UserName Nvarchar(50) Member unique username FK Member reference for reference for the Key PK Reference

Project

83

Online Restaurant Management System

Chapter 3 : System Design

Table Name: Reservation Field Name ReservationID UserName Phone Time Date Status Pax AlertStatus Remark Data Type Nchar(10) Nvarchar(50) Nchar(12) Time(5) Date Nvarchar(50) Nvarchar(2) Nvarchar(50) Data Description Reservation Unique ID Member unique username Member phone number Reservation time Reservation date Status of the reservation Number of person SMS status Key PK FK Member Reference

Nvarchar(Max) Remark message for reservation

Table Name: ResOrder Field Name OrderID OrderType TableID Pax Date TimeIn TimeOut PaymentID TotalInitialPrice Data Type Nchar(15) Nvarchar(50) Nchar(10) Int Date Time(7) Time(7) Nchar(15) Decimal(18,2) Data Description Order Unique ID Customer order type Customer sitting table Number of customer Date of customer order Time of customer order Time of customer payment Order unique payment Customer total order item initial price TotalAfterDiscount Decimal(18,2) Amount to pay after discount FK Payment FK ResTable Key PK Reference

Project

84

Online Restaurant Management System

Chapter 3 : System Design

Table Name: ResOrderDetail Field Name OrderID MenuID Index Quantity Status InitialPrice TimeCooked KitchenIndex Data Type Nchar(15) Nchar(10) int Int Nvarchar(50) Decimal(18,2) Time(7) Int Data Description Order unique ID Menu unique ID Unique ordering sequence Number of item ordered Status of ordered item Initial price for ordered item Time of order item prepared Use for kitchen department to filter food list Key Reference

Composite Key ResOrder Composite Key Menu PK

Table Name: ResTable Field Name TableID TableDescription MaximumSeat Status OrderID CallingFromlient Data Type Nchar(10) Nvarchar(50) int Nvarchar(50) Nchar(10) Nvarchar(50) Data Description Table unique ID Description for the table Maximum seat for the table Status of the table Order unique ID Used for requesting billing FK ResOrder PK Key Reference

Table Name: Staff Field Name StaffID Position Password Data Type Nchar(20) Nvarchar(20) Nvarchar(20) Data Description Staff unique ID Position of the staff Use to login to the system PK Key Reference

Project

85

Online Restaurant Management System

Chapter 3 : System Design

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, PaymentAmount,

PaymentStatus,

TotalBeforeDiscount,

TotalAfterDiscunt,

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)

Project

86

Online Restaurant Management System

Chapter 3 : System Design

3.5

Screen Design (Sketch Layout)

Membership Maintenance Sketch Layout

Diagram 3.5.1 Membership Maintenance Sketch Layout

Project

87

Online Restaurant Management System

Chapter 3 : System Design

Menu Maintenance Sketch Layout

Diagram 3.5.2 Menu Maintenance Sketch Layout

Project

88

Online Restaurant Management System

Chapter 3 : System Design

Food Order Sketch Layout

Diagram 3.5.3 Food Order Sketch Layout

Project

89

Online Restaurant Management System

Chapter 3 : System Design

Reservation Sketch Layout 1

Diagram 3.5.4 Reservation Sketch Layout 1

Project

90

Online Restaurant Management System

Chapter 3 : System Design

Reservation Sketch Layout 2

Diagram 3.5.5 Reservation Sketch Layout 2

Project

91

Online Restaurant Management System

Chapter 3 : System Design

Payment Sketch Layout

Diagram 3.5.6 Payment Sketch Layout

Project

92

Online Restaurant Management System

Chapter 3 : System Design

Report Sketch Layout

Diagram 3.5.7 Report Sketch Layout

Project

93

Online Restaurant Management System

Chapter 3 : System Design

Kitchen Sketch Layout

Diagram 3.5.8 Kitchen Maintenance Sketch Layout

Project

94

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

95

Online Restaurant Management System

Chapter 3 : System Design

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 peoples testimony, history about the restaurant and so on.

Project

96

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

97

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

98

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

99

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

100

Online Restaurant Management System

Chapter 3 : System Design

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 members 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.

Project

101

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

102

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

103

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

104

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

105

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

106

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

107

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

108

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

109

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

110

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

111

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

112

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

113

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

114

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

115

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

116

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

117

Online Restaurant Management System

Chapter 3 : System Design

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 members membership status should be removed.

Project

118

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

119

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

120

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

121

Online Restaurant Management System

Chapter 3 : System Design

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. Selfordering will be requested by RapidOrder while RapidCaptain will approve or cancel the selfordering 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.

Project

122

Online Restaurant Management System

Chapter 3 : System Design

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

Project

123

Online Restaurant Management System

Chapter 3 : System Design

Diagram 3.8.3 Kitchen Preparing List Sorting

Without sorting result # 1 2 3 4 5 6 Food M01 M02 M03 M01 M02 M03 Status Cooking Queuing Queuing Queuing Queuing Queuing Quantity 2 2 1 1 1 1 Order A A A B B B

With sorting result # 1 2 3 4 Food M01 M02 M03 M01 Status Cooking Queuing Queuing Queuing Quantity 2 3 2 1 Order A A-2,B-1 A-1,B-1 B

Project

124

Online Restaurant Management System

Chapter 3 : System Design

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 M02Queued 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.

Project

125

Online Restaurant Management System

Chapter 3 : System Design

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.

Project

126

Online Restaurant Management System

Chapter 4 : Programming

Chapter 4 Programming

Project

127

Online Restaurant Management System

Chapter 4 : Programming

4.
4.1

Programming
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) {

Project

128

Online Restaurant Management System

Chapter 4 : Programming

$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.

Project

129

Online Restaurant Management System

Chapter 4 : Programming

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.

Project

130

Online Restaurant Management System

Chapter 4 : Programming

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.

Project

131

Online Restaurant Management System

Chapter 4 : Programming

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();

Project

132

Online Restaurant Management System

Chapter 4 : Programming

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.

Project

133

Online Restaurant Management System

Chapter 4 : Programming

PayPal API
Code Behind protected void paypal_transaction() { string redirecturl = ""; redirecturl += "https://www.sandbox.paypal.com/cgibin/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="ormsowner@gmail.com" />--> <add key="paypalemail" value="ormsmalaysiaowner@gmail.com" /> <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).

Project

134

Online Restaurant Management System

Chapter 4 : Programming

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;

Project

135

Online Restaurant Management System

Chapter 4 : Programming

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.

Project

136

Online Restaurant Management System

Chapter 4 : Programming

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;

Project

137

Online Restaurant Management System

Chapter 4 : Programming

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.

Project

138

Online Restaurant Management System

Chapter 4 : Programming

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);

Project

139

Online Restaurant Management System

Chapter 4 : Programming

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; }

Project

140

Online Restaurant Management System


} } }

Chapter 4 : Programming

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.

Project

141

Online Restaurant Management System

Chapter 4 : Programming

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.

Project

142

Online Restaurant Management System

Chapter 4 : Programming

Real Time Kitchen Display List


protected void Refresh_Load(object sender, EventArgs e) { string int xc int xp int xd orderid, menuid, indexx, kitindex; = 0; = 0; = 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();

Project

143

Online Restaurant Management System


xp = 1; } } consKitchen.Close();

Chapter 4 : Programming

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.

Project

144

Online Restaurant Management System

Chapter 4 : Programming

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.

Project

145

Online Restaurant Management System

Chapter 4 : Programming

Chapter 5 Software Testing

Project

146

Online Restaurant Management

Chapter 5 : Software Testing

5.
5.1

Software Testing
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.

Project

147

Online Restaurant Management

Chapter 5 : Software Testing

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 programs 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.

Project

148

Online Restaurant Management

Chapter 5 : Software Testing

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.

Project

149

5.3

Test Plan

Membership Maintenance Module Test Plan Project : Online Restaurant Management System Module Name: Membership Maintenance Actor(s): Staff, Member Test Case: No 1. Objective/Test Cases Test Data Expected Result a) Prompt a successful message Test Result Pass Remark For Staff and Non Enter new valid member information Member Add new member with valid data 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 Test Case No: 1 Reference No. : Use Case 2.6.1

2.

a) Display This field cannot be Pass empty b) Prompt an error message c) Display Name alphabetic must be

d) Display IC must be 12 digit e) Display Phone number must be 10 digit f) Prompt an error message

150

Online Restaurant Management

Chapter 5 : Software Testing

3.

For Staff view member Enter search keyword information with correct search keyword For Staff view member Enter incorrect search keyword information with incorrect search keyword For Staff remove Enter membership removal reason membership with correct data For Staff membership incorrect data remove Omit the Reason field with

Member information will be displayed

Pass

4.

Prompt an error message

Pass

5.

Prompt an successful message

Pass

6.

Display This field cannot be empty

Pass

7. 8.

For Member edit profile Enter new valid member information with correct data 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

Prompt an successful message

Pass

a) Display This field cannot be Pass empty b) Display Phone number must be 10 digit

Project

151

Online Restaurant Management

Chapter 5 : Software Testing

Menu Maintenance Module Test Plan Project : Online Restaurant Management System Module Name: Menu Maintenance Actor(s): Staff Test Case: No 1. Objective/Test Cases Test Data Expected Result a) Prompt a successful message b) Menu ID field value will auto plus one a) Prompt a successful message b) Menu ID field value will auto plus one a) Display This field cannot be Pass empty b) Display format Incorrect currency Pass Test Result Pass Remark Test Case No: 2 Reference No. : Use Case 2.6.2

To test the auto- Add new valid menu information generate unique Menu ID For Staff add new Add new valid menu information menu with valid information For Staff add new menu with invalid information a) Enter new menu information but omit one or more compulsory field. b) Enter unit price incorrect format with

2.

3.

4.

For Staff edit new Enter correct search key and menu menu with correct data search key and correct menu data For Staff edit new menu with incorrect search key and a) Enter incorrect search key b) Enter updated menu

a) Menu information displayed

will

be Pass

b) Prompt a successful message a) Prompt an error message b) Display This field cannot be Pass

Project

152

Online Restaurant Management

Chapter 5 : Software Testing

incorrect menu data

information but omit one or more compulsory field. c) Enter unit price incorrect format with

empty c) Display format Incorrect currency

Project

153

Online Restaurant Management

Chapter 5 : Software Testing

Food Order Module Test Plan Project : Online Restaurant Management System Module Name: Food Order Actor(s): Staff Test Case: No 1. Objective/Test Cases To test the autogenerate unique Menu ID Test Data a) Add new order with valid information b) Constantly change on table drop down list c) Constantly order type 2. 3. change on Prompt a successful message Pass Expected Result a) New order id will be generated b) New order id will be generated c) New order id will be generated Test Result Pass Remark Test Case No: 3 Reference No. : Use Case 2.6.3

For Staff add new order Enter new valid order data with correct order data For Staff add new order with incorrect order data a) Check on Members 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 Pass field b) Prompt an error message c) Prompt an error message

Project

154

Online Restaurant Management

Chapter 5 : Software Testing

4. 5.

For Staff edit new order Enter new valid order data with correct order data 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

Prompt a successful message a) Prompt error message b) Prompt error message

Pass Pass a)Only item with status Queue can be edited.

Project

155

Online Restaurant Management

Chapter 5 : Software Testing

Reservation Module Test Plan Project : Online Restaurant Management System Module Name: Reservation Actor(s): Staff, Member Test Case: No 1. Objective/Test Cases Test Data Expected Result Test Result Pass Remark Test Case No: 4 Reference No. : Use Case 2.6.4

For Staff Add reservation Enter correct search key and new Prompt a successful message with correct search key valid reservation information and reservation data 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

2.

Pass

3.

For Member Add Enter new reservation with correct information reservation data

valid

reservation Prompt a successful message

Pass

Project

156

Online Restaurant Management

Chapter 5 : Software Testing

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 Pass be empty b) Display Phone number must be 10 digit c) Prompt an error message d) Prompt an error message

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 button Send SMS

a) Prompt message

successful Pass

b) Prompt SMS has sent c) Prompt Reservation status updated

c) Click on Attended button

6.

For Staff Edit reservation Click on edit button detail for reservation that has been attended 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

Prompt an error message

Pass

7.

a) Prompt an error message b) Display Phone number must be 10 digit c) Prompt an error message

Pass

Project

157

Online Restaurant Management

Chapter 5 : Software Testing

date d) Make 2 reservation on a same date for a same member e) Click on Send SMS but SMS status is Sent 8. For Staff remove Enter correct search reservation with correct remove the reservation search key For Staff remove reservation with incorrect search key For Staff reserve a table for upcoming reservation with correct steps For Staff reserve a table for upcoming reservation with exceptional flows b) Remove on reservation a) Select on reservation b) Select on a table a) Select on a table without select on upcoming reservation b) Select on seated or reserved table key

d) Prompt an error message e) Prompt an error message

and Prompt a successful message

Pass

a) Enter incorrect search key Attended upcoming

a) Prompt an error message b) Prompt an error message a) Prompt message b) Change Yellow a table

Pass

10.

successful Pass color to Pass

Green Free Red-Seated Yellow-Reserved

11

a) Prompt error message b) Prompt error message

Project

158

Online Restaurant Management

Chapter 5 : Software Testing

Payment Module Test Plan Project : Online Restaurant Management System Module Name: Payment Actor(s): Staff Test Case: No 1. Objective/Test Cases Test Data Expected Result Test Result Remark Test Case No: 5 Reference No. : Use Case 2.6.5

For Staff Make payment Enter correct payment information with correct payment information 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 Members Order radio button but did not enter member username e) Enter non-exist username member

a) Prompt a successful message Pass and balance will be calculate if exists b) A receipt will be generated a) Display This field cannot be Pass empty b) Display Incorrect currency format c) Prompt an error message d) Display Please enter member username e) Prompt an error message

2.

Project

159

Online Restaurant Management

Chapter 5 : Software Testing

3.

To determine the result when no payment available

a) Click on Dine In button b) Click on Take Away button

a) Prompt available b) Prompt available

No No

payment Pass payment

4.

To determine discount is Enter valid member username given to member payment For Staff to Print Bill

Payment will be recalculate and Pass display on the screen with discount information

5.

Select an available payment and Payment billing information will be Pass click on print bill button created as a PDF and display on new window a) Paypal do not have enough money b) Pay-pal login fail c) Cancel Paypal payment a) Redirect to MP_Failed page Pass 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

6.

For Staff make Paypal payment with exceptional flow

For Staff make Paypal Login and make payment with Redirect to MP_Success page and Pass payment with Paypal account that have sufficient prompt a receipt in a new window. exceptional flow money.

Project

160

Online Restaurant Management

Chapter 5 : Software Testing

Report Module Test Plan Project : Online Restaurant Management System Module Name: Report Actor(s): Staff Test Case: No 1. Objective/Test Cases Test Data Expected Result Test Result Remark Test Case No: 6 Reference No. : Use Case 2.6.6

For Staff Preview Enter correct date selection Report with correct report criteria For Staff Preview Report with incorrect report criteria a) Enter report criteria but omit one or more compulsory field. b) Enter ToDate FromDate earlier than

The selected report will be displayed Pass in new window a) Display This field cannot be Pass empty b) Prompt error message The selected downloaded report will be Pass

2.

3.

For Staff Download Enter correct date selection Report with correct report criteria For Staff Download Report with incorrect report criteria a) Enter report criteria but omit one or more compulsory field. b) Enter ToDate FromDate earlier than

4.

a) Display This field cannot be Pass empty b) Prompt error message

Project

161

Online Restaurant Management

Chapter 5 : Software Testing

Kitchen Module Test Plan Project : Online Restaurant Management System Module Name: Kitchen Actor(s): Staff Test Case: No 1. 2. 3. Objective/Test Cases Test Data Expected Result Test Result Remark Test Case No: 7 Reference No. : Use Case 2.6.7

For Staff Click on filter Click on Queue button food list- Queue For Staff Click on filter Click food list- Dequeue button on

The display food list will be filter by merging Pass the same food order within 5 minute interval

Dequeue The display food list will be arrange and Pass displayed without any merging Pass

For Staff Click filter on Click on Queue or Prompt error message empty list Dequeue when the list is empty For Staff Click update food status on Click on Update button The food item status will be updated

4.

Pass

Queue Prepare Prepare Served

to to

Project

162

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.

163

Online Restaurant Management

Conclusion

Chapter 6 Conclusion

Project

164

Online Restaurant Management

Conclusion

6.
6.1

Conclusion
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.

Project

165

Online Restaurant Management

Conclusion

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.

Project

166

Online Restaurant Management

Conclusion

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.

Project

167

Online Restaurant Management

Conclusion

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.

Project

168

Online Restaurant Management

Conclusion

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.

Project

169

Online Restaurant Management

Conclusion

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.

Project

170

Online Restaurant Management

Conclusion

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.

Project

171

Online Restaurant Management

Conclusion

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.

Project

172

Online Restaurant Management

Conclusion

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

Project

173

Online Restaurant Management

Conclusion

7.

References
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-lifecycle . [Accessed 10 1 2014]. 12. Marie Catribs. 2013. Web Design.[Online] Available:

http://mariecatribs.com/.[Accessed on 5 2 2013].

Project

174

Online Restaurant Management

Conclusion

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].

Project

175

Online Restaurant Management

Appendices

8.

Appendices

Interview Questions 1. Are you satisfied the current business processes? Why? 2. 3. 4. 5. 6. 7. 8. 9. 10. What are the procedures required from an order to payment process? How do you store all the menu, orders, employees and reservation data? Do you face any redundancy in handling all the important data? What are the procedures needed if a customer wishes to make a reservation? How order payment is calculated? Can you list some mistakes that often occurred in restaurant? How does it solved? Do you think that customers are satisfied with the service? Why? Which procedures in the daily transaction require improvement? Do you think that some of the steps should be kept in manually way rather than using a system? Why? If Dizzy is offering membership to customer, how many categories and what are the privileges should be offered for each category? Do you have any suggestions or opinions in the plan of developing a Dizzy restaurant management system? What are your expectations on the features of new system?

11.

12.

13.

Project

176

Online Restaurant Management

Appendices

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 Asst. Chef

Floor Staff / Hostess 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

Project

177

Online Restaurant Management

Appendices

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.

Project

178

Online Restaurant Management

Appendices

Veda Healthy Indian Take Out (Online Restaurant System)

Diagram 8.1 Vedas Home Page

Diagram 8.2 Vedas Order & Menu Page

Project

179

Online Restaurant Management

Appendices

Diagram 8.3 Vedas About Page

Diagram 8.4 Vedas Delivery Page

Project

180

Online Restaurant Management

Appendices

Diagram 8.5 Vedas Location Page

Diagram 8.6 Vedas Cateing Page

Project

181

Online Restaurant Management

Appendices

Diagram 8.7 Vedas Contact Us Page

Diagram 8.8 Vedas Legal Notice Page

Project

182

Online Restaurant Management

Appendices

Maria Catrib Online Restaurant System

Diagram 8.9 Marias Home Page

Diagram 8.10 Marias Contact Us Page

Project

183

Online Restaurant Management

Appendices

Diagram 8.11 Marias Menu Page

Diagram 8.12 Marias Store Page

Project

184

Online Restaurant Management

User Guide

9.
9.1

User Guide
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

Project

185

Online Restaurant Management

User Guide

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

Project

186

Online Restaurant Management

User Guide

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

Project

187

Online Restaurant Management

User Guide

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.

Project

188

Online Restaurant Management

User Guide

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

Project

189

Online Restaurant Management

User Guide

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

Project

190

Online Restaurant Management

User Guide

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

Project

191

Online Restaurant Management

User Guide

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

Project

192

Online Restaurant Management

User Guide

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

Project

193

Online Restaurant Management

User Guide

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

Project

194

Online Restaurant Management

User Guide

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

Project

195

Online Restaurant Management

User Guide

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

Project

196

Online Restaurant Management

User Guide

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

Project

197

Online Restaurant Management

User Guide

9.2

Operation Document

Login

Diagram 9.2.1 1: Enter your login username 2: Enter your password 3: Click Log-in button

Project

198

Online Restaurant Management

User Guide

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

Project

199

Online Restaurant Management

User Guide

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

Project

200

Online Restaurant Management

User Guide

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

Project

201

Online Restaurant Management

User Guide

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

Project

202

Online Restaurant Management

User Guide

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

Project

203

Online Restaurant Management

User Guide

Instant Messaging

Diagram 9.2.12 1: Enter your message 2: Click send message button

Project

204

Online Restaurant Management

User Guide

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

Project

205

Online Restaurant Management

User Guide

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

Project

206

Online Restaurant Management

User Guide

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

Project

207

Online Restaurant Management

User Guide

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

Project

208

Online Restaurant Management

User Guide

Diagram 9.2.21 1: An inform message will send to member when membership removal is successful

Project

209

Online Restaurant Management

User Guide

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

Project

210

Online Restaurant Management

User Guide

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

Project

211

Online Restaurant Management

User Guide

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

Project

212

Online Restaurant Management

User Guide

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

Project

213

Online Restaurant Management

User Guide

Diagram 9.2.31 1: Successful message prompt when order is successfully added

Project

214

Online Restaurant Management

User Guide

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

Project

215

Online Restaurant Management

User Guide

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

Project

216

Online Restaurant Management

User Guide

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

Project

217

Online Restaurant Management

User Guide

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

Project

218

Online Restaurant Management

User Guide

Staff Update Reservation Table

Diagram 9.2.40 1: Select a reservation record 2: Select a table to reserve for the reservation selected

Project

219

Online Restaurant Management

User Guide

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

Project

220

Online Restaurant Management

User Guide

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

Project

221

Online Restaurant Management

User Guide

Diagram 9.2.45 1: Example of receipt

Diagram 9.2.46 1: PayPal payment page

Project

222

Online Restaurant Management

User Guide

Diagram 9.2.47 1: Payment PayPal successful page redirected from PayPal when payment is success

Project

223

Online Restaurant Management

User Guide

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

Project

224

Online Restaurant Management

User Guide

10. Softcopy

Project

225

You might also like