Bharath (Set Document)
Bharath (Set Document)
School Of Engineering,
Banglore
Department of Computer Application
Submitted to:
Prof. Smita Kodallihiremath
ONLINE FOOD ORDERING SYSTEM.
1. PROBLEM STATEMENT:
The current landscape of online food ordering systems is plagued by fragmentation, limited
customization options, inefficient order management, and a lack of data insights. Customers
often navigate through multiple platforms to place orders, leading to a disjointed experience.
Moreover, the inability to customize orders according to preferences and dietary restrictions
poses a challenge for both customers and restaurant owners. Restaurants struggle with manual
order processing, inventory management, and coordination with delivery services, resulting in
delays and errors. Additionally, the absence of robust analytics makes it difficult for restaurants
to understand customer behavior and optimize their offerings effectively.
To address these challenges, we propose the development of a comprehensive Online Food
Ordering System (OFOS). This system will provide a unified platform for customers to browse
menus, place orders, and track deliveries seamlessly. Offering extensive customization options,
the OFOS will empower users to personalize orders while enabling restaurant owners to
configure menus and promotional offers flexibly. Automated order processing, inventory
management, and real-time order tracking features will enhance operational efficiency for
restaurant owners. Furthermore, advanced analytics capabilities will provide valuable insights
into customer preferences and ordering trends, enabling data-driven decision-making to optimize
service quality and drive business growth.
2. PREPARATION OF SOFTWARE REQUIREMENT SPECIFICATION DOCUMENT.
User Characteristics:
Customers: They will use the system to browse menus, place orders, and track deliveries. They
may have preferences for customization options, such as dietary restrictions or portion sizes.
Restaurant Owners: They will manage their restaurant profiles, menus, pricing, and promotional
offers on the platform. They require efficient order management and delivery coordination tools.
Delivery Personnel: They will receive order assignments, navigate delivery routes, and update
order statuses on the system.
System Modules:
User Authentication: Secure login for customers, restaurant owners, and delivery personnel with
role-based access control.
Menu Management: Allow restaurant owners to create and update menus, add new items, set
prices, and manage inventory availability.
Order Management: Enable restaurant owners to receive, process, and track orders efficiently.
Provide delivery personnel with route optimization tools and real-time order updates.
Customer Interface: Offer an intuitive interface for customers to browse menus, customize
orders, and track deliveries. Include features for order history and favorite items.
Payment Processing: Facilitate secure online payments for orders using various payment
methods. Ensure compliance with relevant payment industry standards.
Analytics: Provide restaurant owners with data analytics and reporting features to analyze sales
performance, customer preferences, and order trends. Offer insights for decision-making and
business optimization.
Non-functional Requirements:
Security: Implement robust data encryption, secure payment processing, and access controls to
protect customer information and financial transactions.
Scalability: Design the system to accommodate a growing number of users, restaurants, and
orders. Ensure scalability of infrastructure and performance optimization.
Usability: Ensure an intuitive and user-friendly interface for customers, restaurant owners, and
delivery personnel. Minimize the learning curve and provide clear navigation.
Reliability: Implement backup and recovery mechanisms to ensure data integrity and system
availability. Minimize downtime and maintain high reliability for order processing.
Interoperability: Integrate the system with third-party services, such as payment gateways and
mapping APIs, for seamless functionality. Ensure compatibility with different devices and web
browsers for broad accessibility.
Portability: Develop the system to be platform-independent, allowing access from various
devices and operating systems commonly used by customers, restaurant owners, and delivery
personnel.
3. PREPARARTION OF SOFTWARE CONFIGURATION MANAGEMENT.
SOFTWARE REQUIREMENTS:
Operating systems: Windows 7/10
Front end: HTML, CSS, JavaScript
Back end: Svelte Kit
IDE used: Visual Studio
HARDWARE REQUIREMENTS:
Processor: Ryzen 5 or higher
RAM: 8GB
Hard Disk Drive: 500GB
Network: 100Mbps internet connection.
Pre-Condition: The user must be logged into the Online Food Ordering System (OFOS) or accessing it as a guest.
Normal Flow:
1. Access Menu: The user navigates to the menu section of the OFOS, either through the website or mobile app.
2. Browse Categories: The user views the available food categories (e.g., appetizers, main courses, desserts) to find
items of interest. 3. View Item Details: The user selects a category and browses through the list of menu items. They
can view details such as item name, description, price, and accompanying image.
4. Customize Order (Optional): If desired, the user can customize their order by selecting options such as portion
size, toppings, sides, etc.
5. Add to Cart: The user adds desired items to their cart for purchase.
6. Continue Browsing or Proceed to Checkout: After adding items to the cart, the user can continue browsing the
menu or proceed to checkout to finalize the order.
Post Condition: The user has successfully browsed the menu, selected items of interest, and added them to the cart
for purchase within the OFOS.
Pre-Condition: The user must be logged into the OFOS and have items in their cart.
Normal Flow:
1. Access Cart: The user navigates to their cart to review the selected items and verify their order.
2. Review Order: The user checks the cart to ensure that all desired items are included and that any customizations
are accurate.
4. Provide Delivery Information: The user enters delivery details such as address, contact number, and any specific
delivery instructions.
5. Select Payment Method: The user chooses a preferred payment method from the available options (e.g.,
credit/debit card, online payment, cash on delivery).
6. Confirm Order: The user reviews the order summary, delivery information, and selected payment method before
confirming the order.
7. Place Order: The user submits the order, and the system processes the payment (if applicable) and sends a
confirmation message.
Post Condition: The user has successfully placed an order through the OFOS, and the order is submitted for
processing and delivery.
Pre-Condition: The user must have placed an order through the OFOS.
Normal Flow:
1. Access Order Tracking: The user navigates to the order tracking section of the OFOS.
2. Enter Order Details: The user enters the order ID or reference number and any other required information to track
the order.
3. View Order Status: The system retrieves the order details and displays the current status of the order (e.g.,
confirmed, preparing, out for delivery, delivered).
4. Track Delivery (Optional): If the order is out for delivery, the user can track the delivery in real-time using
features such as live tracking or estimated delivery time.
5. Receive Order: Once the order is delivered, the user receives a notification or confirmation message indicating
successful delivery.
Post Condition: The user has successfully tracked the status of their order through the OFOS and received the order
upon delivery.
Pre-Condition: The user must be logged into their restaurant owner account on the OFOS.
Normal Flow:
1. Access Menu Management: The restaurant owner navigates to the menu management section of the OFOS.
2. Add New Items: The restaurant owner adds new menu items by providing details such as item name, description,
price, and category.
3. Edit Existing Items: The restaurant owner updates the details of existing menu items, such as price changes,
description updates, or availability adjustments.
4. Remove Items: The restaurant owner removes menu items that are discontinued or temporarily unavailable.
5. Manage Inventory: If applicable, the restaurant owner manages inventory levels for menu items to ensure accurate
stock tracking.
6. Save Changes: After making updates, the restaurant owner saves the changes to update the menu in the OFOS.
Post Condition: The restaurant owner has successfully managed the menu of their restaurant within the OFOS,
including adding new items, editing existing items, and adjusting inventory levels as needed.
CLASS DIAGRAM
A class diagram for an Online Food Ordering System (OFOS) represents the various classes or entities within the
system and their relationships. Here's an explanation of the main classes you might find in a typical OFOS:
1. User: Represents users of the system, including customers, restaurant owners, and delivery personnel. This class
may have attributes such as user ID, username, password, email, and contact information.
2. Customer: Inherits from the User class and represents customers who browse the menu, place orders, and track
deliveries. This class may have additional attributes like address, payment information, and order history.
3. Restaurant Owner: Inherits from the User class and represents restaurant owners who manage their restaurant
profiles, menus, and orders. This class may have attributes such as restaurant ID, business name, address, and menu
items.
4. Delivery Personnel: Inherits from the User class and represents delivery personnel responsible for delivering
orders to customers. This class may have attributes like vehicle information, delivery area, and availability.
5. Menu: Represents the menu offered by each restaurant. This class may have attributes such as menu ID, name,
description, category, price, and availability status.
6. Menu Item: Represents individual items on the menu. This class may have attributes like item ID, name,
description, price, and availability status.
7. Order: Represents an order placed by a customer. This class may have attributes such as order ID, customer ID,
restaurant ID, delivery status, total price, and timestamp.
8. Order Item: Represents individual items within an order. This class may have attributes like item ID, order ID,
quantity, and subtotal.
9. Payment: Represents the payment details associated with an order. This class may have attributes like payment
ID, order ID, payment method, total amount, and transaction status.
10. Address: Represents the delivery address associated with an order. This class may have attributes like address
ID, customer ID, recipient name, street address, city, state, postal code, and contact number.
11. Delivery: Represents the delivery details associated with an order. This class may have attributes like delivery
ID, order ID, delivery person ID, delivery status, estimated delivery time, and actual delivery time.
12. Feedback: Represents feedback provided by customers after receiving their orders. This class may have
attributes like feedback ID, order ID, rating, comments, and timestamp.
These classes are interconnected through relationships such as aggregation (e.g., a Customer aggregates multiple
Orders) and association (e.g., an Order is associated with a Menu). Additionally, inheritance relationships exist
where subclasses inherit attributes and behaviours from superclasses (e.g., Customer inherits from User). The class
diagram visually represents these relationships to provide a clear understanding of the structure and behaviour of the
OFOS.
SEQUENCE DIAGRAM
1. The user accesses the OFOS through the website or mobile app.
2. The user logs into the system by entering their registered username and password.
3. The user browses the menu and selects items they wish to order.
4. Next, the user customizes their order by selecting options such as portion size, toppings, and sides.
5. After finalizing their order, the user proceeds to checkout to review the order summary.
6. The system validates the order details provided by the user, ensuring all required information is
complete and accurate.
7. Once the validation is completed, the user selects the preferred payment method and provides
payment details.
8. After completing the payment transaction, the system sends an acknowledgment to the user
confirming the order.
9. The user receives a confirmation message or email with order details, including the order number,
items, total amount, and estimated delivery time.
10. The user can then track the status of their order using the tracking feature, which provides real-time
updates on order preparation, dispatch, and delivery.
11. Upon delivery, the user receives the order and can provide feedback on their experience with the
delivery and food quality if desired.
12. The system may send a follow-up email or notification to the user to gather feedback and encourage
repeat orders.
- Develop OFOS using modern web technologies (HTML, CSS, JavaScript) and backend frameworks
(Django, Flask, or Node.js).
- Continuously enhance and refine OFOS based on user feedback, market trends, and emerging
technologies.
- Apply UX/UI design principles for intuitive and visually appealing interfaces across devices.
- Collect data from various sources (restaurant partners, APIs, user inputs) and preprocess it for
consistency and accuracy.
- Implement data validation checks to ensure imported data meets quality standards.
- Perform EDA to gain insights into user preferences, popular cuisines, and peak ordering times.
- Use statistical summaries, visualizations, and dashboards (Matplotlib, Seaborn, Plotly) for data
exploration and decision support.
- Conduct user testing and feedback sessions to iterate on design elements and improve usability.
Feature Development and Optimization:
- Develop new features (personalized recommendations, loyalty programs, advanced search filters) to
enhance user engagement.
- Monitor system performance metrics and conduct performance testing under varying loads.
- Conduct comprehensive testing (unit, integration, regression, user acceptance) to ensure OFOS
functions across devices and scenarios.
- Implement security measures (encryption, secure authentication) and comply with regulations (GDPR,
PCI DSS) for data privacy and security.
- Set up customer support systems (chatbots, ticketing) and collect user feedback for continuous
improvement.
- Integrate with payment gateways (PayPal, Stripe) for secure payment processing.
- Explore integration with delivery logistics providers for seamless order fulfillment and tracking.
- Implement analytics tools (Google Analytics) to track user behavior, conversion rates, and business
performance.
- Generate regular reports and insights from analytics data for strategic decision-making and marketing
initiatives.
- Develop marketing strategies (social media, email campaigns, loyalty programs) to attract and retain
customers.
- Use data-driven marketing techniques for personalized promotions based on user preferences.
- Stay updated with industry trends, technology advancements, and customer preferences.
- Foster a culture of continuous learning and improvement within the development and operational
teams.
- Perform ongoing maintenance, updates, and adaptation to changing business requirements and
technological advancements.
TEST CASES
ADMIN MODULE