You are on page 1of 51

INTRODUCTION OF THE

PROJECT

The Online Food Ordering System is a web-based application developed to revolutionize the way
customers interact with food services. By harnessing the power of HTML, CSS, JavaScript, PHP, and
SQL technologies, this project provides a seamless platform for users to order food online. Users, upon
entering their credentials, gain access to a dynamic interface displaying available menu items. The system
supports real-time updates, order tracking, and personalized recommendations, enhancing the overall user
experience.

The primary objective of this project is to simplify the food ordering process, making it more user-friendly
and visually appealing. The website allows customers to select and customize their orders, view there past
orders, search for selected item and many more fetures. Securely handled, ensuring the protection of
customer data by password hashing.

The project's methodology involves the integration of HTML, CSS, JavaScript, PHP, and SQL to create
a responsive and interactive web application. User feedback, performance metrics, and transaction data
analysis will be used to evaluate the impact of the website on user satisfaction and business efficiency.

Upon successful implementation, users will benefit from a convenient online platform that facilitates
quick and efficient food orders, contributing to the evolution of the online food service industry.

1
OBJECTIVE AND SCOPE OF
PROJECT

Objectives:-

Enhanced Search Functionality:


Implement searching features based on various factors such as food name.

Instant Food Ordering:


Enable users to place food orders instantly through the online platform, ensuring quick and efficient
transactions.

Comprehensive Information Management:


Keep track and manage comprehensive information related to food items, orders, and user preferences to
optimize the efficiency of the online food ordering system.

Transaction Descriptions:
Display detailed descriptions and information regarding food transactions to provide users with a clear
overview of their orders.

Efficiency in Management:
Enhance the efficiency of management within the online food ordering system, ensuring seamless
operations for both customers and restaurant owners.

Monitoring Transaction Information:


Implement a monitoring system to track and manage transaction information, providing insights into
customer behaviour and preferences.

Improved Security Measures:


Implement enhanced security features to ensure the secure processing of transactions within the online
food ordering system.

Scope:-

User Account Details Access:


Users can easily access details of their accounts on the food ordering website, providing a personalized
and efficient experience.

Instant Order Placement:


Users can instantly place food orders, creating a seamless and quick transaction process for customers.

2
Client Information Storage:
The system enables the storage of client details, including preferences and order history, contributing to a
personalized and improved user experience.

Automatic Receipt Generation:


Implement a feature to automatically generate receipts for food orders, providing users with a clear and
organized record of their transactions.

Customer Database Management:


The project includes the management of a customer database, allowing for efficient organization and
retrieval of customer information.

3
INTRODUCTION TO HTML AND CSS

HTML (Hypertext Markup Language) and CSS (Cascading Style Sheets) are foundational technologies
at the core of web development, enabling the creation of visually appealing and well-structured web pages.
Similar to Visual Basic's role in application development, HTML and CSS play key roles in defining the
structure and presentation of web content.

HTML (Hypertext Markup Language):


HTML serves as the backbone of web pages, providing a structured markup language to define the content
and layout. With HTML, developers create a document by using tags to identify and organize different
elements on a webpage. These elements can include headings, paragraphs, images, links, forms, and more.

CSS (Cascading Style Sheets):


CSS complements HTML by allowing developers to control the visual presentation of web pages. It
introduces style rules that define how HTML elements should be displayed on different devices. CSS
enables the separation of content and design, making it easier to create consistent and visually appealing
user interfaces.

Together, HTML and CSS form the essential building blocks for creating a visually engaging and user-
friendly web experience. HTML defines the structure, while CSS enhances the design, providing a flexible
and responsive layout. This combination allows developers to adhere to the principles of Rapid
Application Development (RAD) by simplifying the process of designing and styling web interfaces.

4
INTRODUCTION TO JAVASCRIPT

JavaScript is a versatile and powerful programming language primarily used for web development. It is
an essential component of modern web browsers, allowing developers to create dynamic and interactive
user interfaces. JavaScript, often abbreviated as JS, plays a crucial role in enhancing the functionality of
web pages by enabling client-side scripting.

Key Features of JavaScript:


Client-Side Scripting:
JavaScript is mainly used for client-side scripting, which means it runs directly in the web browser of the
end-user. It enables developers to create dynamic content, validate forms, handle events, and manipulate
the Document Object Model (DOM) to dynamically update webpage content without requiring a page
reload.

Object-Oriented:
JavaScript is an object-oriented programming language, supporting concepts like encapsulation,
inheritance, and polymorphism. This allows developers to structure their code in a more organized and
modular manner.

Interactivity and Dynamic Content:


With JavaScript, web pages can respond to user actions in real-time. Developers can create interactive
elements such as sliders, pop-ups, and form validations. Dynamic content loading and updating make
websites more engaging and user-friendly.

Event-Driven Programming:
JavaScript follows an event-driven programming paradigm. Developers can define functions that are
executed in response to specific events, such as a button click, mouseover, or form submission. This
approach enhances the user experience by making web pages responsive to user actions.

Cross-Browser Compatibility:
JavaScript is supported by all major web browsers, including Chrome, Firefox, Safari, and Edge. This
ensures that web applications developed with JavaScript can run consistently across different platforms.

JavaScript is a fundamental technology in web development, often used in conjunction with HTML and
CSS to create modern and interactive web applications. As a versatile language, JavaScript has evolved
beyond its initial role in web browsers and is now used in server-side development (Node.js), mobile app
development, and various other application scenarios.

5
INTRODUCTION TO PHP AND SQL

PHP is primarily a server-side scripting language, meaning it runs on the web server, not the user's browser.
This allows for dynamic content generation before the page is sent to the client.

Open Source:
PHP is an open-source language, which means its source code is freely available and can be modified and
redistributed. This has contributed to its widespread adoption and continuous improvement.

Cross-Platform Compatibility:
PHP is platform-independent, making it compatible with various operating systems, including Windows,
Linux, and macOS. This portability has contributed to its popularity in diverse server environments.

Database Integration:
PHP has robust support for database integration, allowing developers to interact with various database
management systems, such as MySQL, PostgreSQL, SQLite, and others.

Ease of Learning:
PHP syntax is easy to learn, especially for those familiar with C-style languages. Its simplicity and
readability make it an attractive choice for beginners.

SQL (Structured Query Language):

SQL is a standard language for managing and manipulating relational databases. It is used to define and
manipulate data in databases, perform queries, insert or update records, and manage database structures.
SQL is not a programming language like PHP; instead, it is specifically designed for working with
databases.

Key Features of SQL:


Database Query Language:
SQL is primarily used for querying and manipulating data in relational database management systems
(RDBMS). It provides a standardized way to interact with databases.

Data Definition and Manipulation:


SQL supports both Data Definition Language (DDL) and Data Manipulation Language (DML). DDL is
used to define and modify database structures, while DML is used to query and modify data.

Relational Database Management System (RDBMS):


SQL is closely associated with RDBMS, which organizes data into tables with relationships. Popular
RDBMSs that use SQL include MySQL, PostgreSQL, Oracle, SQL Server, and SQLite.

6
Standardized Syntax:
SQL follows a standardized syntax, allowing developers to use the same set of commands across different
database systems. However, there might be variations in specific implementations.

Together, PHP and SQL form a powerful combination for building dynamic and data-driven web
applications. PHP handles server-side processing, while SQL manages the storage and retrieval of data
from databases, providing a seamless integration between the application and its data source. This
combination is commonly used in web development frameworks like Laravel and WordPress.

7
DEFINITION OF PROBLEMS
A food ordering website is an online platform that enables users to browse, select, place orders, and have
food delivered or ready for pickup, with a user-friendly interface that allows customers to view menus,
customize orders, and make secure payments.

Key features of a food ordering website may include:

