tp

User Guide

Introduction

DinEz is an integrated system solution which aims to address certain aspects of restaurant management encountered during the daily operation of a restaurant in a digitalised way, including order taking, menu management and order statistics.

If you are well-versed with CLI and can type fast, DinEz can help to coordinate the various tasks and allow you to access all the necessary information in one application. The CLI is also more reliable and simpler to operate than a traditional GUI.

Quick Start

  1. Ensure you have Java 11 installed on your computer.
  2. Download the latest DinEz.jar from here
  3. Copy the file to the folder you want to use as the home folder for the restaurant management system
  4. Open a command terminal, cd into the folder in which you placed the DinEz.jar then use the command java -jar DinEz.jar to run the program.
  5. You should be prompted to enter a restaurant name, address, and a username. After entering the required information, you should see a greeting message. The following is an example of what you should see:
     Hello from DinEz
     Enter restaurant name: 
     Fine Food
     Enter address of restaurant:
     Avenue 0
     Enter user name:
     Tom
     Here are the list of available commands:
     help: Shows all the commands that can be used.
     create order -menu <menu_id>: Creates a new order using the specified menu.
     view -order -all: Shows a brief summary of all the created orders.
     view -order <order_id>: Shows all the contents of a specified order.
     receipt -order <order_id>: shows the receipt of the specified order.
     create menu: Creates a new menu.
     edit -menu <menu_id>: Modify the specified menu's items in the menu interface.
     view -menu <menu_id>: Shows all the contents of a specified menu.
     view -menu -all: Shows a brief summary of all the created menus.
     view performance: Enters the order statistics interface.
     bye: Quits the program.
    
  6. Type the command in the CLI and press Enter to execute it e.g. typing help then pressing Enter will display the help menu. Here are some example commands you can try:
    • help: Displays all the commands that can be used
    • create order -menu 1: Creates a new order which uses the menu of ID 1 and navigates to the order interface to perform sub-commands
    • view -menu -all: Shows a brief summary of all the created menus
    • bye: Exits from the program
  7. IMPORTANT!!! Our application consists of four interfaces(i.e. main, order, menu and statistics) with different commands available. Remember to type help to check available commands at current interface.
  8. Do note that by default, no menu is present and a menu has to be created before the items on the menu can be added to an order.
  9. Refer to the Features below for details of each command

[!NOTE]

Accepted formats examples:
create order -menu 1 create order-menu1 createorder-menu1 CREATE ORDER -MENU 1 Createorder -menu 1(Non-exhaustive list)

Features

User help guide: help

Shows all the commands that can be used, including their format and their expected purpose.

Format: help

Create new menu: create menu

Creates a new menu and goes to the menu interface to perform sub-commands. (Refer to Features for Menu interface for the sub-commands)

Format: create menu

Edit menu: edit menu

Edits a menu by going to the menu interface to perform sub-commands. (Refer to Features for Menu interface for the sub-commands)

Format: edit -menu <menu_id>

Example of usage:

edit -menu 1

Create new order: create order

NOTE: A menu has to be present before an order can be created. For a first-time user, a menu should be created first.

Creates a new order with a specified menu and goes to the order interface to perform sub-commands. (Refer to Features for Order interface for the sub-commands)

Format: create order -menu <menu_id>

Example of usage:

create order -menu 1 create order -menu 23

Check orders: view order

Shows all the contents of a specified order, or shows a brief summary of all orders.

Format: view -order <order_id> and view -order -all

Example of usage:

view -order -all

view -order 20240403022723

Get order receipt: receipt order

Shows the receipt of a specified order.

Format: receipt -order <order_id>

Example of usage:

receipt -order 20240403022723

Check menus: view menu

Shows all the contents of a specified menu, or shows the brief summary of all menus.

Format: view -menu <menu_id> and view -menu -all

Example of usage:

view -menu -all

view -menu 2

Check restaurant info: view restaurant

Shows the restaurant name and address currently in use.

Format: view restaurant

Edit restaurant info: edit restaurant

Changes the restaurant name and address.

Format: edit restaurant

Check order statistics: view performance

Enters the order statistics interface where various statistics based on all completed orders can be viewed. (Refer to Features in statistics interface for the sub-commands)

