Food Delivery
Food Delivery
Food Delivery
Faculty of Technology
Department of Computer Engineering
B. Tech. CE
Semester – V
Subject: (CE – 520)
Advanced Technologies
Project Title:
Advance Technology
CE124(21CEUOS086)
CE115 (21CEUON113)
1
CONTENTS
Table of contents
1. Abstract……………………………………………………………………….. 04
2. Introduction……………………………………………………………………. 04
1. Introduction
1.1 Purpose ……………………………………………………………………………. 05
1.2 Document Conventions …………………………………………………………. 05
1.3 Intended Audience and Reading Suggestions……………………………… 05
1.4 Product Scope …………………………………………………………………….. 06
1.5 References ………………………………………………………………………… 06
2. Overall Description
2.1 Product Perspective ……………………………………………………………… 06
2.2 Product Functions …………………………………………………….…….…… 06
2.3 User Classes and Characteristics ………………………………………….….. 08
2.4 Operating Environment …………………………………………………………… 09
2.5 Design and Implementation Constraints ……………………………………… 09
2.7 Assumptions and Dependencies ………………………………………………. 09
2
4. System Features
4.1 Functional Requirements ……………………………………………………. 16
4.2 Admin’s Functional Requirements …………………………………………. 18
4.3 Resturant’s Functional Requirements ……………………………………. 19
4.4 User’s Functional Requirements …………………………………………. 19
4. Database Design………………………………………........................................………………………… 25
5. Implementation Detail..........................................................................................................28
6. Testing....................................................................................................................................31
7. Screen-shots.........................................................................................................................33
8. Conclusion.............................................................................................................................39
3
1. Abstract
In today's fast-paced world, consumers demand convenience and efficiency when it comes to
ordering food. This project addresses this need by providing a user-friendly platform that
allows customers to browse through a variety of restaurants, explore diverse menus and
place orders.
The system also benefits restaurant owners by offering them a platform to showcase their
menu items, manage orders, and optimize their operations.
The Online Food Ordering System addresses the growing demand for digital services in the
food industry, providing a platform that enhances the convenience, choice, and efficiency of
food ordering.
2. Introduction
The rise of online food ordering platforms has been driven by the fast-paced lifestyles of
modern society. With individuals juggling hectic work schedules, educational commitments,
and social responsibilities, the demand for convenient and efficient food services has never
been higher. Online food ordering systems bridge the gap between consumers' busy lives and
their desire for delicious, freshly prepared meals. Moreover, the COVID-19 pandemic has
further emphasized the need for contactless services, making online food ordering systems
not just a preference but a necessity for many.
In this project, we're creating a user-friendly platform that allows people to order food using
the internet. It's like having a restaurant menu at your fingertips, where you can choose,
customize your order, and get it delivered right to your door. This technology is making life
more convenient for busy people, especially in today's fast-paced world. Our project focuses
on making this process easy for both customers and restaurant owners, ensuring accurate
orders, efficient operations, and, most importantly, happy customers.
4
3. Software Requirement Specification
1.Introduction
1.1 Purpose
The Online Food Ordering System's main purpose is to maintain track of information
such as Item Category, Food, Delivery Address, Order, and Shopping Cart.
The Online Food Ordering System's main purpose is to maintain track of information
such as Item Category, Food, Delivery Address, Order, and Shopping Cart.
The primary audience of this SRS document will be the development team employed to
implement the specified Restaurant food ordering system. It will not only provide an
extensive capacity for project planning and progress assessment but it will further assist
with stakeholder interactions. The secondary document audience comprises the
stakeholders of the project, that is, restaurateurs and associated staff. To this audience
group, this SRS should convey and confirm the required functionality and represent a
contractual agreement between the involved parties.
1.5 References
Fundamentals of Software Engineering by Rajib Mall, PHI Learning
5
2. Overall Description
The software described in this SRS is the software for a complete Online food ordering
system. The system merges various hardware and software elements and further
interfaces with external systems. it relies on a number of external interfaces for
persistence and unhandled tasks, as well as physically interfacing with humans.
Admin :
Restaurant:
6
Users :
● Signup/login
● Manage profile
● Upload Address Details
● Search by address etc
● See full restaurant page
● See menu,restaurant photos of it
● Add food item in cart and modify its quantity
● Modify Cart and Place order
● Cancel order
● Make payment
● Keep track of order
● Check order history
● Normal user :
● Super user :
7
2.5 Design and Implementation Constraints
The system must be reliable enough to run crash and glitch free more or less indefinitely,
or facilitate error recovery strong enough such that glitches are never revealed to its
end-users. HTTPS should be used as it provides secure data transfer.System is
developed using node js, react,javascript.Mongodb is used The system must be reliable
enough to run crash and glitch free more or less indefinitely, or facilitate error recovery
strong enough such that glitches are never revealed to its end-users.
● Assumptions:
➢ The computer should have proper internet connection and internet server
capabilities.
➢ The user has sufficient knowledge of computers.
➢ User should know the English language ,as the interface will be provided in
english language.
● Dependencies:
○ The system depends on the availability of a reliable and secure payment
gateway for processing customer payments.
○ The system depends on the availability of a stable and secure hosting
environment to host the system and store customer data.
8
3. External Interface Requirements
1.Home Page
9
2. Login Page
3. Signup Page
10
4. Add Restaurant Page
11
12
13
14
15
3.2 Hardware Interfaces
The system is compatible with a wide range of hardware, including desktop
computers, laptops, and mobile devices. The system will be able to run on popular
operating systems such as Windows, MacOS, and Linux.
RAM: 4GB
Hard Drive Storage Needed: 2GB
Other Hardware Requirement: None
16
4. System Features
4.1. Admin
4.2.Restaurant
18
Output : redirected to login page
● R.6 : logout
Input : selects logout
Output : logout successful
19
4.3 Customer
20
● R.5 : View cart
Input : Customer selects the "View Cart”
Output : The customer's cart is displayed, showing a list of all
added items and the quantity and total cost.
● R.8 : Purchase
Description : it allows customers to complete their purchases and pay for the
items in their cart. During the purchase process, customers are able to pay from
credit card by entering their payment details and submitting their order. Once the
payment has been processed and the order confirmed, it will show a confirmation
message.
21
Output : A list of the customer's orders is displayed,
including the status of each order, also can download the invoice.
● R.13 : contact us
● R.14 : logout
Input : selects logout
Output : logout successful
23
5. Other Nonfunctional Requirements
If there is extensive damage to a wide portion of the database due to catastrophic failure, such
as a server crash, there cover method restores a past copy of the database that was backed up to
archival storage (typically tape) and reconstructs a more current state by reapplying or redoing the
operations of committed transactions from the backed-up log, up to the time of failure. And in the
meanwhile, the server switch to the backup servers to keep the site working.
Security systems need database storage just like many other applications. However, the
special requirements of the security market mean that owners must choose their database partner
carefully. All the Private data uploaded by the user is absolutely confidential to the other users. Users
can also report if they find any suspicious activity in System, so the security department can take care
of that.
We know you care about the security of your account. So do we. Whether
you received an email from us encouraging you to change your password or you've
noticed suspicious activity, here are our top recommendations for keeping your account
and personal information is safe.
● Use a password and change it periodically
● Add a phone number to your account for additional security
● Sign out of unused devices
● Be aware of possible phishing attempts
● Keep your computer safe
● Report fraudulent or suspicious activity
● Report security flaws to us
24
5.4 Software Quality Attributes
System provides the users with both simple and advanced features. Due to its well
designed and easy to use interface it can be used by both experts and typical users.
USABILITY: The site can be used anywhere if the connectivity to the internet and a device.
25
4. DataBase Design
26
4.2) Class Diagram -
27
4.3) Data Flow Diagram-
28
5. Implementation Detail
Restaurant Management:
● Description: For restaurant owners, this module allows them
to register their restaurant, manage menu items, update
prices, and specify working hours.
29
can see the status of their order, including preparation,
packaging, and delivery stages.
Order History:
● Description: Keeps a record of users' past orders. Users can
view their order history, reorder previous meals, and
rate/review past orders.
ii) Function prototype which implements major functionality.
GET /restaurants:
● This route is used to get a list of restaurants.
● It is handled by the getRestaurants function from the userController when a
GET request is made to /restaurants.
GET /restaurant/:restId:
● This route is used to get details of a specific restaurant by its ID.
● It is handled by the getRestaurant function from the userController when a
GET request is made to /restaurant/:restId.
POST /cart:
● This route is used to add an item to the user's shopping cart.
● It is protected by the auth.verifyUser middleware, ensuring that only
authenticated users can use it.
● It is handled by the postCart function from the userController when a POST
request is made to /cart.
GET /cart:
● This route is used to get the items in the user's shopping cart.
● It is protected by the auth.verifyUser middleware.
● It is handled by the getCart function from the userController when a GET
request is made to /cart.
POST /delete-cart-item:
● This route is used to delete an item from the user's shopping cart.
● It is protected by the auth.verifyUser middleware.
● It is handled by the postCartDelete function from the userController when a
POST request is made to /delete-cart-item.
POST /remove-cart-item/:itemId:
● This route is used to reduce the quantity of a specific item in the user's shopping
cart.
● It is protected by the auth.verifyUser middleware.
● It is handled by the postCartRemove function from the userController when a
POST request is made to /remove-cart-item/:itemId.
POST /user/address:
30
● This route is used to update the user's address information.
● It is protected by the auth.verifyUser middleware.
● It includes validation checks for fields such as phoneNo, street, locality,
aptName, and zip.
● It is handled by the postAddress function from the userController when a
POST request is made to /user/address.
GET /user:
● This route is used to get information about the currently logged-in user.
● It is handled by the getLoggedInUser function from the userController when a
GET request is made to /user.
POST /order:
● This route is used to place an order.
● It is protected by the auth.verifyUser middleware.
● It is handled by the postOrder function from the userController when a POST
request is made to /order.
GET /orders:
● This route is used to get a list of orders.
● It is handled by the getOrders function from the userController when a GET
request is made to /orders.
GET /analysis:
● This route is used to get analysis data related to orders.
● It is handled by the getAnalysis function from the userController when a GET
request is made to /analysis.
POST /order-status/:orderId:
● This route is used to update the status of an order.
● It is handled by the postOrderStatus function from the userController when a
POST request is made to /order-status/:orderId.
GET /clients/connected:
● This route is used to get information about connected clients.
● It is handled by the getConnectedClients function from the userController
when a GET request is made to /clients/connected.
GET /restaurants-location/:lat/:lng:
● This route is used to get a list of restaurants based on a specific location
defined by latitude and longitude.
● It is handled by the getRestaurantsByAddress function from the
userController when a GET request is made to
/restaurants-location/:lat/:lng.
These routes define various actions related to users, their shopping carts, orders, addresses,
and restaurant listings. They are protected by authentication middleware and include
validation checks where necessary.
31
6. Testing
32
33
7. Screen-shots
34
5. Online Order page
Cart Funtionality
35
6. Restaurant page
36
7. CRUD ITEMS
37
Seller Order History
38
8. Conclusion
In the rapidly evolving world of digital technology, our MERN-based food delivery
web application represents a significant step forward in providing seamless and
convenient food ordering and delivery services. As we wrap up this project, it's
essential to highlight the key aspects and achievements that make our application a
valuable addition to the food industry.
39
9. Limitation and Future Extension
• Limitations:
1) Scalability:- The platform currently supports a significant user base ,further
expansion might require adjustment to accommodate a larger volume of users
and sellers.
• Future Extension:
40
10. Bibliography
References
Rajib Maul
Help from the Internet, following website links have been used to reference this project..
https://www.thecodehelp.in/course/web-development-bootcam
google
https://app.forestadmin.com/
Best Restaurants in India - Zomato
Swiggy
distancematrix.ai
Razorpay - Best Payment Solution for Online Payments India
41