1. Menu Display: A digital representation of the restaurant's menu with detailed descriptions and
prices for each item.
2. User Accounts: The option for users to create accounts, which can store their preferences, order
history, and payment information for future orders.
3. Search and Filters: Tools to help users easily find specific cuisines, dishes, or restaurants through
search functionality and filters.
4. Shopping Cart: An interactive cart system that allows users to add, remove, or modify their
selected items before finalizing the order.
5. Checkout and Payment: Secure and convenient payment options for users to complete their
orders, including credit/debit cards, digital wallets, or other online payment methods.
6. Order Tracking: Real-time updates on the status of the order, including confirmation of the order,
preparation time, and delivery progress.
7. Reviews and Ratings: Customer feedback and ratings for restaurants and individual dishes to help
others make informed choices.
8. Account Management: A section where users can manage their profiles, addresses, and payment
details.
9. Responsive Design: A website layout that adapts to different devices, ensuring a seamless
experience for users on desktops, tablets, and smartphones.
10. Integration with Delivery Services: Coordination with third-party delivery services or an in-
house delivery system to ensure timely and accurate delivery of orders.

Food ordering websites offer customers a convenient and efficient way to explore dining options, place
orders from home, and enjoy food delivered to their doorstep.

8
SYSTEM REQUIREMENTS

HARDWARE:-

CPU:- P-III & higher.

Memory:- 2 GB ram & higher.

Hard Disk :- 64 GB & higher.

System Type :- 32 /64 bit Operating System.

Screen Resolution :- 1024*768 or higher.

SOFTWARE:-

Operating system :- Windows 7 or any above version.

Software used :– VS code, Xampp Server, Chrome Browser.

9
SYSTEM DESIGN AND CODING

INTRODUCTION:-

Software design sits at the technical kernel of the software engineering


Process and is applied regardless of the development paradigm and area of application.
Design isthe first step in the development phase for any engineered product or system.
The designer goalis to produce a model or representation of an entity that will later be
built. Beginning, once system requirement have been specified and analyzed, system
design is the first of the three technical activities-designs, code and test that is required to
build and verify software.

The important can be stated with a single word “quality”. Design is the place where quality
is fostered in software development. Design provides us with representation of software
that can access for quality.

Design is the only way that we can accurately translate a customer view into a finished
software product or system. Software design serves as a foundation for all the software
engineering steps that follow. Without a strong design we risk building an unstable system-
one that will fall when small changes are made; one that will be difficult to test one whose
quality cannot be accessed until the last stage.

During design progressive refinements of data structure, program structure and procedural
details are developed reviewed and documented. System design can be viewed from either
a technical or project management perspective.

INPUT DESIGN:-

Input design is the process of converting user-oriented input to a computer based format.
Input design is a part of overall system design, which requires very careful attention. Often
the collection of input data is the most expensive part of the system. The main objectives

10
of the input design are …

1. Produce cost effective method of input.


2. Achieve highest possible level of accuracy.
3. Ensure that the input is acceptable to and understood by the staff.

Input Data:-

The goal of designing input data is to make enter easy, logical and free from errors as
possible. The entering data entry operators need to know the allocated space for each field;
field sequence and which must match with that in the source document. The format in
which the data fields are entered should be given in the input form . Here data entry is
online; it makes use of processor that accepts commands and data from the operator
through a keyboard. The input required is analyzed by the processor. It is then accepted or
rejected. Input stages include the following processes:

 Data Recording
 Data Transcription
 Data Conversion
 Data Verification
 Data Control
 Data Transmission
 Data Correction

One of the aims of the system analyst must be to select data capture method and devices,
which reduce the number of stages so as to reduce both the changes of errors and the cost.
Input types, can be characterized as:

 External
 Internal
 Operational

11
 Computerized
 Interactive

Input files can exist in document form before being input to the computer. Input design is rather
complex since it involves procedures for capturing data as well as inputting it to the computer.

12
OUTPUT DESIGN

Outputs from computer systems are required primarily to communicate the results of
processing to users. They are also used to provide a permanent copy of these result for
latter consultation
.Computer output is the most important and direct source of information to the users.
Designing computer output should proceed in an organized well throughout the manner.
The right output must be available for the people who find the system ease of use. The
outputs have been defined during the logical design stage. If not, they should defined at
the beginning of the output designing terms of types of output connect, format, response
etc. Various types of outputs are:-

 External outputs
 Internal outputs
 Operational outputs
 Interactive outputs
 Turn around outputs

All screens are informative and interactive in such a way that the user can full fill his
requirements through asking queries

13
Database Design

Table 1: admin

Table 2: cart

Table 3: customers

14
Table 4: menuitems

Table 6: orders

15
Table 7: restaurants

