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¶

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.
2. AdminActivity¶
Admin is redirect to WebView which views the web version of admin panel. It is the Manager component of Restuarant.
APIS¶
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 |
Project apis¶
Location of all apis is backendApis
Implementations¶
- Display the food items for:
Customer (i.e. HomeFragment)
Waiter Activity
- Take orders from App and store that order in DB.
Implement in Customer
Implement in Waiter
Take feedback from customer component and store that order in DB.
Show feedbacks from DB in real time.
- Show all Orders to
Waiter component
Cashier component
Chef component
Implement food status changes like cooked, cooking, waiting, cancelled and served.
Implement checkout and cashier table
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.