Acknowledgement
We would like to express our sincere gratitude to Tribhuvan University for providing
us with the opportunity to prepare this project report titled “Design and
Implementation of an Online Foor Ordering and Delivery System”. Working on this
report has helped us gain a deeper understanding of how real-world software systems
are analysed, designed and documented using the concepts learned during our
academic coursework.
We are especially thankful to our project supervisor and instructor Mr. Madan Nath
for his continuous guidance, and encouragement and valuable feedback throughout
the preparation of this report. His support and suggestions played a significant role in
helping us compete this project in an effective and systematic manner.
We would also like to extend our appreciation to Bhaktapur Multiple Campus for
providing a supportive learning environment that emphasizes practical knowledge and
for offering the necessary resources through the project period.
Finally, we would like to thank all those individuals who contributed directly or
indirectly to the completion of this project report. Their support and cooperation were
invaluable in making this work possible.
ABSTRACT
The rapid growth of information technology and internet-based services has
significantly transformed the way people access goods and services in their daily
lives. Among these services, online food ordering and delivery systems have gained
immense popularity due to their convenience, efficiency, and time-saving nature.
Traditional food ordering methods, such as in-person visits or phone calls, are often
inefficient, time-consuming, and prone to errors. To overcome these limitations, this
project focuses on the design and implementation of an Online Food Ordering and
Delivery System.
The main objective of this project is to develop a web-based system that enables
customers to browse food menus, place orders online, and track the status of their
orders in a systematic and user-friendly manner. The system also provides
functionality for restaurants to manage food items, process customer orders, and
update order status, while allowing administrators to monitor overall system activities.
This approach helps reduce manual effort, minimize order processing errors, and
improve overall service efficiency.
The system is developed using an object-oriented approach, applying standard
software engineering principles throughout the development process. A hybrid
development methodology combining the Waterfall and Agile models is adopted in
this project. The Waterfall model is used during the requirement analysis and system
design phases to ensure clear documentation and structured planning, while Agile
practices are applied during the implementation and testing phases to support iterative
development, flexibility, and continuous improvement. Various Unified Modelling
Language (UML) diagrams, including use case diagrams, class diagrams, sequence
diagrams, and activity diagrams, are used to represent system requirements and design
in an organized and understandable manner.
The implemented system improves accessibility, enhances order management, and
provides an efficient platform for interaction between customers, restaurants, and
delivery personnel. The results of the project demonstrate that the proposed system
effectively addresses the limitations of traditional food ordering methods.
Furthermore, the system provides a foundation for future enhancements such as
mobile application integration, secure online payment gateways, real-time order
tracking, and intelligent food recommendation features.
Chapter 1: Introduction
1.1. Introduction
In recent years, the rapid growth of the internet and smartphone usage has
significantly transformed the way people access services, including food. Traditional
food ordering, which often involves visiting restaurants or placing phone calls, is
increasingly being replaced by online food ordering systems. These systems provide
customers with the convenience of browsing menus, placing orders, and making
payments from the comfort of their homes.
The Online Food Ordering & Delivery System (OFODS) is designed to bridge the gap
between customers and restaurants while ensuring efficient order management, timely
delivery, and overall user satisfaction. This system integrates real-time order tracking,
secure payment gateways, and automated notifications to enhance the customer
experience. It also provides restaurants with tools to manage orders, monitor
inventory, and analyse customer preferences, thereby optimizing their operations.
The project leverages modern web technologies, agile development practices, and
elements of the waterfall model for structured documentation and planning. By
combining these approaches, the system aims to deliver a robust, scalable, and user-
friendly platform for both customers and service providers.
1.2 Problem Statement
The traditional food ordering process has several inefficiencies that lead to poor
customer experience and operational challenges for restaurants:
1. Limited Accessibility: Customers must physically visit restaurants or make
phone calls to place orders, which is time-consuming and inconvenient.
2. Order Mismanagement: Manual order handling increases the likelihood of
errors, delays, and miscommunication between staff and customers.
3. Lack of Transparency: Customers have limited visibility into order status,
estimated delivery time, and restaurant availability.
4. Payment Issues: Cash-only transactions can lead to delays, reduce
convenience, and limit accessibility for users preferring digital payments.
5. Data Analytics Gap: Restaurants often lack insights into customer preferences,
peak ordering times, and menu performance, which hinders business
optimization.
1.3 Objectives
The main objectives of the Online Food Ordering & Delivery System are:
1. To develop a user-friendly platform that allows customers to browse menus,
place orders, and track deliveries efficiently.
2. To implement a secure and flexible payment gateway that supports multiple
payment methods.
3. To provide restaurants with tools for managing orders, inventory, and menu
items in real time.
4. To incorporate automated notifications and status updates to enhance
communication between customers, delivery personnel, and restaurants.
5. To enable reporting and analytics for restaurants to improve decision-making
and service quality.
6. To ensure the system is scalable, maintainable, and capable of handling
increasing numbers of users and orders.
1.4 Scope and Limitation
Scope:
The system will cover online ordering for multiple restaurants in a city or
region.
It will support web-based platforms for both customers and restaurant staff.
Integration with digital payment gateways for secure transactions.
Real-time order tracking and notifications for customers and delivery
personnel.
Basic reporting and analytics for restaurants.
Limitations:
The system may not account for extreme traffic spikes initially, though it will
be designed to scale.
Delivery is limited to the areas covered by registered delivery personnel.
The system relies on internet connectivity; offline functionality is limited.
1.5 Development Methodology
The project adopts a hybrid methodology, combining Agile and Waterfall
approaches:
Agile Approach:
o Used for iterative development and frequent feedback.
o Allows incremental addition of features like order tracking,
notifications, and analytics.
o Ensures regular testing and validation of modules with end-users.
Waterfall Approach:
o Used for structured planning, documentation, and requirement
analysis.
o Ensures detailed design, database modelling, and system architecture
before implementation.
By combining these methodologies, the project achieves flexibility in development
while maintaining rigorous documentation and structured planning.
Chapter 2: Background Study and Literature Review
2.1 Background Study
The Online Food Ordering & Delivery System (OFODS) is built upon several
fundamental technologies, concepts, and theories from software engineering, database
management, web development, and system design. Understanding these
fundamentals ensures that the system is robust, scalable, and user-friendly.
2.1.1 Key Concepts
1. Client-Server Architecture
o The system follows a client-server model, where the client (web or
mobile app) interacts with the server to request services, such as
browsing menus or placing orders.
o The server processes these requests, interacts with the database, and
responds with relevant information.
o Benefits: centralized control, data consistency, and easier maintenance.
2. Database Management Systems (DBMS)
o The system uses a relational database to store information about
restaurants, menu items, customers, orders, and delivery personnel.
o Core concepts include:
ER Diagrams: Used to model relationships between entities
such as Customer, Order, Restaurant, Menu Item, and Delivery
Person.
Normalization: Ensures minimal redundancy and data
integrity.
3. Web Technologies
o Frontend: HTML, CSS, JavaScript, and frameworks like
React/[Link] for responsive UI.
o Backend: [Link] with Express or [Link], [Link] Core, or Fast API
for API development and business logic.
o RESTful APIs: Facilitate communication between frontend and
backend.
4. Payment Gateway Integration
o Secure payment processing is vital. The system can integrate with
gateways like Stripe, PayPal, or local banking APIs.
o Supports multiple payment methods: credit/debit cards, e-wallets, or
bank transfers.
5. Notifications and Real-Time Updates
o Uses Web Sockets or push notifications to provide real-time order
tracking.
o Ensures that customers, restaurants, and delivery personnel are updated
instantly regarding order status.
6. User Experience (UX) Design
o A clean and intuitive interface is crucial for high adoption.
o Features like search filters, order history, and personalized
recommendations enhance UX.
2.1.2 Terminologies
Customer: A user who browses restaurants, places orders, and makes
payments.
Restaurant: A registered food service provider that lists menu items and
manages orders.
Delivery Personnel: A user responsible for picking up and delivering orders.
Order Management System (OMS): Tracks all stages of order processing
from placement to delivery.
Admin Panel: Backend dashboard for monitoring users, restaurants, orders,
and analytics.
Notification System: Component responsible for sending real-time alerts to
users.
2.2 Literature Review
2.2.1 Existing Online Food Ordering Systems in Nepal
Several platforms have set benchmarks in Nepal’s online food ordering space:
1. Foodmandu
o Features: Real-time tracking, diverse payment options, restaurant
reviews, and promotions.
o Lessons: Emphasizes UX simplicity, fast delivery, and transparent
tracking.
2. Pathao Food
o Features: Leveraging its ride-sharing network, Pathao Food provides
delivery from multiple restaurants with real-time tracking.
o Lessons: Efficient use of existing logistics network allows for faster
scaling and wider coverage.
3. Bhojdeals
o Features: Focuses on discount deals and combo offers, targeting
budget-conscious users.
o Lessons: Highlights the importance of deals and promotions in
attracting and retaining users, though service reliability can be a
challenge for smaller platforms.
2.2.2 Technologies Used in Similar Systems
Frontend: React, Angular, or Flutter for responsive apps.
Backend: [Link], Django, [Link] Core for scalable API development.
Database: PostgreSQL, MySQL, or MongoDB for structured or semi-
structured data.
Real-Time Communication: Web Sockets or Firebase for live updates.
Analytics Tools: Google Analytics, Tableau, or inbuilt reporting modules for
insights.
2.2.3 Challenges Identified in Literature
Order Accuracy: Mistakes in manual or semi-automated processes affect
customer satisfaction.
Delivery Optimization: Efficient route planning and tracking are often
complex, especially in congested urban areas like Kathmandu.
Scalability: High user traffic and order volume can strain servers if not
designed properly.
Payment Security: Fraud prevention and secure transactions are critical,
especially with digital wallets and COD options in Nepal.
3.1.1 Requirement Analysis
i. Functional Requirements
Functional requirements define the core features and functionalities that the system
must support.
1. Customer Module
o User registration and login using email, phone number, or social login.
o Browse restaurant list and menus with categories, ratings, and prices.
o Place orders, modify orders, and track order status in real-time.
o Secure payment options including credit/debit cards, e-wallets, and
cash on delivery.
o Order history and past transaction review.
o Ratings and reviews for restaurants and food items.
2. Restaurant Module
o Registration and login for restaurant owners.
o Menu management: add, update, remove items; categorize menu items.
o Receive and manage orders in real-time.
o Update order status (received, preparing, ready for delivery, delivered).
o Generate sales reports and analytics on orders, revenue, and customer
preferences.
3. Delivery Personnel Module
o Registration and login for delivery personnel.
o Receive delivery assignments based on location and availability.
o Update delivery status in real-time (picked up, in transit, delivered).
o Track earnings and order history.
4. Admin Module
o Manage customers, restaurants, and delivery personnel accounts.
o Monitor system-wide order statistics and performance metrics.
o Handle disputes, complaints, and feedback.
o Generate system-wide reports for analysis.
5. Notification & Tracking Module
o Real-time notifications for order updates to customers, restaurants, and
delivery personnel.
o Track order location using GPS for both customers and delivery
personnel.
6. Search & Filter Functionality
o Customers can search restaurants by name, location, cuisine, or rating.
o Filters for price, delivery time, discounts, and popularity.
7. Promotions & Discounts
o Admin and restaurants can create promotional offers.
o Apply discounts and coupons during checkout.
8. Feedback & Rating System
o Allow customers to rate restaurants and delivery personnel.
o Use ratings for restaurant ranking and system recommendations.
Use Case Diagram
Here’s a textual description (we can create an actual diagram later):
Actors: Customer, Restaurant Owner, Delivery Personnel, Admin
Use Cases:
o Customer: Register/Login, Browse Menu, Place Order, Make Payment, Track
Order, Rate & Review
o Restaurant: Register/Login, Manage Menu, Accept/Update Orders, Generate
Reports
o Delivery Personnel: Register/Login, Accept Delivery, Update Delivery
Status, View Earnings
o Admin: Manage Users, Monitor System, Generate Reports, Handle
Complaints
ii. Non-Functional Requirements
Non-functional requirements describe how the system should perform and behave
rather than what it does.
Performance: System should handle up to 5,000 concurrent users without lag.
Scalability: Must support addition of new restaurants, users, and delivery
personnel without major redesign.
Reliability: 99% uptime; system should recover gracefully from failures.
Security:
o Secure storage of passwords (hashed).
o Encrypted payment transactions (SSL/TLS).
o Role-based access control.
Usability: Intuitive interface, minimal learning curve for all user types.
Maintainability: Modular code structure, well-documented APIs, and
database schema.
3.1.2 Feasibility Analysis
Feasibility analysis ensures that the proposed system can be successfully developed
and implemented within the given constraints. It evaluates the technical, operational,
economic, and schedule feasibility of the project.
i. Technical Feasibility
Technology Stack:
o Frontend: React/[Link] with Tailwind CSS for responsive and
modern UI.
o Backend: [Link] with [Link]/[Link] or [Link] Core for API
and business logic.
o Database: PostgreSQL or MySQL for structured data storage.
o Real-Time Communication: Web Sockets for live order tracking.
o Hosting/Deployment: Cloud-based VPS or managed cloud compute
like AWS EC2, with Docker for containerization.
Hardware Requirements:
o Development: Modern PCs/laptops with at least 8GB RAM.
o Deployment: Server with 4+ CPU cores, 16GB RAM, SSD storage for
database performance.
Feasibility Assessment:
The project is technically feasible as all required technologies are mature,
widely supported, and compatible. The development team has the necessary
skills in frontend, backend, and database management.
ii. Operational Feasibility
User Acceptance:
o Customers are increasingly comfortable with online services in Nepal,
as seen with platforms like Foodmandu and Pathao Food.
o Restaurants are motivated to adopt online systems to expand their
reach and optimize order management.
Operational Requirements:
o Internet connectivity for all users and restaurants.
o Training sessions for restaurants and delivery personnel to use the
platform effectively.
o Customer support channels to handle queries, complaints, and
feedback.
Feasibility Assessment:
The system is operationally feasible, given the growing smartphone and
internet penetration in urban Nepal and increasing user adoption of digital
services.
iii. Economic Feasibility
Cost Estimates:
o Development Costs: Salaries for developers, UI/UX designers, and
testers.
o Hosting and Infrastructure: Cloud services, domain, SSL certificates,
and database hosting.
o Marketing & Support: Initial promotion and user onboarding.
Benefits:
o Revenue from delivery fees, commissions from restaurants, and
premium features.
o Reduction in manual errors and improved operational efficiency for
restaurants.
o Enhanced user satisfaction leading to loyalty and repeated orders.
Feasibility Assessment:
The system is economically feasible because the potential revenue and
operational efficiency gains outweigh development and maintenance costs.
iv. Schedule Feasibility
Proposed Timeline:
o Requirement Analysis & System Design: 2 months
o Development (Frontend & Backend): 3 months
o Testing & Deployment: 1 month
o Total Duration: 6 months
Feasibility Assessment:
The project timeline is reasonable and achievable, given the scope and size of
the system, along with the experience of the development team.
3.1.3 Analysis
System analysis involves modelling the system to understand its structure, behaviour,
and data flow. This chapter uses structured approach to cover all perspectives.
1. Data Modelling using ER Diagrams
Entities and Relationships:
1. Customer – stores user details (name, contact, address).
2. Restaurant – stores restaurant info (name, location, menu).
3. Menu Item – stores individual dishes with price, category, availability.
4. Order – records order details, timestamp, status, total price.
5. Delivery Person – tracks delivery personnel info and status.
6. Payment – stores payment info, method, and status.
Relationships:
Customer places Order (1-to-many)
Order contains Menu Item (many-to-many, resolved with Order Details)
Restaurant offers Menu Item (1-to-many)
Delivery Person delivers Order (1-to-many)
Payment for Order (1-to-1)
2. Process Modelling using DFDs
Level 0 (Context Diagram):
Single process “Online Food Ordering System”
External entities: Customer, Restaurant, Delivery Person, Admin
Data flows: Order request, Menu data, Order status updates, Payment info
Level 1 DFD:
Customer Module: Login/Register → Browse Menu → Place Order → Make
Payment → Receive Order Status
Restaurant Module: Receive Order → Update Status → Manage Menu →
Generate Reports
Delivery Module: Receive Delivery Assignment → Update Status → Confirm
Delivery
Admin Module: Manage Users → Monitor System → Generate Reports
(Detailed DFD diagrams can be added in the appendices.)
Chapter 4: System Design
System design translates the analysis models into a blueprint for implementation. It
includes database design, interface design, component diagrams, deployment
diagrams, and algorithm details.
4.1 Design
1. Database Design
ER to Relational Model
Entity Attributes Primary Key Relationships
customerId, name,
Customer email, phone, customerId Places Orders
address
restaurantId, name,
Restaurant restaurantId Offers MenuItems
location, contact
itemId,
restaurantId, name, Belongs to Restaurant,
MenuItem itemId
category, price, Part of Order
availability
orderId, Contains MenuItems,
customerId, Paid via Payment,
Order orderId
timestamp, Delivered by
totalPrice, status DeliveryPerson
Composite Key
orderId, itemId, Connects Orders and
OrderDetails (orderId,
quantity MenuItems
itemId)
deliveryId, name,
DeliveryPerson deliveryId Delivers Orders
phone, status
paymentId, orderId,
Payment amount, method, paymentId Associated with Order
status
Normalization
o 1NF: Remove repeating groups (e.g., multiple menu items per order
handled via OrderDetails table).
o 2NF: All non-key attributes fully dependent on primary key.
o 3NF: Remove transitive dependencies (e.g., storing restaurant location
only in Restaurant table, not in Order table).
2. Forms and Report Design
Customer Forms: Registration/Login, Browse Menu, Place Order, Payment
Form, Order History, Ratings/Feedback
Restaurant Forms: Login, Menu Management, Order Management, Analytics
Dashboard
Delivery Forms: Login, Assigned Orders, Delivery Status Update
Admin Forms: User Management, System Monitoring, Reports Generation
Reports:
Daily, weekly, and monthly sales reports
Restaurant performance analytics (most ordered items, peak hours)
Delivery personnel performance (delivery times, completed orders)
3. Interface and Dialogue Design
Customer UI:
o Homepage: Restaurant listings with filters (cuisine, price, rating)
o Menu Page: Display items with “Add to Cart” option
o Checkout: Payment method selection and order confirmation
o Order Tracking: Real-time map and status updates
Restaurant UI:
o Dashboard: Active orders and notifications
o Menu Editor: Add, edit, delete items
o Reports: Graphs for sales, customer ratings
Delivery UI:
o Active Orders List: Orders assigned with locations
o Map Integration: Navigate to delivery address
o Status Update Buttons: Picked up, Out for Delivery, Delivered
4.2 Algorithm Details
1. Order Placement Algorithm
1. Customer selects restaurant and items
2. System calculates total and applies discounts/promotions
3. Customer confirms and makes payment
4. System validates payment and confirms order
5. Notify restaurant and assign delivery personnel
2. Delivery Assignment Algorithm
1. Identify nearest available delivery personnel
2. Assign order based on location, current workload, and estimated
delivery time
3. Update status in system and notify customer
3. Order Tracking Algorithm
1. Update delivery status at key stages (Picked up, In transit, Delivered)
2. Track GPS location of delivery personnel
3. Push updates to customer app in real-time
4. Reporting Algorithm
1. Aggregate orders, revenue, and ratings
2. Filter by date, restaurant, or delivery personnel
3. Generate charts and summaries for dashboard
Chapter 5: Implementation and Testing
5.1 Implementation
5.1.1 Tools Used
Frontend:
o React/[Link] – Responsive web application development.
o TailwindCSS – Modern styling.
o Framer Motion – Smooth animations and transitions.
Backend:
o [Link] Core Web API – Handles all business logic, RESTful API
endpoints, authentication, and order management.
Database:
o PostgreSQL – Relational database for storing customers, restaurants,
menu items, orders, delivery personnel, and payments.
Other Tools:
o Docker/Docker Compose – Containerization for development and
deployment.
o Postman – Testing RESTful API endpoints.
o Git/GitHub – Version control.
o Payment Gateway – Stripe or local Nepalese payment API
integration.
o Google Maps API – For delivery tracking and route optimization.
5.1.2 Implementation Details of Modules
1. Customer Module
Features: Registration/Login, Menu Browsing, Cart Management, Place
Orders, Payment, Order Tracking.
API Endpoints in [Link] Core:
o POST /api/customers/register – Create new customer account
o POST /api/customers/login – Authenticate user
o GET /api/restaurants – Fetch restaurant list
o GET /api/restaurants/{id}/menu – Fetch menu items
o POST /api/orders – Place an order
o GET /api/orders/{id}/status – Track order status
2. Restaurant Module
Features: Restaurant registration, menu management, order management,
analytics.
API Endpoints:
o POST /api/restaurants/register – Register new restaurant
o POST /api/restaurants/menu – Add new menu items
o PUT /api/orders/{id}/status – Update order status
o GET /api/reports – Generate sales and order analytics
3. Delivery Personnel Module
Features: Accept delivery assignments, update order status, track earnings.
API Endpoints:
o POST /api/delivery/register – Register delivery personnel
o GET /api/delivery/assignments – Fetch assigned orders
o PUT /api/delivery/orders/{id}/status – Update delivery status
4. Admin Module
Features: Manage users, monitor system, generate reports, handle complaints.
API Endpoints:
o GET /api/admin/users – List all users
o PUT /api/admin/users/{id}/status – Activate/Deactivate accounts
o GET /api/admin/reports – Generate system-wide reports
5. Notification & Tracking Module
Real-time notifications implemented using SignalR in [Link] Core.
Delivery tracking integrated with Google Maps API.
5.2 Testing
Unit Testing: Using xUnit for testing API endpoints in [Link] Core.
System Testing: Ensures end-to-end functionality between frontend
(React/[Link]) and backend ([Link] Core Web API).
Database Testing: PostgreSQL queries and transactions validated for
correctness and integrity.
Chapter 6: Conclusion and Future Recommendations
6.1 Conclusion
The development of the Online Food Ordering & Delivery System has
demonstrated the effectiveness of combining modern web technologies with
structured software engineering principles. By integrating [Link] Core Web API
for backend, PostgreSQL for database management, and React/[Link] for frontend,
the system provides a robust, scalable, and user-friendly platform.
Key outcomes include:
1. Efficient Order Management: Customers can easily browse menus, place
orders, and track them in real-time, while restaurants and delivery personnel
can efficiently manage their tasks.
2. Secure Transactions: Integration of secure payment gateways ensures safe
digital transactions for users, complementing cash-on-delivery options.
3. Data-Driven Insights: Restaurants can generate detailed reports and analytics
on customer preferences, order frequency, and menu performance, aiding in
business optimization.
4. Real-Time Communication: Using technologies like SignalR and Google
Maps API, the system provides real-time notifications and delivery tracking,
enhancing transparency and user satisfaction.
5. System Reliability and Scalability: The hybrid Agile + Waterfall
methodology, coupled with modular system design, ensures the system can
handle increasing users, orders, and restaurants without major issues.
Overall, the project has successfully met all functional and non-functional
requirements while providing a comprehensive blueprint for future enhancements.
6.2 Future Recommendations
While the system is fully functional, several improvements can be implemented in
future versions:
1. Mobile App Integration: Develop native Android and iOS apps to enhance
user accessibility and engagement.
2. Advanced AI Recommendations: Implement machine learning algorithms to
suggest restaurants or menu items based on customer preferences and ordering
history.
3. Route Optimization for Delivery: Integrate intelligent routing algorithms to
minimize delivery time and reduce operational costs.
4. Enhanced Promotions & Loyalty Programs: Offer targeted promotions,
discount coupons, and loyalty rewards to increase customer retention.
5. Offline Functionality: Provide limited offline capabilities for order browsing
and caching to support users in areas with intermittent internet connectivity.
By incorporating these recommendations, the system can evolve into a more
intelligent, user-centric, and highly scalable platform, positioning it as a leading
solution in Nepal’s food delivery ecosystem.