0% found this document useful (0 votes)
356 views

Final

The document describes a POS and inventory system created by Tehra Technologies. It provides an introduction to the company and project, describes the existing manual system, scope of the new automated system, hardware and software requirements, and technologies used like HTML, CSS, JavaScript, PHP and MySQL.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
356 views

Final

The document describes a POS and inventory system created by Tehra Technologies. It provides an introduction to the company and project, describes the existing manual system, scope of the new automated system, hardware and software requirements, and technologies used like HTML, CSS, JavaScript, PHP and MySQL.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 121

CHAPTER 1:

INTRODUCTION

1
1.1 Company Profile
Tehra Technologies at Glance:

TEHRA TECHNOLOGIES is a leading, highly


innovative software house, systems integrator and
technology provider, established to provide leading
edge intelligent technical solutions and consulting
services to businesses, organizations and
government in order to allow the efficient and
effective secure access and communication with
various heterogeneous information resources and
services, anytime and anywhere.

Our Vision and Corporate Motto

TEHRA TECHNOLOGIES activities and professional


services can be summarized in the following categories:

System Integration and Custom Software Development

 Design and development of Integrated IT Solutions


and Tailor-made Software, utilizing custom software
development frameworks and including training, help-
desk and software engineering outsourcing activities.

 Design, development, customization, deployment and


support of enterprise-driven custom software
applications and solutions, e-business(B2B) and e-

2
commerce(B2C) solutions as well as brand new
software products and services.

E-Services and e-Processes


 Design and development of (transactional) portals
exposing workflow-based e-services for customers,
citizens and businesses.
 Target Organizations: Private Sector.

3
1.2 Abstract

The project titled POS & Inventory System by tehra


technologies is a process whereby a business keeps
track of the goods and materials that is available. In
its simplest sense it can be done manually by a
count at the end of each day. In this way it is
possible to keep a record of the goods coming in to
the business and goods being sold.

A POS and Inventory System is a system which


helps customers make payments to the merchant in
exchange for goods and services. The history of a
Point of Sales System goes way back 43 years ago.

The used of manual processes in business has


decline since the rise of computerized and
automated systems. And in fact, nowadays, the use
of computer-based business system has become
prevalent all throughout the developed and
developing countries around the world due to the
increased productivity and efficiency of data
processing. In the sample case of Montejo
Newspaper Supply and Magazine Distribution they
are currently using the manual sales and inventory
system wherein computing for these are done
manually. But in dealing with these transactions,
accuracy, reliability and speed of human skills in
performing these transactions are limited because
clerical errors are often inevitable.

4
Because of these, they accepted our proposed
system. With the Caltex Mini Mart Inventory
System, the tracking of sales, controlling of
inventory, recording of products, calculating of
numerical data and searching, sorting and filtering
of item will translated into an automated process
which considers speed accuracy, orderliness and
maintainability of the system.

5
1.3 Existing System

As we know manual system are quite tedious, time


consuming and less efficient and accurate in
comparison to the computerized system.
So following are some disadvantage of the old
system –

1. Time consuming

2. Less accurate

3. Less efficient

4. Lot of paper work

5. Slow data processing

6. Difficult to keep old records

The Caltex Mini mart has a difficulty in monitoring


their items and supplies due to the current use of
manual system. They calculate the financial
records and total amount of the monthly sales,
expanses, and taxes use of manually which will
lead to an error and conflicts of calculate. Such as
failure of recording transactions, data
inconsistency and tediousness that will encounter
problem in time consuming and physical counting.

Specific Problem:

6
 Time Consuming in counting.

 Difficulty in monitoring product availability.

 Difficulty in the generating of reports.

 Data Inconsistency.

7
1.4 Scope of System

The Scope of this system is to provide user efficient


working environment and more output can be
generated through this. This system provides user
friendly interface resulting in knowing each and
every usability features of the system.

This system helps in tracking records so that past


records can be verified through them and one can
make decisions based on the past records. This
system completes the work in a very less time
resulting in less time consumption and high level of
efficiency.

This system is developed in such a way that even a


naïve user can also operate the system easily. The
calculations are made very quickly and the records
are directly saved into databases and the databases
can be maintained for a longer period of time. Each
record can be retrieved and can be verified for the
future transactions. The calculations are made very
quickly and the records are directly saved into
databases and the databases can be maintained for
a longer period of time. Each record can be
retrieved and can be verified for the future
transactions.

8
Also this system provides high level of security for
data leaking as only admin people can access the
database no changes can be made in it until it
verifies the user login id and password. The
calculations are made very quickly and the records
are directly saved into databases and the databases
can be maintained for a longer period of time. Each
record can be retrieved and can be verified for the
future transactions.

9
1.5 Operating Environment – Hardware and
Software

A. SOFTWARE RESOURCES USED:

 Frontend: HTML, CSS, JavaScript,


Bootstrap

 Language: PHP (Laravel Framework)

 Database: MySQL, Apache Server

B. HARDWARE REQUIREMENTS:

 System Type: 64-bit or 32-bit

 Processor: Intel core i5, 2 GHz

 Random Access Memory (RAM): 8 GB

 Storage Capacity: 1TB

 IO device: Mouse and Keyboard

 Device Name: Laptop or Computer and


Smartphone

10
1.6 Brief Description of Technology Used

HTML:

HTML stands for Hyper Text Markup Language.


HTML is the standard markup language for Web
pages. HTML elements are the building blocks of
HTML pages. HTML elements are represented
by <> tags.

The HyperText Markup Language or HTML is


the standard markup language for documents
designed to be displayed in a web browser. It can
be assisted by technologies such as Cascading
Style Sheets (CSS) and scripting languages such
as JavaScript.
Web browsers receive HTML documents from
a web server or from local storage and render the
documents into multimedia web pages. HTML
describes the structure of a web
page semantically and originally included cues for
the appearance of the document.

CSS:

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 dialects such
as SVG, MathML or XHTML). CSS is a

11
cornerstone technology of the World Wide Web,
alongside HTML and JavaScript.

CSS is designed to enable the separation of


presentation and content, including layout, colors,
and fonts. This separation can improve
content accessibility; provide more flexibility and
control in the specification of presentation
characteristics; enable multiple web pages to share
formatting by specifying the relevant CSS in a
separate .css file, which reduces complexity and
repetition in the structural content; and enable
the .css file to be cached to improve the page load
speed between the pages that share the file and its
formatting.
JavaScript:

JavaScript is a high-level, often just-in-time


compiled language that conforms to
the ECMAScript standard. It has dynamic
typing, prototype-based object-orientation,
and first-class functions. It is multi-paradigm,
supporting event-driven, functional,
and imperative programming styles. It
has application programming interfaces (APIs) for
working with text, dates, regular expressions,
standard data structures, and the Document Object
Model (DOM).

12
The ECMAScript standard does not include
any input/output (I/O), such
as networking, storage, or graphics facilities. In
practice, the web browser or other runtime
system provides JavaScript APIs for I/O.

JavaScript engines were originally used only in


web browsers, but are now core components of
some servers and a variety of applications. The
most popular runtime system for this usage
is Node.js.

PHP:

The PHP Hypertext Preprocessor (PHP) is a


programming language that allows web developers
to create dynamic content that interacts with
databases. PHP is basically used for developing
web based software applications. This tutorial
helps you to build your base with PHP.
PHP is a MUST for students and working
professionals to become a great Software Engineer
specially when they are working in Web
Development Domain. I will list down some of the
key advantages of learning PHP:
 PHP is a recursive acronym for "PHP: Hypertext

Preprocessor".
 PHP is a server side scripting language that is
embedded in HTML.

13
 It is used to manage dynamic content, databases,

session tracking, even build entire e-commerce


sites.
 It is integrated with a number of popular
