You are on page 1of 42

Dharmsinh Desai University, Nadiad

Faculty of Technology
Department of Computer Engineering

B. Tech. CE
Semester – V
Subject: (CE – 520)
Advanced Technologies

Project Title:

Food Ordering Website


By:

Name - Meet Shah


Roll No - CE124
Id - 21CEUOS086

Name - Yesha Rana


Roll No - CE115
Id - 21CEUON113

Guided by: Jignesh Sir


CERTIFICATE

This is to certify that the practical / term work carried out


in the subject of

Advance Technology

and recorded in this journal is the bonafide work of

CE124(21CEUOS086)

CE115 (21CEUON113)

Of B.Tech semester V in the branch of Computer


Engineering during

the academic year 2022-2023.

1
CONTENTS

Table of contents

1. Abstract……………………………………………………………………….. 04

2. Introduction……………………………………………………………………. 04

3. Software Requirement Specifications (SRS).............................................. 05

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

3. External Interface Requirements


3.1 User Interfaces …………………………………………………….………………… 10
3.2 Hardware Interfaces ………………………………………………………………… 10
3.3 Software Interfaces ………………………………………………………………… 10
3.4 Communications Interfaces ………………………………………..……………… 10

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

5. Other Nonfunctional Requirements


5.1 Performance Requirements ………………………………………………….… 23
5.2 Safety Requirements …………………………………………………………..… 23
5.3 Security Requirements ……………………………………………………….…. . 23
5.4 Software Quality Attributes ………………………………………………….…… 24

4. Database Design………………………………………........................................………………………… 25

5. Implementation Detail..........................................................................................................28

6. Testing....................................................................................................................................31

7. Screen-shots.........................................................................................................................33

8. Conclusion.............................................................................................................................39

9. Limitation and Future Extension....................................................................................... 40

10. Bibliography ...................................................................................................................... 41

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.

3.1.2 Document Conventions

AS per IEEE format..

1.3 Intended Audience and Reading Suggestions

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.4 Product Scope


An Online food delivery system system can automate many aspects of the buying
process, making it more efficient and convenient for customers and also for store
managers and employees who have to handle the orders.It is to the replacement of
paper-based menus using an electronic format

1.5 References
Fundamentals of Software Engineering by Rajib Mall, PHI Learning

5
2. Overall Description

2.1 Product Perspective

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.

2.2 Product Functions


Functionality of the system
The Online food ordering system interfaces with an existing payment system,
including a cash register and software accessible credit system, in order to
quickly and easily handle customer billing.

Admin :

● Add or remove restaurants.


● Keep Track of deliveries
● Keep records of data.
● Analyze data

Restaurant:

● Log in to the system


● Add restaurant page
● Add/update/delete food item to/from menu
● Update price for a given food item.
● Add additional information(description,photo etc) for a food item.
● Manage customer’s order Status(accepted/rejected/in a que/preparing/in a
way/delivered)
● Get the generated bill for any order.
● Keep track of orders.

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

2.3 User Classes and Characteristics

● Normal user :

➢ Restaurant: Invoke the functionalities such as log in/log out,


restaurant page,update order status and manage orders.

➢ Customer: Invoke the functionalities such as log in/log out,add to


cart,view cart,place order,track order.

● Super user :

➢ Admin: Invoke the functionalities such as admin login,update


tracking of order, and operations related to managing the
orders,items and customers.

2.4 Operating Environment


The system will be compatible with all popular web browsers, including Chrome,
Firefox, Safari, Edge, and Internet Explorer. The machine should have sufficient ram and
speed of internet connection.

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.

2.7 Assumptions and Dependencies

● 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

3.1 User Interfaces

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

3.3 Software Interfaces


The database connection interface is the part of the Online food delivery system
that manages the communication and interaction between the system and the underlying
database.The interface will validate and sanitize the user input before executing any
database query to prevent SQL injection attacks.for frontend is using HTML,CSS,
JavaScript and mongodb.

3.4 Communications Interfaces


This uses standard network protocols, such as HTTPS.The system will comply
with industry standards for data encryption and secure communication to ensure that
customer information and orders are protected from unauthorized access or attack.

16
4. System Features

4.1. Admin

● R.1 : admin login


Input : enter username and password
Output : redirected to admin-dashboard
Processing:validate username and password.

● R.2 : view all restaurants


Input : selects view restaurant
Output : prompted with details of all restaurant

● R.3 : view all food orders


Input : selects view order
Output : prompted with details of the orders that are currently in
progress.

● R.4 : Keep track of deliveries


Description : The administrator can select the new delivery status( like whether
delivered, still pending). Then, an update is saved in the database. The new
tracking status should then be reflected in the customer's account and any
relevant order history.

➢ R.4.1 : select update status


