You are on page 1of 23

Bengal College of Engineering & Technology,

Durgapur

Final Year Project


On

Online Food Ordering


In
Python

SUBMITTED TO- SUBMITTED BY-

Mr. SK. Abdul Rahim Kumar Shruti - 12500117067


H.O.D Ashutosh Kumar - 12500117092
CSE Department Ashutosh Kumar - 12500117093
1 CERTIFICATE

This is to certify that the project entitled “Online Food Ordering” has been submitted to the
Department of Computer Science and Engineering, Bengal College Of Engineering and
Technology, Durgapur for the fulfillment of the requirement for the award of the degree of
Bachelor of Technology in “Computer Science and Engineering” by following student of final
year B.Tech.

Students Name With Roll number

Kumari Shruti (12500117067)

Ashutosh Kumar (12500117092)

Ashutosh Kumar (12500117093)

Mr. Biswajit Gope Mr SK. Abdul Rahim

(Project Guide) (Head Of Department)


UNDERTAKING

I hereby affirm that the originality and authenticity of the Final Year Project to be
undertaken will be upheld. The report and / or the system that I submit at the conclusion of
the Final Year Project will be the result of my own investigations and effort.

I understand that cheating and plagiarism constitute a serious violation of the university
regulations, which will not only result in a failing grade for the Final Year Project but subject
me to further disciplinary actions.

Signature of Supervisor:

___________________

Name : Biswajit Gope

Date:
ACKNOWLEDGEMENT

We like to share our sincere gratitude to all those who help us in completion of this project.
During the work we faced many challenges due to our lack of knowledge and experience but
these people help us to get over from all the difficulties and in final compilation of our idea
to a shaped sculpture. We would like to thank Mr. Biswajit Gope sir for his governance and
guidance, because of which our whole team was able to learn the minute aspects of a
project work. In the last we would like to thank the management of Bengal College Of
Engineering and Technology, Durgapur for providing us such an opportunity to learn from
these experiences. All of our team is thankful to Mr. Tapas Pal Sir, Mr SK. Abdul Rahim Sir
and all the Faculties and Staff of Department of Computer Science and Engineering, BCET for
their help and support towards this project and our team. We are also thankful to our whole
class and most of all to our parents who have inspired us to face all the challenges and win
all the hurdles in life.

Thank you All. 

Date :
Ashutosh Kumar (12500117093)

Ashutosh Kumar (12500117092)

Kumari Shruti (12500117067)

CONTENT

Serial Topic Page


No. No.

1. ABSTRACT 06

2. REVIEW OF LITERATURE O6-07

3. METHODOLOGY 07

4. SOFTWARE REQIUREMENTS 08

5. FEATURES 09

6. Steps on how to create a Online Food Ordering System 10 - 19

7. E-R DIAGRAM 20

8. RESULT 21

9. CONCLUSION 21-22
10. REFERENCES 23

ABSTRACT

Online food ordering system is a software used to ease the customer’s life. Sometimes you
don’t feel like cooking or doesn’t feel like to go to the restaurants, therefore we here
propose an Online Food Ordering System which can help the customers to get food
delivered immediately. This is mostly designed for a single restaurant having various food
items at valuable food price. It gives effective way to order your food and almost within no
time food will be delivered. Customer, he/she has login form with password in order to
secure the information details and then they can select his/her favourite food items, place
the order, also mention the quantity and finally can make the payment. When the order is
placed, it gets stored in the database of the restaurants and then the staffs go through the
orders and processes it efficiently.

REVIEW OF LITERATURE

Industries who lag behind online ordering systems will be left behind from the restaurants
who have stepped up. By implementing new technology, it not only benefits customers life
but also confirm the business to stand tall. So, here are some of the true benefits of online
ordering system:
• With busy lifestyles, most of us lean towards convenience. When the dinners can be
ordered from their favourite restaurants faster, easier and at their convenience, they incline
more towards the system because their needs are met.

• Online food ordering allows the customers to place their order virtually, anytime from
anywhere. This ultimately helps to save the time of the customers which can be consumed
certainly on travelling.