databases, including MySQL, PostgreSQL,
Oracle, Sybase, Informix, and Microsoft SQL
Server.
 PHP is pleasingly zippy in its execution,
especially when compiled as an Apache module
on the Unix side.
 The MySQL server, once started, executes even
very complex queries with huge result sets in
record-setting time.
 PHP supports a large number of major protocols

such as POP3, IMAP, and LDAP. PHP4 added


support for Java and distributed object
architectures (COM and CORBA), making n-
tier development a possibility for the first time.
 PHP is forgiving: PHP language tries to be as
forgiving as possible.
 PHP Syntax is C-Like.

14
Laravel Framework:

Laravel is an open-source PHP framework, which


is robust and easy to understand. It follows a
model-view-controller design pattern. Laravel
reuses the existing components of different
frameworks which helps in creating a web
application. The web application thus designed is
more structured and pragmatic.

Laravel offers a rich set of functionalities which


incorporates the basic features of PHP frameworks
like CodeIgniter, Yii and other programming
languages like Ruby on Rails. Laravel has a very
rich set of features which will boost the speed of
web development.
If you are familiar with Core PHP and Advanced
PHP, Laravel will make your task easier. It saves a
lot time if you are planning to develop a website
from scratch. Moreover, a website built in Laravel
is secure and prevents several web attacks.
MySQL:
MySQL is a relational database management
system based on the Structured Query Language,
which is the popular language for accessing and
managing the records in the database. MySQL is
open-source and free software under the GNU
license. It is supported by Oracle Company.

15
MySQL is a Relational Database Management
System (RDBMS) software that provides many
things, which are as follows:

 It allows us to implement database operations


on tables, rows, columns, and indexes.

 It defines the database relationship in the form


of tables (collection of rows and columns), also
known as relations.

 It provides the Referential Integrity between


rows or columns of various tables.

 It allows us to updates the table indexes


automatically.

 It uses many SQL queries and combines useful


information from multiple tables for the end-users.

16
CHAPTER 2:

PROPOSED SYSTEM

17
2.1 Study of Similar System

We started research by identifying the need of IMS


in the organization. Initially we bounded our
research to find the general reasons that emerged
the needs of Inventory Management System. We
used different techniques to collect the data that can
clearly give us the overall image of the application.
The techniques we used were interview with the
developers, visiting online websites that are
presented as the templates and visiting some
organization to see their IMS application.
Basically, the following factors forced us to
develop IMS application:

 Cost and affordability.

 Lack of stock management.

 Effective flow of stock transfer and


management.

 Difficulty in monitoring the stock management.

Requirement Analysis:

We collected a number of requirements for project


from our primitive research, website visits, and
interview to the concerned personnel and their
experiences regarding the concepts of its

18
development. We have even visited some
organizations in nearby areas and analysis its
importance and try to develop the project by
fulfilling all the weakness that were found in the
application. We then decided to build same type of
application with different logic flow and new
language which will be suitable for the small
organization.
Most inventory management systems don’t require
the most high-tech computing systems to operate,
but some minimum specs are: Google Chrome or
Microsoft Edge. Four of the key software features
we see businesses looking for in their inventory
solution.

 Stock Management

 Unlimited Usage

 Reporting

 Reorder Points and Low Stock Alerts

IMS Requirement:

The goal for the application is to manage the


inventory management function of the
organization. Once it is automated all the functions
can be effectively managed and the organization
can achieve the competitive advantage. Business

19
requirement are discussed in the Scope section,
with the following additional details:
 Helps to search the specific product and
remaining stock.

 Details information about the product sales and


purchase.

 Brief Information of the organization today's


status in terms of news, number of present
inventories as per the date entered.

 It helps to identify the total presented inventory


in the company.

 To know the balance and details of sales


distributed in specific date.

 There is proper transaction management of


inventory.

 All transaction has specific entry date along


with quantity and rate.

20
2.2 Feasibility Study

This software has been tested for various feasibility


criterions from various point of views.
Technical Feasibility:
Development of the system requires tools like:
 Microsoft Visual Basic 2008.
 Laravel Framework.
 XAMPP, etc.

Which are easily available within the estimated


cost and schedule.
Operational Feasibility:

The system provides better solution to the libraries


by adding the typical requirement and necessities.
The solution provided by this system will be
acceptable to ultimate solution for the stock
management.
Economic Feasibility:

The system is estimated to be economically


affordable. The system is medium scale desktop
application and has affordable price. The benefits
include increased efficiency, effectiveness, and the
better performance. Comparing the cost and
benefits the system is found to be economically
feasible.

21
2.3 Objectives of Proposed System
General Objectives
To be able to accommodate the customers with
computerized, systematic, and correlated retail
information with regards to the products that they
purchase with their respective prices, the quantity
they purchase, and with less time burden.
Specific Objectives
 To be able to easily count the product in one
place on the system.

 To be able to monitor and update the system


based on the number of products they purchase
during their transaction and the reliability and
clarity of results by allowing the system to print
full-size invoices.

 To be able to generate report and record the


transaction in one place on the system.

 To be able to record a data without any


inconsistency.

 The main objective of this system is to keep


records of the complete inventory.

 It supports for inventory management helps you


record and track materials on the basis of both
quantity and value.

 It improves cash flow, visibility and decision


making.

22
2.4 Users of System

1. Admin

 Able to edit the entry as per entry.


 Able to add, modify and delete the stock
entry.

2. Inventory Management

 Able to check the stock available.


 Able to check the balance payment.
 Able to view the remaining sales stock.

23
CHAPTER 3:

ANALYSIS & DESIGN

24
3.1 System Requirements

Functional Requirements:

A. INPUT/OUTPUT
 System shall have a form to accept the customer
details.
 System shall display transaction details.
 System shall provide search facility on customer
name, order placed, date of order, date of order
dispatch, date of transaction, transaction amount,
etc.
 System should provide facility for change in
address/name.
 System should maintain details about placing
order/dispatch or order status.

B. PROCESSING

 System should automatically generate the bill.


 System should inform the pending order and
make changes if the order is dispatched.

C. ERROR HANDLING

 Should report any error on duplicate primary


key.
 Should report any “Out of Range” values on
numeric fields.

25
 Should report any data type mismatches any
field on the form.
 Should report on any ‘Invalid dates’.

Non – Functional Requirements:

1. All user manuals should be provided in the


necessary format
2. Application should support 5 simultaneous
users.
3. Transaction should be completed within 1/5th of
second
4. There will be backup procedure to maintain
records.

26
3.2 Entity Relationship Diagram (ERD)

27
3.3 Table Information

Table Name: Customer Information

Sr. Field Name Data Type Constraint Description


no
1 customer_id bigint(20) Primary Customer
Key ID

2 customer_name varchar(255) Customer


name

3 customer_address Varchar(255) Address

4 ddress2 text

5 customer_mobile Varchar(100) Mobile no

6 email_address Varchar(200) Email

7 contact varchar Contact

8 phone varchar Phone

9 fax Varchar Fax No

10 city text city

11 state text State

12 zip varchar Zip Code

13 country varchar Country

14 status int

28
Table Name: Invoice Details

Sr. Field Name Data Type Constraint Description


no
1 id int Primary ID
Key
2 invoice_details_id varchar Not null Invoice
details ID

3 invoice_id varchar Primary Invoice ID


Key
4 product_id Varchar Primar Product ID
Key
5 serial_no varchar Not null Serial NO

6 description varchar Not null Description

7 quantity Decimal(10,2) Not null Quantity of


product

8 rate Decimal(10,2) Not null rate

9 supplier_rate float Not null Suppiler


Rate

10 total_price Decimal Not null Total Price

11 discount decimal Not null Discount

12 discount_per varchar Not null

13 tax decimal Not null Tax


Applied

14 paid_amount decimal Not null

15 due_amount decimal Not null Due amount

