0% found this document useful (0 votes)
12 views96 pages

Chapter Three

Chapter Three outlines the requirement specification and analysis for a food ordering system, detailing user roles such as customers, admins, waiters, and managers, along with their responsibilities. It also highlights constraints, assumptions, functional and non-functional requirements, and various use cases related to order management, payment processing, and system administration. The document emphasizes the importance of security, usability, and performance to ensure a smooth user experience.

Uploaded by

Yosef Belachew
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views96 pages

Chapter Three

Chapter Three outlines the requirement specification and analysis for a food ordering system, detailing user roles such as customers, admins, waiters, and managers, along with their responsibilities. It also highlights constraints, assumptions, functional and non-functional requirements, and various use cases related to order management, payment processing, and system administration. The document emphasizes the importance of security, usability, and performance to ensure a smooth user experience.

Uploaded by

Yosef Belachew
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Chapter Three

3. REQUIREMENT SPECIFICATION AND ANALYSIS


[Link] of the Proposed System or Applications
3.1.1 User Characteristics
User / Customer:The user or customer is responsible for browsing the menu, placing
food orders, making payments, tracking order status, and providing feedback through
the system.
Admin:The admin is responsible for managing the overall system, including configuring
system settings, managing user accounts and roles, monitoring platform activity, and
handling system-level issues.
Waiter:The waiter is responsible for taking customer orders, entering orders into the
system, forwarding them to the kitchen, and updating the order status.
Payment Gateway:The payment gateway is responsible for securely processing
payment transactions, validating payment details, and confirming the payment status to
the system.
Manager:The manager is responsible for managing hotel operations, including staff
management, assigning shifts and delivery personnel, managing menus and services,
monitoring system activity, and reviewing business reports.
Delivery Person:The delivery person is responsible for viewing assigned delivery
requests, delivering orders to customers, updating delivery status, and reporting any
delivery issues.

3.1.2 Constraints
● The system is going to be developed exclusively with HTML, CSS, and JavaScript,PHP, no
additional frameworks or languages are going to be used because of our scope of
knowledge.
● System supports limited payment methods(CBE or Telebirr)
● System works only during hotel working hours
● Orders cannot be canceled after preparation starts
3.1.3 Assumptions and Dependencies
● Customer must have internet access,smartphone, computer to access our
website
● Hotel staff (waiter, chef, delivery person) know how to use the system or
should be trained
● Users provide correct address and contact information
● Payment gateway is available
● The Users or Customers must have Accounts before ordering.
[Link] Specifications
3.2.1 Functional Requirement
The system shall allow users to securely log in using valid credentials. This
ensures that only authorized users can access system features based on
their roles.

● The system shall allow customers to view the real-time status of their
orders. This helps customers know whether their order is being prepared,
dispatched, or delivered.
● The system shall allow customers to rate services and provide feedback
after order completion. This helps improve service quality and customer
satisfaction.

● The system shall allow users to update their personal information such as
name, contact number, and address. This ensures accurate communication
and delivery.

● The system shall allow waiters to take customer orders and enter them into
the system. This ensures that customer requests are correctly recorded
and processed.

● The system shall allow delivery persons to view delivery requests assigned
to them. This helps ensure timely and accurate delivery of orders.

● The system shall allow delivery persons to update the delivery status. This
keeps customers and management informed about order progress.
● The system shall allow delivery persons to report issues such as delays or
incorrect addresses. This helps management take corrective action.

● The system shall allow staff members to apply for access to the system.
This ensures controlled and authorized system usage.

● The system shall allow managers and admins to monitor system usage and
activities. This helps in detecting misuse and improving operations.
● The system shall allow managers to manage staff records and roles. This
ensures efficient workforce management.

● The system shall allow managers to generate reports on sales, orders, and
performance. These reports support decision-making.

● The system shall allow managers or admins to register new staff members.
This ensures staff can access system features based on their roles.

● The system shall allow authorized users to view generated reports. This
supports monitoring and analysis.

● The system shall allow managers to update menu items and services. This
ensures customers see accurate and current information.

● The system shall allow customers to make payments electronically. This


ensures fast and secure transactions.

● The system shall allow managers to assign delivery persons to orders. This
ensures efficient delivery management.

● The system shall automatically generate a payment receipt after successful


payment. This provides proof of transaction to customers.

● The system shall allow authorized staff to handle order cancellations and
refunds. This ensures fairness and transparency.
● The system shall validate payment transactions through the payment
gateway. This ensures payment authenticity and security.

● The system shall allow admins to add new user roles. This supports
flexible system management.