• It reduces the labour work. By ordering over an application, it can eventually reduce the
staff work because it is replaced by the machine. • While the order is being taken over
phones or in person there might be some misunderstandings and orders might not be that
accurate. But by placing it online, it can be more precise and customers have the controls,
they can customize the orders again and again and make their order crystal clear.

METHODOLOGY
The application starts by displaying the login or registration form. If the user is ordering for
first time then, he/she has to first ‘Register’ and then they can start viewing the deals. Else,
if it’s not their first time then they have to ‘Login’ with all the credentials such as filling
his/her first name, last name, phone number, Email Id, address and password. Once he/she
has successfully logged in, they will be able to see the ‘Home page’ with a dashboard of
menus, orders and food cart. He/she has to choose their favourite dishes from the menu,
then place their favourite dishes in the food cart, this food cart will help them to customize
the orders like increasing the quantity, removing the food items etc. Once he/she is done
customizing their orders, they can checkout and will be redirected to the final order page
including their personal details, their orders, total amount to be paid with appropriate
payment method. Lastly, they can just pay the amount by selecting the payment method of
their choice and simply log-out. Below shown are the ER diagrams that are used to construct
this application . This above simulation flow is with respect to customers point of view. And
the restaurant manager or staff can keep on track of the orders by viewing the database or
by the notification.
SOFTWARE REQIUREMENTS

Below mentioned are the modules we have used in our project Online food ordering
system,

HTML (Hypertext Mark-up Language) is the most basic building block of the Web. It defines
the meaning and structure of web content. Each page contains a series of connections to
other pages called hyperlinks. Every web page you see on the Internet is written using one
version of HTML code or another.

Cascading Style Sheets (CSS) is a simple mechanism for adding styles (e.g., fonts, colours,
spacing) to Web documents. CSS defines how HTML elements are to be presented on
screen, paper, or in other media. CSS saves a lot of work. It can control the layout of
multiple web pages all at once.

Python is a high-level, interpreted, interactive and object-oriented scripting


language. Python is designed to be highly readable. It uses English keywords
frequently where as other languages use punctuation, and it has fewer syntactical
constructions than other languages.

The database language used in our project,

MySQL is a relational database management system based on SQL – Structured


Query Language. The most common use for MySQL, however, is for the purpose of
a web database. Standard SQL commands such as ADD, DROP, INSERT and UPDATE
can be used in MYSQL.

Features

For Admin Side

 Dashboard – For the admin dashboard, you will be able to all the
basic access in the whole system. Such as cart items orders, items,
users and categories.
 Manage Items– The admin has access to the item management
information system. He can add, update and delete the items.
 Manage Orders – As the main functions of the admin, the admin
can reject or accept from the customers on a case to case basis.
 Manage Categories – For the categories, the admin has the
features of managing the category. The example category used in
this system is best selling foods, spicy, and new foods.
 Manage Users – The admin can manage the user’s account. Admin
can add, update and delete users in the system.
 Login and Logout – By default one of the security features of this
system is the secure login and logout system.

Frontend Side

 Home Page – On the home page, you can see directly the list of
foods for sale, login, logout, .
 Viewing Products – by default on the frontend, the customer can
automatically view all the foods, the price and description of foods.
 Checkout Order – The customer can checkout order in the
frontend that can confirmed by the admin in the backend.
 Login and Logout – The customer need to login in the system
before they can add to cart their orders and they can also logout
after they finish their order.
 Sign up – the customer need to register or sign up first before they
can login into the system.
 Add to Cart– One of the features of this system is that, wherein the
customer can temporarily add their order in the add to cart.

Steps on how to create a Online Food


Ordering System
 Create template for the home page in Online Food Ordering System