16 status int Not null

29
Table Name: Supplier Information

Sr. Field Name Data Type Constraint Description


no
1 suppiler_id bigint(20) Primary Customer
Key ID

2 supplier_name varchar(255) Not null Customer


name

3 supplier_address Varchar(255) Not null Address

4 ddress2 text Not null

5 mobile Varchar(100) Not null Mobile no

6 email_address Varchar(200) Not null Email

7 contact varchar Not null Contact

8 phone varchar Not null Phone

9 fax Varchar Not null Fax No

10 city text Not null city

11 state text Not null State

12 zip varchar Not null Zip Code

13 country varchar Not null Country

14 status int Not null

30
Table Name: Product Purchase

Sr. Field Name Data Type Constraint


no
1 id int Primary key

2 purchase_id bigint Foreign Key

3 chalan_no varchar Not null

4 supplier_id bigint Foreign key

5 grand_total_amount decimal Not null

6 paid_amount decimal Not null

7 due_amount decimal Not null

8 total_discount decimal Not null

9 purchase_date varchar Not null

10 purchase_deatils text Not null

11 status int Not null

12 bank_id varchar Not null

13 payment_type int Not null

31
Table Name: Employee History

Sr. Field Name Data Constraint Description


no Type

1 id int Primary Id
key
2 first_name varchar Not null First Name

3 last_name varchar Not null Last Name

4 designation varchar Not null Designation

5 phone varchar Not null Phone NO

6 rate_type int Not null Rate Type

7 hrate float Not null

8 email varchar Not null Email

9 blood_group varchar Not null Blood


Group

10 address_line_1 text Not null Address

11 address_line_2 text Not null

12 image text Not null Image

13 country varchar Not null Country

14 city varchar Not null City

15 zip varchar Not null Zip Code

32
3.4 Use Case Diagram

33
Use Case: Payment – Textual Description

Use Case Payment


Name
Summary Customer chooses the
mode of payment
Actors Store Customer

Preconditions Cashier scanned all the items


and total is available on
display screen
Description 1. Cashier asks for the
mode of payment
2. Customer chooses
the mode of payment
either
debit/credit, cash or
reward/gift card.
3. Cashier selects the
method on POS
software.
4. Customer make the
payment
5. Payment approved
message and receipt is
generated.

34
Alternatives 1. Customer chooses to pay by
any combination of three
payment methods.
2. If customer chooses to pay
by debit/ credit but enters the
wrong pin.
3. If customer selects card/debit
payment and tap the card
but tap is not applicable.
4. If customer chooses to pay
by cash but don’t have
sufficient amount.
5. If customer chooses to pay
by gift or reward card but the
balance is not enough.
6. If customer enters the wrong
pin three times, the card will be
blocked.
7. If the total sale amount is
above $100, the tap on card will
not work.
Post Payment is approved.
Conditions

35
Use Case: Check out

36
Use Case: Check out – Description

Use Case Check Out


Name
Summary Customer finishes purchasing items and make
payment
Actors Store Customer and Cashier
Preconditions Customer queue up to reach POS terminal and cashier is
available

Description 1. Customer arrives at POS terminal with all items to be


purchased
2. Cashier login and starts new sale
3. Cashier scans the items to be purchased using bar code
scanner
4. System retrieves item specifications from catalogue and
records sale line item, and presents description, price,
quantity and running total. Cashier repeat until last item is
scanned.
5. System calculates total price with taxes and display to
customer
6. Cashier asks the mode of payment
7. Customer selects mode and make payment, and system
handles the payment.
8. System records completed sale and sends sale
information to the external Inventory system for stock
update.
9. System presents the receipt.
10. Customer leaves with receipt and all goods
purchased.
Alternatives 1. Customer cancels the transaction
2. Cashier suspends the sale
3. Cashier login failed.
4. System hangs up or system crashes.
5. Customer chooses to pay by cash but don’t have enough
cash
Post Payment is approved. Sale is recorded and saved in the
Conditions system. Receipt is printed and inventory is
updated.

37
Use Case: Cashier

38
Use Case Description

Use Case Cashier


Name

Description The Use Case Describes the role of


Cashier. The cashier firstly Login to the
System. Cashier can Prints the receipts,
Create Inventory Reports, Return Item
and Checkout the items.

Actors Cashier

Pre-Condition System check Login Credentials if


Doesn’t match the Cashier reenter
Credentials.

Post- After Checking credentials if match


Condition then System Show the Home
Screen/Dashboard.

39
3.5 Class Diagram

40
3.6 Activity Diagram

41
3.7 Deployment Diagram

42
3.8 Sample Input and Output Screen

1. Login Page

43
2. Home/Dashboard Page

44
3. Manage Sale Page

45
4. POS Sale page

46
5. Customer List Page

47
6. Product List Page

48
7. Supplier List Page

49
8. Stock Report Page

50
9. Add Supplier Page

51
10. Add Customer Page

52
11. Stock Return List

53
12. Wastage Return List

54
CHAPTER 4:

CODING

55
4.1 Code Snippets

1. Login

<?php require('session.php');?>
<?php if(logged_in()){ ?>
<script type="text/javascript">
window.location = "index.php";
</script>
<?php
} ?>
<!DOCTYPE html>
<html lang="en">

<head>

<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible"
content="IE=edge">
<meta name="viewport" content="width=device-
width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">

<title>Sales And Inventory</title>

<!-- Custom fonts for this template-->


<link href="../vendor/fontawesome-
free/css/all.min.css" rel="stylesheet" type="text/css">
<link
href="https://fonts.googleapis.com/css?family=Nunito
:200,200i,300,300i,400,400i,600,600i,700,700i,800,80
0i,900,900i" rel="stylesheet">

<!-- Custom styles for this template-->

56
<link href="../css/sb-admin-2.min.css"
rel="stylesheet">

</head>

<body class="bg-gradient-primary">

<div class="container">

<!-- Outer Row -->


<div class="row justify-content-center">

<div class="col-xl-10 col-lg-12 col-md-9">

<div class="card o-hidden border-0 shadow-lg


my-5">
<div class="card-body p-0">
<!-- Nested Row within Card Body -->
<div class="row shadow">
<div class="col-lg-6 d-none d-lg-block bg-
login-image"></div>
<div class="col-lg-6">
<div class="p-5">
<div class="text-center">
<h1 class="h4 text-gray-900 mb-
4">Welcome to Sales and Inventory!</h1>
</div>
<form class="user" role="form"
action="processlogin.php" method="post">
<div class="form-group">
<input class="form-control form-
control-user" placeholder="Username" name="user"
type="text" autofocus>
</div>
<div class="form-group">

57
<input class="form-control form-
control-user" placeholder="Password"
name="password" type="password" value="">
</div>
<div class="form-group">
<div class="custom-control custom-
checkbox small">
<input type="checkbox" class="custom-
control-input" id="customCheck">
<label class="custom-control-label"
for="customCheck">Remember Me</label>
</div>
</div>
<button class="btn btn-primary btn-user
btn-block" type="submit"
name="btnlogin">Login</button>
<hr>
<!-- <div class="text-center">
<a class="small"
href="register.php">Create an Account!</a>
</div> -->
</form>
</div>
</div>
</div>
</div>
</div>

</div>

</div>

</div>

<!-- Bootstrap core JavaScript-->

58
<script
src="../vendor/jquery/jquery.min.js"></script>
<script
src="../vendor/bootstrap/js/bootstrap.bundle.min.js"><
/script>

<!-- Core plugin JavaScript-->


<script src="../vendor/jquery-
easing/jquery.easing.min.js"></script>

<!-- Custom scripts for all pages-->


<script src="../js/sb-admin-2.min.js"></script>

</body>

</html>

59
2. Home Page

<?php
include'../includes/connection.php';
include'../includes/sidebar.php';
?><?php

