0% found this document useful (0 votes)
978 views71 pages

Book Shop System Black Book

This document describes a project report for an online book store submitted by Nikita Kailas Kurhade to fulfill the requirements for a Bachelor of Science degree in Information Technology. The project aims to create an online bookstore website that allows users to search for books by title, author or subject, view search results in a table, and purchase books online through credit card payments. The report includes an abstract, acknowledgements, declaration, table of contents, and introduction describing the background and objectives of the online bookstore system.

Uploaded by

Rohan Pol
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
978 views71 pages

Book Shop System Black Book

This document describes a project report for an online book store submitted by Nikita Kailas Kurhade to fulfill the requirements for a Bachelor of Science degree in Information Technology. The project aims to create an online bookstore website that allows users to search for books by title, author or subject, view search results in a table, and purchase books online through credit card payments. The report includes an abstract, acknowledgements, declaration, table of contents, and introduction describing the background and objectives of the online bookstore system.

Uploaded by

Rohan Pol
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

ONLINE BOOK STORE

A Project Report
Submitted in partial fulfilment of the
Requirements of the award of the Degree of

BACHELOR OF SCIENCE (INFORMATION TECHNOLOGY)


BY

Nikita Kailas Kurhade


(4023385)

Under the esteemed guidance of

Mrs. Pushpanjali Patil

DEPARTMENT OF INFORMATION TECHNOLOGY

YASHWANT RAO CHAVAN COLLEGE OF ARTS, COMMERCE AND


SCIENCE
(Affiliated to University of Mumbai)
Navi Mumbai, 400709
MAHARASHTRA

2022-2023
YASHWANT RAO CHAVAN COLLEGE OF ARTS, COMMERCE AND
SCIENCE
(Affiliated to University of Mumbai)
Navi Mumbai- MAHARASHTRA-400709

DEPARTMENT OF INFORMATION TECHNOLOGY

CERTIFICATE

This is to certify that the project entitled,” Online Book Store”, is bonafide work of NIKITA
KAILAS KURHADE bearing Seat NO; 4023385 submitted in partial fulfillment of the
requirement for the award of degree of BACHELOR OF SCIENCE in INFORMATION
TECHNOLOGY from University of Mumbai.

Internal Guide Coordinator

External Examiner

Date: College Seal


Abstract

Nowadays, the network plays an import role in people’s life. In the process of the improvement
of the people’s living standard, people’s demands of the life’s quality and efficiency is higher,
the traditional bookstore’s inconvenience gradually emerge, and the online bookstore has
gradually been used in public. The online bookstore is a revolution of book industry. The
traditional bookstores’ operation time, address and space is limited, so the types of books and
books to find received a degree of restriction. But the online bookstore broke the management
mode of traditional bookstore, as long as you have a computer, you can buy the book anywhere,
saving time and effort, shortening the time of book selection link effectively. The online
bookstore system based on the principle of provides convenience and service to people. The
main objective of the project is to create an online book store that allows users to search and
purchase a book online based on title, author and subject. The selected books are displayed in
a tabular format and the user can order their books online through credit card payment. Using
this Website, the user can purchase a book online instead of going out to a book store and
wasting time. There are many online book stores like Powell’s, Amazon which were designed
using HTML. Online Book store is an online web application where the customer can purchase
books online. Through a web browser the customers can search for a book by its title or author,
later can add to the shopping cart and finally purchase using credit card transaction. The user
can login using his account details or new customers can set up an account very quickly.

i
ACNOWLEDGMENT
I sincerely express my deep sense of gratitude to my guide Mrs. Pushpanjali Patil, for her
valuable guidance, continuous encouragement and support whenever required and Head of
Department of Computer Technology Prof. Triveni Kaul, for his valuable guidance,
encouragement and timely help given to me throughout the course of this work.

I also would like to take this opportunity to thank our whole-heartedly Honourable Principal
Dr. Laxman Talnikar and our Faculties of Computer Technology department who have
imparted valuable teaching and guidance that has inspired me to attain new goals.

ii
DECLARATION

I hereby declare that the project entitled, “Online Book Store” done at Koparkhairne, has
not been in any case duplicated to submit to any other university for the award of any degree.
To the best of my knowledge other than me, no one has submitted to any other university.

The project is done in partial fulfilment of the requirements of the requirements for the award
of degree of BACHELOR OF SCIENCE (INFORMATIN TECHNOLOGY) to be
submitted as final semester project as part of our curriculum.

Nikita Kailas Kurhade

(Signature of Student)

iii
TABLE OF CONTENTS

Sr No Contents Page No

Chapter 1: Introduction 1
1.1 Background 2
1.2 Objective 2
1.3 Project Description 3
1.3.1 Purpose 3
1.3.2 Scope 3
Chapter 2: Survey of Technology 4

Chapter 3: Requirements and Analysis 10


3.1 Problem Definition 12
3.2 Requirement Specification 12
3.2.1 User Class and Characteristics 13
3.2.2 Functional Requirements 13
3.2.3 Non-Functional Requirements 13
3.2.4 External Interface Requirements 14
3.3 Fact Finding Technique 15
3.4 Open Close Question 15
3.5.2 Interview 15
3.5.3 Questioners 15
3.3.2 Questions 16
Chapter 4: Design and Diagram 17
4.1 Class Diagram 18
4.2 Use Case Diagram 19
4.3 Sequence Diagram 20
4.4 Activity Diagram 21
4.5 Deployment Diagram 22

iv
Chapter 5: Implementation and Testing 23
5.1 Implementation Approaches 24
5.1.1 Coding 24
5.1.2 Screenshots 47
5.2 Code Efficiency 57
5.3 Testing Procedures 58
5.3.1 Testing Approach 58
5.3.2 Unit Testing 58
Chapter 6: Results and Discussion 60
6.1 Test Reports 61
6.2 User Documentation 61
Chapter 7: Conclusion 62
7.1 Conclusion 63
7.2 Future Scope 63

v
List of Figures

Figure No Name of Diagram Page No


1 Class Diagram 18

2 Use Case Diagram 19

3 Sequence Diagram 20

4 Activity Diagram 21

5 Deployment Diagram 22

vi
Chapter 1
Introduction

1
Introduction:
Online shopping is the process whereby consumers directly buy goods, services etc. from a
seller interactively in real-time without an intermediary service over the internet.

Online shopping is the process of buying goods and services from merchants who sell on the
Internet. Since the emergence of the World Wide Web, merchants have sought to sell their
books to people who surf the Internet. Shoppers can visit web stores from the comfort of their
homes and shop as they sit in front of the computer. Consumers buy a variety of items from
online stores. In fact, people can purchase just about anything from companies that provide
their books online. Books, clothing, household appliances, toys, hardware, software, and health
insurance are just some of the hundreds of books consumers can buy from an online store.