{% extends "main/layout.html" %}
{% block content %}
<div class="home bg-danger">
<div id="carouselExampleCaptions" class="carousel slide mb-5" data-ride="carousel"
style="height: 500px;">
<ol class="carousel-indicators">
<li data-target="#carouselExampleCaptions" data-slide-to="0"
class="active"></li>
<li data-target="#carouselExampleCaptions" data-slide-to="1"></li>
<li data-target="#carouselExampleCaptions" data-slide-to="2"></li>
</ol>
<div class="carousel-inner">
<div class="carousel-item active">
<img src="../media/garantisado.jpg" class="d-block w-100" alt="sushi1"
height="500px">
<div class="carousel-caption d-none d-md-block text-dark">
<h1 style="color: yellow">Evanz Foods</h1>
</div>
</div>
<div class="carousel-item">
<img src="../media/manamit.jpg" class="d-block w-100" alt="sushi2" height="500px">
</div>
<div class="carousel-item">
<img src="../media/saburuso.jpg" class="d-block w-100" alt="sushi3" height="500px">
</div>
</div>
<a class="carousel-control-prev" href="#carouselExampleCaptions" role="button" data-
slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="carousel-control-next" href="#carouselExampleCaptions" role="button" data-
slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
 
</div>
{% endfor %}
</div>
</div>
</div>
{% endblock content %}

 Create template for the sign up page

{% extends "main/layout.html" %}
{% load crispy_forms_tags %}
{% block content %}
<div class="container">
<h1>Signup</h1>
<div class="form-border">
<form class="site-form" action="{% url 'accounts:signup' %}" method="post">
{% csrf_token %}
{{ form|crispy }}
<input type="submit" value="Signup" class="btn btn-success">
</form>
</div>
</div>
{% endblock %}

 Create template for the login page

{% extends "main/layout.html" %}<br>{% load crispy_forms_tags %} <br>{% block


content %}<br>&lt;div
class="container"&gt;<br>    &lt;h1&gt;Login&lt;/h1&gt;<br>    &lt;div class="form-
border"&gt;<br>        &lt;form class="site-form" action="{% url 'accounts:login' %}"
method="post"&gt;<br>            &lt;div class="logging-form"&gt;<br>                {%
csrf_token %}<br>                {{ form|crispy }}<br>                {% if request.GET.next
%}<br>                &lt;input type="hidden" name="next"
value="{{ request.GET.next }}"&gt;<br>                {% endif %}<br>                &lt;input
type="submit" value="Login" class="btn btn-success"
/&gt;<br>            &lt;/div&gt;<br>        &lt;/form&gt;<br>    &lt;/div&gt;<br>    &lt;p&g
t;Not got an account? &lt;a href="{% url 'accounts:signup' %}" &gt;&lt;u&gt;Sign
Up&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;<br>&lt;/div&gt;<br>{% endblock %}

 Create template for the dishes page

&lt;div class="container"&gt;
&lt;h1 class="text-center text-light mb-3"&gt;Our Dishes&lt;/h1&gt;
&lt;div class="row"&gt;
{% for item in menu_items %}
&lt;div class="col-sm-4"&gt;
&lt;div class="card mb-3" style="height: fit-content; overflow: auto;"&gt;
&lt;img src="{{ item.image.url }}" style="height: 250px;"&gt;
&lt;div class="card-body text-center"&gt;
&lt;button class="btn btn-warning"&gt;By:{{ item.created_by }}&lt;/button&gt;
&lt;h5 class="text-center"&gt;&lt;a href="{% url 'main:dishes' item.slug %}"&gt;
{{ item.title }} &lt;/a&gt;&lt;span class="badge badge-{{ item.label_colour }}"&gt;
{{ item.labels }}&lt;/span&gt;&lt;/h5&gt;
&lt;p class="text-center"&gt;{{ item.description }}&lt;/p&gt;
&lt;h5 class="text-center"&gt;P{{ item.price }}&lt;/h5&gt;
&lt;a href="{% url 'main:dishes' item.slug %}" class="btn btn-success"&gt;View
Details&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
{% endfor %}
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

 Create template for the cart page