$query = 'SELECT ID, t.TYPE


FROM users u
JOIN type t ON
t.TYPE_ID=u.TYPE_ID WHERE ID =
'.$_SESSION['MEMBER_ID'].'';
$result = mysqli_query($db, $query) or die
(mysqli_error($db));

while ($row = mysqli_fetch_assoc($result)) {


$Aa = $row['TYPE'];

if ($Aa=='User'){

?> <script type="text/javascript">


//then it will be redirected
alert("Restricted Page! You will be
redirected to POS");
window.location = "pos.php";
</script>
<?php }

}
?>
<div class="row show-grid">
<!-- Customer ROW -->
<div class="col-md-3">
<!-- Customer record -->
<div class="col-md-12 mb-3">

60
<div class="card border-left-primary shadow
h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-
center">
<div class="col mr-0">
<div class="text-xs font-weight-bold
text-primary text-uppercase mb-1">Customers</div>
<div class="h6 mb-0 font-weight-bold
text-gray-800">
<?php
$query = "SELECT COUNT(*) FROM
customer";
$result = mysqli_query($db, $query) or
die(mysqli_error($db));
while ($row =
mysqli_fetch_array($result)) {
echo "$row[0]";
}
?> Record(s)
</div>
</div>
<div class="col-auto">
<i class="fas fa-users fa-2x text-gray-
300"></i>
</div>
</div>
</div>
</div>
</div>

<!-- Supplier record -->


<div class="col-md-12 mb-3">
<div class="card border-left-warning shadow
h-100 py-2">
<div class="card-body">

61
<div class="row no-gutters align-items-
center">
<div class="col mr-0">
<div class="text-xs font-weight-bold
text-warning text-uppercase mb-1">Supplier</div>
<div class="h6 mb-0 font-weight-bold
text-gray-800">
<?php
$query = "SELECT COUNT(*) FROM
supplier";
$result = mysqli_query($db, $query) or
die(mysqli_error($db));
while ($row =
mysqli_fetch_array($result)) {
echo "$row[0]";
}
?> Record(s)
</div>
</div>
<div class="col-auto">
<i class="fas fa-users fa-2x text-gray-
300"></i>
</div>
</div>
</div>
</div>
</div>

</div>
<!-- Employee ROW -->
<div class="col-md-3">
<!-- Employee record -->
<div class="col-md-12 mb-3">
<div class="card border-left-success shadow
h-100 py-2">
<div class="card-body">

62
<div class="row no-gutters align-items-
center">
<div class="col mr-0">
<div class="text-xs font-weight-bold
text-success text-uppercase mb-1">Employees</div>
<div class="h6 mb-0 font-weight-bold
text-gray-800">
<?php
$query = "SELECT COUNT(*) FROM
employee";
$result = mysqli_query($db, $query) or
die(mysqli_error($db));
while ($row =
mysqli_fetch_array($result)) {
echo "$row[0]";
}
?> Record(s)
</div>
</div>
<div class="col-auto">
<i class="fas fa-users fa-2x text-gray-
300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- User record -->
<div class="col-md-12 mb-3">
<div class="card border-left-danger shadow h-
100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-
center">
<div class="col mr-0">

63
<div class="text-xs font-weight-bold
text-danger text-uppercase mb-1">Registered
Account</div>
<div class="h6 mb-0 font-weight-bold
text-gray-800">
<?php
$query = "SELECT COUNT(*) FROM
users WHERE TYPE_ID=2";
$result = mysqli_query($db, $query) or
die(mysqli_error($db));
while ($row =
mysqli_fetch_array($result)) {
echo "$row[0]";
}
?> Record(s)
</div>
</div>
<div class="col-auto">
<i class="fas fa-user fa-2x text-gray-
300"></i>
</div>
</div>
</div>
</div>
</div>

</div>
<!-- PRODUCTS ROW -->
<div class="col-md-3">
<!-- Product record -->
<div class="col-md-12 mb-3">
<div class="card border-left-success shadow
h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-
center">

64
<div class="col mr-0">
<div class="text-xs font-weight-bold
text-info text-uppercase mb-1">Product</div>
<div class="row no-gutters align-items-
center">
<div class="col-auto">
<div class="h6 mb-0 mr-3 font-weight-
bold text-gray-800">
<?php
$query = "SELECT COUNT(*)
FROM product";
$result = mysqli_query($db, $query) or
die(mysqli_error($db));
while ($row =
mysqli_fetch_array($result)) {
echo "$row[0]";
}
?> Record(s)
</div>
</div>
</div>
</div>

</div>
<div class="col-auto">
<i class="fas fa-clipboard-list fa-2x text-
gray-300"></i>
</div>

</div>
</div>
</div>
</div>

65
<!-- RECENT PRODUCTS -->
<div class="col-lg-3">
<div class="card shadow h-100">
<div class="card-body">
<div class="row no-gutters align-items-
center">

<div class="col-auto">
<i class="fa fa-th-list fa-fw"></i>
</div>

<div class="panel-heading"> Recent


Products
</div>
<div class="row no-gutters align-items-
center mt-1">
<div class="col-auto">
<div class="h6 mb-0 mr-0 text-gray-
800">
<!-- /.panel-heading -->

<div class="panel-body">
<div class="list-group">
<?php
$query = "SELECT NAME,
PRODUCT_CODE FROM product order by
PRODUCT_ID DESC LIMIT 10";
$result = mysqli_query($db,
$query) or die(mysqli_error($db));
while ($row =
mysqli_fetch_array($result)) {

echo "<a href='#' class='list-


group-item text-gray-800'>

66
<i class='fa fa-tasks fa-
fw'></i> $row[0]
</a>";
}
?>
</div>
<!-- /.list-group -->
<a href="product.php" class="btn
btn-default btn-block">View All Products</a>
</div>
<!-- /.panel-body -->
</div></div></div></div></div></div>
<!--
<div class="col-md-3">
<div class="col-md-12 mb-2">
<div class="card border-left-danger shadow h-
100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-
center">
<div class="col mr-2">
<div class="text-xs font-weight-bold
text-danger text-uppercase mb-1"><i class="fas fa-list
text-danger">&nbsp;&nbsp;&nbsp;</i>Recent
Products</div>
<div class="h6 mb-0 font-weight-bold
text-gray-800">
<?php
$query = "SELECT NAME FROM
product order by PRODUCT_ID DESC LIMIT 10";
$result = mysqli_query($db, $query) or
die(mysqli_error($db));
while ($row =
mysqli_fetch_array($result)) {
echo "<ul style='list-style-position:
outside'>";
echo "<li>$row[0]</li>";

67
echo "</ul>";
}
?>
</div>
</div>
<div class="col-auto">

</div>
</div>
</div>
</div>
</div>
</div> -->

</div>

<?php
include'../includes/footer.php';
?>

68
3. Products Page

<?php
include'../includes/connection.php';
include'../includes/sidebar.php';
$query = 'SELECT ID, t.TYPE
FROM users u
JOIN type t ON t.TYPE_ID=u.TYPE_ID
WHERE ID = '.$_SESSION['MEMBER_ID'].'';
$result = mysqli_query($db, $query) or die
(mysqli_error($db));

while ($row = mysqli_fetch_assoc($result)) {


$Aa = $row['TYPE'];

if ($Aa=='User'){
?>
<script type="text/javascript">
//then it will be redirected
alert("Restricted Page! You will be redirected to
POS");
window.location = "pos.php";
</script>
<?php
}
}
$sql = "SELECT DISTINCT CNAME,
CATEGORY_ID FROM category order by CNAME
asc";
$result = mysqli_query($db, $sql) or die ("Bad SQL:
$sql");

$aaa = "<select class='form-control' name='category'


required>
<option disabled selected hidden>Select
Category</option>";

69
while ($row = mysqli_fetch_assoc($result)) {
$aaa .= "<option
value='".$row['CATEGORY_ID']."'>".$row['CNAME
']."</option>";
}

$aaa .= "</select>";

$sql2 = "SELECT DISTINCT SUPPLIER_ID,


COMPANY_NAME FROM supplier order by
COMPANY_NAME asc";
$result2 = mysqli_query($db, $sql2) or die ("Bad SQL:
$sql2");

$sup = "<select class='form-control' name='supplier'


required>
<option disabled selected hidden>Select
Supplier</option>";
while ($row = mysqli_fetch_assoc($result2)) {
$sup .= "<option
value='".$row['SUPPLIER_ID']."'>".$row['COMPAN
Y_NAME']."</option>";
}

$sup .= "</select>";
?>

<div class="card shadow mb-4">


<div class="card-header py-3">
<h4 class="m-2 font-weight-bold text-
primary">Product&nbsp;<a href="#" data-
toggle="modal" data-target="#aModal" type="button"
class="btn btn-primary bg-gradient-primary"
style="border-radius: 0px;"><i class="fas fa-fw fa-
plus"></i></a></h4>
</div>
<div class="card-body">

70
<div class="table-responsive">
<table class="table table-bordered"
id="dataTable" width="100%" cellspacing="0">
<thead>
<tr>
<th>Product Code</th>
<th>Name</th>
<th>Price</th>
<th>Category</th>
<th>Action</th>
</tr>
</thead>
<tbody>

<?php
$query = 'SELECT PRODUCT_ID,
PRODUCT_CODE, NAME, PRICE, CNAME,
DATE_STOCK_IN FROM product p join category c
on p.CATEGORY_ID=c.CATEGORY_ID GROUP
BY PRODUCT_CODE';
$result = mysqli_query($db, $query) or die
(mysqli_error($db));

while ($row = mysqli_fetch_assoc($result)) {

echo '<tr>';
echo '<td>'.
$row['PRODUCT_CODE'].'</td>';
echo '<td>'. $row['NAME'].'</td>';
echo '<td>'. $row['PRICE'].'</td>';
echo '<td>'. $row['CNAME'].'</td>';
echo '<td align="right"> <div class="btn-
group">
<a type="button" class="btn btn-
primary bg-gradient-primary"
href="pro_searchfrm.php?action=edit &

71
id='.$row['PRODUCT_CODE'] . '"><i class="fas fa-fw
fa-list-alt"></i> Details</a>
<div class="btn-group">
<a type="button" class="btn btn-
primary bg-gradient-primary dropdown no-arrow"
data-toggle="dropdown" style="color:white;">
... <span class="caret"></span></a>
<ul class="dropdown-menu text-
center" role="menu">
<li>
<a type="button" class="btn btn-
warning bg-gradient-warning btn-block"
style="border-radius: 0px;"
href="pro_edit.php?action=edit &
id='.$row['PRODUCT_ID']. '">
<i class="fas fa-fw fa-edit"></i>
Edit
</a>
</li>
</ul>
</div>
</div> </td>';
echo '</tr> ';
}
?>
</tbody>
</table>
</div>
</div>
</div>

<?php
include'../includes/footer.php';
?>

<!-- Product Modal-->

72
<div class="modal fade" id="aModal" tabindex="-1"
role="dialog" aria-labelledby="exampleModalLabel"
aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"
id="exampleModalLabel">Add Product</h5>
<button class="close" type="button" data-
dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form role="form" method="post"
action="pro_transac.php?action=add">
<div class="form-group">
<input class="form-control"
placeholder="Product Code" name="prodcode"
required>
</div>
<div class="form-group">
<input class="form-control"
placeholder="Name" name="name" required>
</div>
<div class="form-group">
<textarea rows="5" cols="50" texarea"
class="form-control" placeholder="Description"
name="description" required></textarea>
</div>
<div class="form-group">
<input type="number" min="1"
max="999999999" class="form-control"
placeholder="Quantity" name="quantity" required>
</div>
<div class="form-group">

73
<input type="number" min="1"
max="999999999" class="form-control"
placeholder="On Hand" name="onhand" required>
</div>
<div class="form-group">
<input type="number" min="1"
max="9999999999" class="form-control"
placeholder="Price" name="price" required>
</div>
<div class="form-group">
<?php
echo $aaa;
?>
</div>
<div class="form-group">
<?php
echo $sup;
?>
</div>
<div class="form-group">
<input type="text" onfocus="(this.type='date')"
onblur="(this.type='text')" class="form-control"
placeholder="Date Stock In" name="datestock"
required>
</div>
<hr>
<button type="submit" class="btn btn-
success"><i class="fa fa-check fa-
fw"></i>Save</button>
<button type="reset" class="btn btn-danger"><i
class="fa fa-times fa-fw"></i>Reset</button>
<button class="btn btn-secondary"
type="button" data-dismiss="modal">Cancel</button>
</form>
</div>
</div>
</div>

74
4. Register Supplier

<?php
session_start();
include(“./includes/db.php”);
include “sidenav.php”;
include “topheader.php”;
if(isset($_POST[‘btn_save’]))
{
$first_name=$_POST[‘first_name’];
$last_name=$_POST[‘last_name’];
$email=$_POST[‘email’];
$user_password=$_POST[‘password’];
$mobile=$_POST[‘phone’];
$address1=$_POST[‘city’];
$address2=$_POST[‘country’];

mysqli_query($con,”insert into
sup_info(first_name,
last_name,email,password,mobile,address1,addres
s2) values
(‘$first_name’,’$last_name’,’$email’,’$user_pass
word’,’$mobile’,’$address1’,’$address2’)”)
or die (“Query 1 is
75ncorrect….....”);
mysqli_close($con);
}

?>
<!—End Navbar 
<div class=”content”>
<div class=”container-fluid”>
<!—your content here 
<div class=”col-md-12”>
<div class=”card”>
<div class=”card-header card-header-
primary”>

75
<h4 class=”card-title”>Add
Suppliers</h4>
<p class=”card-category”>profile</p>
</div>
<div class=”card-body”>
<form action=”” method=”post”
name=”form” enctype=”multipart/form-data”>
<div class=”row”>
<div class=”col-md-3”>
<div class=”form-group bmd-form-
group”>
<label class=”bmd-label-
floating”>First Name</label>
<input type=”text”
id=”first_name” name=”first_name” class=”form-
control” required>
</div>
</div>
<div class=”col-md-4”>
<div class=”form-group bmd-form-
group”>
<label class=”bmd-label-
floating”>Last Name</label>
<input type=”text”
name=”last_name” id=”last_name” class=”form-
control” required>
</div>
</div>
</div>
<div class=”row”>
<div class=”col-md-6”>
<div class=”form-group bmd-form-
group”>
<label class=”bmd-label-
floating”>Email</label>
<input type=”email”
name=”email” id=”email” class=”form-control”
required>
</div>

76
</div>
<div class=”col-md-6”>
<div class=”form-group bmd-form-
group”>
<label class=”bmd-label-
floating”>Password</label>
<input type=”password”
id=”password” name=”password” class=”form-
control” required>
</div>
</div>
</div>
<div class=”row”>
<div class=”col-md-12”>
<div class=”form-group bmd-form-
group”>
<label class=”bmd-label-
floating”>phone number</label>
<input type=”text” id=”phone”
name=”phone” class=”form-control” required>
</div>
</div>
</div>
<div class=”row”>
<div class=”col-md-4”>
<div class=”form-group bmd-form-
group”>
<label class=”bmd-label-
floating”>City</label>
<input type=”text” name=”city”
id=”city” class=”form-control” required>
</div>
</div>
<div class=”col-md-4”>
<div class=”form-group bmd-form-
group”>
<label class=”bmd-label-
floating”>Address</label>

77
<input type=”text”
name=”country” id=”country” class=”form-
control” required>
</div>
</div>

</div>

<button type=”submit”
name=”btn_save” id=”btn_save” class=”btn btn-
primary pull-right”>Add</button>

</form>
</div>
</div>
</div>
</div>
</div>

<?php
include “footer.php”;
?>

78
CHAPTER 5:

TESTING

79
Introduction:

Testing is the method of checking whether the


software is performing the given task successfully
a as expected or not. The expected speed,
performance, accuracy and expected time should
be taken into consideration while testing.

A system should always be tested thoroughly


before implementing it, as regards its individual
programs, the system as a whole user acceptance
etc. This is because implementing a new system is
a major job which requires a lot of man hour and a
lot of other resources, so an error not detected
before implementation may cost a lot. Effective
testing early in the process translates directly into
long term cost savings from reduced number of
errors. This is also necessary because in some
cases, a small error is not detected and corrected
before installation, which may explode into much
Larger problem.

Programming and testing is followed by the stage


of installing the new system. Actual
implementation of the system can begin at this
point either using a parallel or a direct change over
plan or some blend of two.

80
Software testing is a critical element of software
quality assurance and represents the ultimate
review of specification, design and coding. The
purpose of product testing is to verify and validate
the various work products viz. units, integrate units,
final product to ensure that they meet their
respective requirements.

Testing Objectives:
The testing objectives are summarized in the
following three steps: 1. Testing is a process of
executing a program with the intent of finding an
error. 2. A good test case is one that has a high
probability of finding an as yet undiscovered error.
3. A successful test is the one that uncover an as yet
undiscovered error. And do so with a minimum
amount of time and effort. Our objective is to
design tests that systematically uncover different
classes of errors

Objectives of Testing:
1.Testing is a process of executing a program with
the intent of finding an error.
2. A good test case is one that has a high probability
of finding as yet undiscovered error.
3.A successful test is one that uncovers as yet
undiscovered error.

81
Testing Methods:

Unit Testing:

 Unit testing focuses verification effort on


the smallest unit of software design (i.e.),
the module.

 In this project there are different modules


like login, jobseeker, job provider etc. each
module has been tested by giving different
sets of input. When developing the module
as well as finishing the development, the
module works without any error. The inputs
are validated when accepting them from the
user.

Integration Testing:
 After unit testing we have to perform
integration testing. The goal is to see if
modules can be integrated then it work
properly.

 In this project main system is form by


integrating all the modules. When
integrating all the modules I have checked

82
when by giving different combination of
inputs with which the two services run
perfectly before integration.

Validation Testing:
 At the end of Integration Testing, software
is completely assembled as a package,
interfacing errors have been uncovered and
correction testing begins.

 In this project I have done the validation testing by


providing incorrect input like in mobile number field
enter alphabets, check mobile no within range or not,
password and confirm password match or not.

Compatibility Testing:

 Compatibility of your web site is very


important testing aspect. See which
compatibility test to be executed:
 Browser compatibility
 Operating system compatibility

83
Acceptance Testing:
Acceptance test is performed with realistic data of
the customer to demonstrate that the software is
working satisfactorily. Testing here is focused on
external behavior of the system the internal logic is
not emphasized.
In this project “Customer Support System” I have
collected some data and tested whether project
working correctly or not.
The testing phase is an important part of software
development. It is the process of finding errors and
missing operation and a complete verification to
determine whether the objectives are met and the
user requirements are satisfied.

White Box Testing:


This is a unit testing method where a unit will be
taken at time and tested thoroughly at a statement
level to find the maximum possible errors. I tested
step wise every piece of code, taking care that every
statement in the code is executed at least once. The
white box testing is also called Glass Box Testing.
I have generated a list of test cases, sample data.
Which is used to check all possible combinations
of execution paths through the code at every
module level

84
Black Box Testing:
This testing method considers a module as a single
unit and checks the unit at interface and
communication with other modules rather getting
into details at statement level. Here the module will
be treated as a black box that will take some input
and generate output. Output for a given set of input
combination are forwarded to the modules.
Security Testing:

 Test by pasting internal url directly into


browser address bar without login. Internal
pages should not open.
 Try some invalid inputs in input fields like
login username, password, and input text
boxes. Check the system reaction on all
invalid inputs.
Tools used:

Manual testing is the process of manually testing


software for defects. We have carried out manual
testing to find out the defects and bugs in the
application, we have played the role of end user and
use most of all features of the application to ensure
correct behavior. To ensure completeness of
testing, we have often follows a written test plan
that leads them through a set of important test
cases.

85
GUI Testing:

The GUI testing (Graphical User Interface) testing


are important testing guidelines for specialized
environments, architectures and all application that
are commonly encountered by all the software
engineer. Because of the reusable components,
provided as the part of the GUI development,
environments, the creation of the interface has
become less time consuming and more precise. But
the complexity of all GUIS has also grown leading
to more difficulty in a design and execution of the
test cases. As modern GUIs have same look, and
feel series of standard test can be derived. In GUI
testing, checklist was developed against which
each GUI component to be derived. The list
covered all possible interaction that may or may not
apply to a particular component. In addition to the
GUI components, the GUI standards were also used
to ensure that the internal rules of construction are
followed to achieve the desired level of the
consistency. This was done, by following the
coding standards, which was developed during the
designing phase.
Some of the GUI standard which was verified is:

86
1.Forms enterable and display only formats.
2. Wording of alerts, error messages and help
features.
3. Screen layout.

Thus through the testing, a wide range of errors


were encountered which enables us to understands
the system as well broadened our knowledge of
ASP.Net language.
Platform testing
For web-application, platform testing means four
main points, viz. Web forms display correctly on
all supported browsers and supported versions of
those browsers.
The web application appropriately handles
unsupported browser versions, Such as displaying
instructions for downloading the required version.
The client is prompted to install any required
components, such as ActiveX objects or plug-ins,
if they are not already installed. .The web
application has acceptable performance over
slower forms of network connections such as
Modems.

87
5.1 Purpose of Testing

The purpose of software testing is to access or


evaluate the capabilities or attributes of a software
program’s ability to adequately meet the applicable
standards and application need. Testing does not
ensure quality and the purpose of testing is not to
find bugs. Testing can be verification and
validation or reliability estimation. The primary
objective if testing includes:

 To identifying defects in the application.

 The most important role of testing is simply to


provide information.

 To check the proper working of the application


while inserting updating and deleting the entry of
the products.

88
5.2 Unit Test Plan

This type of testing is the testing of


individual software components. It is typically
done by the programmer and not by the testers. It
requires details information and knowledge about
the internal program design and code to perform
this. During unit testing, we carried out various
testing task such as the reflection of the unit data on
database and its interface. Various types of bugs
associated with the component were identified and
fixed. We use various functional keys to test our
software. In our software unit testing is concerned
with the stock units, opening stock units and
opening product units as well as the validation of
product units.

89
5.3 Acceptance Test Plan

This part represents the analysis and interpretation


of the gathering data from the respondents to the
test the acceptability of the developed system. Data
gathering was done through the questionnaires that
were distributed to the respondents to test the
acceptability of the system.
Inventory System will be checked and tested to
know system errors and any other form of system
troubles. The problem being discussed will serve as
guide in order to reach the objectives for the
development system. In case there are necessary
adjustments, the respondents evaluate the
acceptability of the system based on its usability,
reliability, performance, maintainability, and
security. There are five questions in which the
students have to state their perceptions using a 5-
point Likert scale. Tables demonstrate the scale
with its equivalent description.

90
This content of acceptability of the system in the
Inventory System as evaluated by the respondent
was measured using this Table to compute the
difference of the highest scale and lowest scale
divided by the total number of scale, using the
formula: Range = (High Scale – Lowest Scale) /
Total number of scales.

91
5.4 Test Case/Test Script
Test case 1: Testing the add recipe Interface and
its Functionality

 Case 1.1: Testing the Quantity input field.


 Case 1.2: Testing the Recipe Name field.
 Case 1.3: Testing the Ingredients in recipe list
and Quantity of ingredient list.
 Case 1.4: Testing the available ingredients list.
 Case 1.5: Testing the all the above cases
together and checking if the entries are updated to
the tables in database.

Test case Test Items Input Output Special


Identifier Specification Specification Procedural
Requirements
Case 1.1 Quantity text 1) Input 1)Input Select an
field negative specifications ingredient
numbers. 1,2,3,4,5,6 & 8 from the
must generate ingredient list
2)Input String exceptions and enter a
asking the user quantity in the
3)Input zero to re-enter the quantity field
text in the and press add
4)Input field. to recipe
floating point button.
numbers. 2)Input
specification 7
5)Leave the should not
field blank generate any
error.
6)Enter
special
character in
the field.