● The system shall allow managers to assign work shifts to staff. This
improves operational efficiency.

● The system shall allow managers to review reports regularly. This helps
identify trends and issues.

● The system shall allow authorized staff to add orders manually. This
supports walk-in or phone orders.

● The system shall allow customers or staff to cancel orders under defined
conditions. This prevents unnecessary processing.

● The system shall allow customers to place food orders through the system.
This initiates the order processing workflow.

● The system shall allow customers to browse available menu items. This
helps customers make informed choices.

● The system shall allow users to manage account settings. This includes
password changes and profile updates.

● The system shall allow customers to pay using supported payment
methods. This completes the order process.

● The system shall allow admins to manage hotel account details. This
includes business information and operational settings.
● the system shall allow authorized staff to add new menu items. This keeps
the menu updated.

● The system shall allow managers to handle customer complaints and


escalations. This ensures timely resolution of issues.

● The system shall allow staff to update the order status at each stage. This
keeps all stakeholders informed.

3.2.2 Non-functional Requirement

Performance:our system shall process user requests within a few seconds. This
ensures smooth and fast user interaction.

Security: The system shall protect user and payment data using encryption and
secure authentication mechanisms to prevent unauthorized access.

Usability:oursystem shall be easy to use for both customers and staff. Minimal
training should be required.

Reliability:oursystem shall operate continuously with minimal downtime. This


ensures uninterrupted service.

Scalability:our system shall handle increased users and orders during peak
hours. This supports business growth.

Availability: The system shall be accessible only during working hours, allowing
customers to place orders within the specified time period.

Maintainability:our system shall be easy to update and maintain. This supports


future enhancements.

[Link] Modeling
3.5.1 Actor Identification

● User / Customer
● Admin
● Waiters
● Payment Gateway
● Manager
● Delivery Person

3.5.2 Use-Case Identification

● Login
● Track order status
● Rate/provide feedback
● Update profile
● Take order
● View assigned delivery requests
● Update delivery status
● Report delivery issues
● Apply for system
● Monitor platform activity
● Manage Staff
● Generate business report
● Register staff
● View reports
● Manage menu and services
● Process payment transaction
● Assign delivery person
● Generate payment recept
● Handle refunds and cancellation
● Validate transaction
● Add role
● Assign shift
● Review reports
● Add order
● Cancel order
● Place order
● Browse menu
● Manage user account
● Make payment
● Manage hotel account
● Manage system confirmation and settings
● Add menu
● Handle escalation
● Update order status

3.5.3 Use-Case Diagram

3.5.4 Description of Use-Case


3.4. Requirement Analysis
3.5.1. Activity Diagram
3.5.2. Sequence Diagram
3.5.3. Requirement validation & verification
[Link].Validity checks
[Link].Consistency checks
[Link].Completeness checks

Use case-Uc1 Generate Payment

Participating Actor Customer, Payment Gateway

Actor’s Goal: To securely complete payment for an order using available


payment methods

Description The system allows the customer to make a payment for their
food order using various payment methods.

The payment gateway processes the transaction and confirms


the result to the system.

Precondition The customer has placed an order and is ready to make


payment.

Basic flow User Action System Response


[Link] clicks on the 2. System displays available
"Proceed to Payment" payment
button
options (e.g., CBE, Tele-
birr)

3. Customer selects a 4. System validates the payment


payment method and enters details

payment 6. System sends payment request


details to the

payment gateway

8. System updates order status to


"Paid"
5. Customer clicks "Pay
Now" 9. System displays payment
confirmation

and receipt to the customer


7. Payment gateway
processes the transaction
and returns a success
response 10. End use case

Post The order is marked as paid and forwarded to the restaurant for
preparation.
Condition:

Alternative If payment fails due to invalid details or


gateway error:
Flows:
6.2 Go back to step 3 6.1 System displays an error
message

Table 1: Use Case – Generate Payment


Use case-Uc2 Take Order

Participating Actor Customer, Waiter, , System

Actor’s Goal: To place a food order from a selected restaurant

Description The system allows the customer to select food items from the
menu, customize them if needed,

and place an order for delivery or pickup.

The system records the order details and prepares it for


payment and processing.

Precondition The customer is logged into the system and browsing the menu.

Basic flow User Action System Response

[Link] browses the 2. System adds selected items to


menu and selects food the cart
items

3. Customer customizes
items (e.g., quantity, 4. System updates the cart with
toppings, instructions) changes

5. Customer reviews the 6. System validates the order


