Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time

Restaurant Ordering System

Build a digital ordering system for use by a small restaurant. Note that this is a system that is used by the restaurant staff and not accessed by the general public. The system should be usable on a tablet or touch screen computer so keep the interface simple. All menu and ordering data must be stored in a database.


Testing

You are required to create the following accounts to allow the system to be tested. All accounts should have the password p455w0rd:

  1. waitress (a member of serving staff).
  2. waiter (a second member of serving staff).
  3. chef

Each of the serving staff should have placed at least one order and the chef should have flagged at least one order as served.


Stage 1

The core functionality consists of three screens.

Part 1

The home screen should list all the active orders (those that have not been served to customers).

For each order the following needs to be displayed:

  1. Table number
  2. Number of diners
  3. Time of order (in the format HH:MM using a 24 hour clock notation)
  4. Status (see above)

The orders should be displayed with the earliest time at the top and each Each should display a status and there should be an option next to each order to change this. The following are the three status options:

  1. placed
  2. prepared
  3. served

As soon as a order has its status set to served it should be removed from the homescreen (but the data kept in the database).

Part 2

There should be an Add Order button on the home screen. This should take staff to an ordering screen. They need to choose the correct table where the customers are sitting from a list.

There there will be a grid of menu items.

  1. Tapping on one of these, adds the item to the current order which should be displayed as a list on the screen.
  2. Tapping an item on this list should remove it.
  3. The total cost of the order should always be accurate and displayed on the screen.

Once the order is complete the member staff clicks on the Done button which adds the order to the system and returns them to the home screen.

Part 3

Clicking on any order flagged as placed takes the user to a screen where the order details can be seen. There should be a cancel button that cancels the order.


Stage 2

The intermediate tasks require you to make changes to the functionality:

  1. The staff who use the system are each assigned a specific role which restricts what they can see and do on the system:
    1. The server role means the user can see a list of the orders waiting to be taken to the table and can access the button to add a new order. They can't change the status of an order.
    2. The kitchen role means the user sees a list of the orders placed but not completed and can change the status to complete. They can't see the button to add a new order.
  2. There should be an admin role. A user assigned to this role can see an edit button next to each item on the ordering screen. Clicking this takes them to a page where they can edit the product details, including:
    1. The name.
    2. The price.
    3. The product photo.

Stage 3

  1. Each food item can have different options such as chips/mash.
  2. When ordering food, waiting staff can record different options for each menu choice.
  3. The admin can enter the costs of the raw ingredients for each dish.
  4. The system can track the hours worked by the staff members based on how long they were logged in.
  5. The system can generate stats for the admin such as how many places have been served per day and the profit generated each day.

Extras

In some assignment briefs you are given marks for the appropriate use of media and using sensors built into the user's device.

Sensors

In some assignment briefs you are given marks for the appropriate use of sensors and sensor data. You should be implementing:

  1. When prompted for a photo, the admin user should be given access to the device camera (if available).

Media

In the requirements listed above you need to provide the user with the ability to upload photos. For the extra media marks you will need to expand this by:

  1. Providing the user with the choice of uploading photos, video clips or audio clips.
  2. Giving users the option to directly capture images, audio and video clips using the built-in camera and/or microphone if available.

Data

There are lots of online RESTful APIs you can make use of when developing this system. You should consider:

  1. Spoonacular
  2. LocationIQ