Input : selects update status
Output : prompted with the update tracking form

➢ R.4.2 : update order status


Input : selects the current status( Pending, delivered,out for delivery) of
output:Update is reflected on customer’s side and admin
database.

● R.5 : view all products


Input : selects products
Output : prompted with details of all products

● R.6 : Add/Remove Restaurant


Description : Admin can update the details of restaurant.Also,can add or remove
17
any restaurant.
➢ R.6.1 : select add Restaurant
Input : selects add restaurant
Output : prompted with the page

➢ R.6.2 : update restaurant information


Input : Update the changes
Output : information updated

● R.7 : Remove restaurant


Input : select remove restaurant
Output : restaurant gets removed

● R.8 : view analytics of whole system


Input : selects the view analysis
Output : prompted with analysis and graphs of system

4.2.Restaurant

● R.1: Register new restaurant


Description : If a new restaurant wants to sign into their account in the website,
they will have to first sign themselves up by giving personal details

➢ R.1.1 : select signup option


Input : selects signup option
Output : redirected to signup page

➢ R.1.2 : enter the details


Input : fill the necessary details
Output : Restaurant Id

● R.2 : login into the system


Description : Users can log in with their restaurant_id and password.

➢ R.2.1 : select login option


Input : selects login option

18
Output : redirected to login page

➢ R.2.2 : enter the login details


Input : enter restaurant_id and password
Output : redirected to home page
Processing:validate username and password.

● R.3 : Build Restaurant page


Description: Users have to enter their restaurant details(name, food product
and their price,location,contact details or any additional information(food
picture,food ingredients).User can edit their page later.

➢ R.3.1: Add Restaurant page


Input : Enter restaurant name and necessary details
Output : Restaurant page is displayed.

➢ R.3.2: Update Restaurant page


Input: Select on update option and do appropriate changes(Eg change food
Food price, remove/add any food product)
Output: Changes are updated on the page.

● R.4 : order details


Description: User can view the order and either accept or cancel it. They can
update
The order(Eg delivered,out for delivery,pending.

➢ R.4.1: View order details


Input : selects the Orders on their restaurant page.
Output : A list of the customer's orders is displayed.

➢ R.4.2: Update order


Input:selects the update order.
Output: customer’s order is displayed with their order status.

● R.6 : logout
Input : selects logout
Output : logout successful

19
4.3 Customer

● R.1: register new user


Description : If a new user wants to sign into their account in the website, they
will have to first sign themselves up by giving personal details

➢ R.1.1 : select signup option


Input : selects signup option
Output : redirected to signup page

➢ R.1.2 : enter the details


Input : fill the details(first name, last name, user name,
password, mobile no, {address} )
Output : User Id

● R.2 : login user


Description : If a user wants to login into their account on the website, they will
have to enter their username and password.

➢ R.2.1 : select login option


Input : selects login option
Output : redirected to login page

➢ R.2.2 : enter the login details


Input : enter username and password
Output : redirected to home page

● R.3 : search items


Input : enter food name or category name brand,restaurant, rating etc in
search bar .
Output : A list of food items matching the search query is
displayed to the customer if item is not available
Then prompted with “search not found”.

● R.4 : Add to the cart


Description : allows customers to select items they wish to purchase and add
them to a virtual shopping cart
Input : Customer selects the "Add to Cart" option of a food item.
Output : The selected food item is added to the customer's cart

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.6 : Modify Quantity


Input : Customer modify any food item by decreasing or increasing
quantity..option
Output :respected quantity is changed accordingly..

● R.7 : remove from the cart


Input : Customer selects the "Remove" option next to an item in
the cart.
Output : The selected item is removed from the customer's cart.

● 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.

➢ R.8.1 : customer select for checkout


Input : customer prompted to enter the email,mobile no,
Output : prompted to fill the payment details.

➢ R.8.2 : Enter Delivery Address


Input : customer prompted to enter address with street no and area and
landmark
Output :display msg”your location is confirmed.

➢ R.8.3 : make payment


Input : enter the details for payment
Output : confirm the order and show the message “payment
Successful”

● R.9 : view order details


Input : Customer selects the “Orders" on their home page.

21
Output : A list of the customer's orders is displayed,
including the status of each order, also can download the invoice.

● R.10: Cancel order


Input : Customer selects any order from order list. Then select the cancel
order option..
Output : Order is canceled from system and display message”order is
canceled” else shows error message.

● R.11: Check order history


Input : Customer selects the “Orders" on their home page.
Output : A list of the customer's orders is displayed,
including the status of each order, and see the previous
orders also..

● R.12: browse restaurant and its functionalities

➢ R.12.1 :Search Restaurant


Input : customer search restaurant by name ,rating and address..
Output :List of related restaurants displayed.

➢ R.12.2 :See Restaurant page


Input : customer select any restaurant from the list..
Output :Restaurant page displayed with its restaurant pic,contact no,menu
option,opening/closed timing and location…

➢ R.12.3 :Browse menu


Input : Customer select see menu option from restaurant page..
Output : Full menu with all dishes with their respective prices,quantity and
photo(if available) displayed..

● R.13 : contact us

Description : it allows customers to send a message to the store's customer


service team. Once a customer has completed the form and sent their message,
If a customer tries to send a message without completing all required fields, they
should be alerted and the form should not be submitted.

➢ R.13.1 : select contact us option


Input : select contact us
22
Output : prompted with the contact form

➢ R.13.2 : enter details


Input : enter name, email id, and message
Output : form submitted

● R.14 : logout
Input : selects logout
Output : logout successful

23
5. Other Nonfunctional Requirements

5.1 Performance Requirements

● Query times will take no longer than 5 seconds to any website.


● Sending the hyperlink to the default browser will take less than 1 second.
● Loading the product will take less than 10 seconds.
● Any result with 0 seeds will not be displayed.
● Sorting results should take less than 0.1 seconds.
● A results page will display 100 results.
● Any result with a rating of less than 1 will not be displayed.

5.2 Safety 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.

5.3 Security Requirements

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.

AVAILABILITY: The site is available for the users 24x7.

MAINTAINABILITY: The developers and a team of software engineers work on the


maintenance and the updates of the site.

USABILITY: The site can be used anywhere if the connectivity to the internet and a device.

25
4. DataBase Design

4.1) Use case Diagram

26
4.2) Class Diagram -

