Our Project Report (Online Food Ordering)
Our Project Report (Online Food Ordering)
Our Project Report (Online Food Ordering)
We further declare that this project report or any part of it has not been submitted for award of
any other Degree / Diploma of this University or any other University/ Institution.
C ERTIFICATE
This is to certify that the project entitled
ONLINE FOOD ORDERING
DOOR DELIGHT
Principal
Dr.Gurunath Rao Vaidya Examiner 1 : _____________
AIGS, Bengaluru-107 Examiner 2: ____________
ACKNOWLEDGEMENT
Online Food ordering is a product of my hard work and dedication. I would like to express
our gratitude towards all the people that have helped me and made this project possible by
constantly encouraging and supporting.
I would like to extend my sincere thanks to the principal Prof. Gurunath Rao Vaidya,
Mr. Ramakrishna, HOD, Dept. of BCA and my internal guide Mrs. Archana Bhaskar,
Dept of BCA and all the other staff members who guided me.
At last I am really grateful and offer my thanks to my friends for their support and inspiration.
ABSTRACT
The online food ordering system provides convenience for the customers. It overcomes the
disadvantages of the traditional queuing system. This system increases the takeaway of foods
than visitors. Therefore, this system enhances the speed and standardization of taking the order
from the customer. It provides a better communication platform. the user’s details are noted
electronically.
The online food ordering system set up menu online and the customers easily places the order
with a simple mouse click. Also, with a food menu online you can easily track the orders,
maintain customer's database and improve your food delivery service. This system allows the
user to select the desired food items from the displayed menu. The user orders the food items.
The payment can be made online or pay-on-delivery system. The user’s details are maintained
confidential because it maintains a separate account for each user. An id and password are
provided for each user. Therefore, it provides a more secured ordering.
TABLE OF CONTENTS
CHAPTERS PAGE NO
1. INTRODUCTION------------------------------------------------------01
1.1 OBJECTIVE
1.2 MODULES
2. LITERATURE SURVEY--------------------------------------------04
2.1 AIM
4. DESIGN-----------------------------------------------------------------06
4.1 INTRODUCTION
4.3 ER DIAGRAMS
4.5 ER NOTATIONS
4. DATABASE DESIGN----------------------------------------------16
5. SYSTEM TESTING------------------------------------------------20
6. CODING-------------------------------------------------------------22
7. DEVELOPMENT TOOLS---------------------------------------52
8. TESTING-----------------------------------------------------------------55
8.1 ACCEPTANCE TESTING
12. SNAPSHOTS---------------------------------------------------------59
13. CONCLUSIONS-----------------------------------------------------65
14. BIBILOGRAPHY--------------------------------------------------------------------66
Door Delight Page | 1
1. INTRODUCTION
An online food ordering system is a web-based application that stimulates the foodies
(customers) to put food orders through internet by. This application is based on the Open Source
platform.
1.1 Objective
The main objective of this project is to develop an application which gives provision to the
restaurant owners to flourish their business by uploading menus at no cost and will invariably
lead to higher customer retention and acquisition rates.
User Friendly: Online Food Ordering System is a very user-friendly project because the
Food Ordering Record and searching from categories is very simple, fast and data is
secured. The user interface of the project is very simple.
Order reports of the system can be easily generated. User can generate the report of any
particular date and period. In this way they can get delivery status of customers and get
information about what is being ordered.
Very less paper work: Online Food Ordering System requires less paper work. In this
project all record is fetched directly into the computer and reports can be generated
through just a click. In this way it saves time. As data is directly entered into computer so
there is no need to do any paper work.
Computer operator control: Online Food Ordering System is operated by the staff
members and one admin so there is no chance of clerical mistakes. Data feeding and
retrieving in this system is very easy. So, the work can be done on time.
1.2 Modules
• Administrator module
• Customer Module
• Search Order: In this section admin can search particular order with the help of
order
number
• Reports: In this section admin can view order details, order counts and sales report
according to dates. Admin can also update his profile, change password and recover
password.
2.LITERATURE SURVEY
2.1 Aim
The aim of developing Online Food Ordering system project is to replace the traditional way of
taking orders with computerized system. Another important reason for developing this project is
to prepare order summary reports quickly and in correct format at any point of time when
required.
Online Food Ordering System has a very lot of scope. This PHP project can be used by any
restaurants or fast foods for customers for keeping their order records. This project is easy, fast
and accurate. It requires less disk space. Online Food Ordering System uses MYSQL Server as
backend so there is not any chance of data loss or data security.
In existing system for giving any orders users should visit restaurants to know about food items
and them give order and pay advance. In this method time and manual work is required.
Maintaining critical information in the files and manuals is full of risk and a tedious process.
This online application enables the end users to register online, select the food from the e-menu
card, read the E-menu card and order food online. By just selecting the food that the user wants
to have. The results after selecting the food from the E-menu card will directly appear in the
screen of the restaurant admin.
By using this application, the work of the Waiter is reduced and we can also say that the work is
nullified. The benefit of this is that if there is rush in the Restaurant then there will be chances
that the waiters will be unavailable and the users can directly order the food to the chef online by
using this application. The user will be given a username and a password to login.
• Hardware - Pentium
• RAM - 1GB
• Hard Disk - 20 GB
• Monitor - SVGA
Technology : PHP
Database : MySQL
4.DESIGN
4.1 INTRODUCTION:
Design is the first step in the development phase for any techniques and principles for the
purpose of defining a device, a process or system in sufficient detail to permit its physical
realization.
Once the software requirements have been analysed and specified the software design involves
three technical activities - design, coding, implementation and testing that are required to build
and verify the software.
The design activities are of main importance in this phase, because in this activity, decisions
ultimately affecting the success of the software implementation and its ease of maintenance are
made. These decisions have the final bearing upon reliability and maintainability of the system.
Design is the only way to accurately translate the customer’s requirements into finished software
or a system.
Design is the place where quality is fostered in development. Software design is a process
through which requirements are translated into a representation of software. Software design is
conducted in two steps. Preliminary design is concerned with the transformation of requirements
into data.
UML Diagrams:
Actor:
A coherent set of roles that users of use cases play when interacting with the use `cases.
Use case:
A description of sequence of actions, including variants, that a system performs that yields an
observable result of value of an actor.
UML stands for Unified Modelling Language. UML is a language for specifying, visualizing and
documenting the system. This is the step while developing any product after analysis. The goal
from this is to produce a model of the entities involved in the project which later need to be built.
The representation of the entities that are to be used in the product being developed need to be
designed.
Use case diagrams model behaviour within a system and helps the developers understand of what
the user requires. The stick man represents what’s called an actor.
Use case diagram can be useful for getting an overall view of the system and clarifying who can
do and more importantly what they can’t do.
Use case diagram consists of use cases and actors and shows the interaction between the use case
and actors.
• The purpose is to show the interactions between the use case and actor.
USECASE DIAGRAM:
Dashboard
Manage Registered
Users
Add / update
Admin
Manage Food Menu
Add/ Update
Order Management
Report Generation
Update Profile
Change Password
Signup
Sign in
Place order
User
Order Tracking
Change Password
Update Profile
The Entity-Relationship (ER) model was originally proposed by Peter in 1976 [Chen76] as a way
to unify the network and relational database views. Simply stated the ER model is a conceptual
data model that views the real world as entities and relationships. A basic component of the
model is the Entity-Relationship diagram which is used to visually represents data objects. Since
Chen wrote his paper the model has been extended and today it is commonly used for database
design For the database designer, the utility of the ER model is:
• it maps well to the relational model. The constructs used in the ER model can easily be
transformed into relational tables.
• it is simple and easy to understand with a minimum of training. Therefore, the model can
be used by the database designer to communicate the design to the end user.
• In addition, the model can be used as a design plan by the database developer to
implement a data model in a specific database management software.
The basic types of connectivity for relations are: one-to-one, one-to-many, and many-to-many. A
one-to-one (1:1) relationship is when at most one instance of a entity A is associated with one
instance of entity B. For example, "employees in the company are each assigned their own
office. For each employee there exists a unique office and for each office there exists a unique
employee.
A one-to-many (1: N) relationships is when for one instance of entity A, there are zero, one,
or many instances of entity B, but for one instance of entity B, there is only one instance of
entity A. An example of a 1: N relationships is a department has many employees each
employee is assigned to one department
A many-to-many (M: N) relationship, sometimes called non-specific, is when for one instance of
entity A, there are zero, one, or many instances of entity B and for one instance of entity B there
are zero, one, or many instances of entity A. The connectivity of a relationship describes the
mapping of associated
4.5 ER Notation
There is no standard for representing data objects in ER diagrams. Each modelling methodology
uses its own notation. The original notation used by Chen is widely used in academics texts and
journals but rarely seen in either CASE tools or publications by non-academics. Today, there are
a number of notations used, among the more common are Bachman, crow's foot, and IDEFIX.
All notational styles represent entities as rectangular boxes and relationships as lines connecting
boxes. Each style uses a special set of symbols to represent the cardinality of a connection. The
notation used in this document is from Martin. The symbols used for the basic ER constructs are:
Entities are represented by labelled rectangles. The label is the name of the entity. Entity
names should be singular nouns.
Relationships are represented by a solid line connecting two entities. The name of the
relationship is written above the line. Relationship names should be verbs
Attributes, when included, are listed inside the entity rectangle. Attributes which are
identifiers are underlined. Attribute names should be singular nouns.
Cardinality of many is represented by a line ending in a crow's foot. If the crow's foot is
omitted, the cardinality is one.
Existence is represented by placing a circle or a perpendicular bar on the line. Mandatory
existence is shown by the bar (looks like a 1) next to the entity for an instance is required.
Optional existence is shown by placing a circle next to the entity that is optional
5. DATABASE DESIGN
The data in the system has to be stored and retrieved from database. Designing the database is
part of system design. Data elements and data structures to be stored have been identified at
analysis stage. They are structured and put together to design the data storage and retrieval
system.
A database is a collection of interrelated data stored with minimum redundancy to serve many
users quickly and efficiently. The general objective is to make database access easy, quick,
inexpensive and flexible for the user. Relationships are established between the data items and
unnecessary data items are removed. Normalization is done to get an internal consistency of data
and to have minimum redundancy and maximum stability. This ensures minimizing data storage
required, minimizing chances of data inconsistencies and optimizing for updates. The MS Access
database has been chosen for developing the relevant databases.
tblfood : This tables stores the food details (used for food menu)
6. SYSTEM TESTING
At the end of the system design, it is the beginning for the actual coding to develop the proposed
system. During development phase, the table structure of the database will be first built in order
to provide a suitable data types that suit the system back end development, system connection
and data transfer. Next, the computer side client program will be developed and follow by will be
the web services that allow mobile phone client program to communicate with the server and
lastly mobile phone side client program will be developed. In testing phase, several test cases
will be carrying out to test the system in order to determine the system reliability and system
accuracy. According to the test cases, a system testing report will be generated for further review
to figure out the system weaknesses and made improvement accordingly. In the deployment
phase, several training will be provided for the particular restaurant staff such as how to operate
the system, the procedure of handling different event and several instructions that need to be
follow when operating the system.
During the system implementation phase, several challenges need to be confront because it
involve end users to test the production system with various situation. The possible challenges
may face are as following:
The users are required to have basic knowledge of how to operate a computer system and
android mobile phone in order to use the system. This will be difficulty to give training to the
user as the basic knowledge information can be obtained from internet easily.
This would be one of the issues that will encounter while implementing the system. Because user
is able to download the mobile application from the official website and use it as a client device
to place order. Therefore, if the user device screens size are too small or too big. The content and
interface of the application may not consistence.
During real time system implementation, three would be a huge number of client that access to
the server at the same time. Therefore, it may slow down the connection and performances of the
system and even causes the server down if the issue goes beyond the level of acceptance.
7. CODING
USER page
<?php
session_start();
error_reporting(0);
include('includes/dbconnection.php');
if (strlen($_SESSION['fosuid']==0)) {
header('location:logout.php');
} else {
if(isset($_POST['submit']))
{
$sid=$_SESSION['fosuid'];
$fname=$_POST['firstname'];
$lname=$_POST['lastname'];
if ($query) {
$msg="Your profile has been updated";
}
else
{
$msg="Something Went Wrong. Please try again";
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these
tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="#">
<title>Door Delights</title>
<!-- Bootstrap core CSS -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/font-awesome.min.css" rel="stylesheet">
<link href="css/animsition.min.css" rel="stylesheet">
<link href="css/animate.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="css/style.css" rel="stylesheet"> </head>
<body>
<div class="site-wrapper animsition" data-animsition-in="fade-in" data-animsition-out="fade-out">
<!--header starts-->
<header id="header" class="header-scroll top-header headrom">
<!-- .navbar -->
<?php include('includes/header.php');?>
<!-- /.navbar -->
</header>
<div class="page-wrapper">
<div class="breadcrumb">
<div class="container">
<ul>
<li><a href="#" class="active">Home</a></li>
<li>Profile</li>
</ul>
</div>
</div>
<section class="contact-page inner-page">
<div class="container">
<div class="row">
<!-- REGISTER -->
<div class="col-md-8">
<div class="widget">
<div class="widget-body">
?>
<div class="row">
<div class="form-group col-sm-6">
<label for="exampleInputEmail1">First Name</label>
<input class="form-control" type="text" value="<?php echo $row['FirstName'];?>"
id="firstname" name="firstname" required="true">
</div>
<div class="form-group col-sm-6">
<label for="exampleInputEmail1">Last Name</label>
<input class="form-control" type="text" value="<?php echo $row['LastName'];?>"
id="lastname" name="lastname" required="true">
</div>
<div class="form-group col-sm-6">
<label for="exampleInputEmail1">Email address</label>
<input type="email" class="form-control" id="email" aria-describedby="emailHelp"
placeholder="Enter email" name="email" value="<?php echo $row['Email'];?>" required="true"
readonly='true'> <small id="emailHelp" class="form-text text-muted">We"ll never share your email with
anyone else.</small>
</div>
<div class="form-group col-sm-6">
<label for="exampleInputEmail1">Mobile Number</label>
<input class="form-control" type="text" id="mobilenumber" name="mobilenumber"
value="<?php echo $row['MobileNumber'];?>" readonly="true"> <small class="form-text text-muted">We"ll
never share your mobile number with anyone else.</small>
</div>
<div class="form-group col-sm-6">
<label for="exampleInputEmail1">Registraton Date</label>
<input class="form-control" type="text" id="regdate" name="regdate" value="<?php
echo $row['RegDate'];?>" readonly="true">
</div>
</div>
<?php } ?>
<div class="row">
<div class="col-sm-4">
<button type="submit" name="submit" class="btn theme-btn"><i
class="ft-user"></i>Update</button>
</div>
</div>
</form>
</div>
<!-- end: Widget -->
</div>
<!-- /REGISTER -->
</div>
<!-- WHY? -->
<div class="col-md-4">
<h4>Update Profile.</h4>
<hr>
<img src="images/profile.png" alt="" class="img-fluid">
<p></p>
<script src="js/headroom.js"></script>
<script src="js/foodpicky.min.js"></script>
</body>
</html>
<?php } ?>
<?php
session_start();
error_reporting(0);
include('includes/dbconnection.php');
if(isset($_POST['login']))
{
$emailcon=$_POST['emailcont'];
$password=md5($_POST['password']);
$query=mysqli_query($con,"select ID from tbluser where (Email='$emailcon' ||
MobileNumber='$emailcon') && Password='$password'&& approval=1");
$ret=mysqli_fetch_array($query);
if($ret>0){
$_SESSION['fosuid']=$ret['ID'];
header('location:index.php');
}
else{
$msg="Invalid Details or user yet to be approved ";
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these
tags -->
</header>
<div class="page-wrapper">
<div class="breadcrumb">
<div class="container">
<ul>
<li><a href="#" class="active">Home</a></li>
<li><a href="#">login page</a></li>
<li>Login</li>
</ul>
</div>
</div>
<section class="contact-page inner-page">
<div class="container">
<div class="row">
<!-- REGISTER -->
<div class="col-md-8">
<div class="widget">
<div class="widget-body">
<p style="font-size:16px; color:red" align="center"> <?php if($msg){
echo $msg;
} ?> </p>
<form action="" name="login" method="post">
<div class="row">
<div class="form-group col-sm-6">
<label for="exampleInputEmail1">Registered Email or Contact Number</label>
<input type="text" name="emailcont" id="email" class="form-control"
</div>
<div class="row">
<div class="col-sm-4">
<button type="submit" name="login" class="btn theme-btn"><i
class="ft-user"></i>Login</button>
</div>
<div class="col-sm-4">
<a href="registration.php" class="btn theme-btn"><i class="ft-user"></i>Register</a>
</div>
</div>
</form>
</div>
<!-- end: Widget -->
</div>
<!-- /REGISTER -->
</div>
<!-- WHY? -->
<div class="col-md-4">
<h4>Registration is fast, easy, and free.</h4>
<hr>
<img src="images/login.jpg" alt="" class="img-fluid">
<p></p>
</section>
</html>
INDEX PAGE
<?php
session_start();
error_reporting(0);
include('includes/dbconnection.php');
if(isset($_POST['submit']))
{
$foodid=$_POST['foodid'];
$userid= $_SESSION['fosuid'];
$query=mysqli_query($con,"insert into tblorders(UserId,FoodId) values('$userid','$foodid') ");
if($query)
{
echo "<script>alert('Food has been added in to the cart');</script>";
} else {
echo "<script>alert('Something went wrong.');</script>";
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these
tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="#">
<title>Door Delights</title>
<!-- Bootstrap core CSS -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/font-awesome.min.css" rel="stylesheet">
<link href="css/animsition.min.css" rel="stylesheet">
<link href="css/animate.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="css/style.css" rel="stylesheet"> </head>
<body class="home">
<div class="site-wrapper animsition" data-animsition-in="fade-in" data-animsition-out="fade-out">
<!--header starts-->
<header id="header" class="header-scroll top-header headrom">
<!-- .navbar -->
<?php include_once('includes/header.php');?>
<!-- /.navbar -->
</header>
<!-- banner part starts -->
<section class="hero bg-image" data-image-src="images/food-on-plate1.jpg">
<div class="hero-inner">
<div class="container text-center hero-text font-white">
<h1>Door Delights</h1>
<h5 class="font-white space-xs">Find your favourite delicious hot food!</h5>
<div class="banner-form">
<form class="form-inline" method="post" name="search" action="search-food.php">
<div class="form-group">
<label class="sr-only" for="exampleInputAmount">I would like to eat....</label>
<div class="form-group">
<input type="text" class="form-control form-control-lg" id="exampleInputAmount"
name="searchdata" id="searchdata" placeholder="I would like to eat...."> </div>
</div>
<button onclick="location.href='search-food.php'" type="submit" name="search" class="btn
<section class="popular">
<div class="container">
<div class="title text-xs-center m-b-30">
<h2>Popular This Month In Your City</h2>
<p class="lead">The easiest way to get your favourite food</p>
</div>
<div class="row">
<!-- Each popular food item starts -->
<?php
?>
<div class="col-xs-12 col-sm-6 col-md-4 food-item">
<div class="food-item-wrap">
<div class="figure-wrap bg-image"><img src="admin/itemimages/<?php echo
$row['Image'];?>" width="400" height="180">
</div>
<div class="content">
<h5><a href="food-detail.php?fid=<?php echo $row['ID'];?>"><?php echo
$row['ItemName'];?></a></h5>
<div class="product-name"><?php echo substr($row['ItemDes'],0,40);?></div>
<div class="price-btn-block"> <span class="price">Rs. <?php echo $row['ItemPrice'];?
></span>
<?php if($_SESSION['fosuid']==""){?>
<a href="login.php" class="btn theme-btn-dash pull-right">Order Now</a>
<?php } else {?>
<form method="post">
<input type="hidden" name="foodid" value="<?php echo $row['ID'];?>">
<button type="submit" name="submit" class="btn theme-btn-dash pull-right">Order Now</button>
</form>
<?php }?> </div>
</div>
</div>
</div>
<?php } ?>
<!-- Each popular food item starts -->
<!-- Each popular food item starts -->
</div>
</div>
</section>
<!-- Popular block ends -->
<!-- How it works block starts -->
<section class="how-it-works">
<div class="container">
<div class="text-xs-center">
<h2>Easy 3 Step Order</h2>
<!-- 3 block sections starts -->
<div class="row how-it-works-solution">
<div class="col-xs-12 col-sm-12 col-md-4 how-it-works-steps white-txt col1">
<div class="how-it-works-wrap">
<div class="step step-1">
<div class="icon" data-step="1">
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 483 483" width="512"
height="512">
<g fill="#FFF">
<path d="M467.006 177.92c-.055-1.573-.469-3.321-1.233-4.755L407.006
62.877V10.5c0-5.799-4.701-10.5-10.5-10.5h-310c-5.799 0-10.5 4.701-10.5 10.5v52.375L17.228
173.164a10.476 10.476 0 0 0-1.22 4.938h-.014V472.5c0 5.799 4.701 10.5 10.5 10.5h430.012c5.799 0 10.5-
4.701 10.5-10.5V177.92zM282.379 76l18.007 91.602H182.583L200.445 76h81.934zm19.391 112.602c-4.964
29.003-30.096 51.143-60.281 51.143-30.173 0-55.295-22.139-60.258-51.143H301.77zm143.331 0c-4.96
29.003-30.075 51.143-60.237 51.143-30.185 0-55.317-22.139-60.281-51.143h120.518zm-123.314-21L303.78
76h86.423l48.81 91.602H321.787zM97.006 55V21h289v34h-289zm-4.198 21h86.243l-17.863 91.602h-
117.2L92.808 76zm65.582 112.602c-5.028 28.475-30.113 50.19-60.229 50.19s-55.201-21.715-60.23-
50.19H158.39zM300 462H183V306h117v156zm21 0V295.5c0-5.799-4.701-10.5-10.5-10.5h-138c-5.799 0-
10.5 4.701-10.5 10.5V462H36.994V232.743a82.558 82.558 0 0 0 3.101 3.255c15.485 15.344 36.106 23.794
58.065 23.794s42.58-8.45 58.065-23.794a81.625 81.625 0 0 0 13.525-17.672c14.067 25.281 40.944 42.418
71.737 42.418 30.752 0 57.597-17.081 71.688-42.294 14.091 25.213 40.936 42.294 71.688 42.294 24.262 0
46.092-10.645 61.143-27.528V462H321z" />
<path d="M202.494 386h22c5.799 0 10.5-4.701 10.5-10.5s-4.701-10.5-10.5-
10.5h-22c-5.799 0-10.5 4.701-10.5 10.5s4.701 10.5 10.5 10.5z" /> </g>
</svg>
</div>
<h3>Choose a tasty dish</h3>
<p>We"ve got your covered with menus from over 18 delicious foods online.</p>
</div>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-4 how-it-works-steps white-txt col2">
</html>
<?php
session_start();
error_reporting(0);
include_once('includes/dbconnection.php');
if (strlen($_SESSION['fosuid']==0)) {
header('location:logout.php');
} else{
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these
tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="#">
<title>Door Delights</title>
<!-- Bootstrap core CSS -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/font-awesome.min.css" rel="stylesheet">
<link href="css/animsition.min.css" rel="stylesheet">
<link href="css/animate.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="css/style.css" rel="stylesheet"> </head>
<script language="javascript" type="text/javascript">
var popUpWin=0;
function popUpWindow(URLStr, left, top, width, height)
{
if(popUpWin)
{
if(!popUpWin.closed) popUpWin.close();
}
popUpWin = open(URLStr,'popUpWin',
'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,copyhistory=yes,w
idth='+600+',height='+600+',left='+left+', top='+top+',screenX='+left+',screenY='+top+'');
}
</script>
<body>
<div class="site-wrapper animsition" data-animsition-in="fade-in" data-animsition-out="fade-out">
<!--header starts-->
<header id="header" class="header-scroll top-header headrom">
<!-- .navbar -->
<?php include_once('includes/header.php');?>
<!-- /.navbar -->
</header>
<div class="page-wrapper">
<!-- top Links -->
<div class="top-links">
</div>
<!-- end:Top links -->
<!-- start: Inner page hero -->
<section class="inner-page-hero bg-image" data-image-src="images/decouvrez-l-experience-food-d-
airbnb.jpg">
<div class="profile">
<div class="container">
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-4 col-lg-4 profile-img">
<div class="image-wrap">
<figure><img src="images/decouvrez-l-experience-food-d-airbnb.jpg" alt="Profile
Image"></figure>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-8 col-lg-8 profile-desc">
<div class="pull-left right-text white-txt">
</div>
</div>
</div>
</div>
</div>
</section>
<!-- end:Inner page hero -->
<div class="breadcrumb">
<div class="container">
<ul>
<li><a href="index.php" class="active">Home</a></li>
<li><a href="cart.php">Cart</a></li>
<li>Detail Cart</li>
</ul>
</div>
</div>
<div class="container m-t-30">
<div class="row">
<div class="col-xs-12 col-sm-4 col-md-4 col-lg-3">
<div class="sidebar clearfix m-b-20">
<div class="main-block">
<div class="sidebar-title white-txt">
<h6>Food Categories</h6> <i class="fa fa-cutlery pull-right"></i> </div>
<?php
<ul>
<li>
<label class="custom-control custom-checkbox">
<span class="custom-control-description"><a href="viewfood-
categorywise.php?catid=<?php echo $row['CategoryName'];?>"><?php echo
$row['CategoryName'];?></a></span> </label>
</li>
</ul>
<?php } ?>
<div class="clearfix"></div>
</div>
<!-- end:Sidebar nav -->
</div>
<!-- end:Left Sidebar -->
</div>
<?php
$userid= $_SESSION['fosuid'];
$oid=$_GET['orderid'];
$query=mysqli_query($con,"select
tblfood.Image,tblfood.ItemName,tblfood.ItemDes,tblfood.ItemPrice,tblfood.ItemQty,tblorders.FoodId from
tblorders join tblfood on tblfood.ID=tblorders.FoodId where tblorders.UserId='$userid' and
tblorders.IsOrderPlaced=1 and tblorders.OrderNumber='$oid'");
$num=mysqli_num_rows($query);
while ($row=mysqli_fetch_array($query)) {
?>
<div class="row">
<div class="col-xs-12 col-sm-12 col-lg-8">
<div class="rest-logo pull-left">
<a class="restaurant-logo pull-left" href="#"><img src="admin/itemimages/<?
php echo $row['Image']?>" width="100" height="80" alt="<?php echo $row['ItemName']?>"></a>
</div>
<!-- end:Logo -->
<div class="rest-descr">
<h6><a href="food-detail.php?fid=<?php echo $_SESSION['fid']=$row['FoodId'];?>"><?php echo
$row['ItemName']?> (<?php echo $row['ItemQty']?>) </a></h6>
<p> <?php echo $row['ItemDes']?></p>
</div>
<!-- end:Description -->
</div>
<!-- end:col -->
<div class="col-xs-12 col-sm-12 col-lg-4 pull-right item-cart-info"> <span
class="price pull-left">Rs. <?php echo $total=$row['ItemPrice']?></span></div>
</div>
<!-- end:row -->
<?php
$grandtotal+=$total;
}
?>
</div>
</div>
<!-- end:Collapse -->
</div>
<!-- end:Widget menu -->
<!--/row -->
</div>
<!-- end:Bar -->
<?php
$query=mysqli_query($con,"select * from tblorderaddresses where Ordernumber='$oid'");
while($row=mysqli_fetch_array($query))
{ ?>
<div class="col-xs-12 col-md-12 col-lg-3">
<div class="sidebar-wrap">
<div class="widget widget-cart">
<div class="widget-heading">
<h3 class="widget-title text-dark">
Order # <?php echo $oid;?> Details
</h3>
<div class="clearfix"></div>
</div>
<div class="order-row bg-white">
<div class="widget-body">
</div>
</div>
</div>
<hr />
<div class="widget-body">
<div class="price-wrap text-xs-center">
<p class="btn theme-btn btn-lg" ><?php
$link = "http";
$link .= "://";
$link .= $_SERVER['HTTP_HOST'];
?>
<p style="color:red">
<a href="javascript:void(0);" onClick="popUpWindow('cancelorder.php?oid=<?php echo
htmlentities($row['Ordernumber']);?>');" title="Cancel this order" style="color:red">Cancel this order </a>
</p>
<p>TOTAL</p>
<h3 class="value"><strong><?php echo $grandtotal;?></strong></h3>
<?php $status=$row['OrderFinalStatus'];
if($status==''){
echo "Waiting for Restaurant confirmation";
} else{
?>
<?php } ?>
<!-- end:row -->
</div>
<!-- end:Container -->
</html>
<?php } ?>
ADMIN PROFILE
<?php
session_start();
error_reporting(0);
include('includes/dbconnection.php');
error_reporting(0);
if (strlen($_SESSION['fosaid']==0)) {
header('location:logout.php');
} else{
if(isset($_POST['submit']))
{
$adminid=$_SESSION['fosaid'];
$adminname=$_POST['adminname'];
$mobno=$_POST['mobilenumber'];
$email=$_POST['email'];
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Door Delights</title>
</head>
<body>
<div id="wrapper">
<?php include_once('includes/leftbar.php');?>
</div>
<div class="row">
<div class="col-lg-12">
<div class="ibox">
<div class="ibox-content">
<p style="font-size:16px; color:red;"> <?php if($msg){
echo $msg;
} ?> </p>
<?php
$adminid=$_SESSION['fosaid'];
$ret=mysqli_query($con,"select * from tbladmin where ID='$adminid'");
$cnt=1;
while ($row=mysqli_fetch_array($ret)) {
?>
</div>
</div>
</fieldset>
</fieldset>
<?php } ?>
</form>
</div>
</div>
</div>
</div>
</div>
<?php include_once('includes/footer.php');?>
</div>
</div>
<script>
$(document).ready(function(){
$("#wizard").steps();
$("#form").steps({
bodyTag: "fieldset",
onStepChanging: function (event, currentIndex, newIndex)
{
// Always allow going backward even if the current step contains invalid fields!
if (currentIndex > newIndex)
{
return true;
}
// Suppress (skip) "Warning" step if the user is old enough and wants to the previous step.
if (currentIndex === 2 && priorIndex === 3)
{
$(this).steps("previous");
}
},
onFinishing: function (event, currentIndex)
{
var form = $(this);
}
}).validate({
errorPlacement: function (error, element)
{
element.before(error);
},
rules: {
confirm: {
equalTo: "#password"
}
}
});
});
</script>
</body>
</html>
<?php } ?>
<?php
session_start();
error_reporting(0);
include('includes/dbconnection.php');
if(isset($_POST['login']))
{
$adminuser=$_POST['username'];
$password=md5($_POST['password']);
$query=mysqli_query($con,"select ID from tbladmin where UserName='$adminuser' &&
Password='$password' ");
$ret=mysqli_fetch_array($query);
if($ret>0){
$_SESSION['fosaid']=$ret['ID'];
header('location:dashboard.php');
}
else{
$msg="Invalid Details.";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body class="gray-bg">
<div class="col-md-6">
<h2 class="font-bold">Door Delights | Admin Login</h2>
</div>
<div class="col-md-6">
<div class="ibox-content">
<p style="font-size:16px; color:red" align="center"> <?php if($msg){
echo $msg;
} ?> </p>
<form class="m-t" role="form" action="" method="post" name="login">
<div class="form-group">
<input type="text" class="form-control" placeholder="username" name="username"
required="">
</div>
<div class="form-group">
<input type="password" class="form-control" placeholder="Password" required=""
name="password">
</div>
<button type="submit" class="btn btn-primary block full-width m-b"
name="login">Login</button>
<a href="forgot-password.php">
<p>Forgot password?</p>
</a>
</form>
</div>
</div>
</div>
<hr/>
</div>
<?php include_once('includes/footer.php');?>
</body>
</html>
8.Development Tools
The proposed system will need a database system to support in order to store the huge amount of
data. MySQL database system will be chosen to support the proposed system because it is well-
known open source relational database management system. Other than that, MySQL database
system provides software developer with a client program with easy understanding graphical
user interface that can communicate to the MySQL database server named as MySQL
Workbench 6.3 CE. By doing so, software developer can interact with the database system with
the user friendliness client program and without using the command prompt, at the end it may
speed up the development progress.
The proposed system is a cross platform system, which include Windows desktop client and
Android mobile phone client. Therefore, it requires to implement web services in order to
support the Android mobile phone client device to fetch data from the database server and store
data back to the database server. In this project, WampServer is used to support the issue that
mention earlier. WampServer is a
Windows web development environment that built-in comes together with the
Apache, PHP and MySQL database. Furthermore, PHP will be the programming language that
used to create the web services that store in the server and it is able to call by the Android mobile
phone client to perform particular task.
For the rule of thumb to develop a system, it requires to have an intact system planning which
serve as a guide line during the development phases. Microsoft Project is a project management
software program and it has been used in the project to design the system planning, project
timeline, managing of resources, tracking development progress and etc.
In this project, Visual Paradigm software has been used to create document for several
system planning diagram such as Use-Case diagram, Activity diagram, Class diagram and
etc. By doing so, software developer are able to visualize the system communicate
information much more concisely and clearly.
After the system has been developed, it will move to system testing phase. In system testing
phase, the developed system is required to install on appropriate devices for testing purpose.
After the system installation has been completed, the system testing task will be performed by
different roles of user such as manager role and staff role. The purpose of system testing is to
identify and determine the degree of system stability. At the same time, it is given an opportunity
for developer to figure out error or bug that has not been raise and encounter during the system
development phase. Those error or bug that has been found during the system testing activities
will be solved before the system release. Each and every testing before system testing phases is
actually tested by the system developer itself. Therefore, it might cause some biases toward the
testing due to the system developer have knowledge about the system software logics and lead
the result to be inappropriate. There are four types of testing that will be used to test the
developed system which includes unit testing, integration testing, system testing and acceptance
testing.
Unit Testing
First of all, unit testing will be the first testing method that used to test the developed system. It
consists of testing activities that test the system module by module which has not been integrated
as a whole. By doing unit testing, developer is able to identify error and bug easily since it is
finding the error and bug through a unit part of the system rather than finding error through the
complete system. In addition, developer will test the unit part of the system with the validation
and the correctness of data value. Valid and invalid input will be entering to test and ensure the
system processes perform with an expected result.
Functional Testing
After conducted the unit testing, functional testing will begin to test the developed system.
Functional testing is performed to verify that the system application processes that perform and
functioning appropriately according to the design specifications. In functional testing, the core
system application functions will be tested with several test cases in order to ensure that the
entire system functioning as a whole and perform task that with the expected results.
9.TESTING
System testing of the software and hardware is a testing conducted on a system which is
complete, integrated system that works as a whole. System testing is a critical testing procedure
that must be conducted by software developer before the system released. During system testing
it can evaluate the system’s compliance with its specified requirements according to the system
design. Furthermore, several testing activities in system testing test not only the design of the
system, but also the behaviour and the believed expectations result from the customer. In
addition, various complex test cases that used to test the system are according to the business
process requirements which are collected from the user. Meanwhile, errors or bugs that detected
during the testing is required software developer look into it from the initial step of the business
process to the end of the process to ensure it have expected result in order to solve the errors or
bugs to determine the degree of system stability.
Last but not lease, acceptance testing also known as user acceptance testing would be the final
testing procedure that perform to test the developed software system. In acceptance testing, the
testing activities are different compare to the testing activities that mentioned previously because
the tester that tests the system will be the final user which do not have knowledge about the
system logic. If the final user encountered an error while using the system, system developer are
required to maintain the system as soon as possible and release a new patch for the existing
system to recover the error. Meanwhile, final user will use the system that visualized as to
support their real business routine operation; therefore, software support team are required to
stand by to provide technical support while final user need any help or support that regarding the
system. If there are no errors detected by the final user while using the system for a long period,
the development job of developer is considered as complete and the system will be a final system
product.
The proposed system is designed and developed to solve all the problem statements which are
stated in chapter one of this report. First of all, the developed system provides a feature that is
able to solve the problem of difficulties in food order ticket tracking and achieve the project
objective of prevention of food serves not in sequence. By using the system, it allows staff to
placed order ticket through using the system and the system will automatically queue the food
order information according to the first come first serve basis and kitchen staff is able to follow
the food queue to serve customer accordingly. It also eliminates all the manual processes that
involve in the traditional method of delivering food order ticket. In addition, the developed
system allows manager to update all the food information as it is needed. This feature helps
restaurant to eliminate duplicated physical menu card which contain misleading information and
also allow staff and customer to view the latest updated food menu information through using the
system. By doing so, it helps restaurant to solve the problem which regarding difficulties in
updating menu card information, difficulties in providing appropriate updated food information
and the potential of increase cost of operation as the system will automatically refresh all the
updated information that is edited by manager. Furthermore, the project objective which
regarding provides convenience for both employees and consumers has been achieved because
the system allow consumer to view all the updated information through the mobile phone client
devices and it reduce the number of manual work which restaurant staff need to be performed.
Last but not lease, the project objective of assisting restaurant to plan ahead has been achieved
due to the system allow manager to generate several types of report in order to assist the
restaurant to plan ahead. By analysing the generated report, manager is able to carry out a
planning for the next business routine of the restaurant in order to improve the restaurant
operation efficiency. In a nutshell, the system has fulfilled all significant outcomes that according
to all the problem statements and project objectives that are stated.
The system provide customer with good dine in experience as it allow customer to view food
information and place order through using the mobile phone device. The mobile application also
provides ease of use because it has easy understandable graphic user interface and minimal
instruction to follow while place order through the application. Next, it helps restaurant staff to
serve their value customer in minimal delay. Furthermore, the system can be implemented with
low cost and is affordable for most of the small medium enterprise restaurant, because the
hardware requirements are not required to be high end powerful in order to support the system.
Lastly, server and client are communicating within the restaurant which is intranet therefore it
does not need to have internet access.
The system is not compatible with IOS mobile devices as the mobile application is developed in
Android environment. Therefore, for IOS mobile phone user may not able to install the
application in their mobile phone and experience the system. Meanwhile, the restaurant has
prepared some Android mobile devices which are used to resolve the issue that mention above.
Next, due to the mobile phone client devices are required to connect to the wireless intranet in
order to communicate with the server. It is very important to identify a suitable location that used
to install and set up the wireless access point in order to ensure the wireless signal coverage is
able to reach the entire restaurant area.
The system can implement a feature which is real time notification from the mobile phone
application to the service desk. This feature enable customer to request customer service through
using the mobile application rather than verbally call restaurant staff to approach them. In
addition, the mobile application also can implement a feature that allow customer to update the
food serve status. For example, customers fine dining at the restaurant they can request the food
to be serve through using the mobile application and if the customer finish the main course and
feeling full, the customer may request do not serve the following food through using the mobile
application. Last but not lease, the mobile application may implement some mini game that is
able to entertain customers while they are waiting for the food to be served.
Home page
Dashboard
Order
Registered User
Search orders
Sign in
Sign up
Track
User Profile
13. CONCLUSION
After a decade, the advancement and innovation of technology help people to manage their task
easily and efficiently. In many other industry area have been used management system to assist
their business grow long time ago, therefore it is also a trend that cause F&B industry to make
use of a management system for their business. At the end of this project, the system can reduce
and replace the human manpower task, reduce the time consume for each transaction and
generate report for further management purpose by fully utilizing the system.
Obviously, the propose system can help improve the productivity of the restaurant and thus
directly did an impact to the profitability of the restaurant. Furthermore, it can also help
restaurant to reduce the cost of operation in term of manpower, because the system have already
facilitate majority of the business process by using the system. Therefore, it is believed that the
system can lead the restaurant’s business grow from time to time.
On the other hand, the technology nowadays allows the portability requirement easy to achieve.
Therefore, portability has become one of the factors that have to take into consideration in the
system development process. Because portability brings a lot of benefit to user while they using
the system such as it provides convenience, accessibility, easy to communicate and etc. Hence,
portability has done an impact to the social that everybody is much more preferable to complete
their task with portable device.
In order to fulfil these all requirement, our proposed method is combined the food ordering
system which is in mobile platform into the restaurant management system which is in computer
platform. The integration of both features which develop a system that can let user to have an
experience of portability which is user can process their food ordering through using their smart
phone or tablet. Besides, restaurant manage their daily operation management through using the
computer platform it is because computer have some other features such as it has a wider screen,
other compatible system that can help to manage the restaurant and some other driver that
needed to communicate with that necessary hardware.
14. BIBILOGRAPHY
Hanna P. (2002): JSP 2.0 The Complete Reference, Second Edition McGraw Hill
Education.
https://www.w3schools.com
https://www.canvasjs.com
https://getbootstrap.com/
https://fontawesome.com