{% extends "main/layout.html" %}
{% block content %}
&lt;div class="cart"&gt;
&lt;div class="container"&gt;
&lt;div class="row"&gt;
&lt;div class="col-sm-9 mt-5"&gt;
&lt;h3 class="text-center"&gt;Your Cart&lt;/h3&gt;
{% if cart_items %}
&lt;div class="table-responsive"&gt;
&lt;table class="table table-light"&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th scope="col"&gt;Name&lt;/th&gt;
&lt;th scope="col"&gt;Description&lt;/th&gt;
&lt;th scope="col"&gt;Specification&lt;/th&gt;
&lt;th scope="col"&gt;Price&lt;/th&gt;
&lt;th scope="col"&gt;Total Pieces&lt;/th&gt;
&lt;th scope="col"&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
{% for cart in cart_items %}
&lt;tr&gt;
&lt;td&gt;{{ cart.item.title }} &lt;span class="badge badge-{{ cart.item.label_colour }}"&gt;
{{ cart.item.labels }}&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;{{ cart.item.description }}&lt;/td&gt;
&lt;td&gt;{{ cart.item.instructions }}&lt;/td&gt;
&lt;td&gt;{{ cart.item.price }}&lt;/td&gt;
&lt;td&gt;{{ cart.item.pieces }} pieces&lt;/td&gt;
&lt;td&gt;&lt;a class="btn btn-danger" href="{% url 'main:remove-from-cart' cart.id
%}"&gt;Delete&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
{% endfor %}
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
{% else %}
&lt;h4 class="text-center"&gt;Sorry, Your Cart is Empty....Please add Items!!!&lt;/h4&gt;
{% endif %}
&lt;/div&gt;
&lt;div class="col-sm-3 mt-5 mb-3"&gt;
&lt;div class="content-section"&gt;
&lt;h3 class="text-center"&gt;Order Summary&lt;/h3&gt;
&lt;ul class="list-group"&gt;
&lt;li class="list-group-item list-group-item-light text-center text-dark"&gt;Total:
{{ total }}&lt;/li&gt;
&lt;li class="list-group-item list-group-item-light text-center text-dark"&gt;Number of
Orders: {{ count }}&lt;/li&gt;
&lt;li class="list-group-item list-group-item-light text-center text-dark"&gt;Total Pieces:
{{ total_pieces }}&lt;/li&gt;
&lt;li class="list-group-item list-group-item-light text-center text-dark"&gt;&lt;a class="btn
btn-primary" href="{% url 'main:ordered' %}"&gt;Proceed To Checkout&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item list-group-item-light text-center"&gt;&lt;a class="btn btn-
success" href="/"&gt;Continue Buying&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
{% endblock content %}

 Create template for the checkout page


{% extends "main/layout.html" %}
{% block content %}
&lt;div class="cart"&gt;
&lt;div class="container"&gt;
&lt;div class="row"&gt;
&lt;div class="col-sm-12 mt-5"&gt;
&lt;h3 class="text-center"&gt;Active Orders&lt;/h3&gt;
{% if items %}
&lt;h4 class="text-center"&gt;Total Bill Amount: {{total}} for {{ count }} Orders.&lt;/h4&gt;
&lt;h6 class="text-center"&gt;Please Pay Either via ATM or Credit Card or Cash on Delivery!
&lt;/h6&gt;
&lt;div class="table-responsive"&gt;
&lt;table class="table table-light"&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th scope="col"&gt;Ordered&lt;/th&gt;
&lt;th scope="col"&gt;Name&lt;/th&gt;
&lt;th scope="col"&gt;Description&lt;/th&gt;
&lt;th scope="col"&gt;Specification&lt;/th&gt;
&lt;th scope="col"&gt;Price&lt;/th&gt;
&lt;th scope="col"&gt;Total Pieces&lt;/th&gt;
&lt;th scope="col"&gt;Order Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
{% for item_active in items %}
&lt;tr&gt;
&lt;td&gt;{{ item_active.ordered_date }}&lt;/td&gt;
&lt;td&gt;{{ item_active.item.title }} &lt;span class="badge badge-
{{ item_active.item.label_colour }}"&gt;{{ item_active.item.labels }}&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;{{ item_active.item.description }}&lt;/td&gt;
&lt;td&gt;{{ item_active.item.instructions }}&lt;/td&gt;
&lt;td&gt;{{ item_active.item.price }}&lt;/td&gt;
&lt;td&gt;{{ item_active.item.pieces }} pieces&lt;/td&gt;
&lt;td&gt;{{ item_active.status }}&lt;/td&gt;
&lt;/tr&gt;
{% endfor %}
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
{% else %}
&lt;h4 class="text-center"&gt;Sorry, you have not ordered any item yet!!!&lt;/h4&gt;
{% endif %}
&lt;/div&gt;
&lt;/div&gt;
 