27
4.3) Data Flow Diagram-

28
5. Implementation Detail

i) Modules created and brief description of each modules.


ii) Function prototypes which implements major functionality.

​ i) User Profile Management:


● Description: Allows users to view and edit their profiles. Users
can update personal information, change passwords, and
manage delivery addresses.

User Authentication Module:

● Description: handles user Registration,Login and


authentication


​ Restaurant Management:
● Description: For restaurant owners, this module allows them
to register their restaurant, manage menu items, update
prices, and specify working hours.

​ Search and Filtering:


● Description: Enables users to search for restaurants based on
cuisine, location, rating, or specific menu items. Offers
advanced filtering options.
​ Order Tracking:
● Description: Provides real-time order tracking for users. Users

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

i) Describe the testing framework and testing method used.


List down the test cases used to test your system.

I have used selenium testing to detect the bug in my project.


All the test cases have been passed .Below is the screen shot
for it -

32
33
7. Screen-shots

i) Important screen-shots of the system

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.

Key Aspects and Achievements:


​ User-Centric Design: We've prioritized user experience, crafting an intuitive and visually
appealing interface that ensures easy navigation and enhances the ordering process
for our customers.
​ Restaurant Variety: Our application offers a wide selection of restaurants, catering to
diverse tastes and preferences. From local eateries to high-end dining, customers can
explore an extensive range of culinary choices.
​ Seamless Ordering: With a few clicks, users can browse menus, customize orders, and
securely place requests. This streamlined process is backed by a robust payment
system, ensuring a hassle-free experience.
​ Real-Time Order Tracking: Customers can track their orders in real-time, from the
moment they are placed until they arrive at their doorsteps, providing transparency and
peace of mind.
​ Seller Dashboard: Our platform empowers restaurant owners to manage their business
efficiently. Sellers can update menus, monitor orders, and gain insights into customer
preferences.

In conclusion, our MERN-based food delivery web application is a significant achievement,
bringing together customers and restaurants to redefine the food delivery experience. As we
move forward, we remain committed to innovation, continuous improvement, and, most
importantly, delivering exceptional food experiences to our users.
Thank you for being a part of this exciting journey.

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.

2) Feature Constraints:- Some advanced features and integrations were not


included in the current version due to time and resource constraints, limiting the
platform's full potential.

• Future Extension:

1) Advanced Analytics: Implementing comprehensive data analytics tools can


provide valuable insights into user behavior,food item likeability, and market
trends, facilitating informed decision-making for both restaurant owners and the
platform itself.

2) Live Tracking delivery person:- Implementation of live delivery is useful to


customers to check the current location of order..

3) Expanded Geographic Reach: :- We aim to extend our services to new


locations, making high-quality food accessible to a broader audience.

4) Enhanced Mobile experience:- We'll continue to optimize our application


for mobile devices, ensuring a smooth experience on smartphones and tablets.

​ 5) Diverse Delivery Options: Exploring partnerships with various delivery


services and introducing new delivery options such as curbside pickup and
contactless delivery Increased..

​ 6) Community Engagement: Building a community within the application
where users can share reviews, recommendations, and experiences, fostering a
sense of belonging.

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

You might also like