Chapter Three
Chapter Three
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 managers to assign delivery persons to orders. This
ensures efficient delivery management.
● 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 staff to update the order status at each stage. This
keeps all stakeholders informed.
●
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.
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.
[Link] Modeling
3.5.1 Actor Identification
● User / Customer
● Admin
● Waiters
● Payment Gateway
● Manager
● Delivery Person
● 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
Description The system allows the customer to make a payment for their
food order using various payment methods.
payment gateway
Post The order is marked as paid and forwarded to the restaurant for
preparation.
Condition:
Description The system allows the customer to select food items from the
menu, customize them if needed,
Precondition The customer is logged into the system and browsing the menu.
3. Customer customizes
items (e.g., quantity, 4. System updates the cart with
toppings, instructions) changes
Condition:
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.
Post The delivery person is assigned and notified; the order status is
updated to "Out for Delivery".
Condition:
Flows:
Description The system allows the customer to view the real-time status of
their placed order, including stages such as
Precondition The customer has successfully placed and paid for an order.
3. Customer navigates to
“My Orders” section
4. System displays a list of recent
orders
5. Customer selects an
order to track
selected order
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.
Post The customer can add items to the cart or continue browsing.
Condition:
Flows:
Precondition The customer has placed an order and reached the payment
stage
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
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
Use case-
Uc17
Cancle order
Participatin Customer
g Actor
Description
PreCondition The customer is logged into the system and has already placed an
order. The order has not yet been delivered or completed.
Basic Flow
1. Customer logs 2. System verifies customer credentials and
into the system grants access
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.
“Order cannot be
canceled after
delivery”
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.
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
Post The order is successfully created and saved in the system. The order
Condition status is set to Placed.
Alternative
Flows
If Payment fails
Description
PreCondition The customer is logged into the system and has selected items to
order.
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
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
Participatin Customer,System
g Actor
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.
Post The customer’s rating and feedback are successfully saved in the
Condition system. The feedback becomes available for review by management.
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
Description
PreConditio The customer is logged into the system and has placed an order.
n A delivery person has already been assigned.
Alternative
Flows
If Delivery person not assigned yet
6.1 System
displays message:
“Delivery person
not assigned yet”
Use case-
Uc18
Report Delivery issue
Participatin Customer,System
g Actor
Description
PreConditio The customer is logged into the system and has an active or
n completed order.
9. Customer
submits the report
Use case-
Uc23
Report Daily Status Document
Description
PreConditio The user is logged into the system and has permission to view
n reports.
6.1 System
displays message:
“No records found
for the selected
date”
Purpose: Allow users to navigate between pages like Home, Menu, Cart, About Us, and My
Account.
Algorithm Overview:
Pseudocode:
OnClick(navLink):
Redirect to [Link]
Purpose: Dynamically load food items and allow users to add them to the cart.
Algorithm Overview:
Pseudocode:
OnPageLoad():
items = fetchMenuItems()
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:
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
Algorithm Overview:
Pseudocode:
placeOrder():
if [Link]():
showError("Cart is empty")
return
userInfo = getUserInput()
if validate(userInfo):
sendOrder(cart, userInfo)
showConfirmation()
clearCart()
Algorithm Overview:
Pseudocode:
OnClick(hamburgerIcon):
[Link]("open")
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<nav class="navbar">
<div class="nav-container">
<div class="logo">
</div>
<ul class="nav-menu">
<li><a href="[Link]">Menu</a></li>
<li><a href="[Link]">Cart <span id="cart-count">0</span></a></li>
</ul>
<div class="hamburger">
<span></span>
<span></span>
<span></span>
</div>
</div>
</nav>
<section class="hero">
<div class="hero-content">
</div>
</section>
<section class="features">
<div class="container">
<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>
</div>
<div class="feature-card">
<div class="feature-icon">��</div>
<h3>Secure Payment</h3>
</div>
<div class="feature-card">
<div class="feature-icon">⭐</div>
<h3>Quality Service</h3>
</div>
</div>
</div>
</section>
<section class="popular-items">
<div class="container">
<h2>Popular Items</h2>
</div>
<div class="text-center">
</div>
</div>
</section>
<footer class="footer">
<div class="container">
<div class="footer-content">
<div class="footer-section">
</div>
<div class="footer-section">
<h3>Quick Links</h3>
<ul>
<li><a href="[Link]">Home</a></li>
<li><a href="[Link]">Menu</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">
</div>
</div>
</footer>
<script src="[Link]"></script>
</body>
</html>
1. Head Section
<head>
<meta charset="UTF-8">
</head>
Purpose:
This section sets up the page metadata and links to external styles:
2. Navigation Bar
<nav class="navbar">
<div class="nav-container">
<ul class="nav-menu">
<li><a href="[Link]">Menu</a></li>
</ul>
<div class="hamburger">
<span></span><span></span><span></span>
</div>
</div>
</nav>
Purpose:
Logo
Menu links
3. Homepage
<section class="hero">
<div class="hero-content">
</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">
</div>
</div>
</section>
Purpose:
Fresh Ingredients
Fast Delivery
Secure Payment
Quality Service
<section class="popular-items">
<div class="container">
<h2>Popular Items</h2>
</div>
<div class="text-center">
</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">
</div>
<div class="footer-bottom">
</div>
</div>
</footer>
Purpose:
Hotel branding
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.
• 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:
• 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.
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.
• 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.
• Unit/Integration Testing: JUnit (Java), Pytest (Python), Mockito for mocking dependencies.
5.4 User-Manual
· 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.
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.
· 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