• No results found

2. Requirements Analysis

2.10 Collaboration Diagram

Membership Maintenance Collaboration Diagram

Diagram 2.10.1 Membership Maintenance Collaboration Diagram

Menu Maintenance Collaboration Diagram

Diagram 2.10.2 Menu Maintenance Collaboration Diagram

Food Order Collaboration Diagram

Diagram 2.10.3 Food Order Collaboration Diagram

Reservation Collaboration Diagram

Diagram 2.10.4 Reservation Collaboration Diagram

Payment Collaboration Diagram

Diagram 2.10.5 Payment Collaboration Diagram

Kitchen Collaboration Diagram

Diagram 2.10.5 Payment Sequence Diagram

2.11 Chapter Summary

Basically, this chapter discuss on the requirement analysis phase which including the fact finding technique, system requirements and related UML Diagrams. A complete and detail requirement must be available before proceeding to the system design stages to ensure that the developer does understand on the needs and expectation of the user. The requirement analysis first starts with 3 type of fact finding technique which is interviews, questionnaire and observation which allow us to have a better understanding on the demanding system workflow or procedures. Besides, all functional requirements for each module and non-functional requirement of the system is well described to prevent any user conflict in the later stage.

Furthermore, 5 types of UML Diagram which is Use Case Diagram, Activity Diagram, Business Level Activity Diagram, Sequence Diagram and Collaboration Diagram are drawn based on the information gathered. All of these diagrams are drawn using IBM Rational Software Architect and served to provide description between the interaction of system user and the system under a specific condition to complete a task.

Chapter 3

System Design

3 3 . . S S y y s s t t e e m m D D e e s s i i g g n n

3.1 Introduction

This chapter will be discussing on how the overall system is designed in term of the database design with data dictionary, layout sketching design and screen layout design. This chapter is crucial to the project development life cycle as it plays an important role in project implementation and testing stage.

3.2 Final Class Diagram

Diagram 3.2.1 Final Class Diagram

3.3 Data Dictionary

Table Name: Member

Field Name Data Type Data Description Key Reference

UserName Nvarchar(50) Member login username PK

Name Nvarchar(50) Member name

IC Nchar(14) Member IC

Gender Nchar(7) Member Gender

Phone Nchar(12) Member Phone Number

Email Nchar(50) Member Email Address Address Nvarchar(50) Member Housing Address City Nvarchar(50) Member City

State Nvarchar(50) Member State Postcode Nvarchar(5) Member Postcode DateJoined Date Date of Registration ValidStatus Nvarchar(20) Membership status

ConfirmStatus Nvarchar(20) Confirmation status for registration

ImagePath Nvarchar(Max) Path for member profile image OrderID Nchar(15) To ensure each member having

only 1 order at a visit

FK ResOrder

Password Nchar(12) Use to login to the system

Table Name: Menu

Field Name Data Type Data Description Key Reference

MenuID Nchar(10) Menu Unique ID PK

MenuItemName Nvarchar(50) Menu name MenuItemDescription Nvarchar(50) Menu description

Category Nvarchar(50) Menu category

UnitPrice Decimal(18,2) Item selling price per unit Status Nvarchar(20) Item available status ImagePath Nvarchar(Max) Path for menu item image

Table Name: Payment

Field Name Data Type Data Description Key Reference

PaymentID Nchar(15) Payment Unique ID PK

PaymentStatus Nvarchar(50) Payment status

TotalBeforeDiscount Decimal(18,2) Amount to pay before discount TotalAfterDiscount Decimal(18,2) Amount to pay after discount PaymentAmount Decimal(18,2) Amount to be pay

PaymentMethod Nvarchar(50) Payment method

PaymentDate Date Date of the payment

ReceiptID Nvarchar(50) Receipt reference for the payment

PaymentGeneratedDate Date Date payment generated

PaymentExpiredDate Date The latest date for the payment TransactionID Nvarchar(30) Transaction reference for

PayPal

UserName Nvarchar(50) Member unique username FK Member

Table Name: Reservation

Field Name Data Type Data Description Key Reference

ReservationID Nchar(10) Reservation Unique ID PK

UserName Nvarchar(50) Member unique username FK Member

Phone Nchar(12) Member phone number

Time Time(5) Reservation time

Date Date Reservation date

Status Nvarchar(50) Status of the reservation

Pax Nvarchar(2) Number of person

AlertStatus Nvarchar(50) SMS status

Remark Nvarchar(Max) Remark message for reservation

Table Name: ResOrder

Field Name Data Type Data Description Key Reference

OrderID Nchar(15) Order Unique ID PK

OrderType Nvarchar(50) Customer order type

TableID Nchar(10) Customer sitting table FK ResTable

Pax Int Number of customer

Date Date Date of customer order

