Documentaion of Restuarant App

Introduction

Overview

1. A Restuarant has number of tables. Each table has a tablet or smartphone with our app installed.


2. When customer takes the table, he can either order by himself using the table or call waiter to do so.


3. Also, customer can write special request to chef like - no onion or less spicy.


4. Once order is placed, Customer can check the whether his food is ready, still cooking or waiting to be cooked.


5. While he wait, he can surf various recipe of food items in entertainment section of app.


6. Once food is served, customer can give review to the food he/she has consume.


7. Of course, Customer can view reviews of different foods before he/she orders something.


8. After customer finishes his food, cashier checkouts and table is finally free.


9. Cashier only accepts cash and cards for now.


10. Manager can constantly moniter which table has customers and which are free.

Components of Restuarant App

1. Manager

  • He can view all the food orders

  • He can view all the table status (i.e. free or occupied)

  • He can add, remove amd modify employees.

2. Cashier

  • Can view all the table status (i.e. free or occupied).

  • Can view all food orders of occupied table.

  • Check out the customer and free the table.

3. Chef

  • Can view list of all food orders.

  • Can change the order status of food i.e. waiting to cooking and cooking to cooked.

  • Can Add new food item in food menu.

  • Can Delete food item from food menu.

  • Can Modify food item of food menu.

4. Waiter

  • Can change the order status of food i.e. cooked to served.

  • Can cancel food orders order is still in waiting status.

  • Can place order onbehalf of customer

  • Can view feedbacks of food items.

  • Can free the table.

  • Similarly, Apart from Restuarant’s employees Anonymous customer can considered as a component*

5. Customer

  • No login required.

  • Can view Orders of different table. (It is not advised to put this function here.)

  • Can order food directly to chef without the aid of waiter.

  • Can view food review befor order of any food.

  • View order status of the ordered foods. (Like waiting, cooking, cooked or served)

  • Can cancel the order only if order is still in waiting status.

  • Can give feedback and rate stars only to served items.

Logic Flow

Project structure with Activity, fragment and classes

Project control flow

Flow of control in diffrent components

Here, what we can see is: As app opens we transit automatically from StartActivity to MainActivity. MainActivity has 4 fragments. Each fragments leads to diffrent screens. Entertainment fragment redirects us to webview that offers us recipes of different food items. AboutUs fragment describes the Restuarant. Login (i.e. login) fragment can take us to CashierActivity, AdminActivity, WaiterAcivity and ChefActivity. HomeFragment*(i.e home) displays all the food items with the help of *foodmenu adapter. Upon click on food item we are transit to FoodOrderActivity. This activity uses model class CustomerFeedback with ability to submit feedbacks as hidden. Similarly, HomeFragment has a fab element, upon click on that fab - we are taken to another fragment called CustomerOrderedListFragement. It displays the ordered list with the help of adapter OrderedListAdapterCust. It also allows us to cancel the food order until food status is “WAITING”. Upon click we are transit to model class CustomerFeedbackActivity with abitlity to submit feedbacks.

We’ll further discuss on logic of different staffs.

1. CashierActivity

Cashier control flow

Flow of control for cashier component in Project

Here, what we can see is:

2. AdminActivity

Admin is redirect to WebView which views the web version of admin panel. It is the Manager component of Restuarant.

3. WaiterActivity

Waiter control flow

Flow of control for waiter component in Project

Here, what we can see is:

4. ChefActivity

Chef control flow

Flow of control for Chef component in Project

Here, what we can see is:

APIS

1. Cashier

Function

Request type

List of ordered items (3)

GET

Checkout

PUSH

Table Information

GET




2. Customer

Function

Request type

Menu Item Display (3)

GET

Place Order (2)

POST

Feedbacks

POST

Feedbacks (2)

GET

Change in order’s status (3)

PUSH

Login

GET




3. Waiter

Function

Request type

Menu Item Display (3)

GET

Place Order (2)

POST

Feedbacks (2)

GET

List of ordered items (3)

GET

Change in order’s status (3)

PUSH

Login

GET




4. Chef

Function

Request type

Delete Item

POST

Edit Item

POST

Add Item

POST

Menu Item Display (2)

GET

List of ordered items (3)

GET

Change in order’s status (3)

PUSH

Login

GET




Implementations

  1. Display the food items for:
    1. Customer (i.e. HomeFragment)

    2. Waiter Activity

  2. Take orders from App and store that order in DB.
    1. Implement in Customer

    2. Implement in Waiter

  3. Take feedback from customer component and store that order in DB.

  4. Show feedbacks from DB in real time.

  5. Show all Orders to
    1. Waiter component

    2. Cashier component

    3. Chef component

  6. Implement food status changes like cooked, cooking, waiting, cancelled and served.

  7. Implement checkout and cashier table

  8. Implement Login

Note:

  • Total price of all orders is calculated except food items with waiting status.

  • Checkout Button is visible only when all food items is served.

Screenshots

1. Manager

Admin panel

Admin panel

2. Cashier

Cashier panel

Cashier panel

Cashier panel

Cashier can checkout table with all served food status.



3. Chef

_images/chef.jpeg _images/chefMenu.jpeg _images/chefAddFoodItem.jpeg


4. Waiter

_images/foodmenu.jpeg _images/waiter.jpeg



_images/waiterStatusView.jpeg


5. Customer

_images/foodmenu.jpeg _images/custSelectingTable.jpeg


_images/custTableSelected.jpeg _images/custGivingFeedback.jpeg

We do things by the book in this department

No documents are available. Stay tune.

Source: hackernoon