By: CS2113-AY1819S1-F09-2
Since: Aug 2018
Licence: MIT
1. Introduction
The Restaurant Management System (RMS) provides restaurants with a more efficient way to manage their operations. It has a wide variety of features which cater to different roles in a restaurant. In line with Singapore’s "Smart Nation" movement, the RMS aims to digitise the restaurant business and make day-to-day operations smoother and simpler. Jump to [Setting up] to get started.
2. Quick Start
-
Ensure you have Java version
9
or later installed in your Computer. -
Download the latest
Rms.jar
here -
Copy the file to the folder you want to use as the home folder for your Restaurant Management System.
-
Double-click the file to start the application. The GUI should appear in a few seconds.
-
Type the command in the command box and press Enter to execute it.
-
Some example commands you can try:
-
listmenu
: lists all menu items -
addmember
John Doe
: adds a member namedJohn Doe
to the Restaurant Management System. -
listorder
: lists all orders in the order list. -
deleteorder
3
: deletes the 3rd order shown in the last shown order list -
exit
: exits the app
-
-
Refer to Section 4, “Features” for details of each command.
3. Important Terminology
-
A customer is anyone who wants to place an order.
-
An employee is a person that works at the restaurant.
-
A member in the RMS is a registered customer who enjoys more benefits than an unregistered customer.
-
A dish is a food item on the menu.
4. Features
Command Format
-
Words in
UPPER_CASE
are the parameters to be supplied by the user e.g. inadd n/NAME
,NAME
is a parameter which can be used asadd n/John Doe
. -
Items in square brackets are optional e.g
n/NAME [t/TAG]
can be used asn/John Doe t/friend
or asn/John Doe
.
4.1. Menu
4.1.2. List Menu
Shows a list of all the menu items that exists in the restaurant’s menu database.
Each menu item include details of: menu item, price, type and any relevant tags.
Format: listmenu
-
List the current menu items in the menu
4.1.3. List Menu According to Category
Shows a list of the menu items of a particular category type. The category types are shown in the Main Menu (e.g main, sides).
Each menu item include details of: menu item, price, type and any relevant tags.
Format: listmenutype TYPE
-
List the current menu items of a particular category in the menu
Example:
listmenutype main
System shows all the main dishes in the menu.
4.1.4. Add Menu
Add a new item to the menu.
Format: addmenu NAME p/PRICE type/TYPE [t/TAG]…
-
Adds the new menu item into the menu list
-
Names must be unique, cannot be longer than 30 alphanumeric characters and spaces. It must contain minimum one character.
-
Note that duplicate menu name is still detected even if the user tries to key in the same name with extra spaces at the end of the menu name (eg. 'Cheese Burger' and 'Cheese Burger ')
-
Price must follow the formal $A.BC or $A where A is a number of 1-3 digits and B and C are 1 digit each.
-
Type should only be of the following categories: main, sides, beverage, dessert, others, set meal
-
A new food item can have multiple tags (including 0)
Example:
addmenu Cheese Fries p/$3.50 type/sides t/newItem t/seasonalSpecial
System adds Cheese Fries to the existing menu.
4.1.5. Delete Menu
Delete an item on the menu
Format: delmenu INDEX
Preconditions: The user must perform 'List Menu' , 'List Menu According to Category' or 'Find Menu' use cases first before performing 'Delete Menu'
-
Deletes the menu item in that particular index
-
INDEX should be less than or equal to the total number of food items stated at the end of the list
Example:
listmenutype main
delmenu 1
System deletes menu item in index 1 from the displayed menu of main dishes.
listmenutype main
delmenu 1
System deletes the menu item in index 1 from the displayed menu of main dishes.
findmenu Cheese Fries
delmenu 3
System deletes Cheese Fries in index 3 from the displayed menu of items found with Cheese Fries
keyword.
4.1.6. Find Menu
Finds the menu item(s) related to the keywords typed in by the user.
Format: findmenu KEYWORD [MORE KEYWORDS]
-
A list of menu items with names related to the keyword(s) will be displayed.
-
The search is case insensitive eg.
cheese
will matchCheese
. -
Order of keywords do not matter.
-
Only full words will be matched. eg
burg
will not matchBurger
-
Menu items matching atleast one key word will be returned. eg '`cheese` will return
Cheese Fries
,Cheese Burger
.
Example:
findmenu Burger Coke Fries
Returns Double Cheese burger, Veggie Burger, Coke, coke zero, Fries, Curly Fries
4.1.7. Menu Recommendations
Displays the best selling items of each category, if they are sold, as the recommended items of the restaurant.
Format: recommendations
-
For a particular category, if no menu items are sold, items from that category will not be displayed under recommendations.
-
Atleast one item from each category must be sold in order for recommendations to reflect items from that category.
Example:
recommendations
Returns Main: Double Cheese Burger, Sides: French Fries, Beverage: Sprite
4.2. Members
4.2.1. Add Member
Add a new member to the RMS
Format: addmember NAME e/EMAIL
-
Member name cannot be longer than 30 alphanumeric characters and spaces.
-
Member name must have at least 1 character.
-
Email should be 2 alphanumeric/period strings that are no longer than 20 characters separated by '@'
Example:
addmember kang ming e/kangming@rms.com
Returns: New member added: kang ming | Email: kangming@rms.com | Available Points: 0 | Total Points: 0 | Tier: Bronze | Date: Mon Oct 20 22:12:07 SRET 2018
4.2.2. List Member
Shows a list of all the members in the RMS. Displays the NAME, POINTS, DATE JOINED, MEMBERSHIP TIER of each member.
Format: listmember
Example:
listmember
4.2.3. Delete Member
Delete membership details of a member in the RMS
Format: delmember INDEX
-
Deletes the member at the specified
INDEX
. -
The index refers to the index number shown in the displayed member list.
-
The index must be a positive integer
1, 2, 3 …
Example:
listmember
delmember 1
Returns: Deleted member: kang ming | Email: kangming@rms.com | Available Points: 0 | Total Points: 0 | Tier: Bronze | Date: Mon Oct 20 22:19:32 SRET 2018
4.3. Employees
4.3.1. List Employees
Show a list of all the employees on the RMS.
Format: listemp
4.3.2. Add Employee
Adds a new employee to the RMS.
Format: addemp NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS pos/POSITION
-
Employees with exact same names are not allowed irregardless of it being in upper or lower case.
-
Employee name cannot be longer than 30 alphanumeric characters and spaces.
-
Employee name must have at least 1 character.
-
Phone numbers must be an 8 digit number.
-
Email should be 2 alphanumeric/period strings that are no longer than 20 characters separated by '@'
Example:
addemp John Doe p/91234567 e/Example2018@rms.com a/Clementi Ave 2, Blk 543 #13-12 pos/Cashier
Adds a new employee with the specified details.
4.3.3. Edit Employee
Edit details of an employee in the RMS.
Format: editemp INDEX [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [pos/POSITION]
-
Edits the employee at the specified
INDEX
. -
Parameters in square brackets are optional.
-
At least one of the optional parameters must be provided.
-
Existing values will be updated to the input values.
-
The index must be a positive integer
1, 2, 3 …
-
Phone numbers must be an 8 digit number.
-
Email should be 2 alphanumeric/period strings that are no longer than 20 characters separated by '@'
Example:
-
listemp
-
editemp 1 pos/Cashier
Edits the position of the 1st employee in the employee list to Cashier.
4.3.4. Delete Employee
Deletes an employee from the RMS.
Format: delemp INDEX
-
Deletes the employee at the specified
INDEX
. -
The index refers to the index number shown in the displayed employee list.
-
The index must be a positive integer
1, 2, 3 …
Example:
-
listemp
-
delemp 1
Deletes the 1st employee in the employee list.
4.3.5. Clock In
Clocks in attendance for the specified employee based on the current date and time
Format: clockin NAME
-
Employee must either have been newly created or have used the "Clock Out" command, otherwise the system will request the user to use the "Clock Out" command first.
Example:
clockin John Doe
Clocks in for the employee John Doe.
4.3.6. Clock Out
Clocks out for the specified employee based on the current date and time.
Format: clockout NAME
-
Employee must have used the "Clock In" command, otherwise the system will request the user to use the "Clock In" command first.
Example:
clockout John Doe
Clocks out for the employee John Doe.
4.4. Order
4.4.1. Add Order
To add a new order to the order list, a draft must be completed before adding it to the order list.
To do so, dishes must be added into the draft before it can be added into the order list after the draft is confirmed.
If the customer is a registered member, the customer’s information can be found in the member list and can be added into the order draft to use and accumulate member points once the order is confirmed.
-
Display Draft And Instruction For Adding New Order
Displays the current draft, steps to add an order and the list of order draft commands that can be used
Format:
addorder
-
Edit A Dish Item Of The Draft
By picking dishes from the last shown menu and state the quantity to be added, te dish items can be added, deleted or edited in the draft order.
-
If the quantity is set to 0, then the dish will be removed from the draft.
-
If the quantity is a positive integer, then the quantity of the dish will be set to quantity.
Format:
draftdish INDEX q/QUANTITY [INDEX q/QUANTITY]…
-
There must be no duplicated index in the input command.
-
The indexes refer to the index numbers shown in the last shown menu list.
-
The indexes must be non-negative integers.
-
The quantities must be non-negative integers of 1-3 digits.
-
-
Select A Member As The Customer Of The Draft
This step is only necessary if the customer is a member.Select a member from the last shown member list to be the customer of the draft order.
Format:
draftcustomer INDEX
-
The index refers to the index number shown in the last shown member list.
-
-
Redeems member points in the draft order
This step can only be done after the following conditions have been met:-
A member has been added to the draft order.
-
At least one dish has been added to the draft order.
Assign member points to be redeemed as discount for the draft order.
Format:
draftpoints POINTS
-
The points redeemed must be a non-negative integer.
-
The limit to the redeemable points is set as the smaller value between the amount of points the customer currently has and the maximum amount of points can be deduced from the order such that the final price is not less than zero.
-
If the assigned redeemed points is more than the limit, then it will be set back to the limit.
-
-
-
Clear Draft
Clear all details of the draft order.
Format:
cleardraft
-
ConfirmDraft
Confirm the draft and add it to the order list.
Once it is confirmed, the ordered dish items in the newly added order can no longer be changed.
Format:
confirmdraft
4.4.2. Delete Order
Delete an order.
The deleted order is specified by the index of that order on the last displayed order list.
Format: deleteorder INDEX
-
The index refers to the index number shown in the last shown order list.
4.4.4. List Orders
Shows a list of all the current orders.
Each order include details of: customer, ordered time, total price and the list of dish items and quantities ordered
Format: listorder
.
4.5. Statistics
4.5.1. View Employee Statistics
Displays the employee statistics overview
Overview consists of the number of employees in the system,
current on duty employees and all the employees' recent 3 activity
Format: statsemp
Examples:
statsemp
4.5.2. View Member Statistics
Displays the member statistics overview
Overview consists of the number of new member signups on the current day, month and year.
It also includes the number of members in each member tier.
Format: statsmember
Examples:
statsmember
4.5.3. View Menu Statistics
Displays the menu statistics overview without any parameters or with optional parameters f/
or t/
to set date range for calculation of statistics
Overview consists of the number of sales for all the menu items in the system. Including menu items that was deleted but still exists in an order.
Bestsellers and least popular items are also displayed.
Format: statsmenu [f/MMDDYYY] [t/MMDDYYY]
Examples:
-
statsmenu
-
statsmenu f/01122017 t/31122017
-
statsmenu f/01012017
-
statsmenu f/31122018
4.5.4. View Order Statistics
Displays the order statistics overview
Overview consists of the number of sales as well as the revenue for the current day, month and year
Past 12 monthly revenue are also displayed here.
Format: statsorder
Examples:
statsorder
4.6. Saving the data
Data from the Restaurant Management System are saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.
5. FAQ
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous Restaurant Management System folder.
6. Command Summary
6.1. Menu
Show Main Menu Page : showmainmenu
Find Menu : findmenu KEYWORD [MORE KEYWORDS]
Add Item : addmenu NAME p/PRICE type/TYPE [t/TAG]
Delete Item : delmenu INDEX
List Menu : listmenu
List Menu According to Category : listmenubytype TYPE
See Recommended Menu Items : recommendations
6.2. Employees
List Emplyees : listemp
Add Employee : addemp NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS pos/POSITION
Edit Employee : editemp INDEX [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [pos/POSITION]
Delete Employee : delemp INDEX
Clock In : clockin NAME
Clock Out : clockout NAME
6.3. Members
Add Member : addmember NAME e/EMAIL
List Member : listmember
Delete Member : delmember INDEX
6.4. Order
-
Add Order:
-
Display Add Order Commands:
addorder
-
Edit Draft Dishes:
draftdish INDEX q/QUANTITY
e.g.draftdish 4 q/1
-
Select Draft Customer:
draftcustomer INDEX
e.g.draftcustomer 2
-
Redeem Member Points:
draftpoints POINTS
e.g.draftpoints 100
-
Clear The Draft:
cleardraft
-
Confirm Draft:
confirmdraft
-
-
Delete Order :
deleteorder INDEX
e.g.deleteorder 3
-
Clear Order List :
clearorder
-
List All Orders :
listorder
6.5. Statistics
View Employee Statistics : statsemp
View Member Statistics : statsmember
View Menu Statistics : statsmenu [f/ddmmyyyy] [t/ddmmyyyy]
View Order Statistics : statsorder