7)Input integer
numbers

92
greater than
zero less
10000.

8)Input integer
number
greater than
9999.

Case 1.2 Recipe Name 1)Input 1) Input Enter a name


Field numerical specifications for the recipe,
value for the 1, 2, 3 and 4 add some
name must generate ingredient to
exceptions the list along
2)Leave the asking the user with
field blank to re-enter the appropriate
text in the quantity and
3)Enter an field. press the
existing recipe submit button.
name. 2) Input
specification 5
4)Enter must not
special generate an
characters in exception
the field except for a
really long
5)Enter a non- string (more
existing recipe than 50
name, (string) characters)

93
Case 1.3 Ingredient in 1)List is left 1)The input For the first
recipe list & empty. specification 1 input: Enter an
corresponding & 2 result in appropriate
Quantity list 2)One an exception Recipe Name
ingredient is being thrown. and press Add
added twice to to database
the list. button.

For the second


input:
Selected one
ingredient,
enter an
appropriate
quantity and
press Add to
Recipe button
twice.

Case 1.4 Testing the N.A The List of N.A


available ingredients
ingredients list. must show all
the ingredients
that are
currently in
the database

Case 1.5 Testing the 1)All the 1) If all the 1) Enter a


components required above tests are recipe name.
mentioned quantities are passed without 2)Select
above together inserted into an exception, Ingredient
and adding a their the recipe is from the
recipe to the respective successfully ingredient list
database fields. added to the and enter
database quantity
amount for the
recipe and
press the add
to recipe
button.