TimeIn Time(7) Time of customer order

TimeOut Time(7) Time of customer payment

PaymentID Nchar(15) Order unique payment FK Payment

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

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

Table Name: ResOrderDetail

Field Name Data Type Data Description Key Reference

OrderID Nchar(15) Order unique ID Composite Key ResOrder

MenuID Nchar(10) Menu unique ID Composite Key Menu

Index int Unique ordering sequence PK

Quantity Int Number of item ordered

Status Nvarchar(50) Status of ordered item InitialPrice Decimal(18,2) Initial price for ordered item TimeCooked Time(7) Time of order item prepared KitchenIndex Int Use for kitchen department

to filter food list

Table Name: ResTable

Field Name Data Type Data Description Key Reference

TableID Nchar(10) Table unique ID PK

TableDescription Nvarchar(50) Description for the table MaximumSeat int Maximum seat for the table Status Nvarchar(50) Status of the table

OrderID Nchar(10) Order unique ID FK ResOrder

CallingFromlient Nvarchar(50) Used for requesting billing

Table Name: Staff

Field Name Data Type Data Description Key Reference

StaffID Nchar(20) Staff unique ID PK

Position Nvarchar(20) Position of the staff Password Nvarchar(20) Use to login to the system

3.4 Normalization

Third Normal Form(3rd NF)

Member(UserName, Name, IC, Gender, Phone, Email, Address, City, State, PostCode, DateJoined, ValidStatus,ConfirmStatus, ImagePath, OrderID*, Password)

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

Payment(PaymentID, PaymentStatus, TotalBeforeDiscount, TotalAfterDiscunt, PaymentAmount, PaymentMethod, PaymentDate, ReceiptID, PaymentGeneratedDate, PaymentExpiredDate, TransactionID, UserName*)

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

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

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

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

Staff(StaffID, Position, Password)

3.5 Screen Design (Sketch Layout)

Membership Maintenance Sketch Layout

Diagram 3.5.1 Membership Maintenance Sketch Layout

Menu Maintenance Sketch Layout

Diagram 3.5.2 Menu Maintenance Sketch Layout

Food Order Sketch Layout

Diagram 3.5.3 Food Order Sketch Layout

Reservation Sketch Layout 1

Diagram 3.5.4 Reservation Sketch Layout 1

Reservation Sketch Layout 2

Diagram 3.5.5 Reservation Sketch Layout 2

Payment Sketch Layout

Diagram 3.5.6 Payment Sketch Layout

Report Sketch Layout

Diagram 3.5.7 Report Sketch Layout

Kitchen Sketch Layout

Diagram 3.5.8 Kitchen Maintenance Sketch Layout

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.

About Page Screen Design

Diagram 3.6.2 About Page Screen Design

This is the About Page of ORMS. On this page, it will provide the static information such as people‟s testimony, history about the restaurant and so on.

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.

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.

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.

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.

Staff View Member Screen Design

Diagram 3.6.7 Staff View Member Screen Design

This is Staff View Member Page which allows the staff to search for a member‟s details. The staff will need to enter the customer username; if it's found in the database, then the information will be displayed according to the field provided.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Unattended Reservation Report

Diagram 3.7.2 Unattended Reservation Report

This is an Unattended Reservation Report which allows the staff to know which member having a high unattended reservation number. The purpose of this report is that only member of the system is allowed to make a reservation, if a member make too many false reservations, it will make the staff to reserve a table for a reservation which will not be attending, so it will affect the business performance. The staff can use this report to determine which member‟s membership status should be removed.

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.

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.

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.

3.8 Core System Flow Design

Order Request handler

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

Handler of Self-Order Event

Diagram 3.8.1 Overview Kitchen Preparing List Sorting

Discussion

Handling of self-order request involved both RapidOrder and RapidCaptain activity. Self-ordering will be requested by RapidOrder while RapidCaptain will approve or cancel the self-ordering request.

1. Whenever a RapidOrder wish to do a new order, it must send a ordering request by invoking WCF method, requestTable(tableID). Eg. requestTable(A). Immediately, a DispatcherTimer is start to constantly check on Table A status.

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

Diagram 3.8.3 Kitchen Preparing List Sorting

Without sorting result

# Food Status Quantity Order

1 M01 Cooking 2 A

2 M02 Queuing 2 A

3 M03 Queuing 1 A

4 M01 Queuing 1 B

5 M02 Queuing 1 B

6 M03 Queuing 1 B

With sorting result

# Food Status Quantity Order

1 M01 Cooking 2 A

2 M02 Queuing 3 A-2,B-1

3 M03 Queuing 2 A-1,B-1

4 M01 Queuing 1 B

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 Queued and M03-Queued will be merging with Order A M02-Queued and M03-M02-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.

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

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

Related documents