TABLE OF CONTENT
TABLE OF CONTENT
1.1.1 Features
1.2
Objective
2 SYSTEM ANALYSIS
3 SYSTEM CONFIGURATION
4 SYSTEM DESIGN
5 SYSTEM METHODOLOGY
6 LANGUAGE REFERENCE
7 DATABASE STRUCTURE
8 SCREEN DESIGN
9 CODING
10 OUTPUTS
ABSTRACT :
The advancement of digital technology has revolutionized the retail industry, shifting consumer
preferences from physical stores to online shopping. This E-Commerce Website project focuses on selling
electronic products, including TVs, CCTV cameras, solar panels, and PC-building components. The
platform aims to provide a smooth and efficient shopping experience by integrating features such as secure
payment processing, inventory management, user authentication, and order tracking.
The system is developed using PHP, HTML, CSS, and JavaScript for a dynamic and responsive
front-end, while MySQL ensures structured database management. The platform allows customers to
browse products, filter items based on categories, compare features, and purchase securely. Additionally,
the admin panel enables vendors to manage inventory, update prices, and track customer orders in real
time.
A unique aspect of this project is the inclusion of AI-driven product recommendations, which
analyze customer behavior to suggest relevant products. Security is a priority, with SSL encryption,
password hashing, and secure login mechanisms implemented to protect user data. The payment gateway
is integrated with multiple options, including credit/debit cards, UPI, and net banking for seamless
transactions.
Future enhancements could include a chatbot for customer support, mobile app integration, and
blockchain-based transaction security. This mini-project serves as a foundation for a scalable and feature-
rich e-commerce platform suitable for diverse business needs.
INTRODUCTION
Introduction
1.1 About the Project
With the rapid advancement of technology and the increasing preference for
online shopping, businesses are shifting towards e-commerce platforms to reach a
broader audience. This project focuses on developing an E-Commerce Website for
selling electronic products such as TVs, CCTV cameras, solar panels, and PC-
building components.
🔹 Search & Filtering – Advanced product search and filtering for better usability.
🔹 Discount & Offers Module – Admin can create seasonal discounts and promo
code.
Product Reviews & Ratings – Customers can provide feedback to enhance trust.
🔹 Push Notifications & Email Alerts – Order updates and promotional offers
notifications.
payments.
1.2 Features of the System
To ensure a seamless shopping experience and efficient management, the e-
commerce platform incorporates the following key features:
✅ User Authentication – Secure login and registration system for customers and
administrators.
✅ Shopping Cart & Checkout – Customers can add, remove, and modify cart items
free transactions.
product is sold.
✅ Order Tracking & History – Customers can track their orders and view past
purchases.
✅ Admin Dashboard – Admin can manage users, orders, products, and reports.
✅ Customer Support System – Live chat, contact form, and FAQs for issue
resolution.
orders.
✅ Product Recommendation System – AI-based suggestions for personalized
shopping.
electronic products.
user interface.
authentication techniques.
business owners.
suggestions.
Physical Store Dependency – Customers must visit physical locations to browse and
purchase products.
Limited Customer Reach – Sales are restricted to local customers, limiting business
expansion.
Manual Order Processing – Orders are taken over the counter or via phone calls,
leading to errors.
The existing system lacks automation, online accessibility, and efficient customer
interaction, which results in lower sales, higher operational costs, and slow business
growth.
Online Store Accessibility – Customers can browse and purchase products from
anywhere, anytime.
Expanded Customer Base – The online platform allows global reach, increasing sales
potential.
Automated Order Processing – Orders are processed instantly with digital invoices and
notifications.
Real-Time Inventory Management – Admins can monitor stock levels and update
products dynamically.
Multiple Payment Methods – Integration of UPI, debit/credit cards, and net banking for
flexibility.
User Accounts & Order Tracking – Customers can create accounts, save orders, and track
deliveries.
Improved Security Features – Secure login system, encrypted payments, and SSL
protection for user data.
Admin Dashboard – Store owners can add/edit products, manage customers, and track
revenue.
The proposed system eliminates the drawbacks of traditional commerce, making it cost-
effective, efficient, and user-friendly.
3. SYSTEM CONFIGURATION
Back-End: PHP
Version Control: Git & GitHub for collaboration and code management
Processes:
Car Registration Details: Admin enters car details into the Car Database.
Choosing the Car: Customers select a car, and details are retrieved from the
Car Database.
Activity Diagram
4.2 Activity Diagram
An Activity Diagram represents the workflow of user interactions.
Customer Activity Flow
User visits the website.
Registers or logs into their account.
SYSTEM METHODOLOGY
5. SYSTEM METHODOLOGY
• System methodology defines the approach used in developing the
ECommerce Website. It provides a structured plan to ensure efficient
development, testing, and deployment.
5.1 Software Development Methodology
• For this project, the Waterfall Model or Agile Model can be used, depending
on project requirements.
•
• Waterfall Model (Sequential Approach)
• Requirement Analysis – Understanding the needs of users and business
owners.
System Design – Planning the architecture, UI/UX, and database structure.
User Feedback Integration – Changes and improvements are made based on user
feedback.
The Agile Model is often preferred for e-commerce platforms because of its adaptability
to market trends and customer needs.
Cart & Order Processing – Customers add products to the cart and proceed to
checkout.
Order Tracking & Management – Users track orders, and admins handle
shipments.
LANGUAGE REFERENCE
6. LANGUAGE REFERENCE
The development of the E-Commerce Website is based on a combination of
front-end and back-end technologies that ensure smooth user interactions, data
management, and a secure transaction process. The project follows a structured
and modular approach to development, ensuring flexibility, maintainability,
and scalability.
Uses properties like Flexbox and Grid for better alignment of page elements.
JavaScript (JS)
Adds dynamic behavior and interactivity to the web pages.
Works alongside libraries like jQuery (if used) to simplify complex operations.
Ensures data integrity and consistency by using primary and foreign keys.
Implements data security features like encryption, user roles, and access
permissions.
Orders Table: Maintains order history, including user ID, payment status, and
shipping details.
Cart Table: Temporarily stores products added to the shopping cart before
checkout.
Security Measures
Form validation and sanitization: Prevent SQL injection and cross-site scripting
(XSS) attacks.
Performance Optimization
Minified CSS and JS files to reduce page load time.
6.5 Benefits of Using PHP, HTML, CSS, and JavaScript for E- Commerce
Using PHP, HTML, CSS, and JavaScript for an e-commerce platform
provides several advantages:
Open-source and cost-effective: No need for expensive licenses, reducing
development costs.
Scalability: The system can be expanded with new features as the business
grows.
DATABASE STRUCTURE
The E-Commerce Website requires a well-structured database to store and manage user
details, product information, orders, and transactions. The database ensures data consistency,
integrity, and security while optimizing performance.
Colu
Descrip
mn Data Type Constraints
tion
Name
PRIMARY KEY,
order_ Unique
INT AUTO_INCREMEN
id order ID
T
Custom
user_i FOREIGN KEY er
INT
d (References Users) placing
order
Total
total_p DECIMAL(1 cost of
NOT NULL
rice 0,2) the
order
ENUM('pend
ing',
Order
status 'shipped', DEFAULT 'pending'
status
'delivered',
'cancelled')
DEFAULT
create TIMESTAM Order
CURRENT_TIMES
d_at P date
TAMP
Database Relationships
Users & Orders → One user can place multiple orders.
Orders & Order_Items → One order can contain multiple products.
Products & Categories → One product belongs to one category.
Users & Cart → One user can add multiple products to the cart.
Sample SQL Queries
Create Users Table
CREATE TABLE users (
user_id INT AUTO_INCREMENT PRIMARY KEY, name
VARCHAR(100) NOT NULL, email VARCHAR(150)
UNIQUE NOT NULL, password VARCHAR(255) NOT
NULL, phone VARCHAR(15) NOT NULL, address TEXT,
user_type ENUM('admin', 'customer') DEFAULT 'customer',
Conclusion
The database structure is designed to handle all user interactions, product
management, order processing, and cart operations efficiently. By implementing relational
database principles and optimization techniques, the e-commerce platform ensures high
performance, data integrity, and security.
SCREEN DESIGNS
HOME PAGE:
ABOUT US PAGE
CONTACT US PAGE:
ADMIN PAGE:
MANAGE USER:
MANAGE PRODUCTS
CODING
HOME
<?php
include 'components/connect.php';
session_start();
if(isset($_SESSION['user_id'])){
$user_id = $_SESSION['user_id'];
}else{
$user_id = '';
};
include 'components/wishlist_cart.php';
?>
<!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.0">
<title>vps enterprises</title>
<div class="home-bg">
<section class="home">
<div class="swiper-wrapper">
</div>
<div class="swiper-pagination"></div>
</div>
</section>
</div>
<section class="category">
<div class="swiper-wrapper">
</div>
<div class="swiper-pagination"></div>
</div>
</section>
<section class="home-products">
<div class="swiper-wrapper">
<?php
$select_products = $conn->prepare("SELECT * FROM `products` LIMIT 6");
$select_products->execute(); if($select_products-
>rowCount() > 0){
while($fetch_product = $select_products->fetch(PDO::FETCH_ASSOC)){
?>
<form action="" method="post" class="swiper-slide slide">
<input type="hidden" name="id" value="<?= $fetch_product['id']; ?>">
<input type="hidden" name="name" value="<?= $fetch_product['name']; ?>">
<input type="hidden" name="price" value="<?= $fetch_product['price']; ?>">
<input type="hidden" name="image" value="<?= $fetch_product['image_01']; ?>">
<button class="fas fa-heart" type="submit" name="add_to_wishlist"></button>
<a href="quick_view.php?pid=<?= $fetch_product['id']; ?>" class="fas fa-eye"></a>
<img src="uploaded_img/<?= $fetch_product['image_01']; ?>" alt="">
<div class="name"><?= $fetch_product['name']; ?></div>
<div class="flex">
<div class="price"><span>rs.</span><?= $fetch_product['price'];
?><span>/</span></div>
<input type="number" name="qty" class="qty" min="1" max="99"
onkeypress="if(this.value.length == 2) return false;" value="1">
</div>
<input type="submit" value="add to cart" class="btn" name="add_to_cart">
</form>
<?php
}
}else{
echo '<p class="empty">no products added yet!</p>';
}
?>
</div>
<div class="swiper-pagination"></div>
</div>
</section>
<script src="https://unpkg.com/swiper@8/swiper-bundle.min.js"></script>
<script src="js/script.js"></script>
<script>
</script>
</body>
</html>
<?php
include 'components/connect.php';
session_start();
if(isset($_SESSION['user_id'])){
$user_id = $_SESSION['user_id'];
}else{
$user_id = '';
};
?>
<!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.0">
<title>About</title>
</head>
<body>
<section class="about">
<div class="row">
<div class="image">
<img src="images/logo.png" alt="">
</div>
<div class="content">
<h3>ABOUT US:</h3>
<p>VPS ENTERPRISES we specialize in IT solutions, CCTV surveillance, and biometric security
systems to protect businesses and individuals. Our advanced technology ensures safety, efficiency, and
seamless access control for homes, offices, and industries.
<p> CAUTION….. You are being watched on Camera !>>>>>SAFETY for Myself! My family! My
Company! My Country!</p>
<a href="contact.php" class="btn">Contact Us</a>
</div>
</div>
</section>
<section class="reviews">
<div class="swiper-wrapper">
</div>
<div class="swiper-pagination"></div>
</div>
</section>
ABOUT
<script src="https://unpkg.com/swiper@8/swiper-bundle.min.js"></script>
<script src="js/script.js"></script>
<script>
</script>
</body> </html>
CONTACT
<?php
include 'components/connect.php';
session_start();
if(isset($_SESSION['user_id'])){
$user_id = $_SESSION['user_id'];
}else{
$user_id = '';
};
if(isset($_POST['send'])){
$name = $_POST['name'];
$name = filter_var($name, FILTER_SANITIZE_STRING);
$email = $_POST['email'];
$email = filter_var($email, FILTER_SANITIZE_STRING);
$number = $_POST['number'];
$number = filter_var($number, FILTER_SANITIZE_STRING);
$msg = $_POST['msg'];
$msg = filter_var($msg, FILTER_SANITIZE_STRING);
?>
<!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.0">
<title>Contact</title>
</head>
<body>
<?php include 'components/user_header.php'; ?>
<section class="contact">
</section>
<script src="js/script.js"></script>
</body>
</html> CHECK OUT
<?php
include 'components/connect.php';
session_start();
if(isset($_SESSION['user_id'])){
$user_id = $_SESSION['user_id'];
}else{
$user_id = '';
header('location:user_login.php');
};
if(isset($_POST['order'])){
$name = $_POST['name'];
$name = filter_var($name, FILTER_SANITIZE_STRING);
$number = $_POST['number'];
$number = filter_var($number, FILTER_SANITIZE_STRING);
$email = $_POST['email'];
$email = filter_var($email, FILTER_SANITIZE_STRING);
$method = $_POST['method'];
$method = filter_var($method, FILTER_SANITIZE_STRING);
$address = 'flat no. '. $_POST['flat'] .', '. $_POST['street'] .', '. $_POST['city'] .', '. $_POST['state'] .', '.
$_POST['country'] .' - '. $_POST['pin_code'];
$address = filter_var($address, FILTER_SANITIZE_STRING);
$total_products = $_POST['total_products'];
$total_price = $_POST['total_price'];
?>
<!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.0">
<title>checkout</title>
</head>
<body>
<section class="checkout-orders">
<h3>Your Orders</h3>
<div class="display-orders">
<?php
$grand_total = 0;
$cart_items[] = '';
$select_cart = $conn->prepare("SELECT * FROM `cart` WHERE user_id = ?");
$select_cart->execute([$user_id]); if($select_cart-
>rowCount() > 0){
while($fetch_cart = $select_cart->fetch(PDO::FETCH_ASSOC)){
$cart_items[] = $fetch_cart['name'].' ('.$fetch_cart['price'].' x '. $fetch_cart['quantity'].') - ';
$total_products = implode($cart_items);
$grand_total += ($fetch_cart['price'] * $fetch_cart['quantity']);
?>
<p> <?= $fetch_cart['name']; ?> <span>(<?= '$'.$fetch_cart['price'].'/- x '. $fetch_cart['quantity'];
?>)</span> </p>
<?php
}
}else{
echo '<p class="empty">your cart is empty!</p>';
}
?>
<input type="hidden" name="total_products" value="<?= $total_products; ?>">
<input type="hidden" name="total_price" value="<?= $grand_total; ?>" value="">
<div class="grand-total">Grand Total : <span>Nrs.<?= $grand_total; ?>/-</span></div>
</div>
<div class="flex">
<div class="inputBox">
<span>Tapaiko subh nam :</span>
<input type="text" name="name" placeholder="enter your name" class="box" maxlength="20"
required>
</div>
<div class="inputBox">
<span>Your Number :</span>
<input type="number" name="number" placeholder="enter your number" class="box" min="0"
max="9999999999" onkeypress="if(this.value.length == 10) return false;" required>
</div>
<div class="inputBox">
<span>Your Email :</span>
<input type="email" name="email" placeholder="enter your email" class="box" maxlength="50"
required>
</div>
<div class="inputBox">
<span>kasari halnuhunx paisa? :</span>
<select name="method" class="box" required>
<option value="cash on delivery">Cash On Delivery</option>
<option value="credit card">Credit Card</option>
<option value="paytm">eSewa</option>
<option value="paypal">Khalti</option>
</select>
</div>
<div class="inputBox">
<span>Address line 01 :</span>
<input type="text" name="flat" placeholder="e.g. Flat number" class="box" maxlength="50"
required>
</div>
<div class="inputBox">
<span>Address line 02 :</span>
<input type="text" name="street" placeholder="Street name" class="box" maxlength="50"
required>
</div>
<div class="inputBox">
<span>City :</span>
<input type="text" name="city" placeholder="Kathmandu" class="box" maxlength="50" required>
</div>
<div class="inputBox">
<span>Province:</span>
<input type="text" name="state" placeholder="Bagmati" class="box" maxlength="50" required>
</div>
<div class="inputBox">
<span>Country :</span>
<input type="text" name="country" placeholder="Nepal" class="box" maxlength="50" required>
</div>
<div class="inputBox">
<span>ZIP CODE :</span>
<input type="number" min="0" name="pin_code" placeholder="e.g. 56400" min="0"
max="999999" onkeypress="if(this.value.length == 6) return false;" class="box" required>
</div>
</div>
<input type="submit" name="order" class="btn <?= ($grand_total > 1)?'':'disabled'; ?>" value="place
order">
</form>
</section>
<?php include 'components/footer.php'; ?>
<script src="js/script.js"></script>
</body>
</html>
OUTPUTS
HOME PAGE:
LOGIN PAGE:
PRODUCTS:
CONTACT US PAGE
REGISTERED USER:
MANAGE PRODUCTS
ADD PRODUCTS:
SYSTEM TESTING
11.SYSTEM TESTING
Testing is vital for the success of any software. no system design is ever perfect.
Testing is also carried in two phases. first phase is during the software engineering that
is during the module creation. second phaseis after the completion of software. this is
system testing which verifies that the whole set of programs hanged together.
CONCLUSION
Conclusion
The development of this E-Commerce Website using PHP, HTML, CSS, and JavaScript
provides a user-friendly platform for online shopping. The system effectively manages user
registrations, product listings, cart functionalities, orders, and payments, ensuring a seamless
shopping experience.