Many people choose to conduct shopping online because of the convenience. For example,
when a person shops at a brick-and-mortar store, she has to drive to the store, find a parking
place, and walk throughout the store until she locates the books she needs. After finding the
items she wants to purchase, she may often need to stand in long lines at the cash register.

1.1 Background
Online shopping allows you to browse through endless possibilities, and even offers merchandise that's
unavailable in stores. If you're searching for a niche product that may not be distributed locally, you're
sure to find what you're looking for on the internet. What's even more useful is the ability to compare
items, similar or not, online. You can search through multiple stores at the same time, comparing
material quality, sizes and pricing simultaneously.

Say 'goodbye' to the days when you stood in line waiting, and waiting, and waiting some more for a
store clerk to finally check out your items. Online shopping transactions occur instantly-saving you
time to get your other errands done! Additionally, unlike a store, online shopping has friendly customer
service representatives available 24 hours a day, 7 days a week to assist you with locating, purchasing
and shipping your merchandise.

2
1.2 Objective
My objective is to design such an application using which one can say 'goodbye' to the days
when you stood in line waiting, and waiting some more for a store clerk to finally check out
your items. Online shopping transactions occur instantly-saving you time to get your other
errands done! Additionally, unlike a store, online shopping has friendly customer service
representatives available 24 hours a day, 7 days a week to assist you with locating, purchasing
and shipping your merchandise.

My main aim is to design such a book store where customer can visit our site anytime of the day from
anywhere to view the available books, choose any of them and can order by paying online or can opt
for cash on delivery as well. The administrator will regularly add any new books available to them for
sale. The administrator will take books from the reputed publishers and vendors only.

1.3 Purpose and Scope


1.3.1 Purpose
Online Shopping system would have the following goals.

• Provide a web user interface to add, view, delete records in different areas.
• Provide a user interface to enter computer details.
• Provide a user interface to change details of all the computers and accessories.
• Provide a user interface for users to explore the store and choose items to buy.

1.3.2 Scope

The main scope and deliverables of the project would be to:

• Understand and prepare detailed requirement and specifications


• Prepare high level and detailed design specifications of the system
• Prepare Test Plan and Test cases
• Develop the system and coding
• Perform unit testing, integration and system testing
• Demonstrate a bug free application after suitable modification if needed.

3
Chapter 2
Survey of Technology

4
In a desktop application like Laboratory Management System, there is a scope for a large
number of platforms, languages and frameworks to choose from. Before selecting from this
large array of technologies, the following aspects, which are characteristic to windows based
application like this one, have been kept in mind:

• Data validation
• Performance
• Reliability
• Scalability
• Security
• Portability
• Performance
• Time constraint
• Cost constraint

The various technologies available for consideration are as follows:

Operating System: Windows 11

Client-Side Scripting:
• HTML
• CSS
• JavaScript

Server-Side Scripting: PHP


Database Tool: My SQL
Testing Server: Apache
Other Software Used:
• Adobe Dreamweaver
• Adobe Photoshop
• Wamp Server

5
HTML

HTML or Hypertext Markup Language is the standard markup language used to create web
pages.

HTML is written in the form of HTML elements consisting of tags enclosed in angle brackets
(like <html>). HTML tags most commonly come in pairs like <h1> and </h1>, although some
tags represent empty elements and so are unpaired, for example <img>. The first tag in a pair is
the start tag, and the second tag is the end tag (they are also called opening tags and closing
tags).

The purpose of a web browser is to read HTML documents and compose them into visible or
audible web pages. The browser does not display the HTML tags, but uses the tags to interpret
the content of the page. HTML describes the structure of a website semantically along with
cues for presentation, making it a markup language rather than a programming language.

HTML elements form the building blocks of all websites. HTML allows images and objects to
be embedded and can be used to create interactive forms. It provides a means to create
structured documents by denoting structural semantics for text such as headings, paragraphs,
lists, links, quotes and other items. It can embed scripts written in languages such as JavaScript
which affect the behaviour of HTML web pages.

CSS

CSS was first developed in 1997, as a way for Web developers to define the look and feel of
their Web pages. It was intended to allow developers to separate content from design so that
HTML could perform more of the function that it was originally based on the markup of
content, without worry about the design and layout.

CSS didn't gain in popularity until around 2000, when Web browsers began using more than
the basic font and color aspects of CSS.

6
Web Designers that don't use CSS for their design and development of Web sites are rapidly
becoming a thing of the past. And it is arguably as important to understand CSS as it is to know
HTML - and some would say it was more important to know CSS.

Style sheet refers to the document itself. Style sheets have been used for document design for
years. They are the technical specifications for a layout, whether print or online. Print designers
use style sheets to ensure that their designs are printed exactly to specifications. A style sheet
for a Web page serves the same purpose, but with the added functionality of also telling the
viewing engine (the Web browser) how to render the document being viewed.

PHP:

PHP (recursive acronym for PHP: Hypertext Pre-processor) is a widely-used open-source


general-purpose scripting language that is especially suited for web development and can be
embedded into HTML.

Instead of lots of commands to output HTML (as seen in C or Perl), PHP pages contain HTML
with embedded code that does "something" (in this case, output "Hi, I'm a PHP script!"). The
PHP code is enclosed in special start and end processing instructions <?php and ?> that allow
you to jump into and out of "PHP mode."

What distinguishes PHP from something like client-side JavaScript is that the code is executed
on the server, generating HTML which is then sent to the client. The client would receive the
results of running that script, but would not know what the underlying code was. You can even
configure your web server to process all your HTML files with PHP, and then there's really no
way that users can tell what you have up your sleeve.

The best things in using PHP are that it is extremely simple for a newcomer, but offers many
advanced features for a professional programmer. Don't be afraid reading the long list of PHP's
features. You can jump in, in a short time, and start writing simple scripts in a few hours.

MYSQL:
7
MySQL, the most popular Open-Source SQL database management system, is developed,
distributed, and supported by Oracle Corporation.

