Share LEELA FINAL REPORT 2 - Leela Gowda
Share LEELA FINAL REPORT 2 - Leela Gowda
A PROJECT REPORT
ON
“INVENTORY MANAGEMENT
SYSTEM”
Submitted in practical fulfillment for the award of
Channasandra, Bengaluru-560098
2022-2023
RNS FIRST GRADE COLLEGE
NAAC ACCREDITED WITH ’A’ GRADE
CERTIFICATE
This is to certify that LEELA V (Register No. 208MSB7034) has successfully completed the
project titled “INVENTORY MANAGEMENT SYSTEM” at RNS First Grade College
under my supervision and guidance in the fulfillment of requirements of Vth semester,
Bachelor of Computer Application of Bangalore University, Bangalore.
1)………………..
2)………………..
ACKNOWLEDGEMENT
I express my sincere thanks to our beloved Principal, Dr. Sudheer Pai K L, for providing us
with all the facilities for the laboratory and library.
I express my gratitude to our Vice Principal Prof. Shilpa Sarnad, for her continuous support
and assistance during the course of my project.
I wish to reciprocate in full measure the kindness shown by Dr. Mohan S H, Head of the
Department who inspired us with his valuable suggestions in successfully completing the
project work.
I express my grateful thanks to all the staff members, the Department of Computer
Applications for their valuable assistance, encouragement, and cooperation during this
wonderful learning experience.
Finally, I would like to express my sincere thanks to my parents and my friends for the useful
tips and moral support.
TABLE OF CONTENTS
Chapter 1 INTRODUCTION……………………………..……………………..1
1.1 OBJECTIVES
1.4 FEATURES
1.5 SCOPE
1.6 MODULES
8.1 TESTING
Chapter 10 CONCLUSION………………………………………………….…82
BIBLIOGRAPHY…………………………………………………………………83
CHAPTER 1
INTRODUCTION
INTRODUCTION
The system keeps track of current inventory levels for recipes at the ingredient level, predicts how much
inventory is needed for the upcoming week, and generates order forms that can be automatically sent to
vendors. After meeting with a cook for The Classic Cafeteria, an on-site commercial cafeteria management
company, we were easily able to identify issues in the maintenance of resource prerequisite lists.
To keep track of their inventory levels, staff had to calculate a list of groceries utilized during a course of time,
calculate, and analyze the requirements for the upcoming weeks, and place their next order to multiple vendors
if needed. This process takes up a lot of time and human effort and is also inclined to human error.
It became our main goal to develop a system that can be used by both large corporations as well as small
businesses. This meant the system had to deliver a well-organized and simple user interface that at the same
time is capable of more exact changes and inputs. The system had to also be precise and reliable in terms of
the database design.
Since all the data and data objects are stored in a database, it was authoritative that these requirements were
met. Inventories contain most part of the current assets of any big company. Managing these inventories is
always hectic work for the manager. For good production and customer satisfaction, we need a good Inventory
Management system.
An inventory management system helps organizations account for all incoming and outgoing stock to better
meet customer demand and avoid the expense of overstock or loss of business with stock outs. The system
impacts every essential business function including accounting, production, etc..
1.1 OBJECTIVES
The objective of the project is to deliver an efficient inventory management system whose main functionality
apart from calculating the inventory include predicting the requirement for the next demand and if there is
a “Special Occasion” then accordingly the manager selects the particular occasion and extra requirements
are added to the next issuing order to the vendors which needs to be approved by the manager.
The product also aims to keep track of the shelf life of resources. If any resource nears the end of its shelf
life, it would acknowledge to the manager (admin) the details of the quantity that is near its expiration date.
several branches of a larger franchise. However, the system merely records sales and restocking data and
provides warning of low stock at any location through email at a specified interval.
The goal is to reduce the stress of tracking rather than to holder all store maintenance. Further features may
consist of the ability to create reports of sales, but again the explanation is left to the management. In addition,
since theft does occasionally occur, the system provides solutions for confirming the store inventory and for
correcting stock quantities.
Production units use an inventory management system to reduce their transport costs. The system is used to
track products and parts as they are transported from a seller to a storeroom, between storerooms, and finally
to a retail location or directly to a customer.
.
1 3 EXISTING SYSTEM
There is a number of Inventory Management System available in the market. After doing my research, I have
come to know that most of them are limited to few products. Some others are lacking in good UI. Marketing
points are not much focused on increasing sales.
Customer management system and Inventory Management system can’t be linked due to different organization
which leads to compromising the client satisfaction level. Most of them are not using the cloud computing
concept but we are trying to develop such a system that is for everyone rather than for only big companies or
for a small organization.
Most of them are expensive to use and their maintenance is generally not cheap. Our system is Pay-as-per-
Use.
1.4 FEATURES
Advancements in computing, applications, databases and IT operations created a market for modern inventory
management systems. The shift to web services, application-based development and APIs enabled third-party
application integrations that weren’t possible before. Now, inventory management systems can manage a host
of essential, inventory-related business functions.
Consider the following modern inventory management system features, which you can tailor to your business
needs and do more than control inventory:
infrastructure also enables automated backups, secure access and real-time collaboration across
multiple locations.
Internet of Things (IoT) Integrations: The IoTmovement brought automated inventory controls and
reporting, digital labeling, GPS tracking and Bluetooth- and RFID-enabled tracking. The technology
has also been used to improve security against theft and loss.
Digital Labeling: The move to digital labeling created features like GPS-enabled RFID tags and
digital barcoding. With digital inventory data, organizations can now network handheld devices with
databases for real-time tracking and paperless documentation.
Mobile Systems: Mobile applications running on wireless devices communicate with back-office
systems and central databases to speed up multi-location inventory processes. Using mobile devices
(running iOS or Android) allows for real-time tracking and instant inventory alerts and notifications.
Machine Learning and AI: AI-empowered virtual agents (or chatbots) are changing how businesses
share inventory availability to ecommerce customers. They use machine learning algorithms and web-
based services to communicate out-of-stock inventory, make recommendations based on an active
shopping cart or user history and automate backorder fulfillment. Machine learning can also report
sales data trends that are critical to optimizing online customer engagement metrics. Other benefits of
machine learning include the ability to improve internal inventory controls and prevent shortages. The
technology can also improve forecasting with real-time
data analysis and report on inventory trends that are difficult to track and predict manually
1.5 SCOPE
An inventory Management System (IMS) is targeted to small or medium organization which doesn’t have
many go down or warehouses i.e. only to those organization that has single power of authority. Some of the
scope are:
1.6 MODULES
The modules that makeup inventory management systems vary by provider and price. You can start with basic
inventory management modules (order management and administration tools) and build systems that include
advanced software features and integrations (such as accounting and e-commerce).
The most common inventory control and management modules include the following:
Ecommerce Modules: These modules are useful for selling goods online.
Accounting Modules: These modules automate financial and accounting activities like accounts
payable and receivable, procurement, and third-party payments, and they categorize revenue.
Data Administration Modules: These admin-like modules provide fast, simple tools for managing
inventory system data like connecting users via passwords, updating inventory records, and exporting
data.
CHAPTER 2
SYSTEM
REQUIREMENTS
SYSTEM REQUIREMENTS
The functional requirements must clearly state what the system should do in abnormal situations like
invalid output or error during computation. Specifically, it should specify the behavior of the system for
invalid inputs and invalid outputs.
It should also specify action when the input is valid but normal operation cannot be performed. The
Complete and
Consistent
Completeness is defining all services required by the user. Consistency means that requirements should not
have conflicting definitions.
PERFORMANCE
Performance requirements define acceptable response time for system functionality
The load time for user interface screens shall take no longer than five seconds.
RELIABILITY
Good validations for user input will be done.
Avoid incorrect storage of records.
SECURITY
Encrypt password.
Administrator has more rights than the user
PORTABILITY
This application opens in any personal computer supporting windows operating system
FLEXIBILITY
This system keeps on updating the data according to the transactions that takes place.
MAINTAINABILITY
During maintenance stage, the SRS can be referred for the validation.
CHAPTER 3
SOFTWARE
COMPONENTS
SOFTWARE COMPONENTS
Features of PHP
We have learned about PHP and its uses. But what are the features that make PHP popular.
Now that we have a basic understanding of PHP, let us see some of the most striking features
of PHP. It is a very popular language because it is simple and is open-source. There are many
convincing reasons for why you should be using PHP, some of them being:
PHP has something to offer everybody- it is extremely simple and friendly for beginners,
and it has lots of features for professionals. Over the years, the role of PHP has shifted,
and it has now become one of the most popular programming languages in the world.
Cascading Style Sheets (CSS) is a style sheet language used for describing
the presentation of a document written in a markup language such
as HTML or XML (including XML directs such as SVG, MathML or XHTML). CSS is
a cornerstone technology of the World Wide Web, alongside HTML and JavaScript.[2]
Hypertext Markup Language (HTML) is the standard markup language for creating web
pages and web applications. With Cascading Style Sheets (CSS) and JavaScript it forms a
triad of cornerstone technologies for the World Wide Web. Web browsers receive HTML
documents from a web server or from local storage and render them into multimedia web
pages. HTML describes the structure of a web page semantically and originally included cues
for the appearance of the document.HTML elements are the building blocks of HTML pages.
With HTML constructs, images and other objects, such as interactive forms, may be
embedded into the rendered page. It provides a means to create structured documents by
denoting structural semantics for text such as headings, paragraphs, lists, links, quotes and
other items. HTML elements are delineated by tags, written using angle brackets. Tags such
as <imp /> and <input /> introduce content into the page directly. Others such
as <p>...</p> surround and provide information about document text and may include other
tags as sub-elements. Browsers do not display the HTML tags, but use them to interpret the
content of the page. HTML can embed programs written in a scripting language such
as JavaScript which affect the behaviour and content of web pages. Inclusion of CSS defines
the look and layout of content. The World Wide Web Consortium (W3C), maintainer of both
the HTML and the CSS standards, has encouraged the use of CSS over explicit presentational
FEATURES:
In comparison to other web servers such as WAMP, it is simple to Set up
. It is Multi Cross-Platform, which implies it works on both Windows and Linux.
With a single command, you may start and stop the entire web server and database stack
Both a full and a standard version of XAMPP are available
. WAMP makes easy to code PHP and Creating Databases (in MySQL) in Windows platform.
It also includes OpenSSL, phpMyAdmin, MediaWiki, Joomla, WordPress, and a lot of additional modules.
he most obvious characteristic of XAMPP is the ease at which a webserver stack can be deployed and
instantiated. Later, some common packaged applications that could be easily installed were provided
Officially, XAMPP's designers intended it for use only as a development tool, to allow website designers
and programmers to test their work on their own computers without any access to the Internet. To make this
as easy as possible, many important security features are disabled by default.
FEATURES
JavaScript was created in the first place for DOM manipulation. Earlier websites were mostly static, after
JS was created dynamic Web sites were made.
Functions in JS are objects. They may have properties and methods just like another object. They can be
passed as arguments in other functions.
Can handle date and time. Performs Form Validation although the forms are created using HTMLV
CHAPTER 4
DATA FLOW
DIAGRAM
A graphical tool used to describe and analysis the movement of data through a system is called data
flow diagram. Data flow diagram is the central basis, from which other components are developed, the
transformation of data from input to output, through process, may be described logically and independent of
the physical components associated with the system.
1. Physical DFD
2. Logical DFD
1. Physical DFD:
Structure analysis states that current system should first understand correctly. The physical DFD is the model
of current system and is used to ensure that system has been clearly understood. Physical DFD's shows actual
devices, departments and people etc.
2. Logical DFD:
Logical DFD are the model of proposed system. They clearly should show the requirement non which the
new system should be built. Later during the design activity this taken has basis for drawing the system
structure charts.
CHAPTER 5
DATA BASE
DATABASE
NAME TYPE
Category_id Int(11)
Name Varchar(250)
Status Enum(‘active’,’inactive’)
NAME TYPE
Id Int(11)
Name Var(250)
address Text
mobile Int(50)
balance Double(10,2)
NAME TYPE
Supplier_id Int(11)
Supplier_name Varchar(200)
Mobile Int(10)
Address Text
Status Enum(‘active’,’inactive’)
NAME TYPE
Purchase_id Int(11)
Supplier_id Varchar(255)
Product_id Varchar(255)
Quantity Varchar(255)
Purchase_date Timestamp
NAME TYPE
Pid Int(11)
Category_id Int(11)
Brand_id Int(11)
Pname Varchar(300)
Model Varchar(255)
Description Text
Quantity Int(11)
Unit Varchar(150)
Base_price Double(10,2)
Tax Decimal(4,2)
Minimum_order Double(10,2)
Supplier Int(11)
Status Enum(‘active’,’inactive’)
Date Date
NAME TYPE
User_id Int(11)
Email Varchar(200)
Password Varchar(200)
Name Varchar(200)
Type Enum(‘admin’,’member’)
Status Enum(‘active’,’inactive’)
NAME TYPE
Order_id Int(11)
Product_id Varchar(255)
Total_shipped Int(11)
Customer_id Int(11)
Order_date timestamp
CHAPTER 6
SCREEN SHOTS
SCREEN SHOTS
CHAPTER 7
SOURCE CODE
SOURCE CODE
flex-direction:column;
align-items:center;
justify-content:center;
}
#title{
text-shadow:2px 2px 5px #000;
}
</style>
<?php include('inc/container.php');?>
<div class="mb-3">
<label for="password" class="control-
label">Password</label>
<input type="password" class="form-control rounded-
0" id="password" name="pwd" placeholder="Password" required>
</div>
<div class="d-grid">
<button type="submit" name="login" class="btn btn-
primary rounded-0">Login</button>
</div>
</form>
</div>
</div>
</div>
</div>
<?php include('inc/footer.php');?>
}
if(!empty($_POST['btn_action']) && $_POST['btn_action'] == 'customerAdd'){
$inventory->saveCustomer();
}
if(!empty($_POST['btn_action']) && $_POST['btn_action'] == 'getCustomer'){
$inventory->getCustomer();
}
if(!empty($_POST['btn_action']) && $_POST['btn_action'] == 'customerUpdate'){
$inventory->updateCustomer();
}
if(!empty($_POST['btn_action']) && $_POST['btn_action'] == 'customerDelete'){
$inventory->deleteCustomer();
}
// Category management
if(!empty($_POST['action']) && $_POST['action'] == 'categoryList') {
$inventory->getCategoryList();
}
if(!empty($_POST['btn_action']) && $_POST['btn_action'] == 'categoryAdd'){
$inventory->saveCategory();
}
if(!empty($_POST['btn_action']) && $_POST['btn_action'] == 'getCategory'){
$inventory->getCategory();
}
if(!empty($_POST['btn_action']) && $_POST['btn_action'] == 'updateCategory'){
$inventory->updateCategory();
}
if(!empty($_POST['btn_action']) && $_POST['btn_action'] == 'deleteCategory'){
$inventory->deleteCategory();
}
// Brand management
if(!empty($_POST['action']) && $_POST['action'] == 'listBrand') {
$inventory->getBrandList();
}
if(!empty($_POST['btn_action']) && $_POST['btn_action'] == 'addBrand'){
$inventory->saveBrand();
}
if(!empty($_POST['btn_action']) && $_POST['btn_action'] == 'getBrand'){
$inventory->getBrand();
}
if(!empty($_POST['btn_action']) && $_POST['btn_action'] == 'updateBrand'){
$inventory->updateBrand();
}
if(!empty($_POST['btn_action']) && $_POST['btn_action'] == 'deleteBrand'){
$inventory->deleteBrand();
}
// Product management
if(!empty($_POST['action']) && $_POST['action'] == 'listProduct') {
$inventory->getProductList();
}
if(!empty($_POST['btn_action']) && $_POST['btn_action'] == 'getCategoryBrand') {
echo $inventory->getCategoryBrand($_POST['categoryid']);
}
if(!empty($_POST['btn_action']) && $_POST['btn_action'] == 'addProduct') {
$inventory->addProduct();
}
if(!empty($_POST['btn_action']) && $_POST['btn_action'] == 'getProductDetails') {
$inventory->getProductDetails();
}
if(!empty($_POST['btn_action']) && $_POST['btn_action'] == 'updateProduct'){
$inventory->updateProduct();
}
if(!empty($_POST['btn_action']) && $_POST['btn_action'] == 'deleteProduct'){
$inventory->deleteProduct();
}
}
public function login($email, $password){
$password = md5($password);
$sqlQuery = "
SELECT userid, email, password, name, type, status
FROM ".$this->userTable."
WHERE email='".$email."' AND password='".$password."'";
return $this->getData($sqlQuery);
}
public function checkLogin(){
if(empty($_SESSION['userid'])) {
header("Location:login.php");
}
}
public function getCustomer(){
$sqlQuery = "
SELECT * FROM ".$this->customerTable."
WHERE id = '".$_POST["userid"]."'";
$result = mysqli_query($this->dbConnect, $sqlQuery);
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
echo json_encode($row);
}
if(!empty($_POST["order"])){
$sqlQuery .= 'ORDER BY '.$_POST['order']['0']['column'].'
'.$_POST['order']['0']['dir'].' ';
} else {
$sqlQuery .= 'ORDER BY id DESC ';
}
if($_POST["length"] != -1){
$sqlQuery .= 'LIMIT ' . $_POST['start'] . ', ' . $_POST['length'];
}
$result = mysqli_query($this->dbConnect, $sqlQuery);
$numRows = mysqli_num_rows($result);
$customerData = array();
while( $customer = mysqli_fetch_assoc($result) ) {
$customerRows = array();
$customerRows[] = $customer['id'];
$customerRows[] = $customer['name'];
$customerRows[] = $customer['address'];
$customerRows[] = $customer['mobile'];
$customerRows[] = number_format($customer['balance'],2);
$customerRows[] = '<button type="button" name="update" id="'.$customer["id"].'"
class="btn btn-primary btn-sm rounded-0 update" title="update"><i class="fa fa-
edit"></i></button><button type="button" name="delete" id="'.$customer["id"].'" class="btn btn-danger
btn-sm rounded-0 delete" ><i class="fa fa-trash"></button>';
$customerRows[] = '';
$customerData[] = $customerRows;
}
$output = array(
"draw" => intval($_POST["draw"]),
"recordsTotal" => $numRows,
"recordsFiltered" => $numRows,
"data" => $customerData
);
echo json_encode($output);
<thead><tr>
<th>#</th>
<th>Product/Code</th>
<th>Starting Inventory</th>
<th>Inventory Recieved</th>
<th>Inventory Shipped</th>
<th>Inventory on Hand</th>
</tr></thead>
</table>
</div></div>
</div>
</div>
</div>
</div>
</div>
<?php include('inc/footer.php');?>
<script src="js/jquery.dataTables.min.js"></script>
<script src="js/dataTables.bootstrap.min.js"></script>
<th>Name</th>
<th>Address</th>
<th>Mobile</th>
<th>Balance</th>
<th>Action</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="customerModal" class="modal">
<div class="modal-dialog modal-dialog-centered rounded-0">
<div class="modal-content rounded-0">
<div class="modal-header">
<h4 class="modal-title"><i class="fa fa-plus"></i> Add
Customer</h4>
<button type="button" class="btn-close text-xs" data-
bs-dismiss="modal"></button>
</div>
<div class="modal-body">
<div class="container-fluid">
<form method="post" id="customerForm">
<input type="hidden" name="userid"
id="userid" />
<input type="hidden"
name="btn_action" id="btn_action" value="customerAdd" />
<div class="mb-3">
<label class="control-
label">Name</label>
<input type="text"
name="cname" id="cname" class="form-control rounded-0" required />
</div>
<div class="mb-3">
<label class="control-
label">Mobile</label>
<input type="number"
name="mobile" id="mobile" class="form-control rounded-0" required />
</div>
<div class="mb-3">
<label class="control-
label">Balance</label>
<input type="number"
name="balance" id="balance" class="form-control rounded-0" required />
</div>
<div class="mb-3">
<label class="control-
label">Address</label>
<textarea name="address"
id="address" class="form-control rounded-0" rows="5" required></textarea>
</div>
</form>
</div>
</div>
<div class="modal-footer">
<button type="submit" name="action" id="action"
class="btn btn-sm rounded-0 btn-primary" form="customerForm" >Save</button>
<button type="button" class="btn btn-sm rounded-0
btn-default border" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</div>
</div>
<?php include('inc/footer.php');?>
<script src="js/jquery.dataTables.min.js"></script>
<script src="js/dataTables.bootstrap.min.js"></script>
<link rel="stylesheet" href="css/dataTables.bootstrap.min.css" />
<script src="js/category.js"></script>
<script src="js/common.js"></script>
<?php include('inc/container.php');?>
<div class="container">
</div>
<div style="clear:both"></div>
</div>
<div class="card-body">
<div class="row">
<div class="col-sm-12 table-responsive">
<table id="categoryList" class="table table-bordered table-striped">
<thead><tr>
<th>ID</th>
<th>Category Name</th>
<th>Status</th>
<th>Action</th>
</tr></thead>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="categoryModal" class="modal fade">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title"><i class="fa fa-plus"></i> Add
Category</h4>
<button type="button" class="btn-close" data-bs-
dismiss="modal"></button>
</div>
<div class="modal-body">
<form method="post" id="categoryForm">
<input type="hidden" name="categoryId"
id="categoryId"/>
include('inc/header.php');
include 'Inventory.php';
$inventory = new Inventory();
$inventory->checkLogin();
?>
<script src="js/jquery.dataTables.min.js"></script>
<script src="js/dataTables.bootstrap.min.js"></script>
<link rel="stylesheet" href="css/dataTables.bootstrap.min.css" />
<script src="js/brand.js"></script>
<script src="js/common.js"></script>
<?php include('inc/container.php');?>
<div class="container">
<tr>
<th>ID</th>
<th>Category</th>
<th>Brand Name</th>
<th>Status</th>
<th>Action</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>
<div id="brandModal" class="modal fade">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title"><i class="fa fa-plus"></i> Add
Brand</h4>
<button type="button" class="btn-close" data-bs-
dismiss="modal"></button>
</div>
<div class="modal-body">
<form method="post" id="brandForm">
<input type="hidden" name="id" id="id" />
<input type="hidden" name="btn_action" id="btn_action" />
<div class="mb-3">
<select name="categoryid" id="categoryid"
class="form-select rounde-0" required>
<option value="">Select
Category</option>
<?php echo $inventory-
>categoryDropdownList(); ?>
</select>
</div>
<div class="mb-3">
<label>Enter Brand Name</label>
<input type="text" name="bname" id="bname"
class="form-control rounde-0" required />
</div>
</form>
</div>
<div class="modal-footer">
<input type="submit" name="action" id="action" class="btn btn-
primary btn-sm rounded-0" value="Add" form="brandForm"/>
<button type="button" class="btn btn-default btn-sm rounded-0" data-
bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</div>
<?php include('inc/footer.php');?>
<script src="js/supplier.js"></script>
<script src="js/common.js"></script>
<?php include('inc/container.php');?>
<div class="container">
<?php include("menus.php"); ?>
<div class="row">
<div class="col-lg-12">
<div class="card card-default rounded-0 shadow">
<div class="card-header">
<div class="row">
<div class="col-lg-10 col-md-10 col-sm-8 col-xs-6">
<h3 class="card-title">Supplier List</h3>
</div>
<div class="col-lg-2 col-md-2 col-sm-4 col-xs-6 text-end">
<button type="button" name="add" id="addSupplier" data-bs-
toggle="modal" data-bs-target="#userModal" class="btn btn-primary btn-sm rounded-0"><i class="far fa-
plus-square"></i> Add Supplier</button>
</div>
</div>
<div class="clear:both"></div>
</div>
<div class="card-body">
<div class="row">
<div class="col-sm-12 table-responsive">
<table id="supplierList" class="table table-bordered
table-striped">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Mobile</th>
<th>Address</th>
<th>Status</th>
<th>Action</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="supplierModal" class="modal fade">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title"><i class="fa fa-plus"></i> Add
Supplier</h4>
<button type="button" class="btn-close" data-bs-
dismiss="modal"></button>
</div>
<div class="modal-body">
<form method="post" id="supplierForm">
<input type="hidden" name="supplier_id"
id="supplier_id" />
<input type="hidden" name="btn_action"
id="btn_action" />
<div class="mb-3">
<label>Supplier Name</label>
<input type="text"
name="supplier_name" id="supplier_name" class="form-control rounded-0" required />
</div>
<div class="mb-3">
<label>Mobile</label>
<div class="mb-3">
<label>Address</label>
<textarea name="address" id="address"
class="form-control rounded-0" rows="5" required></textarea>
</div>
</form>
</div>
<div class="modal-footer">
<input type="submit" name="action" id="action"
class="btn btn-primary rounded-0 btn-sm" value="addSupplier" form="supplierForm"/>
<button type="button" class="btn btn-default border
rounded-0 btn-sm" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</div>
</div>
<?php include('inc/footer.php');?>
<script src="js/jquery.dataTables.min.js"></script>
<script src="js/dataTables.bootstrap.min.js"></script>
<link rel="stylesheet" href="css/dataTables.bootstrap.min.css" />
<script src="js/product.js"></script>
<script src="js/common.js"></script>
<?php include('inc/container.php');?>
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="card card-default rounded-0 shadow">
<div class="card-header">
<div class="row">
<div class="col-lg-10 col-md-10 col-sm-8 col-xs-6">
<h3 class="card-title">Product List</h3>
</div>
<div class="col-lg-2 col-md-2 col-sm-4 col-xs-6 text-end">
<button type="button" name="add" id="addProduct" class="btn btn-primary bg-gradient
rounded-0 btn-sm"><i class="far fa-plus-square"></i> Add Product</button>
</div>
</div>
</div>
<div class="card-body">
<div class="row"><div class="col-sm-12 table-responsive">
<table id="productList" class="table table-bordered table-striped">
<thead><tr>
<th>ID</th>
<th>Category</th>
<th>Brand Name</th>
<th>Product Name</th>
<th>Product Model</th>
<th>Quantity</th>
<th>Supplier Name</th>
<th>Status</th>
<th>Action</th>
</tr></thead>
</table>
</div></div>
</div>
</div>
</div>
</div>
</select>
</div>
<div class="form-group">
<label>Select Brand</label>
<select name="brandid" id="brandid" class="form-select rounded-0" required>
<option value="">Select Brand</option>
</select>
</div>
<div class="form-group">
<label>Product Name</label>
<input type="text" name="pname" id="pname" class="form-control rounded-0"
required />
</div>
<div class="form-group">
<label>Product Model</label>
<input type="text" name="pmodel" id="pmodel" class="form-control rounded-0"
required />
</div>
<div class="form-group">
<label>Product Description</label>
<textarea name="description" id="description" class="form-control rounded-0"
rows="5" required></textarea>
</div>
<div class="form-group">
<label>Product Quantity</label>
<div class="input-group">
<input type="text" name="quantity" id="quantity" class="form-control rounded-0"
required pattern="[+-]?([0-9]*[.])?[0-9]+" />
<select name="unit" class="form-select rounded-0" id="unit" required>
<option value="">Select Unit</option>
<option value="Bags">Bags</option>
<option value="Bottles">Bottles</option>
<option value="Box">Box</option>
<option value="Dozens">Dozens</option>
<option value="Feet">Feet</option>
<option value="Gallon">Gallon</option>
<option value="Grams">Grams</option>
<option value="Inch">Inch</option>
<option value="Kg">Kg</option>
<option value="Liters">Liters</option>
<option value="Meter">Meter</option>
<option value="Nos">Nos</option>
<option value="Packet">Packet</option>
<option value="Rolls">Rolls</option>
</select>
</div>
</div>
<div class="form-group">
<label>Product Base Price</label>
<input type="text" name="base_price" id="base_price" class="form-control rounded-
0" required pattern="[+-]?([0-9]*[.])?[0-9]+" />
</div>
<div class="form-group">
<label>Product Tax (%)</label>
<input type="text" name="tax" id="tax" class="form-control rounded-0" required
pattern="[+-]?([0-9]*[.])?[0-9]+" />
</div>
<div class="form-group">
<label>Supplier</label>
<select name="supplierid" id="supplierid" class="form-select rounded-0" required>
<option value="">Select Supplier</option>
<?php echo $inventory->supplierDropdownList();?>
</select>
</div>
</form>
</div>
<div class="modal-footer">
<input type="submit" name="action" id="action" class="btn btn-primary rounded-0 btn-
sm" value="Add" form="productForm"/>
<button type="button" class="btn btn-default border rounded-0 btn-sm" data-bs-
dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</div>
<?php include('inc/footer.php');?>
<script src="js/jquery.dataTables.min.js"></script>
<script src="js/dataTables.bootstrap.min.js"></script>
<link rel="stylesheet" href="css/dataTables.bootstrap.min.css" />
<script src="js/purchase.js"></script>
<script src="js/common.js"></script>
<?php include('inc/container.php');?>
<div class="container">
</div>
<?php include('inc/footer.php');?
<div class="row">
<div class="col-lg-12">
<div class="card card-default rounded-0 shadow">
<div class="card-header">
<div class="row">
<div class="col-lg-10 col-md-10 col-sm-8 col-xs-6">
<h3 class="card-title">Manage Orders</h3>
</div>
<th>Action</th>
</tr></thead>
</table>
</div></div>
</div>
</div>
</div>
</div>
</div>
</div>
<?php include('inc/footer.php');?>
CHAPTER 8
SYSTEM TESTING AND
VALIDATION
8.1 TESTING
The Main purpose of planning is to have a approach to determine the scope of testing, resources involved,
time schedule required for the testing etc. A systemic approach is followed to ensure all the safety standards
or regulatory codes are inculcated in the software. The plan normally encloses the detailed understanding
of the workflow. It also includes test coverage which is used to check whether all the requirements are
satisfied by the system under test throughout the life cycle of the product. It will have plans for the risks which
might arise in the product at later stages and a plan to overcome the same will be addressed.
Normally testing life cycle constitutes different testing phases, the test coverage might get overlapped at
different stages depending on the testing model being used under the project. The overlap might happen in the
same stage/phase of testing. For example, some requirements which were verified only during design
verification test but not repeated. The planning phase is applicable for both development and testing phases.
The methods used to build the tests will be determined by the standards, regulatory agencies or based on
agreements. The test method in the test plan includes the test coverage implementation details and also it
specifies test equipment or the test environment that needs to be used to determine the pass/fail criteria.
Coverage also applies to development phase where in statement coverage, branch coverage, path coverage
etc., are examined. When it comes to hardware test methods, it might include just a visual inspection or
procedures which needs to be documented separately.
A good test plan leads to deliver the product on time which leads to customer satisfaction. The test
organizations prepare the plan to acquire / develop test equipment and other resources required to implement
the test methods. The test responsibilities include, collecting the pre-condition data, to know how the data will
be stored and reported. The outcome of successful test plan will be a record/report of the verification of all
the requirement specifications of the product/application under test. This plan will be agreed upon by all
parties (client and team).
It contains various strategies that will be followed to perform testing. It includes what are the in scope and
out of scope parts for the particular testing being carried out. The environments which is involved in the
testing and how the project is approaching in terms of testing process.
The success of any of the unit tests is determined by the critical characteristics enclosed within
the same unit. While performing the unit tests, both positive and negative scenarios which indicates the
inappropriate behaviors needs to be covered to aggravate the coverage. There are many tools available in the
market which automates all the important unit tests like Junit, Selenium etc. Using automation for unit testing
will reduce most of the manual efforts and budget of the project is also saved. This will be usually carried
out by developer as it mainly focuses on the coding implementation.
In case of unit testing of a program, a unit may signify the functions or procedures section of the code. The
mainly purpose of the unit testing is to isolate the individual units from the system and to check whether
individual parts are behaving as expected. It is normally termed as white box testing as functional
requirements are not taken into consideration at that level of testing.
1. BENEFITS
Since unit testing is carried out on simple units, we can test the software without waiting for
another unit, hence dependency on other modules does not come into picture.
Once the modification is done for the unit code, it allows the developer to regress throughout the
code at later time to make sure that the module is working even after the changes incorporation.
It helps the developer to understand the functionality featured by every single unit of the system.
Data validation can be done in two places. While creating the database schema, we can specify certain
integrity constraints that have to be maintained b/w various relations in the schema. This ensures that no
insertion, deletion and update anomalies creep in during operation. Data validation can also be done at the
interface itself, to provide more robust level of data validation. For example, in the login form whose login
id has been established by the administrator will be given login permission. This can be trapped at the
interface level itself. And in the form, to modify the user profile, the administrator is allowed to modify
only if that login id has need permission.
CHAPTER 9
FUTURE ENHANCEMENT
FUTURE ENHANCEMENT
In order to get a computer-based inventory and sale system to the customer as soon as possible, the entire
system will not be delivered at once. A basic system to control sales and inventory will be delivered first.
This section contains information on upcoming software to enhance the capabilities of the basic product.
To ensure that the customer is able to receive a functional database by the set deadline, rather than simply a
security system, the full flexibility of the security system will be left for future enhancements.
Also, as analysis of the archive requires that there be an archive to analyze, this part of the system has been
left to a later date. Only once the system has been operating for some time will this information be useful (or
available), so our efforts will mostly be concentrated on the day-to-day functions of the database.
CHAPTER 10
CONCLUSION
CONCLUSION
In the area of communication and revolution, information has been an inevitable component. Effecting
Computing capabilities are therefore utilized. The availability of required information at the press of a
button is something favorable and therefore computers are used for purpose. Thus, way of potential
taping is achieved.
The project “INVENTORY MANAGEMENT SYSTEM” after being tested was found to be achieved
what is meant for. The system is found to be 100% error free and ready for implementation. Any work
may not be always perfect. There may be any errors or shortcomings in this work. We have taken at most
care to ensure that the project works perfectly.
The system has been designed in such a way that it can be modified with very little effort which such a
need arises in the future, as it follows the struts framework. The system has been found to work
efficiently and effectively. Due to its higher user friendliness, others may use these documents as a
prototype for developing similar application.
The developed software is tested with sample data and outputs obtained in according to the requirement.
Though it could not be claimed that ours is an ideal project, it will meet the primary requirements of the
concern. Even though we have tried my level best to make it a dream project, due to time constrains we
could not add more facilities to it. So, the projects have to be improved by having modifications as and when
the necessity arises in due course.
BIBLIOGRAPHY
1. Dr. Khalid N. Alhayyan & Dr. Imran Ahmad “Discovering and Analyzing Important Real-Time
Trends in Noisy Twitter Stream” n.p
2. J. Ramteke, S. Shah, D. Godhia, and A. Shaikh, “Election result prediction using Twitter sentiment
analysis,” in Inventive Computation Technologies (ICICT), International Conference on, 2016, vol. 1,
pp. 1–5.
3. M. Desai and M. Mehta, "Techniques for sentiment analysis of Twitter data: A comprehensive
survey", 2016 International Conference on Computing, Communication and Automation (ICCCA),
2016.
4. Alexander Pak and Patrick Paroubek. "Twitter as a corpus for sentiment analysis and opinion
mining". In Proceedings of the Seventh International Conference on Language Resources and Evaluation
(LREC’10), may 2010.
5. R. Mehta, D. Mehta, D. Chheda, C. Shah, and P. M. Chawan, “Sentiment analysis and influence
tracking using twitter,” International Journal of Advanced Research in Computer Science and
Electronics Engineering (IJARCSEE), vol. 1, no. 2, p. pp–72, 2012.
6. Mtibaa, M. May, C. Diot and M. Ammar, "PeopleRank: Social Opportunistic Forwarding", 2010
Proceedings IEEE INFOCOM, 2010.
7. Zhu, Y. and Shesha, D. (2002). Stat stream: Statistical monitoring of thousands of data streams in real
time. In Proceedings of the 28th Very Large Data Base Conference. 358–369
8. Li, H.-F. and Lee, S.-Y. (2009). Mining frequent item sets over