cart and clicks "Place Order" details
7. System saves the order and
displays order summary

8. End use case

Post The order is saved and ready for payment.

Condition:

Alternative If customer removes items or changes quantity:

Flows: 2.2 Go back to step 1 2.1 System updates the cart


accordingly

Table 2: Use Case – Take Order

Use case-Uc3 Assign Delivery Person

Participating Actor Admin, System

Actor’s Goal: To assign a courier to a newly placed order for timely delivery
Description The system allows the admin to assign a delivery person to a
confirmed and paid order. Once assigned, the delivery person is
notified and can begin the delivery process.

Precondition The order has been placed and payment is successfully


completed.

Basic flow User Action System Response

1. Admin logs into the 2. System verifies admin


system credentials and grants access

4. System displays order details


and available delivery personnel
3. Admin views list of paid
and unassigned orders

6. System updates the order with


the assigned delivery person

5. Admin selects an order


and assigns a delivery 7. System notifies the delivery
person person with order and customer
details

8. End use case

Post The delivery person is assigned and notified; the order status is
updated to "Out for Delivery".
Condition:

Alternative If no delivery person is available:

Flows:

4.2 Admin may retry later or 4.1 System displays a


contact support message: “No delivery
personnel available at the
moment”

Table 3: Use Case – Assign Delivery Person

Use case-Uc4 Track Order Status

Participating Actor Customer, System

Actor’s Goal: To view the current status of their placed order

Description The system allows the customer to view the real-time status of
their placed order, including stages such as

order confirmation, preparation, dispatch, and


delivery.

Precondition The customer has successfully placed and paid for an order.

Basic flow User Action System Response

1. Customer logs into the 2. System verifies credentials and


system displays dashboard

3. Customer navigates to
“My Orders” section
4. System displays a list of recent
orders
5. Customer selects an
order to track

6. System retrieves and displays


the current status of the

selected order