The MySQL Web site ([Link] provides the latest information about MySQL
software.

• MySQL is a database management system.

A database is a structured collection of data. It may be anything from a simple shopping


list to a picture gallery or the vast amounts of information in a corporate network. To
add, access, and process data stored in a computer database, you need a database
management system such as MySQL Server. Since computers are very good at handling
large amounts of data, database management systems play a central role in computing,
as standalone utilities, or as parts of other applications.

• MySQL databases are relational.

A relational database stores data in separate tables rather than putting all the data in one
big storeroom. The database structures are organized into physical files optimized for
speed. The logical model, with objects such as databases, tables, views, rows, and
columns, offers a flexible programming environment. You set up rules governing the
relationships between different data fields, such as one-to-one, one-to-many, unique,
required or optional, and “pointers” between different tables. The database enforces
these rules, so that with a well-designed database, your application never sees
inconsistent, duplicate, orphan, out-of-date, or missing data.

The SQL part of “MySQL” stands for “Structured Query Language”. SQL is the most
common standardized language used to access databases. Depending on your
programming environment, you might enter SQL directly (for example, to generate
reports), embed SQL statements into code written in another language, or use a
language-specific API that hides the SQL syntax.

8
SQL is defined by the ANSI/ISO SQL Standard. The SQL standard has been evolving
since 1986 and several versions exist. In this manual, “SQL-92” refers to the standard
released in 1992, “SQL:1999” refers to the standard released in 1999, and “SQL:2003”
refers to the current version of the standard. We use the phrase “the SQL standard” to
mean the current version of the SQL Standard at any time.

• MySQL software is Open Source.

Open Source means that it is possible for anyone to use and modify the software.
Anybody can download the MySQL software from the Internet and use it without
paying anything. If you wish, you may study the source code and change it to suit your
needs. The MySQL software uses the GPL (GNU General Public License),
[Link] to define what you may and may not do with the software
in different situations. If you feel uncomfortable with the GPL or need to embed
MySQL code into a commercial application, you can buy a commercially licensed
version from us. See the MySQL Licensing Overview for more information
([Link]

9
Chapter 3
Requirements and Analysis

10
3.1 Problem Definition
Problem Definition and Need for the New System
• Online Book Store is a specific requirement of the client that integrates the buying
and selling services specifically to their customers.
• Reports can be generated at any time within few seconds, so that manual labor is not
required, and also analysis can be performed much more frequently which helps in
taking decision.
• The details regarding all users, books can also be maintained as their information is
very helpful and sometimes becomes a critical requirement.
• Allows user to get registered from their places and transact for the required product.
• To overcome these problems, we develop “Online Book Store”.

3.2 System Requirements Specifications


System requirements are expressed in a software requirement document. The Software
requirement specification (SRS) is the official statement of what is required of the system
developers. This requirement document includes the requirements definition and the
requirement specification. The software requirement document is not a design document. It
should set out what the system should do without specifying how it should be done. The
requirement set out in this document is complete and consistent.

The software specification document satisfies the following: -


• It specifies the external system behaviours.
• It specifies constraints on the implementation.
• It is easy to change.
• It serves as reference tool for system maintainers.
• It records forethought about the life cycle of the system.
• It characterizes acceptable response to undesired events.

11
3.2.1 User Class and Characteristics:
• General public
• Customers
• Administrator
• General public can use the system to see the books, their prices and quantity available.
• Non registered user cannot buy the books.
• Customers are using for viewing and buying the books.
• Customer can also write feedbacks for books and services
• Administrators can add, edit & delete books and provide services to the customer.
• Administrator can see the daily sell. Can also see the feedback given by the customer.
• Administrator maintaining the deliveries.

3.2.2 Functional Requirements:


• The System must provide following functionalities—
• Keeping records of registration of customers.
• Keeping the records of books.
• Keeping the daily sell.
• Storing the feedback given by the customer.
• Keeping details about the product it is delivered or not. etc.
• Storing the items selected by the customer in the temporary storage.

3.2.3 Non-Functional Requirements:


Following Non-functional requirements will be there in the online shopping portal.
• Secure access of confidential data (customer’s details).
• 24 X 7 availability.
• Better component design to get better performance at peak time.

Flexible service-based architecture will be highly desirable for future extension Non-functional
requirements define system properties and constraints It arise through user needs, because of
12
budget constraints or organizational policies, or due to the external factors such as safety
regulations, privacy registration and so on.
Various other Non-functional requirements are:
1. Security
2. Reliability
3. Maintainability
4. Portability
5. Extensibility
6. Reusability
7. Application Affinity/Compatibility
8. Resource Utilization

3.2.4 External Interface Requirements:


[Link] User Interface:
User of the system will be provided with the Graphical user interface, there is no command
line interface for any functions of the product.
[Link] Hardware Interface:
Hardware requirements for running this project are as follows:
Processor: - Pentium I or above.
RAM: - 128 MB or above.
HD: - 20 GB or above.
[Link] Software Interface:
Software required to make working of product is: -
Front end- HTML/PHP
Back end- My SQL

13
3.3 Fact Finding Technique:
To Study the system, require facts. Fact is also term as data or information. A specific method
is used for collection data is called fact finding technique.

3.4 Open Close Questions:


3.4.1 Interview:
It is used to collect information from individuals or from groups. The interviewer must plan in
advance and should know the problem under consideration.
There are two types of Interviews:
1) Structured Interviews:
In this type of technique fixed type of question are asked and that questions covered in specific
area. In this type of technique interview period may short.
2) Unstructured Interviews:
In this type of technique different type of question are asked and there is specific area. In this
of fact-finding technique extra information may be collected.

3.4.2 Questioners:
Questioners are nothing but a question which asks to admin or to manager of organization.
Questionnaires may be used supplements to interview. There are two type of questions which
are considered in questionaries.
1) Open Ended Questions:
Open ended questions are used to learn about options, feelings and general experience about
the problem.
2) Closed End Questions:
Closed ended questions contain specific questionaries responses from which respondent the
best one.

14
3.4.3 Questions:
• When was the system established?
• Who is the admin of the system?
• How many departments present in your system?
• How many reports are generated?
• Are all transactions performed manually?
• Do you have software?

15
Chapter 4
Design And Diagram

16
4.1 Class Diagram

A class diagram in the Unified Modelling Language (UML) is a type of static structure
diagram that describes the structure of a system by showing the system's classes, their
attributes, operations (or methods), and the relationships among objects.

17
4.2 Use Case Diagram

Use case diagrams are usually referred to as behavior diagrams used to describe a set of
actions that some system or systems should or can perform in collaboration with one or
more external users of the system. Each use case should provide some observable and
valuable result to the actors or other stakeholders of the system.

18
4.3 Sequence Diagram

A sequence diagram shows object interactions arranged in time sequence. It depicts the objects
and classes involved in the scenario and the sequence of messages exchanged between the
objects needed to carry out the functionality of the scenario. Sequence diagrams are sometimes
called event diagrams or event scenarios.

19
4.4 Activity Diagram