Format: view performance

Quit the program: bye

Exits out of the program.

Format: bye

Save data

Data for restaurant information, orders, and menus are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.

Editing the data file

Data for restaurant information, orders, and menus are saved automatically in 3 separate text files restaurant.txt, orders.txt, and menus.txt. These 3 files are located in [JAR file location]/data/*.txt (where *.txt represents the name of the data file). ONLY edit the data files directly if you are an advanced user.

[!CAUTION]

Features in Menu interface

Shows all the commands that can be used in the menu interface.

Format: help

Add items: add

Adds an item with specified ID, name, and price to the current menu.

Format: add -item <item_name> -price <price_of_item>

Example of usage:

add -item Chicken Rice -price 3.50

add -item Seafood Fried Rice -price 5

Delete items: delete

Deletes an item of a specified ID from the current menu.

Format: delete -item <item_id>

Example of usage:

delete -item 1

Check menu items: view items

Shows all the items in the current menu.

Format: view items

Complete current menu: complete

Marks the current menu as completed and returns to the main interface.

Format: complete

Abort current menu: cancel

Cancels the current menu’s creation and returns to the main interface.

Format: cancel

Features in Order interface

Order help guide: help

Shows all the commands that can be used in the order interface.

Format: help

Add items: add

Adds a specified quantity of a specific menu item into the order.

Format: ` add -item -quantity `

Example of usage:

add -item 1 -quantity 2

Delete items: delete

Deletes a specified quantity of a specified item in the order.

Format: delete -item <item_id> -quantity <quantity_of_item>

Example of usage:

delete -item 1 -quantity 1

Check menu items: view menu

Shows the menu used by the current order.

Format: view menu

Check order items: view items

Shows all the items in the current order.

Format: view items

Complete current order: complete

Marks the current order as completed and returns to the main interface.

Format: complete or complete -discount <discount>

Abort current order: cancel

Cancels the current order’s creation and returns to the main interface.

Format: cancel

Features in Statistics interface

Find bestselling items: bestselling

Shows the best-selling item(s) in the restaurant of all time. The best-selling item is defined as the item with the highest quantity sold. If there are multiple items with the same highest quantity sold, up to 3 of the best-selling items will be displayed (based on the natural order of their Id).

Format: bestselling

Get total orders count: total orders

Shows the total number of orders that have been created.

Format: total orders

Calculate gross or net revenue: revenue

Shows the gross revenue of the restaurant. (i.e. total revenue before deducting costs and taxes), or shows the net revenue of the restaurant. (i.e. total revenue after deducting taxes)

Format: revenue -gross or revenue -net

Calculate profit: view profit

Shows the profit based on the operating costs in the restaurant as provided by the user. (i.e. total revenue after deducting costs and taxes)

The cost here is intended as the total cost of operations, which can include production, rental and supply costs.

Format: view profit -cost <cost>

Example of usage: view profit -cost 150 view profit -cost 20000

Return to main interface: quit

Returns to the main interface from the statistics interface.

Format: quit

FAQ

Q: How do I save restaurant information, as well as the menus and orders I have created?

A: Data for restaurant information, orders, and menus are saved in the hard disk automatically after any command that changes the data. There is no need to save manually. The data files are stored in the data directory, which is located in the same directory where you put the DinEz.jar file.

Q: How many menus can I have?

A: Just like the orders, there is no limit to the number of menus that can be created. The goal of this system is to be able to allow the user to create multiple menus from which items for the order can be chosen from.

Q What happens if I try to add similar items to the menu?

A: This is not allowed. The item name and ID are unique in each menu.

Q: Can I delete an order that I have entered?

A: No, once an order has been created, it cannot be deleted. This is to ensure that the order history is preserved as they are important for the restaurant’s records.

Q: Can I edit an order that I have entered?

A: To preserve the integrity of the generated orders, we do not offer a feature to edit orders that have been entered. A confirmation message is hence present for the user to verify that their inputs are correct.

Q: What is the difference between net revenue and profit?

A: As mentioned in the user guide for those features, the difference between net revenue and profit is that the former includes costs of production, but the latter excludes it.

Command Summary

Main interface commands

Order interface sub-commands

Statistics interface sub-commands