94
3) Repeat step
2 until all the
desired
ingredients are
added to the
list.
4)Press the
Submit button.

Preliminary test result for Test Case 1

Test Case Completed / Not Result Summary


Completed

Case 1.1 Completed The results for all the input


specification for this test is passed and
no difference was detected between
the actual and the expected results.

Case 1.2 Completed The results for the mentioned input


specifications have been passed except
for the inputs
× Recipe Name= 1223234
× Recipe Name = %$^&$

95
Case 1.3 Completed The results for all the input
specification for this test is passed and
no difference was detected between
the actual and the expected results.

Case 1.4 Completed The results for all the input


specification for this test is passed and
no difference was detected between
the actual and the expected results.

Case 1.5 Completed The results for all the input


specification for this test is passed and
no difference was detected between
the actual and the expected results.

96
Test case 2 : Logging in to the system
This case will test the login system. The test must
be conducted to see if access is allowed only to the
authenticated users (in this case it is only one user
i.e. the Manager). On Successful login, the main
interface must be visible to the user.

Test case Test Items Input Output Special Inte


Identifier Specifications Specification Procedural rfac
s Requirement e
s Dep
end
enci
es
Case 2.1 Login text 1) Login name 1) The input Enter the N.A
field and is incorrect. specifications login name
password 1, 2 & 3 must and password
field generate an and press the
2) Login name exception and login button.
is correct but ask the user to
password is input the
incorrect. credentials
again

