null
null
PROJECT REPORT
Submitted by
AKHIL S
(Reg.No:2022K0016)
Assistant Professor
Tirupur-641602
APRIL- 2023
CHIKKANNA GOVERNMENT ARTS COLLEGE
Tirupur-641602
AKHIL S
(Reg.No:2022K0016)
AKHIL S (2022K0016) hereby declares that the project entitled ONLINE FOOD
ORDERING SYSTEM submitted to Bharathiar University in partial fulfilment of the
requirements for the award of the degree of Bachelor of Science in Computer Science. The
project is a record of original software development carried the by me during the period
(2020-2023) of study in CHIKKANNA GOVERNMENT ARTS COLLEGE under the
guidance of Dr. V.S. MEENAKSHI MCA.,M.Phil., Ph.D, Assistant Professor,
Department of Computer Science and that this work has not been submitted to any other
university for any other degree.
Date:
ACKNOWLEDEMENT
I obliged to our great almighty god for showering all his precious blessing upon me as
the psalmist who says unless the lord builds the house Its builders labour in vain I felt his
help and sustaining proper sufficient in every step.
I thank Dr. R.SHANKAR MCA., M.Phil.,Ph.D, Assistant Professor and Head of the
Department of Computer Science CHIKKANNA GOVERNMENT ARTS COLLEGE,
Tirupur for the guidance and valuable suggestion during the course of my study.
I would also like to thank all the staff members and other authorities who helped and
supported me throughout my course of study. Above all, I would like to thank my Beloved
Parents and Friends who have encouraged and supported me during the course of my project
work. I dedicate this project to them.
CONTENTS
Chapter Description Page
Number
SYNOPSIS 1
1 INTRODUCTION 2
2
1.1 ABOUT THE PROJECT
3
1.2 SYSTEM SPECIFICATION
2 SYSTEM STUDY 10
10
2.1.1 DRAWBACKS
10
2.2 PROPOSED SYSTEM
11
2.2.1 FEATURES
3 12
SYSTEM DESIGN AND DEVELOPMENT
12
3.1 FILE DESIGN
12
3.2 INPUT DESIGN
14
3.4 DATABASE DESIGN
17
3.5 SYSTEM DEVELOPMENT
17
3.5.1 DESCRIPTION OF MODULES
4 19
SYSTEM TESTING AND IMPLEMENTATION
5 21
CONCLUSION
22
BIBLIOGRAPHY
23
APPENDICES
23
A. DATA FLOW DIAGRAM
26
B. TABLE STRUCTURE
29
C.SAMPLE CODING
34
D. SAMPLE INPUT
37
E.SAMPLE OUTPUT
SYNOPSIS
The "Online Food Ordering System" has been developed to override the
problems prevailing in the practicing manual system. This software is supported to eliminate
and , in some cases, reduce the hardships faced by this existing system. Moreover, this
system is designed for the particular need of the company to carry out operations in a smooth
and effective manner
No formal knowledge is needed for the user to use this system. Thus, by this all it
proves it is user-friendly .Online Food Ordering System, as described above, can lead
to error free, secure ,reliable and fast management system. It can assist the user to
concentrate on theirother activities rather to concentrate on the record keeping.
Thus, it will help organization in better utilization of resources. This is designed to
assist in strategic planning and will help you ensure that yourorganization is equipped
with the right level of information and details for your futuregoals. Also, for those busy
executives who are always on the go, our systems comewith remote access features, which
will allow you to manage your workforce anytime, at all times. These systems will
ultimately allow you to better manage resources
. The project is developed using HTML & CSS as front end development tool and
MYSQL LITE 3 as backend database.
1
1.INTRODUCTION
Online food ordering is the process of ordering food from a website. The product can
either be food that has been specially prepared for direct consumption (such as vegetables
straight from a farm or garden, frozen meats, etc.) or food that has not been (such as
direct from a certified home kitchen, restaurant). The effort to create an online food
ordering system aims to replace the manual method of taking orders with a digital one.
The ability to rapidly and correctly create order summary reports whenever necessary is a
key factor in the development of this project.
The potential of an online food ordering system is enormous. A restaurant can use this
project to keep track of customer orders. This project is simple, quick, and precise. There
is less disk space needed. SQLite3 Server is used as the backbone by the online food
ordering system, eliminating the risk of data loss and ensuring data security.
The system may well be implemented in any organization that distributes foodstuff.
Because the whole process of accepting orders is automated, the meal ordering
experience for both the client and the restaurant is optimized. Online food realtime
ordering management system's objective is to give customers a way to order food and
drinks over the internet. The primary reason for all of this is because it is beneficial to
both the client and vendor.
2
1.2. SYSTEM SPECIFICATION
RAM : 4 GB
Hard Disk : 1 TB
Language : Python
IDE : SQLite3
3
FRONT END DETAILS : [ HTML & CSS ]
HTML
Web browsers receive HTML documents from a web server or from local storage
and render the documents into multimedia web pages. HTML describes the structure
of a web page semantically and originally included cues for its appearance.
HTML elements are the building blocks of HTML pages. With HTML
constructs, images and other objects such as interactive forms may be embedded into
the rendered page.
Default characteristics for every item of HTML markup are defined in the browser,
and these characteristics can be altered or enhanced by the web page designer's
additional use of CSS
HTML elements are delineated by tags, written using angle brackets Tags such
as <img /> and <input /> directly introduce content into the page. Other tags such
as <p> and </p> surround and provide information about document text and may
include sub-element tags. Browsers do not display the HTML tags but use them to
interpret the content
The first publicly available description of HTML was a document called "HTML
Tags", first mentioned on the Internet by Tim Berners-Lee in late 1991. It describes
4
18 elements comprising the initial, relatively simple design of HTML. Except for the
hyperlink tag, these were strongly influenced by SGMLguid, an in-house Standard
Generalized Markup Language (SGML)-based documentation format at CERN.
Eleven of these elements still exist in HTML 4.
HTML versions:
CSS
Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of
a document written in a markup language such as HTML or XML (including XML dialects
such as SVG, MathML or XHTML). CSS is a cornerstone technology of the World Wide
Web, alongside HTML and JavaScript
CSS is designed to enable the separation of content and presentation, including layout,
colors, and fonts. This separation can improve content accessibility; provide more flexibility
and control in the specification of presentation characteristics; enable multiple web pages to
share formatting by specifying the relevant CSS in a separate .css file, which reduces
complexity and repetition in the structural content; and enable the .css file to be cached to
improve the page load speed between the pages that share the file and its formatting.
Separation of formatting and content also makes it feasible to present the same markup
page in different styles for different rendering methods, such as on-screen, in print, by voice
(via speech-based browser or screen reader), and on Braille-based tactile devices. CSS also
has rules for alternate formatting if the content is accessed on a mobile device.
5
The CSS specifications are maintained by the World Wide Web Consortium (W3C).CSS
has a simple syntax and uses a number of English keywords to specify the names of various
style properties.A style sheet consists of a list of rules. Each rule or rule-set consists of one or
more selectors, and a declaration block.
CSS was first proposed by Håkon Wium Lie on 10 October 1994. At the time, Lie was
working with Tim Berners-Lee at CERN. Several other style sheet languages for the web
were proposed around the same time, and discussions on public mailing lists and inside
World Wide Web Consortium resulted in the first W3C CSS Recommendation (CSS1) being
released in 1996. In particular, a proposal by Bert Bos was influential; he became co-author
of CSS1, and is regarded as co-creator of CSS
Variations
CSS has various levels and profiles. Each level of CSS builds upon the last, typically
adding new features and typically denoted as CSS 1, CSS 2, CSS 3, and CSS 4. Profiles are
typically a subset of one or more levels of CSS built for a particular device or user interface.
6
BACK END DETAILS : [ SQLite ]
Many programming languages have bindings to the SQLite library. It generally follows
PostgreSQL syntax, but does not enforce type checking by default. This means that one can,
for example, insert a string into a column defined as an integer.
History
D. Richard Hipp designed SQLite in the spring of 2000 while working for General Dynamics
on contract with the United States Navy. Hipp was designing software used for a damage-
control system aboard guided-missile destroyers, which originally used HP-UX with an IBM
Informix database back-end. SQLite began as a Tcl extension
In August 2000, version 1.0 of SQLite was released, with storage based on gdbm (GNU
Database Manager). In September 2001, SQLite 2.0 replaced gdbm with a custom B-tree
implementation, adding transaction capability. In June 2004, SQLite 3.0 added
internationalization, manifest typing, and other major improvements, partially funded by
America Online. In 2011, Hipp announced his plans to add a NoSQL interface to SQLite, as
well as announcing UnQL, a functional superset of SQL designed for document-oriented
databases. In 2018, SQLite adopted a Code of Conduct based on the Rule of Saint Benedict
which caused some controversy and was later renamed as a Code of Ethics.
SQLite is one of four formats recommended for long-term storage of datasets approved for
use by the Library of Congress
7
Design
SQLite was designed to allow the program to be operated without installing a database
management system or requiring a database administrator. Unlike client–server database
management systems, the SQLite engine has no standalone processes with which the
application program communicates. Instead, a linker integrates the SQLite library —
statically or dynamically — into an application program which uses SQLite's functionality
through simple function calls, reducing latency in database operations; for simple queries
with little concurrency, SQLite performance profits from avoiding the overhead of inter-
process communication.
Before we proceed to explain MySQL database system, let's revise few definitions related to
database.
8
Web browsers
The browsers Google Chrome, Opera, Safari and the Android Browser all allow for storing
information in, and retrieving it from, a SQLite database within the browser, using the Web SQL
Database technology, although this is rapidly becoming deprecated (namely superseded by
IndexedDB). Internally, these Chromium based browsers use SQLite databases for storing
configuration data like site visit history, cookies, download history etc
Symfony
Laravel
Bugzilla
Drupal
Trac
web2py
Jam.py
9
2.SYSTEM STUDY
2.1 EXISTING SYSTEM
The Existing system in the food ordering is manual system. Each and every action is
done manually using papers. It takes is more time and some mistakes are possible for each
actions. The maintenance is also difficult for the existing system. In the above requirements
are performed by the manual is very slowly.
As the customer details are manually maintained, it takes huge time to search for
existing data for delivered food iteams for repeated customers . Manual maintenance of
details may lead to confusion.
To overcome the drawbacks of the existing system (i.e) manual system, the Food
Ordering is computerized. The proposed system is designed to give a good interface to the
user and restaurant. The basic objective is to automate the activities like new customer
registration, new order and order delivery and payment data collection.The proposed online
food ordering system will eliminate all these manual interventions and increase the speed of
the whole process. The system will allow customers to register online and successfully
submit their orders and payment through cash on delivery credit card ,debit card ,UPI and net
banking.
10
The system has inbuilt validation system to validate the entered data. The customer
can login to the system to check on the status of the delivery. The system will show the all
kinds of available foods and details about already delivered food for clients . The system also
provides information about the cost of each food . This data will be stored in the database for
further reference or audit. Proposed system ensures that very fewer efforts will be required to
take a new food order. Proposed system has the capability to express the information in a
better and more meaningfull.
11
3. SYSTEM DESIGN AND DEVELOPMENT
Menus and Files are created for displaying the information about foods and price and
its database oriented. This system contains the menus for various kinds of operations.
The system analyst is responsible for designing files, determining their contents and
selecting a method for organizing the data. This system also contains the command buttons as
part of the user interface. Data are accumulated into files that are proposed or maintained by
the system.
This system contains the menus for various kinds of operations. Menus and Files are created
for displaying the information about Remote monitoring System. This system also contains
the command buttons as part of the user interface.
File design process is to design the various inputs needed into a machine-oriented
format. The main objective is to create an input layout that is easy to follow and to avoid
operator errors. In the system design phase, the expanded data flow diagram identifies logical
data flows, data stores, sources and destination. A system flowchart specifies the flow of the
program. Input data are collected and organized into groups of similar data. Once identified,
appropriate input media are selected for processing.
Needless to say, therefore, that the input data is the life blood of a system and have to
be analyzed and designed with at most case and consideration.
12
To ensure that input is understand by the user.
System analysis decide the following input design details like, what data to input, what
medium to use, how the data should be arranged or coded, data items and transaction needing
validations to detect errors and at last the dialogue to guide user in providing input.
Input data of a system may not be necessarily is raw data captured in the system from
scratch. These can also be the output of another system or subsystem. The design of input
covers all phases of input from the creation of initial data to actual entering the data to the
system for processing. The design of input involves identifying the data needed, specifying
the characteristics of each data item, capturing & preparing data for computer processing and
ensuring correctness of data.
1. Login Details
2. Customer Details.
3. Food Details
4. Price Details
5. Order Details
6. Delivery Details
The objective of a system finds its shape in terms of the output. The analysis of the
objective of a system leads to determination of output. Output of a system can face various
forms. The most common are report, screen display, printed forms, graphical drawing etc.,
the output also vary in terms of their contents frequency, timing & format. The users of the
output from a system are the justification for its existence. If the outputs are inadequate in
any way, the system is the itself is adequate. The basic requirement of output are that it
should be accurate, timely and appropriate, in terms of content, medium and layout for its
intended purpose.
13
The output design contains the following reports
1) Customer report
2) Order report
i) Daily report
3) Delivery report
i) Daily report
Data base is designed to manage large bodies of information. The management of data
involves both the definitions of structures for the storage of information. In addition the data
base system must provide for the safety of the information solved, despite system crashes or
due to attempts at unauthorized access. For developing an efficient database we have to fulfil
certain conditions such as controlled redundancy.
14
a) Ease of use
c) Control of redundancy
d) Control of security
g) System performance
h) System functions
i) System compatibility
For achieving the abovementioned criteria’s we have to make use of various features
that are available with then SQLite by enforcing integrity constrains, we can ensure data
integrity and reduce data inconsistency to a great extend.
Data Normalisation
Normalization is the term obtained from the Latin word “NORMA” which means that
square used by the carpenter. Normalization is the process of simplifying the relationship
between data elements in a record. Through normalization a collection of data in a record
structure is replaced by successive record structures that are simpler and can be managed
efficiently. While designing the data base, we have to implement the concept of
normalization to avoid redundancy in database. Normalization is being carried out for
four reasons;
To structure the data so that any pertinent relationship between entities can be
represented.
15
The major normalization strategies are:
First Normal Form is achieved when all repeating groups in a record are removed, so
that record is of fixed length. A repeating group, reoccurrence of a data item or group of
data item within a record indicates another relation.
It is achieved when a record is in first normal form and each item in the record is
functionally dependency. A data item is functionally dependent of its value is uniquely
associated with a specific item. To achieve second normal form every column in a table
that is not dependent on the primary key of the record should be removed and used to
form a separate relation.
Third Normal Form is achieved when all transitive dependencies are removed from a
record. That is, if A is functionally dependent on B and B is functionally dependent on C,
then A is functionally dependent on C.
BCNF is often used to distinguish the new 3NF from the old. An attribute possible
composite is called as ‘determinant’, if other attributes are fully functionally determined
this attribute(or on which some other attribute is fully functionally dependent on this
attribute).
16
A table in BCNF, if every determinant is a candidate key. To achieve a table in
BCNF, remove fields which are fully functionally dependent on a determinant, which
does not act as a candidate key.
The process of software development services in India goes through a series of stages in step
wise fashion that almost every developing company follows.
Known as the ‘software development life cycle,’ these six steps include planning, analysis,
design, development & implementation, testing & deployment and maintenance. Let’s study
each of these steps to know how the perfect software is developed. The actual task of
developing the software starts here with data recording going on in the background. Once the
software is developed, the stage of implementation comes in where the product goes through a
In this project Online Food Ordering System has three modules. They are
Customer Registration, Login, Wishlist, Cart, Order, Payment , Delivery
1 Registration
2 Login
3 Wishlist
4 Cart
5 Order
6 Payment
7 Delivery
Registration
The registration module of food ordering system is an important part of the system
because it is responsible for creating and maintaining the customer and restaurant
17
management accounts. This module is also responsible for verifying the information and
ensuring that it is eligible to use the system.
Login
A customer will get the username and password after the registration process.Using this
username and password the customer can log in to the website where the food is ordered.
Wishlist
Cart
By using this module we can add as many items to the cart after adding all the dishes we
want, and then order in a single stroke.
Order
After choosing the food we can order it by using BuyNow option .we can make order for
existing address or new one.
Payment
A payment module is a group of payment features and settings, often made available by third
parties. For example, Authorize.Net, Chase Paymentech, and RazorPay are examples of
payment modules. In this project we used RazorPay payment module. Buy using this
RazorPay module we can pay the payment through UPI Id, Net Banking, Debit card ,Credit
card or we can pay the payment at the doorstep of delivery.
Delivery
After the order we can track delivery of our ordered products(order status) such as On The
Way, Packed , Delivered , Cancel.
18
4 .SYSTEM TESTING AND IMPLEMENTATION
SYSTEM TESTING
Unit Testing: -
Unit testing focuses verification effort on the smallest unit of software design. Using
the procedural design description as a guide, important control paths are tested to uncover
errors within the boundary of the module.
In the Registration form, the user should enter all the details required.
If anyone of them is neglected then an exception will be generated.
during the test, the user should answer at least one question. Otherwise
an exception will be generated. The selected answer can be wrong.
Integration Testing:-
In this testing all the tested modules are combined into subsystem and then tested.
The effective testing tests the reliability of the system. The system was tested with both real
and simulated data and outputs are generated that satisfies the user.
19
IMPLEMENTATION
The system implementation phase consists of testing the developed software with
sample data and Correction of any errors if identified. It is also used to creating the fields of
the system with sample data and making necessary changes to the system to find out errors
and training of user personnel.
Implementation is the stage of the project when the theoretical design is turned out
into a working system. Thus, it can be considered to be the most critical stage in achieving a
successful new system and in giving the user, confidence that the new system will work and
be effective.
20
5. CONCLUSION
Finally, the Online food Ordering System software is created successfully. Handling large
volumes of data manually demands lot of strains. The time consumption will also be greater
because of the processing of large volumes data. Subsequently, the manual handling of large
volume data will lead to great charges of error.
With online food ordering system, a restaurant menu online can be set up and the customers
can easily place order. Also with a food menu online, tracking the orders is done easily, it
maintain customer’s database and improve the food delivery service. The restaurants can
even customize online restaurant menu and upload images easily. Having a restaurant
menu on internet, potential customers can easily access it and place order at their
convenience. Thus, an automated food ordering system is presented with features of
feedback and wireless communication. The proposed system would attract customers and
adds to the efficiency of maintaining the restaurant ordering and billing sections.
21
6. BIBLIOGRAPHY
Django for API’s:Build web APIs with python &Django development”, Author:
William S. Vincet
Two Scoops of Django1.11: Author: Daniel Ray GreenField
Django for Professional, Author: William S. Vincet
Django 2 by Example, Author :Antonio Mele
Django Design Patterns and Best Practices, Author :Arun Ravindran
Django Unleashed, Author :SAMS
Beginnig django E-Commerce, Author :Jim McGaw
Lightweigt Django 1st Edition, Author :Julia Elman & Mark Lavin
Practical Django 2 and Channels 2, Author :Federico Marani
WEBSITES REFERRED
http:\\www.w3schools.com
http:\\www.learnpython.org
http:\\www.coursera.org
http:\\www.codecademy.com
http:\\www.developers.google.com
http:\\www.code.org
http:\\www.codeacademy.com
22
7. APPENDICES
Category
Management
Order
Food
Management Management
Management
OnlineFood
Ordering
system
System User
Customer
Management
Management
Login
Management
23
First Level DFD –Online Food Ordering System
Food Generate
Management Food Report
Order Generate
Management Order Report
Online Food
Delivery Ordering Generate
Management system Delivery Report
24
Check
Login to
Admin Roles of Manage Food
System
Access Details
Manage Category
Forgot Details
Password
Manage Order
Manage
Check Details
Modules
Credentials
Manage Customer
25
Details
Send
Email to
the user Manage Payment
Details
Manage Delivery
Details
Manage
Manage Roles of Manage user
System admins user Permission
Manage report
Table Description: This table is used to contain all the details of the food.
State
VARCHAR2 20 Name of the state
26
District
20 Name of the District
VARCHAR2(20)
Pincode
INTEGER 6 Pincode of the city
Table Description: This table is used to contain all details of the Order
27
Table Name: Wishlist
Primary key: Name
Table Description: This table is used to contain all details of the Wishlist.
Table Description: This table is used to contain all details of the payment.
28
C.SAMPLE CODING
{% extends 'ss/base.html' %}
{% load static %}
{% block main-content %}
<div class="container">
<h3>Customer Registration</h3>
<hr>
{% csrf_token %}
{% for fm in form %}
<br>
{% endfor %}
<br>
</div>
29
{% if form.non_field_errors %}
{% endfor %}
{% endif %}
{% if messages %}
{{msg}}
</div>
{% endfor %}
{% endif %}
</form>
</div>
</div>
</div>
{% endblock main-content %}
{% extends 'ss/base.html' %}
{% load static %}
{% block main-content %}
<div class="container">
30
<h3>Login</h3>
<hr>
{% csrf_token %}
{% for fm in form %}
<br>
{% endfor %}
<br>
</div>
{% if form.non_field_errors %}
{% endfor %}
{% endif %}
</form>
</div>
</div>
</div>
31
{% endblock main-content %}
{% load static %}
{% block main-content %}
<div class="container">
</div>
<h5>Rs.{{product.discounted_price}}/-</h5>
fs-5"><del>Rs. {{product.selling_price}}/-</small></del>
<br><br><h4> About</h4>
<li>{{product.description}}</li>
<li>{{product.composition}}</li>
<li>{{product.prodapp}}</li>
</ul>
32
<button type="submit" class="btn btn-primary shadow
px-5 py-2 ">Add to cart</button>
</form>
{% if wishlist %}
{% else %}
{% endif %}
</div>
</div>
</div>
{% endblock main-content %}
33
D.SAMPLE INPUT
34
35
36
E. SAMPLE OUTPUT
37