16
DATA FLOW DIAGRAM:

It is a graphical tool used to describe and analyze the flow of data though a system. It focuses
onthe data flowing into the system between process of in & out of data stores.

DFD’s are of two


types:
1. Physical DFD:-
The physical DFD is a model of current system & is use to ensure that the current system
hasbeen clearly understood

2. Logical DFD:-
Logical DFD are the model of proposed system. They should clearly show the
requirements on which the new system should built.

Notation Used In DFD:-

There are four simple notations are used to complete DFD‘s


i) Data flow :-

ii) External entity :-

iii) Process :-

iv) Data store :-

17
DFD FOR THE SYSTEM
LEVEL 0:-

LEVEL 1:-

18
LEVEL 2:-

19
ENTITY RELATIONSHIP DIAGRAM

Entity Relationship Diagram (ERD) can express overall logical structure of a database
graphically. The components of E-R Diagram are:

Entity:
Entity is a thing or object in a Real world that is Distinguishable from all other objects.

Relationship:
It is an association among several entities.

Weak Entity :

Weak entity is a entity that does not have any primary key.

Attributes:

A property or characteristic of an entity. Often shown as an oval or circle.

20
ENTITY RELATIONSHIP DIAGRAM

21
INPUT FORMS AND CODING
LOGINFORM:-

Coding :-

<?php
$wrongEmail= false;

$wrongPass= false;
//Checking request method.
if ($_SERVER["REQUEST_METHOD"] == "POST") {
include('connect.php');
//saving email and pass gating from web page.
$email = $_POST["email"];

$pass = $_POST["pass"];
//gating data from database.

$sql = "SELECT * FROM `customers` WHERE Email= '$email';";


$result = mysqli_query($conn, $sql);
//checking number of resule gating from database.

22
$num = mysqli_num_rows($result);
if ($num == 1) {

// gating data into a veriable named $roe


while ($row = mysqli_fetch_assoc($result)) {

// Macking passwort to database password.


if (password_verify($pass, $row['Password'])) {
session_start();

$login = true;
$_SESSION['loggedin'] = true;
$_SESSION['user'] = $email;

$_SESSION['id'] = $row['CustomerID'];
header('Location: home.php');

} else {
// if password is wrong the this message will sow.
$wrongPass= true;

}
}
}else
$wrongEmail = true;
}

?>
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

23
<link rel="stylesheet" href="utiliti.css">
<link rel="stylesheet" href="style.css">

<title>Document</title>
</head>

<body>
<?php
if ($wrongEmail) {

echo '<div class="popup-overlay" id="popup">


<div class="popup-content">
<h2>incorrect Email !</h2>

</div>
</div>

<script>
setTimeout(hidePopup, 3000);
function hidePopup() {

document.getElementById("popup").style.display = "none";
}
</script>
';
$wrongEmail=false;

};
if ($wrongPass) {
echo '<div class="popup-overlay" id="popup">

<div class="popup-content">
<h2>Incorrect Password!</h2>
</div>

</div>

24
<script>
setTimeout(hidePopup, 3000);

function hidePopup() {
document.getElementById("popup").style.display = "none";

}
</script>
';

$wrongEmail=false;
};
?>

<div class="contener">
<div class="Box">

<form method="post">
<div class="spasing">
<label>Email:</label>

<input class="inputBox" type="text" name="email">


</div>
<div class="spasing">
<label>Password</label>
<input class="inputBox" type="password" name="pass">

</div>
<div class="loginBtn">
<button class=" buttonBox">Log In</button>

<p><a href="sign.php">Click Here</a> to Sign in | <a href="admin-


login.php">Click Here</a> For admin login.</p>

</div>
</form>

25
</div>
</div>

</body>
</html>

REGISTRATION FORM :-

Coding :-
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="utiliti.css">
<link rel="stylesheet" href="style.css">
<title>Document</title>
</head>
<body>
<div class="contener">