Activity diagram is another important diagram in UML to describe the dynamic aspects of the
system. Activity diagram is basically a flowchart to represent the flow from one activity to
another activity. The activity can be described as an operation of the system. The control flow
is drawn from one operation to another.

20
4.5 Deployment Diagram

A deployment diagram is a UML diagram type that shows the execution architecture of a
system, including nodes such as hardware or software execution environments, and the
middleware connecting them. Deployment diagrams are typically used to visualize the physical
hardware and software of a system.

After designing the new system, the whole system is required to be converted into computer
understanding language. Coding the new system into computer programming language does
this. It is an important stage where the defined procedures are transformed into control
specifications by the help of a computer language. This is also called the programming phase
in which the programmer converts the program specifications into computer instructions,
which we refer as programs. The programs coordinate the data movements and control the
entire process in a system.

21
It is generally felt that the programs must be modular in nature. This helps in fast development,
maintenance and future change, if required.
The validity and proper functionality of all the modules of the developed application is assured
during the process of implementation. Implementation is the process of assuring that the
information system is operational and then allowing user to take over its operation for use and
evaluation.
Implementation is the stage in the project where the theoretical design is turned into a working
system. The implementation phase constructs, installs and operated the new system. The most
crucial stage in achieving anew successful system is that it works effectively and efficiently.

22
Chapter 5
Implementation and Testing

23
5.1 Implementation approaches

The Software Design Description Document has been used as input in the implementation
process. The actual implementation has been done using PHP. PHP has been used to interact
with the backend database. In this implementation, My SQL Server has been used as the
backend RDBMS. PHP processes the inputs or commands given by the user and translates
them in the commands understandable to the backend database. The output produced by the
backend database is also handled by PHP which then displayed on the Browser screen.

5.1.1 Code:
Index Page:
<?php require_once('[Link]'); ?>
<!DOCTYPE html>
<html lang="en">
<?php require_once('inc/[Link]') ?>
<body>
<?php require_once('inc/[Link]') ?>
<?php $page = isset($_GET['p']) ? $_GET['p'] : 'home'; ?>
<?php
if(!file_exists($page.".php") && !is_dir($page)){
include '[Link]';
}else{
if(is_dir($page))
include $page.'/[Link]';
else
include $page.'.php';

}
?>
<?php require_once('inc/[Link]') ?>
<div class="modal fade" id="confirm_modal" role='dialog'>
<div class="modal-dialog modal-md modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Confirmation</h5>
</div>
<div class="modal-body">
<div id="delete_content"></div>
24
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id='confirm'
onclick="">Continue</button>
<button type="button" class="btn btn-secondary" data-
dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="uni_modal" role='dialog'>
<div class="modal-dialog rounded-0 modal-md modal-dialog-centered"
role="document">
<div class="modal-content rounded-0">
<div class="modal-header">
<h5 class="modal-title"></h5>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id='submit'
onclick="$('#uni_modal form').submit()">Save</button>
<button type="button" class="btn btn-secondary" data-
dismiss="modal">Cancel</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="uni_modal_right" role='dialog'>
<div class="modal-dialog rounded-0 modal-full-height modal-md"
role="document">
<div class="modal-content rounded-0">
<div class="modal-header">
<h5 class="modal-title"></h5>
<button type="button" class="close" data-dismiss="modal" aria-
label="Close">
<span class="fa fa-arrow-right"></span>
</button>
</div>
<div class="modal-body">
</div>
</div>
</div>
25
</div>
<div class="modal fade" id="viewer_modal" role='dialog'>
<div class="modal-dialog modal-md" role="document">
<div class="modal-content">
<button type="button" class="btn-close" data-
dismiss="modal"><span class="fa fa-times"></span></button>
<img src="" alt="">
</div>
</div>
</div>

</body>
</html>

Login Page:
<style>
#uni_modal .modal-content>.modal-footer,#uni_modal .modal-content>.modal-
header{
display:none;
}
</style>
<div class="container-fluid">

<div class="row">
<h3 class="float-right">
<button type="button" class="close" data-dismiss="modal" aria-
label="Close">
<span aria-hidden="true">&times;</span>
</button>
</h3>
<div class="col-lg-12">
<h3 class="text-center">Login</h3>
<hr>
<form action="" id="login-form">
<div class="form-group">
<label for="" class="control-label">Email</label>
<input type="email" class="form-control form" name="email"
required>
</div>
<div class="form-group">
<label for="" class="control-label">Password</label>