&lt;div class="row"&gt;
&lt;div class="col-sm-12 mt-5"&gt;
&lt;h3 class="text-center"&gt;Past Orders&lt;/h3&gt;
{% if cart_items %}
&lt;div class="table-responsive"&gt;
&lt;table class="table table-light"&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th scope="col"&gt;Ordered&lt;/th&gt;
&lt;th scope="col"&gt;Name&lt;/th&gt;
&lt;th scope="col"&gt;Description&lt;/th&gt;
&lt;th scope="col"&gt;Specification&lt;/th&gt;
&lt;th scope="col"&gt;Price&lt;/th&gt;
&lt;th scope="col"&gt;Total Pieces&lt;/th&gt;
&lt;th scope="col"&gt;Order Status&lt;/th&gt;
&lt;th scope="col"&gt;Delivery Date&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
{% for cart in cart_items %}
&lt;tr&gt;
&lt;td&gt;{{ cart.ordered_date }}&lt;/td&gt;
&lt;td&gt;{{ cart.item.title }} &lt;span class="badge badge-{{ cart.item.label_colour }}"&gt;
{{ cart.item.labels }}&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;{{ cart.item.description }}&lt;/td&gt;
&lt;td&gt;{{ cart.item.instructions }}&lt;/td&gt;
&lt;td&gt;{{ cart.item.price }}&lt;/td&gt;
&lt;td&gt;{{ cart.item.pieces }} pieces&lt;/td&gt;
&lt;td&gt;{{ cart.status }}&lt;/td&gt;
&lt;td&gt;{{ cart.delivery_date }}&lt;/td&gt;
&lt;/tr&gt;
{% endfor %}
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
{% else %}
&lt;h4 class="text-center"&gt;Sorry, you have not ordered any item yet!!!&lt;/h4&gt;
{% endif %}
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
{% endblock content %}
E-R Diagram
RESULT

Following are the results that one can draw from this system:

i. People can successfully order the food using the proposed system.

ii. There will be a lesser requirement of staff at the back counter.

iii. The system will help in reduction of labour cost involved and also reduces the space
required to set up cafeterias in the restricted area.

iv. As it is an automated system it is less probable to make any mistakes.

v. The customers can avoid the long queues at the counter, with a reasonable speed of
execution and maximum throughput.

CONCLUSION
An online food ordering system is developed where the customers can make an order for
the food and avoid the hassles of waiting for the order to be taken by the waiter. Using the
application, the end users register online, read the E-menu card and select the food from
the e-menu card to order food online. Once the customer selects the required food item the
chef will be able to see the results on the screen and start processing the food. This
application nullifies the need of a waiter or reduces the workload of the waiter. The
advantage is that in a crowded restaurant there will be chances that the waiters are
overloaded with orders and they are unable to meet the requirements of the customer in a
satisfactory manner. Therefore by using this application, the users can directly place the
order for food to the chef online. In conclusion an online food ordering system is proposed
which is useful in small family run restaurants as well as in places like college cafeteria, etc.
This project can later be expanded on a larger scale. It is developed for restaurants to
simplify their routine managerial and operational task and to improve the dining experience
of the clients. This also helps the restaurant owners develop healthy customer relationships
by providing reasonably good services. The system also enables the restaurant to know the
items available in real time and make changes to their food and beverage inventory based
on the orders placed and the orders completed.

REFERENCES

I. M. Omogbhemhe, O. S. Awe, and T. S. Babatope, “Towards the digitalization of Restaurant


Business Process for Food Ordering in Nigeria Private University: The Design Perspective. A
Study of Samuel Adegboyega University Edo State Nigeria,” Int. J. Sci. Res. Publ., vol. 8, no.
5, pp. 46–54, 2018.

2. O. I. Mike and A. Simon, “Towards the Digitalization of Hotel Business in Nigeria: The
Design Perspective,” vol. 8, no. 2, pp. 1175–1178, 2017.

3. Python code [online] available at www.w3schools.com


4. MySQL code [online] available at www.stackoverflow.com

You might also like