26
<div class="Box">
<form method="post">
<div class="spasing">
<label>User Name:</label>
<input class="inputBox" type="text" name="uName">
</div>
<div class="spasing">
<label>Email:</label>
<input class="inputBox" type="email" name="email">
</div>
<div class="spasing">
<label>Password</label>
<input class="inputBox" type="password" name="pass">
</div>
<div class="spasing">
<label>Confirm Password</label>
<input class="inputBox" type="password" name="cPass">
</div>
<div class="loginBtn">
<button class="buttonBox">Sign UP</button>
<p><a href="logIn.php">Click Here</a> to Log in.</p>
</div>
</form>
<?php
//Checking if usernaem is empty or not.
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["uName"])) {
echo "<div><p class='error'>Plese enter a veled user name</p></div>";
exit();
}
//checking if email is valide or not.
if (!filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)) {
echo "<div><p class='error'>Plese enter a veled email id</p></div>";
exit();
}

27
include('connect.php');
$name = $_POST["uName"];
$email = $_POST["email"];
$sql = "SELECT * FROM `customers` WHERE Email= '$email';";
$result = mysqli_query($conn, $sql);
$num = mysqli_num_rows($result);
if ($num > 0) {
echo '<div class="popup-overlay" id="popup">
<div class="popup-content">
<h2>Email already exist !</h2>
</div>
</div>
<script>
setTimeout(hidePopup, 3000);
function hidePopup() {
document.getElementById("popup").style.display = "none";
}
</script>
';
exit();
}
// checking is password is 8 cherector long or not.
if (strlen($_POST["pass"]) < 8) {
echo '<div class="popup-overlay" id="popup">
<div class="popup-content">
<h2>Password must be atleast 8 character !</h2>
</div>
</div>
<script>
setTimeout(hidePopup, 3000);
function hidePopup() {
document.getElementById("popup").style.display = "none";
}
</script>
';

28
exit();
}
//checking is password match to conformed password or not.
if (($_POST["pass"]) !== ($_POST["cPass"])) {
echo '<div class="popup-overlay" id="popup">
<div class="popup-content">
<h2>Password Does not match !</h2>
</div>
</div>
<script>
setTimeout(hidePopup, 3000);
function hidePopup() {
document.getElementById("popup").style.display = "none";
}
</script>
';
exit();
}
$pass_hass = password_hash(($_POST["pass"]), PASSWORD_DEFAULT);
include('connect.php');
// Sendind data to the database.
$sql = "INSERT INTO `customers` (`FirstName`, `Email`, `Password`) VALUES
('$name', '$email', '$pass_hass');";
$result = mysqli_query($conn, $sql);
$sql = "INSERT INTO `cart` (`userEmail`) VALUES ('$email');";
$result = mysqli_query($conn, $sql);
echo "<div><p class='success'>Your Account is Successfully created.<br> <a
href=login.php>Click Hear</a> to login.</p></div>";
}
?>
</div>
</div>
</body>
</html>

29
ADMIN FORM :-

Coding :-

<?php
include('../connect.php');
$sql = "SELECT * FROM `customers`;";
$result = mysqli_query($conn, $sql);
$customers = mysqli_num_rows($result);

$sql = "SELECT * FROM `orders`;";


$result = mysqli_query($conn, $sql);
$orders = mysqli_num_rows($result);

$sql = "SELECT * FROM `menuitems`;";


$result = mysqli_query($conn, $sql);
$food = mysqli_num_rows($result);

$sql = "SELECT * FROM `restaurants`;";


$result = mysqli_query($conn, $sql);
$Restorent = mysqli_num_rows($result);

?>

<!DOCTYPE html>
<html lang="en">
30
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<title>Document</title>
</head>

<body>
<div class="screan">

<?php include("adminPartiols/sidePenal.php") ?>

<div class="admin-container">
<h1>Admin Dashboard</h1>

<div class="dashboard-content">

<div class="dashboard-card">
<h2 class="card-title">Total Users</h2>
<p><?php echo $customers; ?></p>
<a href="users.php" class="details-btn">View Details</a>
</div>

<div class="dashboard-card">
<h2 class="card-title">Total Orders</h2>
<p><?php echo $orders; ?></p>
<a href="order.php" class="details-btn">View Details</a>
</div>

<div class="dashboard-card">
<h2 class="card-title">Total Items of food</h2>
<p><?php echo $food; ?></p>
<a href="foodItum.php" class="details-btn">View Details</a>
</div>

