Software Requirements Specification(SRS)
Project Title: Online Food Ordering System
Group Members:
Hafsa Asif (B-28368)
Hadia Intizar(B-28667)
Maliha Zahid (B-28324)
Saniya Sheikh (B-29170)
Submitted to: Sir Ayaz Zafar
Software Requirements Specification (SRS):
Online Food Ordering System
Table of Contents .................................................................................................................................ii
1. Introduction.....................................................................................................................................1
1.1 Purpose...................................................................................................................................................1
1.2 Intended Audience and Reading Suggestions.........................................................................................1
1.3 Product Scope.........................................................................................................................................1
1.4 References..............................................................................................................................................1
2. Overall Description..........................................................................................................................2
2.1 Product Perspective................................................................................................................................2
2.2 Product Functions...................................................................................................................................2
2.3 User Classes and Characteristics.............................................................................................................2
2.4 Operating Environment..........................................................................................................................2
2.5 Design and Implementation Constraints................................................................................................2
2.6 User Documentation...............................................................................................................................2
2.7 Assumptions and Dependencies.............................................................................................................2
3. External Interface Requirements.......................................................................................................3
3.1 User Interfaces........................................................................................................................................3
3.2 Hardware Interfaces...............................................................................................................................3
3.3 Software Interfaces.................................................................................................................................3
3.4 Communications Interfaces....................................................................................................................3
4. Data Flow Diagrams (DFD) ................................................................................................................4
4.1 Level 0 – Context Diagram......................................................................................................................4
4.2 Level 1 – Expanded Processes.................................................................................................................4
4.3 Level 2 – Example of 1.0 Manage Customer Orders...............................................................................4
5. System Features...............................................................................................................................5
5.1 System Feature 1: Order Placement.......................................................................................................5
5.2 System Feature 2: Menu Management..................................................................................................5
5.3 System Feature 3: Order Tracking..........................................................................................................5
6. Other Nonfunctional Requirements.........................................................................................……….6
6.1 Performance Requirements....................................................................................................................6
6.2 Safety Requirements...............................................................................................................................6
6.3 Security Requirements............................................................................................................................6
6.4 Software Quality Attributes....................................................................................................................6
6.5 Business Rules.........................................................................................................................................6
7. Other Requirements.........................................................................................................................7
8. Conclusion.......................................................................................................................................8
1. Introduction
1.1 Purpose
The purpose of this document is to provide a complete and detailed specification for the Online
Food Ordering System. This system is designed to enable users (customers) to browse
restaurant menus, place food orders online, make secure payments, and track delivery status—
all from the convenience of their web or mobile devices.
This document will serve several key purposes:
To guide developers in implementing system functionality as required.
To help testers design thorough test cases based on clearly defined requirements.
To provide project managers a clear understanding of the scope, constraints, and
objectives of the project.
To communicate the features, expectations, and benefits to stakeholders.
1.2 Intended Audience and Reading Suggestions
This SRS is intended for the following audiences:
Developers: To understand the system's functional and non-functional requirements for
development and Implementation.
Testers: To create test plans and test cases.
Project Managers: To manage the project scope, resources, and timeline.
Stakeholders: To understand the system's features and ensure it aligns with business
goals.
1.3 Product Scope
The online food ordering system will allow customers to browse menus, place orders, and make
payments online. The system will also enable restaurants to manage their menus, orders, and
deliveries. The system aims to streamline the food ordering process, making it more efficient
and convenient for both customers and restaurants.
1.4 References
IEEE Standard 830-1998: Recommended Practice for Software Requirements
Specifications
2. Overall Description
2.1 Product Perspective
The online food ordering system will be a web-based application accessible via browsers and
mobile devices. It will be an independent product and will interact with third-party services like
payment gateways and mapping APIs. The system will integrate with restaurant POS (Point of
Sale) systems where available, to automate order processing. Additionally, it will support user
authentication and role-based access control for customers, restaurant staff, and
administrators. The architecture will be modular to allow easy future updates or integration
with new technologies.
2.2 Product Functions
The system will provide the following functions:
Customer Functions:
1. User Registration & Login
Register a new account.
Login securely using credentials.
2. Browse & Search Menus
View restaurants and their menus.
Search for food by name, cuisine, or restaurant.
3. Order Placement
Add items to cart.
Edit cart (add/remove/modify quantity).
Select delivery or pickup.
Add delivery instructions.
Place the order.
4. Payments
Make secure online payments via integrated payment gateways.
Receive order and payment confirmations.
5. Order Tracking
View real-time status (e.g., preparing, out for delivery).
See estimated delivery time and order history.
6. Profile Management
Update personal details.
Save addresses and payment methods.
7. Reviews & Ratings
Rate restaurants and food items.
Write reviews after order delivery.
Restaurant Staff Functions:
1. Menu Management
Add, update, delete food items.
Set availability and categorize items.
Apply discounts or special offers.
2. Order Management
View incoming orders.
Update order status (e.g., received, preparing).
Notify customers of order status changes.
3. Restaurant Profile Management
Update contact info, hours of operation, etc.
4. Reporting
View sales history and order analytics.
Administrator Functions:
1. User Management
Manage user accounts (customers and restaurants).
2. Restaurant Management
Add, update, or remove restaurants.
3. System Configuration
Oversee settings, integrations (e.g., payment gateways).
4. Reporting & Analytics
Generate system-wide reports on orders, users, and performance.
2.3 User Classes and Characteristics
Actors:
1. Customer (Primary Actor):
The main user of the system who interacts with all major functionalities.
Connected to:
Login
View Menu
Place Order
Payment
Log Out
2. Authentication Services (Supporting Actor):
Provides verification functionality.
Linked to:
Login
3. Payment Services (Supporting Actor):
Manages payment transactions.
Linked to:
Payment
Log Out
Use Cases:
1. Login:
Allows the customer to log in with credentials.
Involves interaction with Authentication Services.
2. View Menu:
Customers can browse available food items from various restaurants.
3. Place Order:
Customers select items and submit an order for delivery or pickup.
4. Payment:
Customers make payments via integrated payment services.
5. Log Out:
Ends the session for the customer.
Also signals Payment Services, likely for session closure or payment
confirmation.
System Boundary:
The rectangle labeled "Online Food Delivery System" represents the system boundary.
All use cases inside this boundary are functionalities provided by the system.
2.4 Operating Environment
The system will operate in the following environment:
Web servers (e.g., Apache, Nginx)
Database servers (e.g., MySQL, PostgreSQL)
Operating systems (e.g., Linux, Windows Server)
Web browsers (e.g., Chrome, Firefox, Safari)
Mobile devices (iOS and Android)
2.5 Design and Implementation Constraints
The system should be scalable to handle a large number of users and orders.
The system should be secure to protect user data and prevent unauthorized access.
The system should be user-friendly and easy to navigate.
The system should be developed using open-source technologies (e.g., Python, Django).
The system must be compliant with relevant data privacy regulations.
2.6 User Documentation
The following user documentation will be provided:
User manual for customers
User manual for restaurant staff
Administrator manual
Online help and FAQs
2.7 Assumptions and Dependencies
Reliable internet connectivity is assumed for all users.
Payment gateway integration will be handled by a third-party provider.
Restaurant staff will have access to the necessary hardware (e.g., computers, tablets).
3. External Interface Requirements
3.1 User Interfaces
Customers will interact with a web-based interface and mobile applications (iOS and
Android).
Restaurant staff will use a web-based interface.
The user interface will be intuitive, responsive, and accessible.
The UI will follow a consistent design and branding.
3.2 Hardware Interfaces
Web server
Database server
Mobile devices (for customers)
Computers/tablets (for restaurant staff)
Printers (for order printing in restaurants)
3.3 Software Interfaces
Operating system
Web browser
Database management system
Payment gateway API
Mapping service API (e.g., Google Maps)
3.4 Communications Interfaces
HTTP/HTTPS for communication between client and server
TCP/IP for network communication
4. Data Flow Diagrams (DFD)
4.1 Level 0 – Context Diagram
External Entities:
Customer
Restaurant
Payment Gateway
Process:
Online Food Ordering System
Data Flows:
Customer → Order Details → System
Customer → Payment Details → Payment Gateway
Payment Gateway → Payment Confirmation → System
System → Order Notification → Restaurant
Restaurant → Menu Updates → System
Customer → Menu Request → System
System → Order Confirmation → Customer
DFD: Level 1 – Online Food Ordering System
This level breaks down the single process from Level 0 into 3 major sub-processes:
External Entities:
Customer
Restaurant
Payment Gateway
Processes:
1.0: Manage Orders
2.0: Process Payments
3.0: Restaurant Coordination
Data Stores:
D1: Customer Database
D2: Order Database
D3: Menu Database
D4: Payment Records
Data Flow Details:
Customer Interactions:
Customer → 1.0 Manage Orders: Sends Menu Request & Order Details
1.0 → Customer: Receives Order Confirmation
Payment Process:
1.0 → 2.0 Process Payments: Sends Payment Info
2.0 → Payment Gateway: Payment Details
Payment Gateway → 2.0: Payment Confirmation
2.0 → 1.0: Payment Status
2.0 → D4: Stores Payment Records
Restaurant Handling:
1.0 → 3.0 Restaurant Coordination: Sends Order Notification
Restaurant → 3.0: Menu Update Info
3.0 → D3: Stores Updated Menu
Storing Info:
1.0 → D1: Stores Customer Info
1.0 → D2: Stores Order Info
DFD: Level 2 : Manage Orders
External Entity: Customer
Sub-Processes:
1.1: Browse Menu
1.2: Select Items
1.3: Place Order
1.4: Generate Confirmation
Data Stores:
D1: Customer Database
D2: Order Database
D3: Menu Database
Data Flow Details:
Browsing:
Customer → 1.1 Browse Menu: Sends Menu Request
1.1 → D3 Menu Database: Fetch Menu
1.1 → Customer: Menu Items
Order Placement:
Customer → 1.2 Select Items: Sends Selected Items
1.2 → 1.3 Place Order: Order Data
1.3 → D2: Save Order
1.3 → D1: Store Customer Info
Confirmation:
1.3 → 1.4 Generate Confirmation: Sends Order ID + Status
1.4 → Customer: Order Confirmation
1.4 → Process 3.0 (from Level 1): Send Order to Restaurant
5. System Features
5.1 System Feature 1: Order Placement
Description: Customers can browse menus, add items to their cart, and place orders
online.
Functional Requirements:
The system shall allow customers to search for restaurants by name, cuisine, or
location.
The system shall display restaurant menus with descriptions, prices, and images
of food items.
The system shall allow customers to add items to their shopping cart.
The system shall allow customers to modify the quantity of items in their
shopping cart.
The system shall calculate the total order amount, including taxes and delivery
fees.
The system shall allow customers to select a delivery address or pickup option.
The system shall allow customers to specify delivery instructions.
The system shall generate an order confirmation with an order number and
estimated delivery time.
5.2 System Feature 2: Menu Management
Description: Restaurants can manage their menus, including adding, updating, and
deleting food items.
Functional Requirements:
The system shall allow restaurant staff to add new food items to the menu.
The system shall allow restaurant staff to update existing food items (e.g., name,
description, price, image).
The system shall allow restaurant staff to delete food items from the menu.
The system shall allow restaurant staff to categorize food items (e.g., appetizers,
main courses, desserts).
The system shall allow restaurant staff to set the availability of food items.
The system shall allow restaurant staff to create and manage special offers or
discounts.
5.3 System Feature 3: Order Tracking
Description: Customers can track the status of their orders in real-time.
Functional Requirements:
The system shall display the current status of an order (e.g., pending, confirmed,
preparing, out for delivery, delivered).
The system shall provide an estimated delivery time.
The system shall allow customers to view the order details, including the items
ordered and the delivery address.
The system shall send notifications to customers when the order status changes
(e.g., via email or SMS).
6. Other Nonfunctional Requirements
6.1 Performance Requirements
The system shall be able to handle 1000 concurrent users without significant
performance degradation.
The system shall respond to user requests within 2 seconds.
The system shall be available 24/7 with a 99.9% uptime.
6.2 Safety Requirements
The system shall not cause any harm to the user's hardware or software.
6.3 Security Requirements
The system shall protect user data (e.g., personal information, payment details) from
unauthorized access.
The system shall use encryption to secure data transmission.
The system shall implement user authentication and authorization.
The system shall protect against common web vulnerabilities (e.g., SQL injection, cross-
site scripting).
The system shall comply with PCI DSS standards for handling payment information.
6.4 Software Quality Attributes
Usability: The system shall be easy to use and navigate for all user classes.
Reliability: The system shall be reliable and operate without errors.
Maintainability: The system shall be easy to maintain and modify.
Scalability: The system shall be scalable to handle increasing user loads and data
volumes.
Portability: The system shall be portable across different operating systems and
browsers.
6.5 Business Rules
Restaurants must provide accurate and up-to-date menu information.
Orders must be confirmed before they are sent to the restaurant.
Payment must be processed before the order is delivered.
Delivery times are estimates and may vary depending on traffic and other factors.
Customers can only rate and review orders that have been delivered.
7. Other Requirements
The system should support multiple languages.
The system should be accessible to users with disabilities (e.g., following WCAG
guidelines).
The system should provide reporting and analytics features for administrators and
restaurant owners.
8. Conclusion
The Online Food Ordering System outlined in this document is designed to provide an efficient,
secure, and user-friendly platform that caters to the needs of both customers and restaurants.
With detailed functional modules, well-structured data flow, and clear role-based interfaces,
the system is expected to optimize the food ordering experience.
This SRS ensures that all stakeholders have a shared understanding of the system’s
functionality, design, and implementation roadmap. With this foundation, the project can move
into design, development, and testing phases with clarity and precision.