26
<input type="password" class="form-control form"
name="password" required>
</div>
<div class="form-group d-flex justify-content-between">
<a href="javascript:void()" id="create_account">Create
Account</a>
<button class="btn btn-primary btn-flat">Login</button>
</div>
</form>
</div>
</div>
</div>
<script>
$(function(){
$('#create_account').click(function(){
uni_modal("","[Link]","mid-large")
})
$('#login-form').submit(function(e){
[Link]();
start_loader()
if($('.err-msg').length > 0)
$('.err-msg').remove();
$.ajax({
url:_base_url_+"classes/[Link]?f=login_user",
method:"POST",
data:$(this).serialize(),
dataType:"json",
error:err=>{
[Link](err)
alert_toast("an error occured",'error')
end_loader()
},
success:function(resp){
if(typeof resp == 'object' && [Link] == 'success'){
alert_toast("Login Successfully",'success')
setTimeout(function(){
[Link]()
},2000)
}else if([Link] == 'incorrect'){
var _err_el = $('<div>')
_err_el.addClass("alert alert-danger err-
msg").text("Incorrect Credentials.")
$('#login-form').prepend(_err_el)
27
end_loader()

}else{
[Link](resp)
alert_toast("an error occured",'error')
end_loader()
}
}
})
})
})
</script>

Cart:

<section class="py-5">
<div class="container">
<div class="row">
<div class="col d-flex justify-content-end mb-2">
<button class="btn btn-outline-dark btn-flat btn-sm"
type="button" id="empty_cart">Empty Cart</button>
</div>
</div>
<div class="card rounded-0">
<div class="card-body">
<h3><b>Cart List</b></h3>
<hr class="border-dark">
<?php
$qry = $conn->query("SELECT c.*,[Link],[Link],[Link] as
pid from `cart` c inner join `inventory` i on [Link]=c.inventory_id inner join
products p on [Link] = i.product_id where c.client_id = ".$_settings-
>userdata('id'));
while($row= $qry->fetch_assoc()):
$upload_path =
base_app.'/uploads/product_'.$row['pid'];
$img = "";
foreach($row as $k=> $v){
$row[$k] = trim(stripslashes($v));
}
if(is_dir($upload_path)){
$fileO = scandir($upload_path);
if(isset($fileO[2]))
28
$img =
"uploads/product_".$row['pid']."/".$fileO[2];
// var_dump($fileO);
}
?>
<div class="d-flex w-100 justify-content-between mb-2 py-
2 border-bottom cart-item">
<div class="d-flex align-items-center col-8">
<span class="mr-2"><a href="javascript:void(0)"
class="btn btn-sm btn-outline-danger rem_item" data-id="<?php echo $row['id']
?>"><i class="fa fa-trash"></i></a></span>
<img src="<?php echo validate_image($img) ?>"
loading="lazy" class="cart-prod-img mr-2 mr-sm-2" alt="">
<div>
<p class="mb-1 mb-sm-1"><?php echo
$row['title'] ?></p>

<p class="mb-1 mb-sm-1"><small><b>Price:</b>


<span class="price"><?php echo number_format($row['price'])
?></span></small></p>
<div>
<div class="input-group" style="width:130px
!important">
<div class="input-group-prepend">
<button class="btn btn-sm btn-outline-
secondary min-qty" type="button" id="button-addon1"><i class="fa fa-
minus"></i></button>
</div>
<input type="number" class="form-control
form-control-sm qty text-center cart-qty" placeholder="" aria-label="Example
text with button addon" value="<?php echo $row['quantity'] ?>" aria-
describedby="button-addon1" data-id="<?php echo $row['id'] ?>" readonly>
<div class="input-group-append">
<button class="btn btn-sm btn-outline-
secondary plus-qty" type="button" id="button-addon1"><i class="fa fa-
plus"></i></button>
</div>
</div>
</div>
</div>
</div>
<div class="col text-right align-items-center d-flex
justify-content-end">
29
<h4><b class="total-amount"><?php echo
number_format($row['price'] * $row['quantity']) ?></b></h4>
</div>
</div>
<?php endwhile; ?>
<div class="d-flex w-100 justify-content-between mb-2 py-2
border-bottom">
<div class="col-8 d-flex justify-content-end"><h4>Grand
Total:</h4></div>
<div class="col d-flex justify-content-end"><h4 id="grand-
total">-</h4></div>
</div>
</div>
</div>
<div class="d-flex w-100 justify-content-end">
<a href="./?p=checkout" class="btn btn-sm btn-flat btn-
dark">Checkout</a>
</div>
</div>
</section>
<script>
function calc_total(){
var total = 0

$('.total-amount').each(function(){
amount = $(this).text()
amount = [Link](/\,/g,'')
amount = parseFloat(amount)
total += amount
})
$('#grand-total').text(parseFloat(total).toLocaleString('en-US'))
}
function qty_change($type,_this){
var qty = _this.closest('.cart-item').find('.cart-qty').val()
var price = _this.closest('.cart-item').find('.price').text()
price = [Link](/,/g,'')
[Link](price)
var cart_id = _this.closest('.cart-item').find('.cart-
qty').attr('data-id')
var new_total = 0
start_loader();
if($type == 'minus'){
qty = parseInt(qty) - 1
30
}else{
qty = parseInt(qty) + 1
}
price = parseFloat(price)
// [Link](qty,price)
new_total = parseFloat(qty * price).toLocaleString('en-US')
_this.closest('.cart-item').find('.cart-qty').val(qty)
_this.closest('.cart-item').find('.total-amount').text(new_total)
calc_total()

$.ajax({
url:'classes/[Link]?f=update_cart_qty',
method:'POST',
data:{id:cart_id, quantity: qty},
dataType:'json',
error:err=>{
[Link](err)
alert_toast("an error occured", 'error');
end_loader()
},
success:function(resp){
if(!![Link] && [Link] == 'success'){
end_loader()
}else{
alert_toast("an error occured", 'error');
end_loader()
}
}

})
}
function rem_item(id){
$('.modal').modal('hide')
var _this = $('.rem_item[data-id="'+id+'"]')
var id = _this.attr('data-id')
var item = _this.closest('.cart-item')
start_loader();
$.ajax({
url:'classes/[Link]?f=delete_cart',
method:'POST',
data:{id:id},
dataType:'json',
error:err=>{
31
[Link](err)
alert_toast("an error occured", 'error');
end_loader()
},
success:function(resp){
if(!![Link] && [Link] == 'success'){
[Link]('slow',function(){ [Link]() })
calc_total()
end_loader()
}else{
alert_toast("an error occured", 'error');
end_loader()
}
}

})
}
function empty_cart(){
start_loader();
$.ajax({
url:'classes/[Link]?f=empty_cart',
method:'POST',
data:{},
dataType:'json',
error:err=>{
[Link](err)
alert_toast("an error occured", 'error');
end_loader()
},
success:function(resp){
if(!![Link] && [Link] == 'success'){
[Link]()
}else{
alert_toast("an error occured", 'error');
end_loader()
}
}

})
}
$(function(){
calc_total()
$('.min-qty').click(function(){
32
qty_change('minus',$(this))
})
$('.plus-qty').click(function(){
qty_change('plus',$(this))
})
$('#empty_cart').click(function(){
// empty_cart()
_conf("Are you sure to empty your cart list?",'empty_cart',[])
})
$('.rem_item').click(function(){
_conf("Are you sure to remove the item in cart
list?",'rem_item',[$(this).attr('data-id')])
})
})
</script>

Checkout Page:
<script src="[Link]
<?php
$total = 0;
$qry = $conn->query("SELECT c.*,[Link],[Link],[Link] as pid from `cart` c
inner join `inventory` i on [Link]=c.inventory_id inner join products p on [Link]
= i.product_id where c.client_id = ".$_settings->userdata('id'));
while($row= $qry->fetch_assoc()):
$total += $row['price'] * $row['quantity'];
endwhile;
?>
<section class="py-5">
<div class="container">
<div class="card rounded-0">
<div class="card-body"></div>
<h3 class="text-center"><b>Checkout</b></h3>
<hr class="border-dark">
<form action="" id="place_order">
<input type="hidden" name="amount" value="<?php echo $total
?>">
<input type="hidden" name="payment_method" value="cod">
<input type="hidden" name="paid" value="0">
<div class="row row-col-1 justify-content-center">
<div class="col-6">
<div class="form-group col mb-0">
<label for="" class="control-label">Order Type</label>
33
</div>
<div class="form-group d-flex pl-2">
<div class="custom-control custom-radio">
<input class="custom-control-input custom-control-
input-primary" type="radio" id="customRadio4" name="order_type" value="2"
checked="">
<label for="customRadio4" class="custom-control-
label">For Delivery</label>
</div>
<div class="custom-control custom-radio ml-3">
<input class="custom-control-input custom-control-
input-primary custom-control-input-outline" type="radio" id="customRadio5"
name="order_type" value="1">
<label for="customRadio5" class="custom-control-
label">For Pick up</label>
</div>
</div>
<div class="form-group col address-holder">
<label for="" class="control-label">Delivery
Address</label>
<textarea id="" cols="30" rows="3"
name="delivery_address" class="form-control" style="resize:none"><?php echo
$_settings->userdata('default_delivery_address') ?></textarea>
</div>
<div class="col">
<span><h4><b>Total:</b> <?php echo
number_format($total) ?></h4></span>
</div>
<hr>
<div class="col my-3">
<h4 class="text-muted">Payment Method</h4>
<div class="d-flex w-100 justify-content-between">
<button class="btn btn-flat btn-dark">Cash on
Delivery</button>
<span id="paypal-button"></span>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</section>
34
<script>
[Link]({
env: 'sandbox', // change for production if app is live,

//app's client id's


client: {
sandbox: 'AdDNu0ZwC3bqzdjiiQlmQ4BRJsOarwyMVD_L4YQPrQm4ASuBg4bV5ZoH-
uveg8K_l9JLCmipuiKt4fxn',
//production: 'AaBHKJFEej4V6yaArjzSx9cuf-
UYesQYKqynQVCdBlKuZKawDDzFyuQdidPOBSGEhWaNQnnvfzuFB9SM'
},

commit: true, // Show a 'Pay Now' button

style: {
color: 'blue',
size: 'small'
},

payment: function(data, actions) {


return [Link]({
payment: {
transactions: [
{
//total purchase
amount: {
total: '<?php echo $total; ?>',
currency: 'PHP'
}
}
]
}
});
},

onAuthorize: function(data, actions) {


return [Link]().then(function(payment) {
// //sweetalert for successful transaction
// swal('Thank you!', 'Paypal purchase successful.', 'success');
payment_online()
});
},

35
}, '#paypal-button');

function payment_online(){
$('[name="payment_method"]').val("Online Payment")
$('[name="paid"]').val(1)
$('#place_order').submit()
}
$(function(){
$('[name="order_type"]').change(function(){
if($(this).val() ==2){
$('.address-holder').hide('slow')
}else{
$('.address-holder').show('slow')
}
})
$('#place_order').submit(function(e){
[Link]()
start_loader();
$.ajax({
url:'classes/[Link]?f=place_order',
method:'POST',
data:$(this).serialize(),
dataType:"json",
error:err=>{
[Link](err)
alert_toast("an error occured","error")
end_loader();
},
success:function(resp){
if(!![Link] && [Link] == 'success'){
alert_toast("Order Successfully placed.","success")
setTimeout(function(){
[Link]('./')
},2000)
}else{
[Link](resp)
alert_toast("an error occured","error")
end_loader();
}
}
})
})
})
36
</script>

Admin Login:
<?php require_once('../[Link]') ?>
<!DOCTYPE html>
<html lang="en" class="" style="height: auto;">
<?php require_once('inc/[Link]') ?>
<body class="hold-transition login-page dark-mode">
<script>
start_loader()
</script>
<div class="login-box">
<!-- /.login-logo -->
<div class="card card-outline card-primary">
<div class="card-header text-center">
<a href="./" class="h1"><b>Login</b></a>
</div>
<div class="card-body">
<p class="login-box-msg">Sign in to start your session</p>

<form id="login-frm" action="" method="post">


<div class="input-group mb-3">
<input type="text" class="form-control" name="username"
placeholder="Username">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-user"></span>
</div>
</div>
</div>
<div class="input-group mb-3">
<input type="password" class="form-control" name="password"
placeholder="Password">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-lock"></span>
</div>
</div>
</div>
<div class="row">
<div class="col-8">
<a href="<?php echo base_url ?>">Go to Website</a>
37
</div>
<!-- /.col -->
<div class="col-4">
<button type="submit" class="btn btn-primary btn-block">Sign
In</button>
</div>
<!-- /.col -->
</div>
</form>
<!-- /.social-auth-links -->

<!-- <p class="mb-1">


<a href="[Link]">I forgot my password</a>
</p> -->

</div>
<!-- /.card-body -->
</div>
<!-- /.card -->
</div>
<!-- /.login-box -->

<!-- jQuery -->


<script src="plugins/jquery/[Link]"></script>
<!-- Bootstrap 4 -->
<script src="plugins/bootstrap/js/[Link]"></script>
<!-- AdminLTE App -->
<script src="dist/js/[Link]"></script>

<script>
$(document).ready(function(){
end_loader();
})
</script>
</body>
</html>

Dashboard:
<?php require_once('../[Link]'); ?>
<!DOCTYPE html>
<html lang="en" class="" style="height: auto;">
<?php require_once('inc/[Link]') ?>
38
<body class="sidebar-mini layout-fixed control-sidebar-slide-open layout-
navbar-fixed dark-mode sidebar-mini-md sidebar-mini-xs" data-new-gr-c-s-check-
loaded="14.991.0" data-gr-ext-installed="" style="height: auto;">
<div class="wrapper">
<?php require_once('inc/[Link]') ?>
<?php require_once('inc/[Link]') ?>

<?php $page = isset($_GET['page']) ? $_GET['page'] : 'home'; ?>


<!-- Content Wrapper. Contains page content -->
<div class="content-wrapper bg-dark pt-3" style="min-height:
567.854px;">

<!-- Main content -->


<section class="content text-dark">
<div class="container-fluid">
<?php
if(!file_exists($page.".php") && !is_dir($page)){
include '[Link]';
}else{
if(is_dir($page))
include $page.'/[Link]';
else
include $page.'.php';

}
?>
</div>
</section>
<!-- /.content -->
<div class="modal fade" id="confirm_modal" role='dialog'>
<div class="modal-dialog modal-md modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Confirmation</h5>
</div>
<div class="modal-body">
<div id="delete_content"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id='confirm'
onclick="">Continue</button>
<button type="button" class="btn btn-secondary" data-
dismiss="modal">Close</button>
39
</div>
</div>
</div>
</div>
<div class="modal fade" id="uni_modal" role='dialog'>
<div class="modal-dialog modal-md modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"></h5>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id='submit'
onclick="$('#uni_modal form').submit()">Save</button>
<button type="button" class="btn btn-secondary" data-
dismiss="modal">Cancel</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="uni_modal_right" role='dialog'>
<div class="modal-dialog modal-full-height modal-md" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"></h5>
<button type="button" class="close" data-dismiss="modal" aria-
label="Close">
<span class="fa fa-arrow-right"></span>
</button>
</div>
<div class="modal-body">
</div>
</div>
</div>
</div>
<div class="modal fade" id="viewer_modal" role='dialog'>
<div class="modal-dialog modal-md" role="document">
<div class="modal-content">
<button type="button" class="btn-close" data-
dismiss="modal"><span class="fa fa-times"></span></button>
<img src="" alt="">
</div>
40
</div>
</div>
</div>
<!-- /.content-wrapper -->
<?php require_once('inc/[Link]') ?>
</body>
</html>

Order Page:
<?php
if(isset($_GET['id']) && $_GET['id'] > 0){
$qry = $conn->query("SELECT * from `products` where id = '{$_GET['id']}'
");
if($qry->num_rows > 0){
foreach($qry->fetch_assoc() as $k => $v){
$$k=$v;
}
}
}
?>
<div class="card card-outline card-info">
<div class="card-header">
<h3 class="card-title"><?php echo isset($id) ? "Update ": "Create New
" ?> Product</h3>
</div>
<div class="card-body">
<form action="" id="product-form">
<input type="hidden" name ="id" value="<?php echo isset($id) ? $id
: '' ?>">
<div class="form-group">
<label for="category_id" class="control-
label">Category</label>
<select name="category_id" id="category_id" class="custom-
select select2" required>
<option value=""></option>
<?php
$qry = $conn->query("SELECT * FROM `categories` order by
category asc");
while($row= $qry->fetch_assoc()):
?>

41
<option value="<?php echo $row['id'] ?>" <?php echo
isset($category_id) && $category_id == $row['id'] ? 'selected' : '' ?>><?php
echo $row['category'] ?></option>
<?php endwhile; ?>
</select>
</div>
<div class="form-group">
<label for="sub_category_id" class="control-label">Sub
Category</label>
<select name="sub_category_id" id="sub_category_id"
class="custom-select" required>
<option value="" selected="" disabled="">Select Category
First</option>
<?php
$qry = $conn->query("SELECT * FROM `sub_categories` order
by sub_category asc");
$sub_categories = array();
while($row= $qry->fetch_assoc()):
$sub_categories[$row['parent_id']][] = $row;
endwhile;
?>
</select>
</div>
<div class="form-group">
<label for="product_name" class="control-label">Product
Name</label>
<textarea name="product_name" id="" cols="30" rows="2"
class="form-control form no-resize"><?php echo isset($product_name) ?
$product_name : ''; ?></textarea>
</div>
<div class="form-group">
<label for="description" class="control-
label">Description</label>
<textarea name="description" id="" cols="30" rows="2"
class="form-control form no-resize summernote"><?php echo isset($description)
? $description : ''; ?></textarea>
</div>
<div class="form-group">
<label for="status" class="control-label">Status</label>
<select name="status" id="status" class="custom-select
selevt">
<option value="1" <?php echo isset($status) && $status == 1 ?
'selected' : '' ?>>Active</option>
42
<option value="0" <?php echo isset($status) && $status == 0 ?
'selected' : '' ?>>Inactive</option>
</select>
</div>
<div class="form-group">
<label for="" class="control-label">Images</label>
<div class="custom-file">
<input type="file" class="custom-file-input rounded-circle"
id="customFile" name="img[]" multiple accept="image/*"
onchange="displayImg(this,$(this))">
<label class="custom-file-label" for="customFile">Choose
file</label>
</div>
</div>
<?php
if(isset($id)):
$upload_path = "uploads/product_".$id;
if(is_dir(base_app.$upload_path)):
?>
<?php

$file= scandir(base_app.$upload_path);
foreach($file as $img):
if(in_array($img,array('.','..')))
continue;

?>
<div class="d-flex w-100 align-items-center img-item">
<span><img src="<?php echo base_url.$upload_path.'/'.$img
?>" width="150px" height="100px" style="object-fit:cover;" class="img-
thumbnail" alt=""></span>
<span class="ml-4"><button class="btn btn-sm btn-default
text-danger rem_img" type="button" data-path="<?php echo
base_app.$upload_path.'/'.$img ?>"><i class="fa fa-trash"></i></button></span>
</div>
<?php endforeach; ?>
<?php endif; ?>
<?php endif; ?>

</form>
</div>
<div class="card-footer">
43
<button class="btn btn-flat btn-primary" form="product-
form">Save</button>
<a class="btn btn-flat btn-default" href="?page=product">Cancel</a>
</div>
</div>
<script>
function displayImg(input,_this) {
[Link]([Link])
var fnames = []
[Link]([Link]).map(k=>{
[Link]([Link][k].name)
})
_this.siblings('.custom-file-label').html([Link](fnames))

}
function delete_img($path){
start_loader()

$.ajax({
url: _base_url_+'classes/[Link]?f=delete_img',
data:{path:$path},
method:'POST',
dataType:"json",
error:err=>{
[Link](err)
alert_toast("An error occured while deleting an
Image","error");
end_loader()
},
success:function(resp){
$('.modal').modal('hide')
if(typeof resp =='object' && [Link] == 'success'){
$('[data-path="'+$path+'"]').closest('.img-
item').hide('slow',function(){
$('[data-path="'+$path+'"]').closest('.img-
item').remove()
})
alert_toast("Image Successfully Deleted","success");
}else{
[Link](resp)
alert_toast("An error occured while deleting an
Image","error");
}
44
end_loader()
}
})
}
var sub_categories = $.parseJSON('<?php echo json_encode($sub_categories)
?>');
$(document).ready(function(){
$('.rem_img').click(function(){
_conf("Are sure to delete this image
permanently?",'delete_img',["'"+$(this).attr('data-path')+"'"])
})

$('#category_id').change(function(){
var cid = $(this).val()
var opt = "<option></option>";
[Link](sub_categories).map(k=>{
if(k == cid){
[Link](sub_categories[k]).map(i=>{
if('<?php echo isset($sub_category_id) ?
$sub_category_id : 0 ?>' == sub_categories[k][i].id){
opt += "<option
value='"+sub_categories[k][i].id+"'
selected>"+sub_categories[k][i].sub_category+"</option>";
}else{
opt += "<option
value='"+sub_categories[k][i].id+"'>"+sub_categories[k][i].sub_category+"</opt
ion>";
}
})
}
})
$('#sub_category_id').html(opt)
$('#sub_category_id').select2({placeholder:"Please Select
here",width:"relative"})
})
$('.select2').select2({placeholder:"Please Select
here",width:"relative"})
if(parseInt("<?php echo isset($category_id) ? $category_id : 0 ?>") >
0){
[Link]('test')
start_loader()
setTimeout(() => {
$('#category_id').trigger("change");
45
end_loader()
}, 750);
}
$('#product-form').submit(function(e){
[Link]();
var _this = $(this)
$('.err-msg').remove();
start_loader();
$.ajax({
url:_base_url_+"classes/[Link]?f=save_product",
data: new FormData($(this)[0]),
cache: false,
contentType: false,
processData: false,
method: 'POST',
type: 'POST',
dataType: 'json',
error:err=>{
[Link](err)
alert_toast("An error occured",'error');
end_loader();
},
success:function(resp){
if(typeof resp =='object' && [Link] == 'success'){
[Link] = "./?page=product";
}else if([Link] == 'failed' && !![Link]){
var el = $('<div>')
[Link]("alert alert-danger err-
msg").text([Link])
_this.prepend(el)
[Link]('slow')
$("html, body").animate({ scrollTop:
_this.closest('.card').offset().top }, "fast");
end_loader()
}else{
alert_toast("An error occured",'error');
end_loader();
[Link](resp)
}
}
})
})

46
$('.summernote').summernote({
height: 200,
toolbar: [
[ 'style', [ 'style' ] ],
[ 'font', [ 'bold', 'italic', 'underline',
'strikethrough', 'superscript', 'subscript', 'clear'] ],
[ 'fontname', [ 'fontname' ] ],
[ 'fontsize', [ 'fontsize' ] ],
[ 'color', [ 'color' ] ],
[ 'para', [ 'ol', 'ul', 'paragraph', 'height' ] ],
[ 'table', [ 'table' ] ],
[ 'view', [ 'undo', 'redo', 'fullscreen', 'codeview',
'help' ] ]
]
})
})
</script>

5.1.2 Screenshot:

Index Page:

47
Login Page

Registration Page

48
Books View Page

Book Detail Page

49
Cart Page

Check Out Page:

50
Admin Page Login

Dashboard

51
Book List

Add New Book

52
Inventory List

Add Item in Inventory

53
Order List

Sales Report

54
Categories List

Add New Categories

55
Sub-Categories List

Add New Sub-Categories

56
Settings

5.2 Code Efficiency


Code efficiency has been achieved through proper validation using various methods in PHP
coding. Fist no data can be added, viewed, edited and d e l e t e d t o database w i t h o u t
l o g i n o r s e s s i o n . For t h i s w e h a v e implanted session tracking techniques through
PHP. Codlings have been used to validate various f o r m s to ensure correct data should
enter in database.

57
5.3 Testing Procedures
5.3.1 Testing Approach

• Unit Testing: A Unit corresponds to a form/class in the package. Unit testing focuses on
verification of the corresponding form or class. In this level we have tested all our forms/classes
individually. This testing includes testing of control paths, interfaces, local data structures,
logical decisions, boundary conditions, and error handling. From this testing we were able to
save, retrieve, update, delete and the search records on a table.
• Integration Testing: Integration testing is used to verify the combination of the software
modules. In this level, we have tested by combining all unit tested forms into a subsystem. Here
we found that the subsystems are performing well.
• System Testing: System testing is used to verify, whether the developed system meets the
requirements.
• Acceptance Testing: Acceptance is the part of the project by which the customer accepts the
product. The system under consideration is tested for user acceptance by constantly keeping in
touch with the system users at time of developing and making changes whenever required.

We hope that after the acceptance testing the system will perform the best result for the
organization. When modification will be made, we will use regression testing during the
maintenance of the system.

The Software System delivered to the customer may undergo changes. Changes may be due to
addition of new functional modules or performance enhancement. For this purpose, proper
maintenance of the system is must.

5.3.2 Unit Testing


Test case Ref No TCT-001

Functionality : Log in to the System

Expected outcome : The user should not login to member’s area


. and some error message follow

Step No. Data Used Actual Outcome

58
1. Click on t h e log in button An alert message came to enter
without entering username or Username
password
2. Click on the log in button An alert message came to enter
after entering some username password
leaving password field blank
3. Click on the log in button An alert message came to enter
after entering some password but Username
leaving username field blank

4. Click on the log in button A message displayed on Log in


after entering some wrong page about this
username but correct
password

Test case Ref No TCT-002

Functionality : Enter valid Data for customer registration

Expected outcome : The user should not get register any record without filling
all necessary fields and some error message follow
The user should not get registered again with same
patient id

Step No. Data Used Actual Outcome


1. Click on the save button An alert message came to each
without entering valid details Details and focused on the respective
fields
2. Click on the submit button A message displayed about existence
After entering a duplicate patient of such patient
id

59
Chapter 6
Result and Discussion

60
6.1 Test Reports
Test Case No Date Pass / Fail
TCT-001 11/01/2023 Pass
TCT-002 02/02/2023 Pass
TCT-003 25/03/2023 Pass

6.2 User Documentation

• For Management
Online Shopping System is primarily designed for providing information from the
data after processing them. This system is designed for supplying information to the
strategic level of management from the operational control. It includes almost all
the functional areas needed like keeping Employee Records Student Records and
Fees Records.

• For User
With this electronic data processing system, the operators will able to maintain the
following task:

• Information regarding Patients.


• Records of Test Report with their details.
• Regular Transaction Details

• For data processing department


• In maintenance, the data processing department needs to create backup of
the database file from time to time.
• The main menu of the system provides different menus for different
purposes.

61
Chapter 7
Conclusion

62
7.1 Conclusion
After implementing the application, it will contain the advantages were incomparable to the
present contemporary systems used by company. The most admirable feature founded was its
simplicity in terms of application to the user but its highly beneficial outputs can’t be ignored.
The users will be highly benefited after using the system.

It is hoped that this project will help the future developers to modify and implement the system.
After modifying some techniques of the programs, it will give us the best performance as our
requirements. The project will be very useful for the users.

7.2 Future Scope


Software development is never –ending process and continues the life of the software as per
the changing needs of the user from time to time. The project is no doubt has been developed
keeping in mind easy modification and enhancement that may be required from time to time.

However, there are many scopes to modify this software. As because due to shortage of time,
we here become unable to include many things. We are trying to cover all their existing system
for sales return records of the items but due to shortage of time we become unable to include
many things. Due to lake of time, I here include none of them and a future scope one can
develop these returns which are so much essential. Only with a little more doing it is possible
to design the formats for those returns. Moreover, an on-line system will be more helpful to the
organization. With almost the same data with only a little modification an on-line system can
be designed to fulfil their demands. All these can be considered to be future scope for this
project.

63

You might also like