<div class="dashboard-card">
<h2 class="card-title">Total Restaurent</h2>
<p><?php echo $Restorent; ?></p>
<a href="restorentDetales.php" class="details-btn">View Details</a>
</div>

<!-- Add more dashboard cards with different information -->

31
</div>
</div>
</div>

<!-- Your JavaScript code can be added here for dynamic functionality -->

</body>

</html>

MAINMENU FORM :-

Coding :-
<?php
//connecting to database.
include('connect.php');
?>
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="utiliti.css">
<title>Document</title>
32
</head>

<body>

<?php
//adding navbar on the page.
include('partials/nev.php');
?>
<?php
if (isset($_GET['hotel_ID'])) {
$hotelID = $_GET['hotel_ID'];
$sql = "SELECT * FROM `menuitems` WHERE `RestaurantID` = '$hotelID'";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
$name = $row['Name'];
$price = $row['Price'];
$showItems = true;
}
if ($showItems) {
//showing items on the page.
echo '<div class="gride">';
while ($row = mysqli_fetch_assoc($result)) {
echo '
<div class="foodContainer">
<div>
<a href="#" class="linkss" onclick="addToCart(' . $row['MenuItemID'] . ')">
<div class="food_box">
<img class="food_img" src="img/hotels/' . $row['RestaurantID'] . '/' .
$row['Name'] . '.jpg" alt="Food">
</div>
<div class="food_txt">
<p>' . $row['Name'] . '<br>₹' . $row['Price'] . '</p>
</div>
</a>
</div>
</div>
';
}
}
?>

