Project Report Demo
Project Report Demo
Affiliated to
A Project Report
on
By:
In
Year: 2024 – 2025
Royal Education Society’s
CERTIFICATE
This is to certify that the project entitled “online book store management” has been
carried out by shruti rajendra waghmare, pratiksha somling wadikar,nikita
digambar kamshette
We would like to express our special thanks of gratitude to our Head of the
Department of Computer Science Mr. B. M. Sontakke (B.Sc SE) who helped us a
lot in finalizing this project.
Besides we would like to thank all staff members who helped us by giving advice
and providing equipment which we needed.
Last but not in least we would like to thank all who helped and motivated us.
With Sincere Thanks,
Book Store, as described above, can lead to error free, secure, reliable and fast
management system. It can assist the user to concentrate on their other activities
rather to concentrate on the record keeping. Thus it will help organization in better
utilization of resources. The organization can maintain computerized records
without redundant entries. That means that one need not be distracted by
information that is not relevant, while being able to reach the information
2. Introduction
2.1 Project Overview
The Book Store" has been developed override the problems prevailing in the practicing
manual system. This software is supported to eliminate and in some cases to reduce the
hardships faced by this existing system. Moreover this system is designed for the particular
need of the company to carry out operations in a smooth and effective manner.
application The is reduced as much as possible to avoid errors while entering the data. It
also provides error message while entering invalid data. No formal knowledge is needed for
the user to use this system. Thus by this all it proves it is user-friendly. Online Book Store,
as described above, can lead to error free, secure, reliable and fast management system. It
can assist the user to concentrate on their other activities rather to concentrate on the record
keeping. Thus it will help organization in better utilization of resources.
2.2 Project Plan (Gantt Chart)
1 Requirement
Gathering
2 Planning
3 Designing
4 Coding
5 Testing and
Deployment
3. Project Requirement :
Hardware Requirements:
1) Processor: i3 and above
Software Requirements:
Backend-Database: MS S
DataFlows DFDs show the flow of data from external entities into the system, showed
howthe data moved from one process to another, as well as its logical storage. There are
onlyfour symbols
electronic data
orphysical items.
a flow.
ER Diagram:
<?php
require_once "./template/footer.php";
?>
<?php
$book_isbn = $_GET['bookisbn'];
require_once "./functions/database_functions.php";
$conn = db_connect();
<?php
session_start();
if(!isset($_POST['submit'])){
echo "Something wrong! Check again!";
exit;
}
require_once "./functions/database_functions.php";
$conn = db_connect();
$name = trim($_POST['name']);
$pass = trim($_POST['pass']);
// get from db
$query = "SELECT `name`, `pass` from `admin` where `name` = '{$name}' and `pass`
='{$pass}'";
$result = mysqli_query($conn, $query);
if($result->num_rows <= 0){
$_SESSION['err_login'] = "Incorrect Username or Password";
header("Location: admin.php");
exit;
}
if(isset($conn)) {mysqli_close($conn);}
$_SESSION['admin'] = true;
header("Location: admin_book.php");
?>
<?php
session_start();
require_once "./functions/admin.php";
$title = "Add new book";
require "./template/header.php";
require "./functions/database_functions.php";
$conn = db_connect();
if(isset($_POST['add'])){
$isbn = trim($_POST['isbn']);
$isbn = mysqli_real_escape_string($conn, $isbn);
$title = trim($_POST['title']);
$title = mysqli_real_escape_string($conn, $title);
$author = trim($_POST['author']);
$author = mysqli_real_escape_string($conn, $author);
$descr = trim($_POST['descr']);
$descr = mysqli_real_escape_string($conn, $descr);
$price = floatval(trim($_POST['price']));
$price = mysqli_real_escape_string($conn, $price);
$publisher = trim($_POST['publisher']);
$publisherid = mysqli_real_escape_string($conn, $publisher);
// add image
if(isset($_FILES['image']) && $_FILES['image']['name'] != ""){
$image = $_FILES['image']['name'];
$directory_self = str_replace(basename($_SERVER['PHP_SELF']), '',
$_SERVER['PHP_SELF']);
$uploadDirectory = $_SERVER['DOCUMENT_ROOT'] . $directory_self . "bootstrap/img/";
$uploadDirectory .= $image;
move_uploaded_file($_FILES['image']['tmp_name'], $uploadDirectory);
}
$query = "INSERT INTO books (`book_isbn`, `book_title`, `book_author`, `book_image`,
`book_descr`, `book_price`, `publisherid`) VALUES ('" . $isbn . "', '" . $title . "', '" .
$author . "', '" . $image . "', '" . $descr . "', '" . $price . "', '" . $publisherid . "')";
$result = mysqli_query($conn, $query);
if($result){
$_SESSION['book_success'] = "New Book has been added successfully";
header("Location: admin_book.php");
} else {
$err = "Can't add new data " . mysqli_error($conn);
}
}
?>
<h4 class="fw-bolder text-center">Add New Book</h4>
<center>
<hr class="bg-warning" style="width:5em;height:3px;opacity:1">
</center>
<div class="row justify-content-center">
<div class="col-lg-6 col-md-8 col-sm-10 col-xs-12">
<div class="card rounded-0 shadow">
<div class="card-body">
<div class="container-fluid">
<?php if(isset($err)): ?>
<div class="alert alert-danger rounded-0">
<?= $_SESSION['err_login'] ?>
</div>
<?php
endif;
?>
<form method="post" action="admin_add.php" enctype="multipart/form-
data">
<div class="mb-3">
<label class="control-label">ISBN</label>
<input class="form-control rounded-0" type="text"
name="isbn">
</div>
<div class="mb-3">
<label class="control-label">Title</label>
<input class="form-control rounded-0" type="text"
name="title" required>
</div>
<div class="mb-3">
<label class="control-label">Author</label>
<input class="form-control rounded-0" type="text"
name="author" required>
</div>
<div class="mb-3">
<label class="control-label">Image</label>
<input class="form-control rounded-0" type="file"
name="image">
</div>
<div class="mb-3">
<label class="control-label">Description</label>
<textarea class="form-control rounded-0" name="descr"
cols="40" rows="5"></textarea>
</div>
<div class="mb-3">
<label class="control-label">Price</label>
<input class="form-control rounded-0" type="text"
name="price" required>
</div>
<div class="mb-3">
<label class="control-label">Publisher</label>
<select class="form-select rounded-0" name="publisher"
required>
<option value="" disabled selected>Please Select
Here</option>
<?php
$psql = mysqli_query($conn, "SELECT * FROM `publisher`
order by publisher_name asc");
while($row = mysqli_fetch_assoc($psql)):
?>
<option value="<?= $row['publisherid'] ?>"><?=
$row['publisher_name'] ?></option>
<?php endwhile; ?>
</select>
</div>
<div class="text-center">
<button type="submit" name="add" class="btn btn-primary
btn-sm rounded-0">Save</button>
<button type="reset" class="btn btn-default btn-sm rounded-0
border">Cancel</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<?php
if(isset($conn)) {mysqli_close($conn);}
require_once "./template/footer.php";
?>
<?php
session_start();
require_once "./functions/admin.php";
$title = "List book";
require_once "./template/header.php";
require_once "./functions/database_functions.php";
$conn = db_connect();
$result = getAll($conn);
?>
<h4 class="fw-bolder text-center">Book List</h4>
<center>
<hr class="bg-warning" style="width:5em;height:3px;opacity:1">
</center>
<?php if(isset($_SESSION['book_success'])): ?>
<div class="alert alert-success rounded-0">
<?= $_SESSION['book_success'] ?>
</div>
<?php
unset($_SESSION['book_success']);
endif;
?>
<div class="card rounded-0">
<div class="card-body">
<div class="container-fluid">
<table class="table table-striped table-bordered" >
<colgroup>
<col width="10%">
<col width="15%">
<col width="15%">
<col width="10%">
<col width="15%">
<col width="10%">
<col width="15%">
<col width="10%">
</colgroup>
<thead>
<tr>
<th>ISBN</th>
<th>Title</th>
<th>Author</th>
<th>Image</th>
<th>Description</th>
<th>Price</th>
<th>Publisher</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php while($row = mysqli_fetch_assoc($result)){ ?>
<tr>
<td class="px-2 py-1 align-middle"><a href="book.php?bookisbn=<?php echo
$row['book_isbn']; ?>" target="_blank"><?php echo $row['book_isbn']; ?></a></td>
<td class="px-2 py-1 align-middle"><?php echo $row['book_title'];
?></td>
<td class="px-2 py-1 align-middle"><?php echo $row['book_author'];
?></td>
<td class="px-2 py-1 align-middle"><?php echo $row['book_image'];
?></td>
<td class="px-2 py-1 align-middle"><p class="text-truncate"
style="width:15em"><?php echo $row['book_descr']; ?></p></td>
<td class="px-2 py-1 align-middle"><?php echo $row['book_price'];
?></td>
<td class="px-2 py-1 align-middle"><?php echo getPubName($conn,
$row['publisherid']); ?></td>
<td class="px-2 py-1 align-middle text-center">
<div class="btn-group btn-group-sm">
<a href="admin_edit.php?bookisbn=<?php echo $row['book_isbn'];
?>" class="btn btn-sm rounded-0 btn-primary" title="Edit"><i class="fa fa-edit"></i></a>
<a href="admin_delete.php?bookisbn=<?php echo $row['book_isbn'];
?>" class="btn btn-sm rounded-0 btn-danger" title="Delete" onclick="if(confirm('Are you sure to
delete this book?') === false) event.preventDefault()"><i class="fa fa-trash"></i></a>
</div>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
</div>
<?php
if(isset($conn)) {mysqli_close($conn);}
require_once "./template/footer.php";
?>
<?php
session_start();
require_once "./functions/database_functions.php";
// get pubid
if(isset($_GET['pubid'])){
$pubid = $_GET['pubid'];
} else {
echo "Wrong query! Check again!";
exit;
}
// connect database
$conn = db_connect();
$pubName = getPubName($conn, $pubid);
$query = "SELECT book_isbn, book_title, book_image, book_descr FROM books WHERE publisherid
= '$pubid'";
$result = mysqli_query($conn, $query);
if(!$result){
echo "Can't retrieve data " . mysqli_error($conn);
exit;
}
if(mysqli_num_rows($result) == 0){
echo "Empty books ! Please wait until new books coming!";
exit;
}
<?php
session_start();
session_destroy();
header("Location: index.php");
?>
<?php
session_start();
$count = 0;
// connecto database
$title = "Home";
require_once "./template/header.php";
require_once "./functions/database_functions.php";
$conn = db_connect();
$row = select4LatestBook($conn);
?>
<!-- Example row of columns -->
<div class="lead text-center text-dark fw-bolder h4">Latest books</div>
<center>
<hr class="bg-warning" style="width:5em;height:3px;opacity:1">
</center>
<div class="row">
<?php foreach($row as $book) { ?>
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-12 py-2 mb-2">
<a href="book.php?bookisbn=<?php echo $book['book_isbn']; ?>" class="card rounded-0
shadow book-item text-reset text-decoration-none">
<div class="img-holder overflow-hidden">
<img class="img-top" src="./bootstrap/img/<?php echo $book['book_image']; ?>">
</div>
<div class="card-body">
<div class="card-title fw-bolder h5 text-center"><?= $book['book_title'] ?></div>
</div>
</a>
</div>
<?php } ?>
</div>
<?php
if(isset($conn)) {mysqli_close($conn);}
require_once "./template/footer.php";
?>
<?php
session_start();
require_once "./functions/database_functions.php";
$conn = db_connect();
$isbn = trim($_POST['isbn']);
$title = trim($_POST['title']);
$author = trim($_POST['author']);
$descr = trim($_POST['descr']);
$price = floatval(trim($_POST['price']));
$publisher = trim($_POST['publisher']);
require_once("./functions/database_functions.php");
$conn = db_connect();
session_start();
require_once "./functions/database_functions.php";
// print out header here
$title = "Checking out";
require "./template/header.php";
?>
<h4 class="fw-bolder text-center">Checkout</h4>
<center>
<hr class="bg-warning" style="width:5em;height:3px;opacity:1">
</center>
<?php
if(isset($_SESSION['cart']) && (array_count_values($_SESSION['cart']))){
?>
<div class="card rounded-0 shadow mb-3">
<div class="card-body">
<div class="container-fluid">
<table class="table">
<tr>
<th>Item</th>
<th>Price</th>
<th>Quantity</th>
<th>Total</th>
</tr>
<?php
foreach($_SESSION['cart'] as $isbn => $qty){
$conn = db_connect();
$book = mysqli_fetch_assoc(getBookByIsbn($conn, $isbn));
?>
<tr>
<td><?php echo $book['book_title'] . " by " . $book['book_author']; ?></td>
<td><?php echo "$" . $book['book_price']; ?></td>
<td><?php echo $qty; ?></td>
<td><?php echo "$" . $qty * $book['book_price']; ?></td>
</tr>
<?php } ?>
<tr>
<th> </th>
<th> </th>
<th><?php echo $_SESSION['total_items']; ?></th>
<th><?php echo "$" . $_SESSION['total_price']; ?></th>
</tr>
</table>
</div>
</div>
</div>
<div class="row justify-content-center">
<div class="col-lg-5 col-md-8 col-sm-10 col-xs-12">
<div class="card rounded-0 shadow">
<div class="card-header">
<div class="card-title h6 fw-bold">Please Fill the following form</div>
</div>
<div class="card-body container-fluid">
<form method="post" action="purchase.php" class="form-horizontal">
<?php if(isset($_SESSION['err']) && $_SESSION['err'] == 1){ ?>
<p class="text-danger">All fields have to be filled</p>
<?php } ?>
<div class="mb-3">
<label for="name" class="control-label">Name</label>
<input type="text" name="name" class="form-control rounded-0">
</div>
<div class="mb-3">
<label for="address" class="control-label">Address</label>
<input type="text" name="address" class="form-control rounded-0">
</div>
<div class="mb-3">
<label for="city" class="control-label">City</label>
<input type="text" name="city" class="form-control rounded-0">
</div>
<div class="mb-3">
<label for="zip_code" class="control-label">Zip Code</label>
<input type="text" name="zip_code" class="form-control rounded-0">
</div>
<div class="mb-3">
<label for="country" class="control-label">Country</label>
<input type="text" name="country" class="form-control rounded-0">
</div>
<div class="mb-3 d-grid">
<input type="submit" name="submit" value="Purchase" class="btn btn-
primary rounded-0">
</div>
</form>
<p class="fw-light fst-italic"><small class="text-muted">Please press
Purchase to confirm your purchase, or Continue Shopping to add or remove items.</small></p>
</div>
</div>
</div>
</div>
<?php
} else {
echo "<p class=\"text-warning\">Your cart is empty! Please make sure you add some books
in it!</p>";
}
if(isset($conn)){ mysqli_close($conn); }
require_once "./template/footer.php";
?>
7. Future Scope of Project
Barcode Scanning: Enables quick and accurate tracking of book stock.
Inventory Tracking: Real-time monitoring of stock levels, including alerts for low
stock or out-of-stock items.
Automated Reordering: Systematically generates purchase orders when stock levels
fall below a predetermined threshold.
Supplier Management: Tracks supplier performance, purchase order status, and goods
inward notes status.
Stock Allocation and Reporting: Provides reports on stock levels, sales, and other
relevant data.
Discrepancy Reports: Generates reports for mismatching invoices and purchase
orders.
Sales Management:
8. Conclusion
project is only a humble venture to satisfy the needs to manage their project
work. Several user friendly coding have also adopted. This package shall prove
to be a powerful package in satisfying all the requirements of the school. The
objective of software planning is to provide a frame work that enables the
manger to make reasonable estimates made within a limited time frame at the
beginning of the software project and should be updated regularly as the
project progresses.
9. Bibliography
BOOKS:-
HTML & CSS: The Complete Reference, Fifth Edition by Thomas A. Powell
https://www.codewithfaraz.com/content/259/creatin
https://youtu.be/OpKMilAhJcE?si=JViJe3sozc50yq