3) Login name
or password is 2) The input
blank or both specification
are blank. 4 must show
the user Main
Interface
4) Login
Name and
password both
are correct.

97
Preliminary test results for Test Case 2

Test Case 2 Completed/Not Completed Result Summary


Case 2.1 Completed The results for all the input
specification for this test is
passed and no difference was
detected between the actual
and the expected results.

98
Test Case 3: Testing the Add Ingredient
Interface of the system

This case will test the Add Ingredient processing.


The test must be conducted to ensure whether when
user (Manager) when text inputs the ingredient
name and the quantity in the provided text fields of
the Add ingredient form. We must make sure that
the each of the fields are validated and proper input
should certify and reflect the changes in the
database and also when quantity check is done.

 Case 3.1: Test the Ingredient name field.


 Case 3.2: Test the Threshold value field.
 Case 3.3: Test the Current Quantity field.
 Case 3.4: Test the select vendor field.
 Case 3.5: Test the Current Ingredient list field.

Test case Test Items Input Specifications Output Special


Identifie Specificatio Procedural
r ns Requirements
Case 3.1 Ingredient Name 1) Input numerical 1) Input Enter the
field value for the name. specificatio Ingredient
ns 1, 2, 3 Name,
and 4 must appropriate
2) Leave the field generate threshold and
blank exceptions current
asking the quantity
user to re- values, select a
3) Enter an existing enter the vendor and
Ingredient name. text in the Press Submit
field. button.

4) Enter special
characters in the 2) Input
field. specificatio
n 5 must not

99
generate an
exception in
5) Enter a non-
general
existing Ingredient
except for a
name,(string)
really long
name (more
than 25
characters)

Case 3.2 Threshold value 1) Input negative 1) Input Enter an


field numbers. specificatio appropriate
ns 1, 2, 3, 4, Ingredient
5, 6 & 8 Name,
2) Input String must threshold
generate values, current
exceptions quantity, and
3) Input zero. asking the select a vendor
user to re- and then press
enter the the submit
4) Input floating text in the button.
point numbers. field.

5) Leave the field 2) Input


blank specificatio
n 7 should
not generate
6) Enter special any error.
characters in the
field.

7) Input integer
numbers greater than
zero less than 10000

100
8) Input integer
numbers greater than
9999.

Case 3.3 Current Quantity 1) Input negative 1) Input Enter an


field numbers. specificatio appropriate
ns 1, 2, 3, 4, Ingredient
2) Input String 5, 6 & 8 Name,
must threshold
3) Input zero. generate values, current
exceptions quantity, and
4) Input asking the select a vendor
floating point user to re- and
numbers. enter the then press the
text submit button.
5) Leave the field in the field.
blank
2) Input
6) Enter special specificatio
characters in the n 7 should
field. not generate
any error.
7) Input integer
numbers greater than
zero less than 10000

8) Input integer
numbers greater than
9999.

101
Case 3.4 Select Vendor Load the The combo The combo
Drop down box form/Activate the box for box for select
Add Ingredient select vendor shows
function vendor all the
should show available
all the vendors from
available the database
vendors
from the
database
Case 3.5 Current Activate the Add The Current The Current
Ingredient list ingredient function Ingredient Ingredient List
List must must show all
show all the the ingredients
ingredients from the
from the database
database

102
Preliminary test results for test case 3

Test case Completed/Not Completed Results Summary


Case 3.1 Completed The test results for
this test case has
been passed for most
input specifications
but fails for the
inputs mentioned
below

× Ingredient Name=
123123 (The test fails
for numerical inputs)

× Ingredient Name =
%&*&^ (The test
fails for special
character inputs)
Case 3.2 Completed The results for all the
input specification
for this test is passed
and no difference
was detected between
the actual and the
expected results.
Case 3.3 Completed The results for all the
input specification
for this test is passed
and no difference
was detected between
the actual and the
expected results.