<script>
function addToCart(menuItemId) {
// Display the confirmation popup
33
var isConfirmed = window.confirm("Are you sure you want to add this item to your
cart?");

// Check the result of the confirmation


if (isConfirmed) {
// Redirect to the cart.php page or perform any other action to add the item to the cart
window.location.href = 'cart.php?food_id=' + menuItemId;
} else {
// Do nothing or provide feedback to the user
alert("Item not added to the cart.");
}
}
</script>

</div>
</body>

</html>

34
CART FORM:-

Coding :-
<?php
include('connect.php');
?>

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">

35
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Shopping Cart</title>
<link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="utiliti.css">
</head>

<body>

<?php include('partials/nev.php');
$email = $_SESSION['user'];
$result = $conn->query("SELECT array FROM cart where userEmail= '$email'");
$row = $result->fetch_assoc();
if (!empty($row['array'])) {
$cart = explode(',', $row['array']);
} else {
$cart = array();
}

$total = 0;

if (isset($_GET['food_id'])) {

$id = $_SESSION['user'];
$food_id = $_GET['food_id'];
array_push($cart, $food_id);
$csvString = implode(',', $cart);
$result = $conn->query("UPDATE cart SET array='$csvString' WHERE userEmail =
'$id';");
header("location: cart.php");
}
if (isset($_GET['delete'])) {
$id = $_SESSION['user'];
$delete = $_GET['delete'];
$i = 0;
foreach ($cart as $value) {
if ($delete == $value) {
unset($cart[$i]);
if (!empty($cart)) {
$csvString = implode(',', $cart);
}
$result = $conn->query("UPDATE cart SET array='$csvString' WHERE userEmail =
'$id';");
36
header("location: cart.php");
}
$i++;
}
}
?>
<div class="cart-container">
<?php
if (!empty($cart)) {
foreach ($cart as $value) {
echo $value . "<br>";
$result = $conn->query("SELECT * FROM `menuitems` WHERE MenuItemID=
'$value'");
$row = $result->fetch_assoc();

?>
<div class="product2">
<img src="img/hotels/<?php echo $row['RestaurantID'] ?>/<?php echo
$row['Name'] ?>.jpg" alt="Product Image">
<div class="product-info">
<h3><?php echo $row['Name'] ?></h3>
<?php
if (isset($_GET[$row['Name']])) {
$q = $_GET[$row['Name']];
$price = $row['Price'];
$price = $price * $q;
$row['Price'] = $price;
}

?>
<p class="product-price">$<?php echo $row['Price'];
$total = $total + $row['Price']; ?></p>
<a href="cart.php?delete=<?php echo $row['MenuItemID'] ?>"><button
class="delete-btn">Delete</button></a>
<div class="quantity-container">
<form>
<input type="number" name="<?php echo $row['Name'] ?>" value="1">
<Button type="submit">Ok</Button>
</form>
</div>
</div>
</div>
37
<?php }
} ?>

<div class="total">
Total: <?php echo $total; ?>
</div>
<button class="checkout-btn" onclick="openPopup()">click hear to add address</button>
<a onclick="downloadFile()" href="orderPlased.php?price=<?php echo $total ?>"
class="checkout-btn">Click Hear to Place your Order</a>

<div id="overlay">
<div id="popup">
<span id="closeBtn" onclick="closePopup()">X</span>
<h2>Popup Form</h2>
<form>
<!-- Your form fields go here -->
<label for="city">City :</label>
<input type="text" id="city" name="city" required>
<br>
<br>
<label for="address">Address: </label>
<input type="text" id="address" name="address" required>
<br>
<br>
<label for="pincode">Pincode: </label>
<input type="number" id="pincode" name="pincode" required>
<br>
<br>
<input class="checkout-btn" type="button" value="Submit" style="
background-color: #b2b53ebf;
" onclick="closePopup()">
</form>
</div>
</div>
</div>
</body>
<script>
function openPopup() {
document.getElementById('overlay').style.display = 'flex';
}

38
function closePopup() {
document.getElementById('overlay').style.display = 'none';
}
</script>
<script>
function downloadFile() {
// Create a blob with the file content
const fileContent = 'Thanks for Ordering your total price is: <?php echo $total; ?>';
const blob = new Blob([fileContent], {
type: 'text/plain'
});

// Create an anchor element


const a = document.createElement('a');

// Set the download attribute and create a URL from the blob
a.download = 'output.txt';
a.href = window.URL.createObjectURL(blob);

// Append the anchor element to the body


document.body.appendChild(a);

// Trigger a click on the anchor element to start the download


a.click();

// Remove the anchor element from the body


document.body.removeChild(a);
}
</script>

</html>

39
USER ADDING FORM:-

Coding :-
<?php
$showMwssage= false;
//Checking if usernaem is empty or not.
if ($_SERVER["REQUEST_METHOD"] == "POST") {

include('../connect.php');
$name = $_POST["uName"];
$email = $_POST["email"];
$pass_hass = password_hash(($_POST["pass"]), PASSWORD_DEFAULT);

// Sendind data to the database.


$sql = "INSERT INTO `customers` (`FirstName`, `Email`, `Password`) VALUES ('$name',
'$email', '$pass_hass');";
$result = mysqli_query($conn, $sql);
$showMwssage= true;
}

?>

<!DOCTYPE html>
40
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<title>Document</title>
</head>

<body>
<?php
if ($showMwssage) {
echo '<div class="popup-overlay" id="popup">
<div class="popup-content">
<h2>User added Successful</h2>
</div>
</div>
<script>
setTimeout(hidePopup, 3000);
function hidePopup() {
document.getElementById("popup").style.display = "none";
}
</script>
';
}
?>

<div class="screan">
<?php include("adminPartiols/sidePenal.php") ?>

<div class="admin-container">
<h1>Add User</h1>
<div>
<form class="add-food-form" method="POST">
<input type="text" name="uName" placeholder="Enter Name">
<input type="email" name="email" placeholder="Enter Email">
41
<input type="password" name="pass" placeholder="Enter Password">
<button type="submit">Add User</button>
</form>
</div>
</div>
</div>
</body>
</html>

ADDING FOOD ITEM FORM :-

Coding :-
<?php
include('../connect.php');
$showMwssage = false;
//Checking if usernaem is empty or not.
if ($_SERVER["REQUEST_METHOD"] == "POST") {

$Fname = $_POST["foodName"];
$dec = $_POST["description"];
$price = $_POST["price"];
$restaurant = $_POST["restaurant"];

42
// Sendind data to the database.
$sql = "INSERT INTO `menuitems` (`RestaurantID`, `Name`, `Description`, `Price`)
VALUES ('$restaurant', '$Fname', '$dec', '$price');";
$result = mysqli_query($conn, $sql);
$showMwssage = true;
}

?>

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<title>Document</title>
</head>

<body>
<?php
if ($showMwssage) {
echo '<div class="popup-overlay" id="popup">
<div class="popup-content">
<h2>Item added Successful</h2>
</div>
</div>
<script>
setTimeout(hidePopup, 3000);
function hidePopup() {
document.getElementById("popup").style.display = "none";
}
</script>
';
}
?>

43
<div class="screan">
<?php include("adminPartiols/sidePenal.php"); ?>

<div class="admin-container">
<h1>Food Items</h1>

<div class="add-food-form">
<h2>Add Food Item</h2>
<form method="POST" enctype="multipart/form-data"> <!-- Form to add food item -
->
<input type="text" name="foodName" placeholder="Enter Food Name">
<input type="text" name="description" placeholder="Enter Description">
<input type="number" name="price" placeholder="Enter Price">
<select name="restorent">
<?php
$sql = "SELECT * FROM `restaurants`;";
$result = mysqli_query($conn, $sql);
while ($row = mysqli_fetch_assoc($result)) {
echo '<option value="' . $row['RestaurantID'] . '">' . $row['Name'] . '</option>';
}
?>

</select>
<input type="file" name="image">
<button type="submit" value="Upload Image" name="submit">Add Food
Item</button>
</form>
</div>
</div>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_FILES["image"])) {
$restaurant = $_POST['restorent'];
$targetDirectory = "../img/Hotels/$restaurant/";

if (!file_exists($targetDirectory)) {
mkdir($targetDirectory, 0777, true);
}

44
// Define a custom filename here (you can change this)
$customFileName = $Fname; // Replace with your preferred filename
$imageFileType = strtolower(pathinfo($_FILES["image"]["name"],
PATHINFO_EXTENSION));
$targetFile = $targetDirectory . $customFileName . ".$imageFileType";

// Check if the image file is an actual image or a fake image


$check = getimagesize($_FILES["image"]["tmp_name"]);

$uploadOk = true; // You might set this to false based on your validation checks

if ($check !== false) {


// Your additional checks for file type, size, etc. here
// ...

// If $uploadOk is still true, attempt to upload the file


if ($uploadOk) {
if (move_uploaded_file($_FILES["image"]["tmp_name"], $targetFile)) {

} else {
echo "Sorry, there was an error uploading your file.";
}
}
} else {
echo "File is not an image.";
$uploadOk = false;
}
}

?>

</body>

</html>

45
OUTPUT FORM

REGISTRATION :-

SEAECHING:-

46
CLICKING:-

ORDERING:-

47
ADDING USER BY ADMIN:-

48
CONCLUSION

This thesis explores the impact of food ordering websites on convenience, accessibility, and the dining
experience. It highlights the role of technology in bridging the gap between consumers and restaurants,
fostering a seamless and efficient process for placing orders. The study highlights the positive influence
of food ordering websites on customer satisfaction, with users enjoying the convenience of browsing
diverse menus, customizing orders, and enjoying doorstep delivery. The integration of user-friendly
interfaces, secure payment gateways, and real-time tracking systems has further enhanced the user
experience, contributing to widespread adoption. The economic implications for restaurants are
highlighted, with potential for increased revenue and expanded customer reach through online presence.
The digitalization of the food industry has proven to be a lucrative avenue for businesses, enabling them
to adapt to changing consumer behaviors and market trends. Challenges such as data security concerns
and the need for continuous innovation are acknowledged, but ongoing advancements and improvements
are likely to ensure sustained growth. This thesis affirms that food ordering websites have become integral
players in the modern food ecosystem, redefining the way people interact with food services.

49
LIMITATIONS

 For delivery user have to wait for some time, because food have to transfer from restaurant to users
address.
 User can only see those restaurants in the website which are in the website’s database.

50
BIBLOGRAPHY

The Bibliography contains reference to all the documents that were referred for the
creation andsuccessful completion of the project. It contains the names of the referred
software engineering documents, visual basic technical and standards.

1. http://Stackoverflow.com
2. https://www.codewithharry.com/
3. www.youtube.com
4. https://www.php.net/docs.php
5. chat.openai.com

51

You might also like