(e.g., Confirmed, Preparing, Out


for Delivery, Delivered

7. System shows estimated


delivery time and

delivery person details (if


assigned)

8. End use case

Post The customer is informed of the current status and estimated


delivery time of their order.
Condition:

Alternative If the order is canceled or not found:

Flows: 6.2 Customer is redirected to 6.1 System displays a message:


the order history page “Order not found or

has been canceled”

Table 4: Use Case – Track Order Status


Use case-Uc5 Browse Menu

Participating Actor Customers

Actor’s Goal: To view the list of available food items from selected restaurants

Description The system allows customers to view the available food items,
categories, prices, and restaurant details before placing an
order.

Precondition The customer has successfully logged into the system or is


accessing the menu as a guest.

Basic flow User Action System Response

1. Click on “Browse Menu” 2. The system displays a list of


restaurants or food
categories

3. Select a restaurant or 4. The system shows the menu


category items with images, prices, and
descriptions

6. The system updates the menu


5. Apply filters or search view based on filters or search
for specific items keywords

7. Click on a menu item for 8. The system displays item details


more details including ingredients,
customization options, and reviews

9. End use case

Post The customer can add items to the cart or continue browsing.

Condition:

Alternative If no restaurants are available:

Flows:

5.1 The system displays a


message: “No restaurants
available in your area.”

Table 5: Use Case – Browse Menu

Use case-Uc6 Make Payment

Participating Actor Customer, System

Actor’s Goal: To complete payment for a placed order using a preferred


payment method

Description The system allows the customer to choose a payment method


(e.g., credit/debit card, UPI, wallet), enter payment details, and
complete the transaction securely. Upon successful payment,
the system updates the order status and sends confirmation.

Precondition The customer has placed an order and reached the payment
stage

Basic flow User Action System Response

[Link] selects 2. System displays available


“Proceed to Payment” payment options

3. Customer chooses a
payment method
4. System redirects to secure
payment gateway

5. Customer enters
payment details and
confirms payment 6. System processes the
transaction

7. System confirms payment


success and updates order status

8. End use case

Post Payment is successfully processed

Condition: Order status is updated to “Paid”

Confirmation is sent to the customer

Alternative If payment fails or details are invalid:


Flows: 2.2 Customer retries payment 2.1 System displays error
or selects a different method message

2.3 Go back to step 3

Table 6: Use Case – Make Payment

Use case-Uc7 Update Table

Participating Actor Restaurant Staff, System

Actor’s Goal: To modify table availability, capacity, or reservation status in the


system

Description The system allows restaurant staff to update table details such
as seating capacity, availability status (e.g., reserved, free,
under maintenance), and assign or release reservations. This
ensures accurate table

management for both walk-in and reserved customers.

Precondition Restaurant staff is logged into the system

Table data already exists in the system

Basic flow User Action System Response

1. Staff selects “Manage 2. System displays current table


Tables” option list and details
3. Staff chooses a table to 4. System loads selected table’s
update data

5. Staff modifies table 6. System validates the new input


details (e.g., status,
capacity, reservation info) 8. System saves changes and
updates table status
7. Staff confirms the update
9. End use case

Post Table information is updated in the system

Condition: Changes are reflected in reservation and seating availability

Alternative If invalid data is entered (e.g., negative capacity or overlapping


reservation):
Flows:

2.2 Staff corrects the input 2.1 System displays error


message
2.3 Go back to step 5

Table 7: Use Case – Update Table


Use case-Uc8 Make Reservation

Participating Actor Customer, System

Actor’s Goal: To reserve a table at a selected restaurant for a specific date


and time

Description The system allows the customer to choose a restaurant, select a


date and time, specify the number of guests, and submit a
reservation request. The system checks availability and confirms
the reservation or suggests alternatives.

Precondition The customer is logged into the system

The customer has selected a restaurant that supports


reservations

Basic flow User Action System Response

1. Customer selects the 2. System displays available


“Reserve Table” option reservation slots

3. Customer chooses date, 4. System checks availability for


time, and number of guests selected criteria

5. Customer submits the 6. System confirms reservation


reservation request and displays confirmation details

7. End use case

Post Reservation is successfully recorded

Condition: Confirmation is sent to the customer

Alternative If selected slot is unavailable:


Flows: 2.2 Customer selects a new 2.1 System displays message
slot and suggests alternative slots

2.3 Go back to step 3

Table 8: Use Case – Make Reservation


Table 9 : usecase-assign shift
Table 10 : usecase-generate business report
Table 11 : view-report
Table 12 : usecase-update order status
Table 13 : usecase - add role
Table 14: usecase-apply for system
Table 15: usecase-add menu
Table 16 : usecase-remove menu

Use case-
Uc17
Cancle order

Participatin Customer
g Actor

Actor’s To cancel a placed order before it is delivered.


Goal
The system allows the customer
requests to cancel an order that has
already been placed in the hotel delivery system before the order
is prepared or delivered.

Description

PreCondition The customer is logged into the system and has already placed an
order. The order has not yet been delivered or completed.

User Action System response

Basic Flow
1. Customer logs 2. System verifies customer credentials and
into the system grants access

3. Customer views [Link] displays customer orders with their


list of placed status
orders
6. System checks whether the order is eligible
5. Customer for cancellation
selects an order to
8. System asks for cancellation confirmation
cancel
10. System cancels the order
7. Customer
clicks Cancel [Link] updates order status to Canceled
Order
12. System notifies the customer
9. Customer
confirms 13. End use case
cancellation

Post The selected order is successfully canceled and its status is updated to
Condition Canceled. If payment was already made, the system initiates the refund
process.

Alternative If The Customer canceled after delivery


Flows

6.1 System displays


a message:

“Order cannot be
canceled after
delivery”

Table 17: Use Case – Cancle Order


Use case-
Uc18
Add order

Participatin Customer,waiter,system,payment Gateway


g Actor

Actor’s To place a new order for food.


Goal

The system allows the customer to select items and place a new
order. After confirmation, the order is saved and payment is
processed.

Description

PreCondition The customer is logged into the system and the menu is available.

User Action System response


1. Customer logs 2. System verifies credentials and grants
into the system access

3. Customer
browses the
Basic Flow
menu5. Customer 4. System displays available items
selects items and
adds them to the 6. System updates the order summary
order

7. Customer
confirms the order 8. System requests payment

9. Customer makes 10. System validates the payment


payment
11. System creates the order

12. System displays order confirmation

13. End use case

Post The order is successfully created and saved in the system. The order
Condition status is set to Placed.

Alternative
Flows
If Payment fails

10.2 Customer retries payment or cancels the 10.1 System displays


order a payment failure
message

Table 18: Use Case – Add Order


Use case-
Uc19
Place order

Participatin Customer,system,payment Gateway


g Actor

Actor’s To confirm and place a selected order.


Goal

The system allows the customer to place an order after selecting


items. Once payment is completed, the order is confirmed and
recorded in the system.

Description

PreCondition The customer is logged into the system and has selected items to
order.

User Action System response


1. Customer logs 2. System verifies credentials and grants
into the system access

3. Customer
browses the
Basic Flow
menu5. Customer 4. System displays available items
selects items and
adds them to the 6. System updates the order summary
order

7. Customer
confirms the order 8. System requests payment

9. Customer makes 10. System validates the payment


payment
11. System creates the order

12. System displays order confirmation

13. End use case

Post The order is successfully placed and stored in the system. The order
Condition status is updated to Placed.

Alternative
Flows
If Payment is unsuccessful

8.1 System displays payment failure message 8.1 System displays


payment failure
message

Table 19: Use Case – Place Order


Use case-
Uc20
Provide Feed Back and Rate

Participatin Customer,System
g Actor

Actor’s To rate an order and provide feedback about the service.


Goal

The system allows the customer to rate the order and submit
feedback after the order is completed. The feedback is stored and
used to improve service quality.

.
Description

PreCondition The customer is logged into the system and the order has been
completed or delivered.

User Action System response


1. Customer logs 2. System verifies credentials
into the system
4. System displays feedback and rating form
3. Customer
selects a 6. System validates the input
Basic Flow
completed order
8. System saves the rating and feedback
5. Customer gives
rating and writes [Link] displays confirmation message
feedback
10. End use case
7. Customer
submits feedback

Post The customer’s rating and feedback are successfully saved in the
Condition system. The feedback becomes available for review by management.

Alternative If The Customer insert Invalid or empty feedback


Flows

6.2 Customer updates feedback and 6.1 System displays


resubmits an error message

Table 20: Use Case – Provide Feed Back and Rate

Use case-
Uc21
View Assign Delivery Person

Participatin Customer,system
g Actor
Actor’s To view details of the delivery person assigned to an order.
Goal

The system allows the customer to view the delivery person


assigned to their order, including name and contact details.

Description

PreConditio The customer is logged into the system and has placed an order.
n A delivery person has already been assigned.

User Action System response

1. Customer logs 2. System verifies credentials


into the system
4. System displays order details
3. Customer
Basic Flow selects an active 6. System retrieves assigned delivery
order person details

5. Customer 7. System displays delivery person name


selects View and contact information
Delivery Person
8. End use case

Post The customer successfully views the assigned delivery person


Condition details. No system data is modified.

Alternative
Flows
If Delivery person not assigned yet

6.1 System
displays message:
“Delivery person
not assigned yet”

Table 22: Use Case – Add Order

Use case-
Uc18
Report Delivery issue

Participatin Customer,System
g Actor

Actor’s To report a problem related to order delivery.


Goal
The system allows the customer to report delivery-related issues
such as late delivery, damaged items, or wrong order. The
reported issue is recorded for review and resolution.

Description

PreConditio The customer is logged into the system and has an active or
n completed order.

User Action System response

2. System verifies credentials

1. Customer 4. System displays order details


logs into the
Basic Flow system 6. System displays issue reporting form

3. Customer 8. System validates the issue details


selects an order
10. System saves the issue report
[Link]
selects Report 11. System displays confirmation message
Delivery Issue
12. End use case
7. Customer
describes the
issue

9. Customer
submits the report

Post The delivery issue is successfully recorded in the system. The


Condition issue becomes available for review by management or support
staff.

Alternative If the the customer insert invalid issue details


Flows

8.2 Customer updates the issue details


and resubmits
8.1 System
displays an error
message

Table 22: Use Case – Report Delivery issue

Use case-
Uc23
Report Daily Status Document

Participatin Delivery Person / Manager, System


g Actor

To generate and view a daily status report of orders and deliveries.


Actor’s
Goal

The system allows the authorized user to generate a daily status


report showing completed, pending, and canceled orders. The
report helps management monitor daily operations.

Description

PreConditio The user is logged into the system and has permission to view
n reports.

User Action System response

2. System verifies credentials

1. User logs into 4. System displays report options


the system
Basic Flow 6. System retrieves daily order data
3. User selects
Daily Status 7. System generates daily status report
Report
8. System displays the report
5. User selects
date 9. End use case

Post The delivery issue is successfully recorded in the system. The


Condition issue becomes available for review by management or support
staff.

Alternative If the the customer insert No data for selected date


Flows

6.1 System
displays message:
“No records found
for the selected
date”

Report Daily Status


Document

Table 23: Use Case – Report Daily Status Document


3.5.1. Activity Diagram

Figure 1:assign shift activity diagram


Figure 2 : generate business report activity diagram

Figure 4 : update order status activity diagram


Figure 5 : add roles activity diagram

Figure 6 : apply for system activity diagram


Figure 7 : add menu activity diagram

Figure 8 : remove menu activity diagram


Figure 9 : Update table activity diagram

Figure 10 : assign delivery person activity diagram


Figure 11 : Browse Menu activity diagram

Figure 12 : Generate Payment activity diagram


Figure 13 : Make Reservation activity diagram

Figure 14 : Take order activity diagram


Figure 15 : Track order status activity diagram

Figure 16 : Make Payment activity diagram


3.5.2. Sequence Diagram

Figure 1 : Update Table sequence diagram


Figure 2 : Assign Delivery Person sequence diagram

Figure 3 : Browse Menu sequence diagram


Figure 4 : Generate Payment sequence diagram

Figure 5 : Make Payment sequence diagram


Figure 6 : Make Reservation sequence diagram

Figure 7 : Take Order sequence diagram


Figure 8 : Track Order status sequence diagram

Figure 9 :assign shift sequence diagram


Figure 10 generate business report sequence diagram

Figure 11 : view report seqeunce diagram


Figure 12 : update order status sequence diagram

Figure 13 :add role sequence diagram


Figure 14 : apply for system sequence diagram

Figure 15 : add menu sequence diagram


Figure 16 : remove menu sequence diagram

5.1 algorithm design

1. User Navigation System

Purpose: Allow users to navigate between pages like Home, Menu, Cart, About Us, and My
Account.

Algorithm Overview:

Detect user click on navigation link.

Redirect to the corresponding page.

Highlight the active page.

Pseudocode:
OnClick(navLink):

Remove 'active' class from all nav items

Add 'active' class to clicked navLink

Redirect to [Link]

2. Menu Display and Item Selection

Purpose: Dynamically load food items and allow users to add them to the cart.

Algorithm Overview:

Fetch menu items from a data source (e.g., JSON or API).

Render items in a grid layout.

On “Add to Cart” click, update cart data and UI.

Pseudocode:

OnPageLoad():

items = fetchMenuItems()

for item in items:

renderItemCard(item)

OnClick(addToCartButton):

itemId = getItemId()

[Link](itemId)

updateCartCount()
3. Cart Management

Purpose: Track items added to the cart and display total count.

Algorithm Overview:

Store cart items in local storage or session.

Increment/decrement item quantities.

Update cart count in navbar.

Pseudocode:

addToCart(itemId):

if itemId in cart:

cart[itemId] += 1

else:

cart[itemId] = 1

updateCartCountDisplay()

removeFromCart(itemId):

if itemId in cart:

cart[itemId] -= 1

if cart[itemId] == 0:

delete cart[itemId]

updateCartCountDisplay()
4. Order Placement

Purpose: Allow users to place an order from the cart.

Algorithm Overview:

Validate cart is not empty.

Collect user details and payment method.

Submit order to backend or display confirmation.

Pseudocode:

placeOrder():

if [Link]():

showError("Cart is empty")

return

userInfo = getUserInput()

if validate(userInfo):

sendOrder(cart, userInfo)

showConfirmation()

clearCart()

5. Responsive Navigation (Hamburger Menu)

Purpose: Toggle mobile menu on small screens.

Algorithm Overview:

Detect hamburger icon click.


Toggle visibility of nav menu.

Pseudocode:

OnClick(hamburgerIcon):

[Link]("open")

5.2 sample code

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Bereket International Hotel - Online Food Ordering</title>

<link rel="stylesheet" href="[Link]">

</head>

<body>

<!-- Navigation Bar -->

<nav class="navbar">

<div class="nav-container">

<div class="logo">

<h2>Bereket International Hotel</h2>

</div>

<ul class="nav-menu">

<li><a href="[Link]" class="active">Home</a></li>

<li><a href="[Link]">Menu</a></li>
<li><a href="[Link]">Cart <span id="cart-count">0</span></a></li>

<li><a href="[Link]">About Us</a></li>

<li><a href="[Link]">My Account</a></li>

</ul>

<div class="hamburger">

<span></span>

<span></span>

<span></span>

</div>

</div>

</nav>

<!-- Hero Section -->

<section class="hero">

<div class="hero-content">

<h1>Welcome to Bereket International Hotel</h1>

<p>Experience exquisite dining delivered to your doorstep</p>

<a href="[Link]" class="btn-primary">Order Now</a>

</div>

</section>

<!-- Features Section -->

<section class="features">

<div class="container">

<h2>Why Choose Us?</h2>

<div class="features-grid">
<div class="feature-card">

<div class="feature-icon">��️</div>

<h3>Fresh Ingredients</h3>

<p>We use only the finest, freshest ingredients in all our dishes.</p>

</div>

<div class="feature-card">

<div class="feature-icon">��</div>

<h3>Fast Delivery</h3>

<p>Quick and reliable delivery service to your location.</p>

</div>

<div class="feature-card">

<div class="feature-icon">��</div>

<h3>Secure Payment</h3>

<p>Safe and secure payment through Commercial Bank of Ethiopia.</p>

</div>

<div class="feature-card">

<div class="feature-icon">⭐</div>

<h3>Quality Service</h3>

<p>Dedicated to providing exceptional customer service.</p>

</div>

</div>

</div>

</section>

<!-- Popular Items Preview -->

<section class="popular-items">
<div class="container">

<h2>Popular Items</h2>

<div class="items-grid" id="popular-items">

<!-- Items will be loaded dynamically -->

</div>

<div class="text-center">

<a href="[Link]" class="btn-secondary">View Full Menu</a>

</div>

</div>

</section>

<!-- Footer -->

<footer class="footer">

<div class="container">

<div class="footer-content">

<div class="footer-section">

<h3>Bereket International Hotel</h3>

<p>Your trusted partner for quality food delivery.</p>

</div>

<div class="footer-section">

<h3>Quick Links</h3>

<ul>

<li><a href="[Link]">Home</a></li>

<li><a href="[Link]">Menu</a></li>

<li><a href="[Link]">About Us</a></li>

</ul>
</div>

<div class="footer-section">

<h3>Contact</h3>

<p>Email: info@[Link]</p>

<p>Phone: 09236534523</p>

</div>

</div>

<div class="footer-bottom">

<p>© 2025 Bereket International Hotel. All rights reserved.</p>

</div>

</div>

</footer>

<script src="[Link]"></script>

</body>

</html>

Sample code explanation:

1. Head Section

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Bereket International Hotel - Online Food Ordering</title>

<link rel="stylesheet" href="[Link]">

</head>
Purpose:

This section sets up the page metadata and links to external styles:

charset="UTF-8" ensures proper character encoding.

viewport makes the site responsive on mobile devices.

title sets the browser tab name.

link connects to the CSS file for styling.

2. Navigation Bar

<nav class="navbar">

<div class="nav-container">

<div class="logo"><h2>Bereket International Hotel</h2></div>

<ul class="nav-menu">

<li><a href="[Link]" class="active">Home</a></li>

<li><a href="[Link]">Menu</a></li>

<li><a href="[Link]">Cart <span id="cart-count">0</span></a></li>

<li><a href="[Link]">About Us</a></li>

<li><a href="[Link]">My Account</a></li>

</ul>

<div class="hamburger">

<span></span><span></span><span></span>

</div>

</div>

</nav>
Purpose:

Creates a top navigation bar with:

Logo

Menu links

Cart item count

Hamburger icon for mobile view

3. Homepage

<section class="hero">

<div class="hero-content">

<h1>Welcome to Bereket International Hotel</h1>

<p>Experience exquisite dining delivered to your doorstep</p>

<a href="[Link]" class="btn-primary">Order Now</a>

</div>

</section>

Purpose:

This is the landing section that greets users with a headline, tagline, and a call-to-action button
linking to the menu.

4. Homepage

<section class="features">

<div class="container">
<h2>Why Choose Us?</h2>

<div class="features-grid">

<!-- Four feature cards -->

</div>

</div>

</section>

Purpose:

Highlights four key benefits of the service:

Fresh Ingredients

Fast Delivery

Secure Payment

Quality Service

Each feature is presented in a card layout with icons and descriptions.

5. Popular Items Preview

<section class="popular-items">

<div class="container">

<h2>Popular Items</h2>

<div class="items-grid" id="popular-items">

<!-- Items will be loaded dynamically -->

</div>

<div class="text-center">

<a href="[Link]" class="btn-secondary">View Full Menu</a>


</div>

</div>

</section>

Purpose:

Displays a preview of popular food items (loaded via JavaScript) and links to the full menu.

6. Footer Section

<footer class="footer">

<div class="container">

<div class="footer-content">

<!-- Three footer sections: branding, links, contact -->

</div>

<div class="footer-bottom">

<p>© 2025 Bereket International Hotel. All rights reserved.</p>

</div>

</div>

</footer>

Purpose:

Provides footer content including:

Hotel branding

Quick navigation links


Contact info

Copyright

7. JavaScript Link

<script src="[Link]"></script>

Purpose:

Links to the JavaScript file that likely handles dynamic features like loading items, updating cart
count, and mobile menu behavior.
5.3 Test Strategy

The test strategy outlines the approach to ensure the quality, functionality, and performance of
the Restaurant Delivery and Menu Management System. It encompasses various testing levels,
environments, and methodologies to identify and rectify defects before deployment.

5.3.1 Objectives, scope, testing levels

• Objectives: To validate that the system meets all specified functional and non-functional
requirements, ensuring reliability, usability, security, and performance. We aim to deliver a
durable system free from critical defects.

• Scope: Testing will cover all customer-facing features (menu browsing, order placement,
payment, tracking), restaurant staff functionalities (menu management, order processing, table
updates), and admin operations (delivery person assignment, system configuration).

• Testing Levels:

• Unit Testing: Individual components (e.g., Order-Controller methods, Payment-Service


functions) are tested in isolation to ensure they perform their specific tasks correctly.

• Integration Testing: Verifies the continuous interaction between different modules (e.g.,
how the Order-Controller interacts with the Order-Database, or Payment-Controller with
Payment-Gateway).

• System Testing: Tests the complete, integrated system to ensure it meets specified
requirements, covering end-to-end scenarios like placing an order from browsing to delivery
assignment.

• Acceptance Testing: Performed by actual users (e.g., mock customers, restaurant staff) to
confirm the system is ready for operational use and meets business needs, often based on use
cases.

5.3.2 Test Environment

The test environment will replicate the production setup as closely as possible to ensure
accurate performance and compatibility. This includes dedicated servers for backend services,
database instances, and client devices for UI testing.

5.3.3 Hardware/software setup

• Hardware: Development machines, dedicated testing server (e.g., AWS EC2 instance),
various mobile devices (iOS/Android) for customer app testing, and standard desktop browsers
for web access.
• Software: Operating systems (Linux for servers, Windows/macOS for development,
iOS/Android for mobile), Java/Python runtime, database server (e.g., PostgreSQL/MySQL), web
server (e.g., Nginx/Apache), web browsers (Chrome, Firefox, Safari), mobile
emulators/simulators.

5.3.4 Tools required

• Unit/Integration Testing: JUnit (Java), Pytest (Python), Mockito for mocking dependencies.

• Web UI Automation: Selenium WebDriver with TestNG/Pytest.

• Mobile App Automation: Appium.

• API Testing: Postman, JMeter (for load testing).

• Performance Testing: JMeter, LoadRunner.

• Security Testing: OWASP ZAP, manual penetration testing tools.

• Version Control: Git.

• Bug Tracking/Test Management: Jira, Trello, or an integrated project management tool.

5.4 User-Manual

A comprehensive guide for end-users (customers, restaurant staff, administrators) on how to


effectively use the Restaurant Delivery and Menu Management System. It will include step-by-
step instructions, screenshots, and explanations of all features, covering topics like:-
· Customers: How to register, browse the menu, place orders, make payments, and
track deliveries.

· Admins: Instructions for managing menu items, viewing orders, updating delivery
status, and accessing reports.

· Delivery Staff: Steps to log in, view assigned deliveries, update delivery status, and
communicate with customers.

· It ensures smooth onboarding and helps users operate the system independently and
efficiently.

The manual aims to be intuitive and accessible, enabling users to self-serve for common tasks
and troubleshoot minor issues.

5.5 User Training

User training sessions will be conducted for restaurant staff and administrators to familiarize
them with the system's operational aspects. This will involve hands-on demonstrations of key
functionalities such as managing orders, updating menus, assigning delivery personnel, and
resolving common system alerts. The training will ensure users are proficient and confident in
utilizing the system, minimizing operational disruptions and maximizing efficiency upon
deployment.

User training ensures that all system users can operate the platform effectively:

· Customers are guided through app usage, including browsing menus, placing orders,
and tracking deliveries.

· Restaurant Admins receive training on managing menu items, processing orders,


and generating reports.

· Delivery Staff are trained on using the delivery interface, updating order status, and
navigating routes.
5.4.5 Test Cases
• Input conditions, expected outputs
• Boundary cases and error handling
5.4.6 Validation & Verification
• Traceability matrix (requirements → test cases)
5.4.7 Results documentation
5.4.8 Bug Tracking
• Defect reports
• Resolution logs

• Defect reports

• Resolution logs
4.5 Sub_system Decomposition
4.6 Deployment Diagram
4.8 User-Interface (UI) Design
4.9 UI Flow Diagramming

4.8 User-Interface (UI) Design


4.9 UI Flow Diagramming

You might also like