103
Case 3.4 Completed The results for all the
input specification
for this test is passed
and no difference
was detected between
the actual and the
expected results.
Case 3.5 Completed The results for all the
input specification
for this test is passed
and no difference
was detected between
the actual and the
expected results.

104
Test Case 4: Check Thresold Interface

 Test Case 4.1: Check if the Ingredients under


the threshold values are shown in the Ingredients
below threshold list.
 Test Case 4.2: Check if the Create order button
asks the user to enter values for all the ingredients
listed under the ingredients below threshold list.
 Test Case 4.3: Check if pressing the Process
Order button creates a file with the order details
in it.

Test case Test Items Input Output Special


Identifier Specifications Specifications Procedura
l
Requirem
ents
Case 4.1 Ingredients Press the The Press the
Below Check Ingredients Check
Threshold List Threshold below threshold
Button threshold list button on
must show all the Check
the ingredients Threshold
below form
threshold level
Case 4.2 Create Order Press the The user must Press the
Button Create Order be prompted to check
Button input order threshold
quantity for all button and
the ingredients the press
that are the check
currently threshold
below button.
threshold

105
Case 4.3 Process Order Press the A file with the Press the
Button process order order details check
button must be threshold
created. button,
then press
the create
order
button and
enter
quantities
for
correspond
ing
ingredients
and then
press the
process
order
button.

106
Preliminary Test Reports for test case 4

Test Case Completed/Not Result Summary


Completed
Case 4.1 Completed The results for all the
input specification for
this test is passed and
no difference was
detected between the
actual and the
expected results.
Case 4.2 Completed The results for all the
input specification for
this test is passed and
no difference was
detected between the
actual and the
expected results.
Case 4.3 Completed The results for all the
input specification for
this test is passed and
no difference was
detected between the
actual and the
expected results.

107
Test case 5: Testing the Update after sales
interface

 Case 5.1: Test the Recipe list box.


 Case 5.2: Test the quantity text field
 Case 5.3: Test the recipe sold list box quantity
sold list box.
 Case 5.4: Test if the details are updated to the
database when requested.

Test case Test Items Input Output Special


Identifier Specifications Specifications Procedura
l
Requirem
ents
Case 5.1 Recipe List box Load the The Recipe list N.A
Update After box must show
Sales interface all the current
recipes on the
database
Case 5.2 Quantity text 1) Input 1) Input Select a
field negative specifications recipe
numbers. 1, 2, 3, 4, 5, 6 from the
& 8 must list and
generate enter the
2) Input String exceptions quantity
asking the user then press
to re-enter the the add
3) Input zero. text in the field. button.

4) Input 2) Input
floating point specification 7
numbers. should not
generate any
error

108
5) Leave the
field blank

6) Enter special
characters in
the field.

7) Input integer
numbers
greater than
zero less than
100

8) Input integer
numbers
greater than 99.

Preliminary test results for test case 5

Test Case Completed/Not Completed Result Summary


Case 5.1 Not Completed N.A
Case 5.2 Not Completed N.A
Case 5.3 Not Completed N.A

109
Test Case 6: Testing the Update After receiving
interface

 Case 6.1: Check the ingredient list box.


 Case 6.2: Check the ingredient Received and
Quantity Received List boxes.
 Case 6.3: Check if the received ingredient
quantities are updated in the database

Test case Test Items Input Output Special


Identifier Specifications Specifications Procedur
al
Requirem
ents
Case 6.1 Ingredient list Load the The Ingredient N.A
box Update After list box must
Receiving show all the
interface current
Ingredients on
the database
Case 6.2 Quantity text 1) Input 1) Input Select an
field negative specifications 1, ingredient
numbers. 2, 3, 4, 5, 6 & 8 from the
must generate list and
exceptions enter the
2) Input String asking the user quantity
to re-enter the then press
text in the field. the add
3) Input zero.

2) Input
4) Input specification 7
floating point should not
numbers. generate any
error

110
5) Leave the
field blank

6) Enter special
characters in the
field.

7) Input integer
numbers greater
than zero less
than 100

8) Input integer
numbers greater
than 99.

Preliminary test results for test case 6

Test Case Completed/Not Completed Result Summary


Case 6.1 Not Completed N.A
Case 6.2 Not Completed N.A
Case 6.3 Not Completed N.A
Case 6.4 Not Completed N.A

111
CHAPTER 6:
LIMITATIONS OF
PROPOSED SYSTEM

112
1. The System is not capable of handling more
than 6 users at a time.
2. Some keywords in system are difficult to
understand so the admin n operator person
should understand them thoroughly to use the
system accurately.
3. Graphs could have been added in order to get
the records more clearly.

The above-mentioned points are the enhancements


which can be done to increase the applicability and
usage of this project. Here we can maintain the
records of hotel. Also, as it can be seen that now-a-
days the players are versatile, i.e., so there is a
scope for introducing a method to maintain the
Hotel Inventory System. Enhancements can be
done to maintain all the Hotel, Services, Payments.

We have left all the options open so that if there is


any other future requirement in the system by the
user for the enhancement of the system then it is
possible to implement them. In the last we would
like to thanks all the persons involved in the
development of the system directly or indirectly.
We hope that the project will serve its purpose for
which it is develop there by underlining success of
process.

113
CHAPTER 7:
PROPOSED
ENHANCEMENTS

114
Since this project was started with very little
knowledge about the Inventory Management
System, we came to know about the enhancement
capability during the process of building it. Some
of the scope we can increase for the betterment and
effectiveness are listed below:

• Interactive User Interface Design.

• Manage Stock Go down wise.

• Use of Oracle as its Database.

• Online Payment System can be added.

• Making the System Flexible in any type.

• Sales and Purchase Return System will be added


in order to make return of products.

• Lost and Breakage.

115
CHAPTER 8:

CONCLUSION

116
To conclude, Inventory Management System is a
simple desktop-based application basically suitable
for small organization. It has every basic item
which are used for the small organization. Our team
is successful in making the application where we
can update, insert and delete the item as per the
requirement. This application also provides a
simple report on daily basis to know the daily sales
and purchase details. This application matches for
small organization. Through it has some
limitations, our team strongly believes that the
implementation of this system will surely benefit
the organization.

117
CHAPTER 9:

BIBLIOGRAPHY

118
 Revathy N.1 And Balasubramanian R.2, Fsvml and
Ga-fsvml Wrapper Approaches for Gene Selection
and Classification Using Expressions of Very Few
Genes”, International Journal of Genetics, Volume
4, Issue 2, 2012, pp.-85-91, April 12, 2012.

 RuiXu, Georgios C. Anagnostopoulos, and Donald


C. Wunsch II, “Multiclass Cancer Classification
Using Semi supervised Ellipsoid ARTMAP and
Particle Swarm Optimization with Gene
Expression Data”, IEEE/ACM Transactions on
Computational Biology and Bioinformatics, VOL.
4, NO. 1, January-March 2007.

 Oula, M. Rezko, and P. Poirazi, "MicroRNAs and


Cancer – The Search Begins”, IEEE Transactions
on Information Technology in Biomedicine,
Volume 13, NO. 1, January 2009.

119
CHAPTER 6:

APPENDIX

120
NOTE:

(Appendices allow you to include detailed


information in your paper that would be distracting
in the main body of the paper. Examples of items
you might have in an appendix include
mathematical proofs, lists of words, the
questionnaire used in the research, a detailed
description of an apparatus used in the research,
etc.

Format of appendices.

Your paper may have more than one


appendix. Usually, each distinct item has its own
appendix. If your paper only has one appendix,
label its "Appendix" (without quotes.) If there is
more than one appendix, label them "Appendix I,"
"Appendix II," etc. (without quotes) in the order
that each item appears in the paper. In the main text,
you should refer to the Appendices by their labels.)

121

You might also like