Online Cake Ordering System Project
Online Cake Ordering System Project
PROJECT DOCUMENTATION
ON
SUBMITTED BY
Smita Nanaware
Seat No-13098
Prof.Santosh.B. Takale
MCA-1st(sem-2)
DATTAKALA GROUP OF INSTITUTIONS,
Faculty of management,
MASTER OF COMPUTER Application
SWAMI- CHINCHOLI(BHIGWAN), TAL- DAUND, DIST- PUNE 413 130.
Certificate
1 Introduction
1.1 Abstract
2 Proposed System
4 Coding
6 Proposed Enhancements
7 Conclusion
8 Bibliography
Introduction:
Welcome to our Cake Ordering System powered by PHP, where your sweetest
cravings are just a click away. Step into our virtual bakery, a digital haven where
the scent of freshly baked cakes wafts through the air and temptation lurks around
every corner.
With our user-friendly interface, ordering the perfect cake for any occasion has
never been easier. From birthdays to weddings to spontaneous moments of
indulgence, we've got you covered with our diverse selection of mouth-watering
treats.
Customization is key, and our Cake Ordering System puts the power in your
hands. Choose your favourite flavour’s, sizes, and decorations to create a cake
that's as unique as you are.
Once you've made your selections, our streamlined checkout process ensures a
seamless experience from start to finish. With secure payment options and
reliable delivery, your cake will arrive fresh and ready to delight.
Key Features:
3. Order Placement: Users can select cakes from the catalog, specify
customization options (if any), and add them to their shopping cart.
4. Shopping Cart Management: Customers can view and modify the items in their
shopping cart before proceeding to checkout.
6. Order Tracking: Users can track the status of their orders in real-time, from
placement to delivery.
9. Inventory Management: Admins can add new cakes, update existing listings,
and track stock levels to ensure timely replenishment.
• This system helps customers to place orders through online also eases the
workload on the staff of cake shop.
• Online cake order system is a web-based application which enables customers
to order cakes through online for home delivery or pick up from the shop.
• This system will give option to the customer for online payment.
• This system will provide customer all the details of his order before making
order. This confirmation will help customers to check the items ordered with their
prices.
• This system reduced the paper work.
• It will reduce the purchasing time of the customers.
1.4 Advantages of system:
• It is a system that allows users to check for various cakes available at the
online store and purchase online.
Hardware Requirement:
The hardware requirements include:
• Processor: Intel 5.0 GHz or higher processor
• RAM Capacity: 1 GB (min)
• Hard Disk: 298GB
• Keyboard: Standard keyboard
• Mouse: Optical
• Monitor: “15” Colour.
2.Proposed System:
3.Operational Feasibility:
• A system will be used if it is developed and implemented to check if
it operationally feasible. It is carried out by small number of the people
familiar to information system, techniques and the rules of organization.
• The person must be skilled and experienced in the system analysis and
design process.
2.2 Objectives of Proposed System:
The objectives of the proposed Cake Ordering System in PHP are as follows:
1. Efficient Ordering Process: Simplify the cake ordering process for
customers by providing a user-friendly interface, thereby enhancing user
experience and satisfaction.
1. Customers:
- General Users : These are individuals who visit the website or use the mobile
application to browse through available cakes, place orders, and make payments.
They interact with the system to select cake options, provide delivery details, and
track the status of their orders.
- Registered Users: Customers who create accounts on the platform gain access
to additional features such as order history, saved preferences, and personalized
recommendations. They benefit from a more streamlined ordering process and
can easily manage their profiles and preferences.
- Guest Users: Users who prefer not to create accounts can still place orders as
guests. While they may miss out on certain benefits like order history, they can
still make purchases without the need for account creation.
Each user group interacts with the online cake ordering system in PHP in different
ways, with distinct roles, privileges, and objectives. The system's design should
cater to the needs and preferences of each user category, providing a seamless
and satisfying experience for all stakeholders involved.
3.Analysis and Design:
3.1 Data Dictionary:
1.Registration Table:
Sr.no Name Datatype Size Constraints
1 UserID Varchar 120 Primary key
2 Uname Varchar 120 -
2 ContactID Int 50 -
2.login Table:
Sr.no Name Datatype Size Constraints
1 UserID Int 50 Primary key
2 Uname Varchar 120 -
3 Password Int 50 -
3.User Table:
Sr.no Name Datatype Size Constraints
1 UserID Int 50 Primary key
2 User_ name Varchar 120 -
4 User_email Varchar 120 -
4.Admin table:
6.Bill table:
7.Product table:
8.Payment table:
Contact id
Username
Registration has Login
Contact Id
Username
has
has
has
Pay amount
3.2 Use Case Diagram:
Registration
Login
Dashboard
Order
Cake selection
Customer Admin
Delivery
Payment
3.3 Class Diagram
Cake
Customer C.no:Integer
Name:String
Cust.id:Integer
Type:String
Name:String
Price:String
Phn.no:Integer
Address:String Setprice():
Settype():
Order():
Flavor
Registration Flavors:String
Order Occasions:String
Name:String
Order no:Integer Contact
Name:String detail:Integer
Type:String
Date:Integer
Bill(): Register():
3.4 Object Diagram:
Customer
Cust.id: 0001
Name: abc
Phone.no: 1234567890
Address: xyz
Request to Avail
Service
Confirmation if
Cake is available
cake is available
Display orders
Order
Confirm
End
3.6 sequence Diagram:
---
Customer Products Cart Order Feedback Database
Login()
Authorisation
Result()
Response () Response ()
Response ()
Response ()
Response ()
3.7 Deployment Diagram:
Database Server
MySQL
Server
INDEX.php:
<?php
if (isset($_GET['login_success']) && $_GET['login_success'] == 1) {
echo "<script>alert('Logged in!')</script>";
echo "<script>window.location.assign('index.php')</script>";
}
if (isset($_GET['logout_success']) && $_GET['logout_success'] == 1) {
echo "<script>alert('Logged out!')</script>";
echo "<script>window.location.assign('index.php')</script>";
}
session_start();
if (!empty($_SESSION['cart'])) {
$printCount = count($_SESSION['cart']);
}
else {
$printCount = 0;
}
if (!empty($_SESSION['user_users_id']) &&
!empty($_SESSION['user_users_username'])) {
$printUsername = $_SESSION['user_users_username'];
}
else {
$printUsername = "None";
}
?>
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-
to-fit=no">
<title>OCS - Home</title>
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="css/bootstrap.min.css">
<link href="fonts/circular-std/style.css" rel="stylesheet">
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="css/userpage.css">
<link rel="stylesheet" href="fonts/fontawesome/css/fontawesome-all.css">
<link rel="stylesheet" type="text/css" href="css/owl.carousel.min.css">
<link rel="stylesheet" type="text/css" href="css/owl.theme.default.min.css">
</head>
<body>
<!--
=========================================================
===== -->
<!-- main wrapper -->
<!--
=========================================================
===== -->
<div class="dashboard-main-wrapper">
<!--
=========================================================
===== -->
<!-- navbar -->
<!--
=========================================================
===== -->
<div class="dashboard-header">
<nav class="navbar navbar-expand-lg bg-white fixed-top">
<a class="navbar-brand" href="#">Online Cake Shop</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-
target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span><i class="fas fa-bars mx-3
"></i></span>
</button>
<div class="collapse navbar-collapse " id="navbarSupportedContent">
<ul class="navbar-nav ml-auto navbar-right-top">
<li class="nav-item">
<a class="nav-link active" href="index.php">Home</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link" href="#" id="navbarDropdownMenuLink1" data-
toggle="dropdown" aria-haspopup="true" aria-expanded="false">Shop</a>
<div class="dropdown-menu dropdown-menu-right" aria-
labelledby="navbarDropdownMenuLink1">
<?php
require_once('config.php');
$select = "SELECT * FROM cake_shop_category";
$query = mysqli_query($conn, $select);
while ($res = mysqli_fetch_assoc($query)) {
?>
<a class="dropdown-item" href="shop.php?category=<?php echo
$res['category_id'];?>">
<?php echo $res['category_name'];?>
</a>
<?php
}
?>
</div>
</li>
<li class="nav-item">
<a class="nav-link" href="cart.php"><i class="fas fa-shopping-cart"></i>
<span class="badge badge-pill badge-secondary"><?php echo
$printCount;?></span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="about.php">About us</a>
</li>
<li class="nav-item">
<a class="nav-link" href="contact.php">Contact</a>
</li>
<li class="nav-item dropdown nav-user">
<a class="nav-link nav-user-img" href="#" id="navbarDropdownMenuLink2"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><img
src="uploads/default-image.jpg" alt="" class="user-avatar-md rounded-
circle"></a>
<div class="dropdown-menu dropdown-menu-right nav-user-dropdown" aria-
labelledby="navbarDropdownMenuLink2">
<div class="nav-user-info">
<h5 class="mb-0 text-white nav-user-name"><?php echo
$printUsername;?></h5>
<span class="status"></span><span class="ml-2">Available</span>
</div>
<a class="dropdown-item" href="account_users.php"><i class="fas fa-user mr-
2"></i>Account</a>
<a class="dropdown-item" href="login_users.php"><i class="fas fa-sign-in-alt
mr-2"></i>Login</a>
<a class="dropdown-item" href="logout_users.php"><i class="fas fa-power-off
mr-2"></i>Logout</a>
</div>
</li>
</ul>
</div>
</nav>
</div>
<!--
=========================================================
===== -->
<!-- end navbar -->
<!--
=========================================================
===== -->
<!--
=========================================================
===== -->
<!-- wrapper -->
<!--
=========================================================
===== -->
<!-- <div class="dashboard-wrapper"> -->
<div class="container-fluid dashboard-content">
<div class="row">
<div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12">
<div id="carouselExampleControls" class="carousel slide" data-
ride="carousel">
<div class="carousel-inner rounded">
<div class="carousel-item active">
<img class="d-block w-100" src="uploads/1.jpg" alt="First slide">
<div class="carousel-caption d-md-block pb-5">
<h3 class="text-white">GOOD FOOD, GOOD LIFE</h3>
<p>Cakes are special, every celebration ends with something sweet like a cake
and people remember it's all about the memories.</p>
<a href="about.php" class="btn btn-rounded btn-outline-light">Read More</a>
</div>
</div>
<div class="carousel-item">
<img class="d-block w-100" src="uploads/2.jpg" alt="Second slide">
<div class="carousel-caption d-md-block pb-5">
<h3 class="text-white">The cake we bake with love</h3>
<p>Take the shredded pieces of your life and bake a master cake out of it.</p>
<a href="about.php" class="btn btn-rounded btn-outline-light">Read More</a>
</div>
</div>
<div class="carousel-item">
<img class="d-block w-100" src="uploads/3.jpg" alt="Third slide">
<div class="carousel-caption d-md-block pb-5">
<h3 class="text-white">Love at first bite</h3>
<p>You can’t be down when you are holding a cupcake.</p>
<a href="about.php" class="btn btn-rounded btn-outline-light">Read More</a>
</div>
</div>
<div class="carousel-item">
<img class="d-block w-100" src="uploads/5.jpg" alt="Fourth slide">
<div class="carousel-caption d-md-block pb-5">
<h3 class="text-white">A party without cake is really just a meeting.</h3>
<p>Cakes are special, every celebration ends with something sweet like a cake
and people remember it's all about the memories.</p>
<a href="about.php" class="btn btn-rounded btn-outline-light">Read More</a>
</div>
</div>
<div class="carousel-item">
<img class="d-block w-100" src="uploads/6.jpg" alt="Fifth slide">
<div class="carousel-caption d-md-block pb-5">
<h3 class="text-white">Eat a cake.</h3>
<p>Cakes are special, every celebration ends with something sweet like a cake
and people remember it's all about the memories.</p>
<a href="about.php" class="btn btn-rounded btn-outline-light">Read More</a>
</div>
</div>
<div class="carousel-item">
<img class="d-block w-100" src="uploads/7.jpg" alt="Sixth slide">
<div class="carousel-caption d-md-block pb-5">
<h3 class="text-white">View our categories.</h3>
<p>Cakes are special, every celebration ends with something sweet like a cake
and people remember it's all about the memories.</p>
<a href="about.php" class="btn btn-rounded btn-outline-light">Read More</a>
</div>
</div>
</div>
<a class="carousel-control-prev" href="#carouselExampleControls"
role="button" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span> </a>
<a class="carousel-control-next" href="#carouselExampleControls"
role="button" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span> </a>
</div>
</div>
</div>
</div>
</div>
<?php
}
?>
</div>
</div>
</div>
</div>
<!--
=========================================================
===== -->
<!-- footer -->
<!--
=========================================================
===== -->
<div class="footer">
<div class="container-fluid">
<div class="row">
<div class="col-xl-6 col-lg-6 col-md-12 col-sm-12 col-12">
Copyright © 2018 Concept. All rights reserved. Dashboard by <a
href="https://colorlib.com/wp/">Colorlib</a>.
</div>
<div class="col-xl-6 col-lg-6 col-md-12 col-sm-12 col-12">
<div class="text-md-right footer-links d-none d-sm-block">
<a href="javascript: void(0);">About</a>
<a href="javascript: void(0);">Support</a>
<a href="javascript: void(0);">Contact Us</a>
</div>
</div>
</div>
</div>
</div>
<!--
=========================================================
===== -->
<!-- end footer -->
<!--
=========================================================
===== -->
<!-- </div> -->
</div>
<!--
=========================================================
===== -->
<!-- end main wrapper -->
<!--
=========================================================
===== -->
<!-- Optional JavaScript -->
<script src="js/jquery-3.3.1.min.js"></script>
<script src="js/bootstrap.bundle.js"></script>
<script src="js/jquery.slimscroll.js"></script>
<script src="js/main-js.js"></script>
<script type="text/javascript" src="js/owl.carousel.min.js"></script>
<script>
$(document).ready(function(){
$('.owl-carousel').owlCarousel({
loop: true, margin: 10, dots: 0, autoplay: 4000, autoplayHoverPause: true,
responsive:{
0:{items:1}, 600:{items:2}, 1000:{items:4}
}
})
});
</script>
</body>
</html>
Login.php:
<?php
if (isset($_GET['login_error']) && $_GET['login_error'] == 1) {
echo "<script>alert('Username or Password does not exist!')</script>";
echo "<script>window.location.assign('login_users.php')</script>";
}
?>
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-
to-fit=no">
<title>OCS - Login</title>
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="css/bootstrap.min.css">
<link href="fonts/circular-std/style.css" rel="stylesheet">
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="fonts/fontawesome/css/fontawesome-all.css">
<style>
html,
body {
height: 100%;
}
body {
display: -ms-flexbox;
display: flex;
-ms-flex-align: center;
align-items: center;
padding-top: 40px;
padding-bottom: 40px;
}
</style>
</head>
<body>
<!--
=========================================================
===== -->
<!-- login page -->
<!--
=========================================================
===== -->
<div class="splash-container">
<div class="card ">
<div class="card-header text-center"><a href="#"><h2 class="text-
primary">Online Cake Shop</h2></a><span class="splash-description">Please
enter your user information.</span></div>
<div class="card-body">
<form id="form" data-parsley-validate="" method="post"
action="login_check_users.php">
<div class="form-group">
<input class="form-control form-control-lg" type="text"
name="users_username" data-parsley-trigger="change" required=""
placeholder="Username" autocomplete="off">
</div>
<div class="form-group">
<input class="form-control form-control-lg" id="pass1" type="password"
required="" placeholder="Password" name="users_password">
</div>
<button type="submit" class="btn btn-primary btn-lg btn-block">Sign
in</button>
</form>
</div>
<div class="card-footer bg-white p-0 ">
<div class="card-footer-item card-footer-item-bordered">
<a href="register.php" class="footer-link">Create An Account</a></div>
<div class="card-footer-item card-footer-item-bordered">
<a href="#" class="footer-link">Forgot Password</a>
</div>
</div>
</div>
</div>
<!--
=========================================================
===== -->
<!-- end login page -->
<!--
=========================================================
===== -->
<!-- Optional JavaScript -->
<script src="js/jquery-3.3.1.min.js"></script>
<script src="js/bootstrap.bundle.js"></script>
<script src="js/parsley.js"></script>
<script>
$('#form').parsley();
</script>
</body>
</html>
5. Limitation Of Proposed System:
4. User Experience: Poorly designed user interfaces or unintuitive user flows can
lead to a subpar user experience, resulting in frustration and abandonment of the
ordering process.
10. Feedback and Improvement: Without mechanisms in place for collecting user
feedback and analyzing system performance, it can be difficult to identify areas
for improvement and enhance the overall effectiveness of the online cake
ordering system.
6.Proposed Enhancements:
Enhancing an online cake ordering system in PHP can significantly improve its
functionality, user experience, and overall effectiveness. Here are some proposed
enhancements:
3. Advanced Search and Filtering: Enhance the search functionality to allow users
to easily find cakes based on criteria such as flavor, type, occasion, dietary
restrictions, and price range.
6. Integration with Social Media: Enable users to share their favorite cakes or
recent orders on social media platforms, increasing brand visibility and
potentially attracting new customers.
15. Accessibility Compliance: Ensure that the system complies with accessibility
standards such as WCAG (Web Content Accessibility Guidelines), making it
accessible to users with disabilities and enhancing inclusivity.
Ultimately, these enhancements not only elevate the user experience but also
contribute to the system's competitiveness in the market, driving customer
satisfaction, loyalty, and business growth. With continuous improvement and
adaptation to user needs and technological advancements, the online cake
ordering system can remain relevant and successful in the dynamic landscape of
e-commerce.
8.Bibliography:
• http://www.tutorialspoint.com/index.html
• http://www.tutorialspoint.com
• http://www.w3schools.com