Sunita Project File
Sunita Project File
Project Report
On
Online Food
Ordering System
The under signed hereby declare the project report untilled “A project report on
The online food ordering System” Submitted by me to the University is the
Partial fulfilment for the award of degree of BCA (Bachelor of Computer
Application) under the guidance of “Mr. Vishal Kumar” is an independent work
carried out by me during my summer training.
My debts are many and I acknowledge them with much pride and delight. This
project report was undertaken for the fulfilment of BCA program pursing at
Roorkee Bishamber Sahai Group of Institutes and I would like to thanks my
institute which has provide me the opportunity for doing this project work.
In fact, it is very difficult to acknowledge all the name and nature of help and
encouragement provide by them I would never forget the help and support
extended directly and indirectly to me by all.
Date:
CERTIFICATE
This is certified that Sunita Rana has satisfactory complete the project work
entitled “A project report on Online food ordering System” is based on the
declaration made by the candidate and me association as a guide for carrying out
this project work. I recommended for this project for evaluation as a part of the
BCA program Bishamber Sahai Group of Institutes.
Place:…………..
Date: Prof.:
Table of Contents
Chapter 1. Introduction 6
Chapter 7. Screenshot 33
Chapter 8. Coding 37
INTRODUCTION
Contents:
Introduction
Problem Definition
Aim
Objective
Goal
Need of System
As a restaurant owner or manager, you need to do whatever you can to strengthen the bottom
line. A higher volume of orders means you are making more money, so it stands to reason you
would want to do whatever is necessary to make that happen. An online ordering system
gives you a platform from which to boost sales
Online ordering system that I am proposing here, greatly simplifies the ordering process for
both the customer and the restaurant. System presents an interactive and up-to-date menu
with all available options in an easy-to-use manner. Customer can choose one or more items
to place an order. Customer can view all the order details in the cart. At the end, customer
gets order confirmation details. Once the order is placed it is entered in the database and
retrieved in pretty much real time. This allows Restaurant Employees to quickly go through
the orders as they are received and process all orders efficiently and effectively with minimal
delays and confusion
Aim:
Our proposed system is an online food ordering system that enables ease for the customers.
Our proposed system is a medium to order online food free from restaurants. This system
improves the method of taking the order from customer. The online food ordering system sets
up of food item online and customers can easily place the order as per their wish. This
system also provides a send message system in which user can send message for any inquiry
or suggestion and the hotel staff will be informed for the improvements along with the
quality.
Objective:
Goal:
The project is basically targeted at those people who would like online shopping and have
an Internet access. Finally, buyers curious in comparing the prices for various products for
according our budget.
To make a database that is consistent, reliable and secure.
Problem
This Case study looks at the problem of setting up a food restaurant. In existing system there
are few
problems:
• For placing any orders customers have to visit hotels or restaurants to know about food
items and then place order and pay. In this method time and manual work is required.
• While placing an order over the phone, customer lacks the physical copy of the menu
item, lack of visual confirmation that the order was placed correctly.
• Every restaurant needs certain employees to take the order over phone or in-person. In
today’s market, labour rates are increasing day by day making it difficult to find employees
when needed.
Hence, to solve this issue, what I propose is an “Online Food Order System, originally
designed for small scale business.
Benefits are:
1. This will minimize the number of employees at the back of the counter.
3. The system will be less probable to make mistake, since it’s a machine.
4. This will avoid long queues at the counter due to the speed of execution and number of
There is always a need of a system that will perform to ordering of foods online.
This system will reduce the manual operation required to maintain all the records of
booking, information. And also generates the various reports for analysis. Main concept of
the project is to enter transaction reports and to maintain customer records. Hence this
software can be used in any restaurant to maintain their record easily
Chapter 2
Contents:
Introduction
System environment
Software requirement
Hardware requirements
Introduction:
In this chapter we mentioned the software and hardware requirements, which are
necessary for successfully running this system. The major element in building systems is
selecting compatible hardware and software. The system analyst has to determine what
software package is best for the "Online Food ordering System" and, where software is
not an issue, the kind of hardware and peripherals needed for the final conversion.
System Environment:
After analysis, some resources are required to convert the abstract system into the real one.
All the resources, which accomplish a robust the hardware and software selection begins with
requirement analysis, followed by a request for proposal and vendor evaluation.
Software and real system, are identified. According to the provided functional specification
all the technologies and its capacities are identified. Basic functions and procedures and
methodologies are prepared to implement. Some of the Basic requirements such as
hardware and software are described as follows: -
Software Requirements:
Database : MySQL
SYSTEM ANALYSIS
Contents:
Purpose:
To manage the online food ordering. It helps to customer to order foods from anywhere.
Project Scope:
The project has a wide scope, as it is not intended to a particular organization. This project
is going to develop generic software, which can be applied by any business’s organization.
Moreover, it provides facility to its customer. Also, the software is going to provide a huge
amount of summary data.
Proposed System:
The Online Food Ordering system is available in the market that can serve customers to order
foods online.
System Overview:
Login: ADMIN or USER. The ADMIN has all the rights in the
software including updating the status of his site. The other fields
in login are username and password. If the username and password
are correct then it is directed to next page.
New user: This module is for the users who do not have their
account. Here user is allowed to registration an account to
login. The filling the registration form with user details such
as name, phone, email etc.
IMPLEMENTATION ISSUES
1 HTML:
Hypertext Markup Language (HTML) is the standard markup language for documents
designed to be displayed in a web browser. It can be assisted by technologies such as
Cascading Style Sheets (CSS) and scripting languages such as JavaScript. 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 the appearance of the document.
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. HTML
provides a means to create structured documents by denoting structural semantics for text
such as headings, paragraphs, lists, links, quotes and other items. 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> surround and provide information
about document text and may include other tags as sub-elements. Browsers do not display
the HTML tags, but use them to interpret the content of the page.
HTML can embed programs written in a scripting language such as JavaScript, which affects
the behaviour and content of web pages. Inclusion of CSS defines the look and layout of
content. The World Wide Web Consortium (W3C), former maintainer of the HTML and
current maintainer of the CSS standards, has encouraged the use of CSS over explicit
presentational HTML since 1997.
2- CSS: (Cascading Style Sheets) Create attractive Layout
Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation
of a document written in a markup language like HTML.CSS is a cornerstone technology of
the World Wide Web, alongside HTML and JavaScript.CSS is designed to enable the
separation of presentation and content, 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, and reduce complexity and repetition in the structural
content.
CSS information can be provided from various sources. These sources can be the web
browser, the user and the author. The information from the author can be further classified
into inline, media type, importance, selector specificity, rule order, inheritance and property
definition. CSS style information can be in a separate document or it can be embedded into
an HTML document. Multiple style sheets can be imported. Different styles can be applied
depending on the output device being used; for example, the screen version can be quite
different from the printed version, so that authors can tailor the presentation appropriately for
each medium. The style sheet with the highest priority controls the content display.
Declarations not set in the highest priority source are passed on to a source of lower priority,
such as the user agent style. The process is called cascading.
One of the goals of CSS is to allow users greater control over presentation. Someone who
finds red italic headings difficult to read may apply a different style sheet. Depending on the
browser and the web site, a user may choose from various style sheets provided by the
designers, or may remove all added styles and view the site using the browser's default
styling, or may override just the red italic heading style without altering other attributes.
3 Bootstrap:
Bootstrap is a free and open-source CSS framework directed at responsive, mobile-first
front- end web development. It contains CSS- and (optionally) JavaScript-based design
templates for typography, forms, buttons, navigation, and other interface components.
Bootstrap is among the most starred projects on GitHub, with more than 142,000 stars,
behind free Code Camp (almost 312,000 stars) and marginally behind Vue.js framework.
Bootstrap is a HTML, CSS & JS Library that focuses on simplifying the development of
informative web pages (as opposed to web apps). The primary purpose of adding it to a web
project is to apply Bootstrap's choices of color, size, font and layout to that project. As such,
the primary factor is whether the developers in charge find those choices to their liking. Once
added to a project, Bootstrap provides basic style definitions for all HTML elements. The
result is a uniform appearance for prose, tables and form elements across web browsers. In
addition, developers can take advantage of CSS classes defined in Bootstrap to further
customize the appearance of their contents. For example, Bootstrap has provisioned for light-
and dark-colored tables, page headings, more prominent pull quotes, and text with a
highlight.
Initially only implemented client-side in web browsers, JavaScript engines are now
embedded in many other types of host software, including server-side in web servers and
databases, and in non-web programs such as word processors and PDF software, and in
runtime environments that make JavaScript available for writing mobile and desktop
applications, including desktop widgets.
The terms Vanilla JavaScript and Vanilla JS refer to JavaScript not extended by any
frameworks or additional libraries. Scripts written in Vanilla JS are plain JavaScript code.
Google’s Chrome extensions, Opera's extensions, Apple's Safari 5 extensions, Apple's
Dashboard Widgets, Microsoft's Gadgets, Yahoo! Widgets, Google Desktop Gadgets, and
Serence Klipfolio are implemented using JavaScript.
The term PHP is an acronym for PHP: Hypertext Preprocessor. PHP is a server-side scripting
language designed specifically for web development. PHP can be easily embedded in HTML
files and HTML codes can also be written in a PHP file. The thing that differentiates PHP
with client-side language like HTML is, PHP codes are executed on the server whereas
HTML codes are directly rendered on the browser.
PHP: Hypertext Preprocessor (or simply PHP) is a general-purpose programming language
originally designed for web development. It was originally created by Rasmus Lerdorf in
1994.PHP code may be executed with a command line interface (CLI), embedded into
HTML code, or used in combination with various web template systems, web content
management systems, and web frameworks. PHP code is usually processed by a PHP
interpreter implemented as a module in a web server or as a Common Gateway Interface
(CGI) executable. The web server outputs the results of the interpreted and executed PHP
code, which may be any type of data, such as generated HTML code or binary image data.
PHP can be used for many programming tasks outside of the web context, such as standalone
graphical applications and robotic drone control.
2- MySQL:
MySQL is an open-source relational database management system (RDBMS) based on
Structured Query Language (SQL). It is one part of the very popular LAMP platform
consisting of Linux, Apache, My SQL, and PHP. Currently My SQL is owned by Oracle. My
SQL database is available on most important OS platforms. It runs on BSD Unix, Linux,
Windows, or Mac OS. Wikipedia and YouTube use My SQL. These sites manage millions of
queries each day. My SQL comes in two versions: My SQL server system and My SQL
embedded system.
RDBMS TERMINOLOGY
Before we proceed to explain MySQL database system, let's revise few definitions related to
database.
SYSTEM DESIGN
Contents:
The main purpose is to show the interaction between the use cases and the actor.
The use cases are the functions that are to be performed in the module
USE CASE DIAGRAM
custom Remove
Registration
Food
Select
Food
Add
login
order
item
item
item
item Admin
Data Flow Diagram
A Data Flow Diagram (DFD) is a graphical representation of the flow of data through an
Information System. A data flow diagram can also be used for the visualization of Data
Processing. It is common practice for a designer to draw a context-level DFD first which
shows the interaction between the system and outside entities. This context-level DFD is
then "exploded" to show more detail of the system being modelled.
A picture is worth a thousand words. A Data Flow Diagram (DFD) is a traditional way to
visualize the information flows within a system. A neat and clear DFD can depict a good
amount of the system requirements graphically. It can be manual, automated, or a combination
of both.
It shows how information enters and leaves the system, what changes the information and
where information is stored. The purpose of a DFD is to show the scope and boundaries of a
system as a whole. It may be used as a communications tool between a systems analyst and
any person who plays a part in the system that acts as the starting point for redesigning a
system.
It is usually beginning with a context diagram as level 0 of the DFD diagram, a simple
representation of the whole system. To elaborate further from that, we drill down to a level 1
diagram with lower-level functions decomposed from the major functions of the system.
This could continue to evolve to become a level 2 diagram when further analysis is required.
Progression to levels 3, 4 and so on is possible but anything beyond level 3 is not very
common. Please bear in mind that the level of detail for decomposing a particular function
Process/Function
File/database
Input
Flow
Level 0
Order for food Managementreport
0.0
Bill
Receipt
Level 1
1.0
Order for food
Customer/user Processing of
Receipt order
Check
Verified
Selected item
Login / reg.
Formatted of cart item
2.0
Add item to
cart Db of cart item
2.0
Generate
management Management
report report
Admin
Level 2
Admin
management
Verified
Login / reg. Admin
Check
Entity Relationship Diagrams (ER-Diagrams):
UNIT TESTING
Introduction
In computer programming, unit testing is a software testing method by which individual units
of source code, sets of one or more computer program modules together with associated
control data, usage procedures, and operating procedures, are tested to determine whether
they are fit for use. Intuitively, one can view a unit as the smallest testable part of an
application. In procedural programming, a unit could be an entire module, but it is more
commonly an individual function or procedure. In object-oriented programming, a unit is
often an entire interface, such as a class, but could be an individual method. Unit tests are
short code fragments created by programmers or occasionally by white box testers during the
development process. It forms the basis for component testing. Ideally, each test case is
independent from the others. Substitutes such as method stubs, mock objects, fakes, and test
harnesses can be used to assist testing a module in isolation. Unit tests are typically written
and run by software developers to ensure that code meets its design and behaves as intended.
Benefits
The goal of unit testing is to isolate each part of the program and show that the individual
parts are correct. A unit test provides a strict, written contract that the piece of code must
satisfy. As a result, it affords several benefits.
1) Find problems early: Unit testing finds problems early in the development cycle. In
test- driven development (TDD), which is frequently used in both extreme programming and
scrum, unit tests are created before the code itself is written. When the tests pass, that code
is considered complete. The same unit tests are run against that function frequently as the
larger code base is developed either as the code is changed or via an automated process with
the build. If the unit tests fail, it is considered to be a bug either in the changed code or the
tests themselves. The unit tests then allow the location of the fault or failure to be easily
traced. Since the unit tests alert the development team of the problem before handing the
code off to testers or clients, it is still early in the development process.
2) Facilitates Change: Unit testing allows the programmer to refactor code or upgrade
system libraries at a later date, and make sure the module still works correctly (e.g., in
regression testing). The procedure is to write test cases for all functions and methods so that
whenever a change causes a fault, it can be quickly identified. Unit tests detect changes
which may break a design contract.
3) Simplifies Integration: Unit testing may reduce uncertainty in the units themselves and
can be used in a bottom-up testing style approach. By testing the parts of a program first and
then testing the sum of its parts, integration testing becomes much easier.
INTEGRATION TESTING
Integration testing (sometimes called integration and testing, abbreviated I&T) is the phase in
software testing in which individual software modules are combined and tested as a group. It
occurs after unit testing and before validation testing. Integration testing takes as its input
modules that have been unit tested, groups them in larger aggregates, applies tests defined in
an integration test plan to those aggregates, and delivers as its output the integrated system
ready for system testing.
Purpose
Big Bang
In the big-bang approach, most of the developed modules are coupled together to form a
complete software system or major part of the system and then used for integration testing.
This method is very effective for saving time in the integration testing process. However, if
the test cases and their results are not recorded properly, the entire integration process will be
more complicated and may prevent the testing team from achieving the goal of integration
testing. A type of big-bang integration testing is called "usage model testing" which can be
used in both software and hardware integration testing. The basis behind this type of
integration testing is to run user-like workloads in integrated user-like environments. In
doing the testing in this manner, the environment is proofed, while the individual
components are proofed indirectly through their use. Usage Model testing takes an optimistic
approach to testing, because it expects to have few problems with the individual components.
The strategy relies heavily on the component developers to do the isolated unit testing for
their product. The goal of the strategy is to avoid redoing the testing done by the developers,
and instead flesh-out problems caused by the interaction of the components in the
environment. For integration testing, Usage Model testing can be more efficient and provides
better test coverage than traditional focused functional integration testing. To be more
efficient and accurate, care must be used in defining the user-like workloads for creating
realistic scenarios in exercising the environment. This gives confidence that the integrated
environment will work as expected for the target customers.
Bottom-up testing is an approach to integrated testing where the lowest level components are
tested first, then used to facilitate the testing of higher-level components. The process is
repeated until the component at the top of the hierarchy is tested. All the bottom or low-level
modules, procedures or functions are integrated and then tested. After the integration testing
of lower-level integrated modules, the next level of modules will be formed and can be used
for integration testing. This approach is helpful only when all or most of the modules of the
same development level are ready. This method also helps to determine the levels of software
developed and makes it easier to report testing progress in the form of a percentage. Top-
down testing is an approach to integrated testing where the top integrated modules are tested
and the branch of the module is tested step by step until the end of the related module.
Sandwich testing is an approach to combine top-down testing with bottom-up testing.
SYSTEM TESTING
SCREENSHOTS
Chapter 8
CODE
This module provides the functionality for customers to place their order
and supply necessary details. Users of the system, namely restaurant
customers, must be provided the following functionality:
• Create an account.
• Place an order.
• Receive confirmation in the form of an order number.
This module provides functionality for the power Administrator only. It will not
be available to any other users of the system like Restaurant Employees or
Customers.
Using a graphical interface, it will allow an Admin to manage the menu that is
displayed to users of the web ordering system:
• Add dish: Allows to add dish Name, dish details, Price and choose Category
Besides the above achievements and the successful completion of the project, we still feel the
project has some limitations, listed as below
• Enhance User Interface by adding more user interactive features. Provide Deals and
promotional
Offer details to home page. Provide Recipes of the Week/Day to Home Page
• Payment Options: Add different payment options such as PayPal, Cash, Gift Cards etc.
Allow to
save payment details for future use.
• Order Process Estimate: Provide customer a visual graphical order status bar
• https://getbootstrap.com/
• https://www.w3schools.com/php/default.asp
• https://www.w3schools.com/html/default.asp
• https://www.youtube.com/