Christian Manuscript
Christian Manuscript
Christian Manuscript
An IT Capstone Project
presented to the Faculty of the
College of Information and Computing Science
Zamboanga Peninsula Polytechnic State University
By
Christian C. Sanoh
Jacob G. Candido
Karl E. Marcos
Jovelyn R. Imbo
INTRODUCTION`
a) Log - in and Log - out Services. This refers to one of the features of the developed
system that required users to enter their Username and Password to be able to use
the system in the Library of the ZPPSU and allows the admin to access the overall
functionalities of the system.
b) List of Borrowers. This feature of the system is a guide the librarian to determine
the books that were borrowed and if they are already registered into the system.
c) Add Book. This is where will the user add a new book.
d) Add Borrower. This is where the user will add a new borrower member.
e) Borrow. This is the feature where the user will input the details if someone wants
to borrow.
f) List of Books. This feature will show what are the available books and their
quantity
g) Transactions. This feature will show reports of the library.
This propose project will be of great help to the university library. This could lessen the
time of transaction, easy to track the data, and above all a user-friendly system.
1.3 Objectives
This study aims to develop a Library Management System for Zamboanga Peninsula
Polytechnic State University with Barcode Scanner.
Specific Objectives
1. To develop a system that has an admin account for monitoring the library.
2. To manage the records of transactions in the library.
3. To build a system that has a barcode capability.
4. Generate a function
Scope
The system capable of adding new books, searching books, adding students,
removing borrowers, viewing student’s information, edit borrower’s information, edit
books details, scan an assigned barcode of each book, edit the quantity of penalty fees
and due date of borrowing. Capable to print the reports of the transaction.
Limitation
Barcode – It generates a barcode for each book so that the process would be faster if
there is someone barrowing a book.
This chapter includes related literature and studies with regard to Library Management
System. Below are the following Foreign and Local Related Literature and Studies.
According to Valenti (2016) from the article entitled “The State of Library
Management Systems,” library system helps a lot in terms of some transactions in the library.
On this article the automated library systems can do multitasking. It can do recording of
books and other different transactions. It can make the library service convenient like making
card cataloging. Therefore, multitasking in library services can help students in a variety of
ways. The system will be the one to record all the transaction inside the library so it decreases
the task of the librarian while avoiding records lost due to human errors.
The Library Management System (LMS) is a program that helps librarians manage a
library. Based on the needs of users, the system could provide a minimal set of
functionalities, such as adding and updating members and books. This system can also handle
check-in specifications, borrower’s transactions and more. A library management system can
automatically cater all of library information and transactions. It aims to organize all of the
activities involved in library management software. This can also provide information about
the books in the library, their authors, library members, book borrowers, and library
personnel.
With the advancement of technology, it is imperative to exalt all the systems into a
user-friendly manner. The Library Management system (LMS) acts as a tool to transform
traditional libraries into digital libraries. In traditional libraries, the students/users have to
search for books which are hassle process and there is no proper maintenance of database
about issues/fines. The overall progress of work is slow and it is impossible to generate a fast
report. The librarians have to work with allotted time for arranging, sorting books in the
book shelves. At the same time, they have to check and monitor the lend/borrow book details
with its fine. It is a tedious process to work simultaneously in different sectors. LMS will
assist the librarians to work easily. The LMS supports the librarians to encounter all the
issues concurrently.
The 1980s and 1990s saw an increase in the deployment of Integrated Library
Systems (ILS) as libraries started automating their operations and continued to do so.
Because of these systems, libraries staff work in many cases more efficiently than in the past.
Although these systems are constrictive, they have changed throughout time because of
efficiency-enhancing procedures. The ability to "search" is one of the areas with expanded
capabilities, which expands on the use of topic modeling as a novel element in
contemporary library systems that are integrated in institutions of distance and open learning.
Users can now take part and look for fresh approaches to solve text classification and data
exploration issues.
and
Figure 2.2.4 Library Management System with Topic Modeling and Its Adaptability to
Open and Distance Learning Libraries
Figure 2.2.4 Library Management System with Topic Modelling and its Adaptability to
Open and Distance Learning Libraries
2.4 Table of Comparison
Barcode No No No No Yes
Scanner
2.3 Synthesis
A library management system with Barcode Scanner is a system which is used to track
books. The above-mentioned concept on computerization of library system with Barcode is
relevant to the present project because this will serve as a foundation of library management
system for other schools who want to make the library transactions faster and easy.
CHAPTER III
In this chapter discuss about the technology of the proponent about to use and
explanation for all these technical developments for the proposed system, this section
contains the hardware, software, people ware, and network used to develop and implement
the system. The software development methodology used on how the project will work is
also discussed here.
Agile methodology model will be used by the proponent in developing this capstone
project. Agile methodology model is an iterative approach to project management and
software development that may help admin make work faster and with fewer headaches.
Unlike the online system which becomes useless when internet connection becomes
unavailable, the offline system can still manage even without internet connection.
The first phase is the planning phase, wherein the proponents conduct key informant
interviews (KII) to gather ideas and information for the development of this capstone project.
These interviews coupled with the Agile Methodology Model helped the proponent in the
conceptualization and fast development of the project. Second is the design phase, where the
proponents had simply designed the interface of the propose project. The interface of the
Zamboanga Peninsula Polytechnic State University Library Management System with
Barcode Scanner is considered to be a user friendly because most of the functions can easily
be understood and can be operated with just a click button. Example, when the user wants to
delete a data, just simply press the bottom “delete”. The third phase is the development phase
where solutions are identified to improve the existing library system. In the development
phase, the proponents developed a reliable library system that enables optimization of the
resources and to create a system that contributes for the harmonization of the current library
system. Testing phase is the fourth phase. This is necessary to ensure that the proposed
library system will really work. There shall be an evaluation to be conducted by experts from
the ZPPSU. Their recommendations and feedbacks will be considered for the improvement of
the proposed library system.
Hardware
Any desktop or laptop with an operating system that can runs an internet browser.
Barcode Scanner
Software
Project Manager
System Analysis
Programmer
System assurance
METHODOLOGY
This chapter present the methodology used in the collection of data and how the data
were analyzed. Key informant interviews were conducted to gather valid information from
knowledgeable individuals. Questions were asked form the selected participants/respondents
such as: “What are the main problems of their school library?” and “What are the possible
solutions to these problems?”
The Agile Methodology Model was utilized to come up with the proposed library
system. The proponents used this methodology because it is more convenient and accessible.
Prior to the collection of data through interviews, the proponent first request permission
from individual clients and subsequently get their approval. Informants were properly
informed that their responses will remain completely confidential and only summated group
data will be reported and no names will be linked to the responses. The information gathered
during the interviews were properly documented.
FUNCTIONAL REQUIREMENTS
Administrator:
Books tab, where the admin can view the list of book and add new books
Borrow tab, where the admin can scan the books when it is borrowed
View the list of books
View the list of barcodes
Printing the names of borrowers
Printing the borrowers’ penalty record
Generate barcode
Print list of barcodes
Print list of books
Print the transaction report
Add member
Edit books
Edit the days of borrow
Edit the penalty
Delete member
Edit member information
Viewing the list of new books
Viewing the list of lost books
Viewing the list of damaged books
Delete book
NONFUNCTIONAL REQUIREMENTS
Operational
1.1 The Zamboanga peninsula polytechnic state university library
management system with barcode scanner operates on PC’s, laptop and also,
we use barcode scanner for scanning the books.
1.2 The admin is not required an internet connection
Security
2.1 only the admin can view the information of borrower
2.2 only the admin can edit the borrower information.
Efficiency
3.1 The Staff or the librarian of the library would easily access the library, thus
searching and book transaction would be very fast.
Usability Requirement
4.1 The system is designed for a user-friendly environment so that the admin
and staff of library could perform the various tasks easily and in an effective
way.
The proponents of the proposed library system ensure the users that the said design
can easily be understood by providing an instance of what the system should be like. Use
Case Analysis, Data Flow Diagram, Entity-Relationship Diagram, and Architecture Design
are all components of software or system design.
Use case Analysis
Figure 4.3.2 Use case Analysis
On the use of case diagram, the admin has a dashboard where he/she will manage the
whole system such as add new books, edit books, edit borrower information edit the penalty
days, add new staff. The other personnel/staff, however, cannot edit the books, add books,
penalty days or adding a staff.
Figure 4.3.2 shows the context diagram flow how the admin (user) could add a
member. If the admin searches the name or ID number of the borrower, the admin would
know if the borrower was registered into the system or not, and would also know if the book
is available or not.
Entity-relationship Diagram
Figure 4.3.8 Entity Relationship Diagram
Figure 4.3.8 shows the relationship between and among the entities and all the
attributes therein.
Architectural Design
Librarian
4.4.1Development
In development of the system, the proponents used the HTML, CSS, JavaScript and PHP 5 for the front end, and wampp for the
back end. The proponents ensure that the system is one hundred percent functional and could easily track if there’s an error into the
system. It also ensures that the user could input the information of the member and of the book without any difficulty.
The System was after the proposed project was developed. It was tested by five library personnel. The team leader had assigned
each personnel to test the system.
Project Work Plan
Unit test
The system had completed to a unit test, and it works and runs successfully.
System test
The tabulated table show the total rating of capabilities and features of the system of
the 5 respondents that undergo the testing phase of the proposed project.
A. Functional Suitability
1. Functional Completeness. The system covers all the specified tasks 4.60 Strongly agree
and user objectives.
2. Functional Correctness. The system provides the correct results with 4.80 Strongly agree
the needed degree of precision.
3. Functional Appropriateness. The system facilitates the 5.00 Very strongly agree
accomplishment of specified tasks and objectives.
B. Performance Efficiency
4. Time Behavior. The system’s response and processing times and 5.00 Very strongly agree
throughput rates when performing its functions meet requirements.
5. Resource Utilization. The system’s amounts and types of resources 4.60 Strongly agree
used when performing its functions, meet requirements.
6. Capacity. The system’s maximum limits of parameters meet 4.80 Strongly agree
requirements.
C. Compatibility
7. Co-existence. The system can perform its required functions 4.40 Strongly agree
efficiently while sharing a common environment and resources with
other products, without detrimental impact on any other product.
8. Interoperability. The system can exchange information and use the 4.60 Strongly agree
information that has been exchanged.
D. Usability
10. Learnability. The system can be used by specified users to achieve 4.80 Strongly agree
specified goals of learning to use the application with effectiveness,
System’s Capabilities and Features Mean Descriptive Ratings
11. Operability. The system has attributes that make it easy to operate and 5.00 Very strongly agree
control.
12. User Error Protection. The system protects users against making 5.00 Very strongly agree
errors.
13. User Interaction Aesthetics. The system’s user interface enables 5.00 Very strongly agree
pleasing and satisfying interaction for the user.
14. Accessibility. The system can be used by people with the widest range 4.80 Strongly agree
of characteristics and capabilities to achieve a specified goal in a
specified context of use.
E. Reliability
15. Maturity. The system meets the needs for reliability under normal 4.60 Strongly agree
operation
16. Availability. The system is operational and accessible when required 5.00 Very strongly agree
for use.
17. Fault Tolerance. The system operates as intended despite the 5.00 Very strongly agree
presence of hardware or software faults.
18. Recoverability. The system can recover the data directly affected and 5.00 Very strongly agree
re-establish the desired state.
F. Security
19. Confidentiality. The system ensures that data are accessible only to
those authorized to have access.
20. Integrity. The system prevents unauthorized access to, or modification 5.00 Very strongly agree
of, computer programs or data.
21. Non-repudiation. The system can be proven to have taken place, so 5.00 Very strongly agree
that the events or actions cannot be repudiated later.
G. Portability
System’s Capabilities and Features Mean Descriptive Ratings
22. Adaptability. The system can effectively and efficiently be adapted 4.80 Strongly agree
for different or evolving hardware, software or other operational or
usage environments
23. Install ability. The system can be successfully installed and/or 5.00 Very strongly agree
uninstalled in a specified environment
While designing something from scratch, it is inevitable that problems will arise. For
this reason, the designer needs to change the product and iterate the process of designing. In
such cases, the most sensible approach is to start by making a prototype first. It is optimized
for ease and speed of development and also possible to change and modify it. It enables the
designer to present a demonstrable product before planning to move to production. It also
eliminates the iron out issues of scaling up and polish during the process of manufacture.
This module shows the list of member’s information who registered into the system.
This module shows the list of books where you can scan for borrowing.
This module shows where you can select the name of the borrower.
This module shows where you can select the ID number of borrower, and edit the number of
days of the books when it is borrowed
In the proposed system, all the members should have their own task to do the system
implementation. To become a library with a Barcode Scanner system, development of the
strategic plan has to be done collaboratively in order to ensure that all members of this
research group are doing their best. All the members should understand their roles and
responsibilities to ensure the system’s success. In this phase, a group member pay attention to
details and monitor processes to implement quick changes as required.
CHAPTER V
CONCLUSIONS AND RECOMMENDATIONS
Conclusion
The proposed library system for the Zamboanga Peninsula Polytechnic State University
(ZPPSU) was analyzed successfully. The system has been tested and proven to be user
friendly. It became very helpful to the library’s admin as it lessens paper work and it is easy
to use. The system can still operate even without internet connection. Compared to the
existing system of the ZPPSU, the proposed system is far better because it can still operate
even without internet connection. The propose library system with barcode scanner can finish
the transaction faster resulting to effective and efficient results particularly in managing
records of library transactions. Therefore, utilizing the proposed library system for the
ZPPSU library is a wise and good decision to make.
RECOMMENDATIONS
Bibliography
APPENDICES A
Evidence of Conducting an Interview
This picture shows the evidence of the proponent that they conduct an interview for them to
acquire the requirements to develop this project.
Appendices B
Process data
Appendices C
Relevant Source code
add_user.php
<div class="page-title">
<div class="title_left">
<h3>
</h3>
</div>
</div>
<div class="clearfix"></div>
<div class="row">
<div class="x_panel">
<div class="x_title">
<!-- If needed
<li class="dropdown">
</a>
</ul>
</li>
-->
</ul>
<div class="clearfix"></div>
</div>
<div class="x_content">
<!-- content starts here -->
<div class="form-group">
</label>
<div class="col-md-3">
</div>
</div>
<div class="form-group">
</label>
<div class="col-md-3">
</div>
</div>
<div class="form-group">
</label>
<div class="col-md-3">
<input type="text" name="lastname" id="last-name2" required="required"
class="form-control col-md-7 col-xs-12">
</div>
</div>
<div class="form-group">
</label>
<div class="col-md-4">
</div>
</div>
<div class="form-group">
</label>
<div class="col-md-4">
</div>
</div>
<div class="form-group">
</label>
<div class="col-md-4">
<input type="password" name="confirm_password" id="last-name2"
required="required" class="form-control col-md-7 col-xs-12">
</div>
</div>
</label>
<div class="col-md-4">
<option>Admin</option>
<option>Encoder</option>
</select>
</div>
</div>-->
<div class="form-group">
</label>
<div class="col-md-4">
</div>
</div>
<div class="ln_solid"></div>
<div class="form-group">
</div>
</div>
</form>
<?php
include ('include/dbcon.php');
if (!isset($_FILES['image']['tmp_name'])) {
echo "";
}else{
$file=$_FILES['image']['tmp_name'];
$image_name= addslashes($_FILES['image']
['name']);
{
die("Format is not
allowed or file size is too big!");
else
move_uploaded_file($_FILES["image"]["tmp_name"],"upload/" . $_FILES["image"]["name"]);
$profile=$_FILES["image"]
["name"];
$firstname =
$_POST['firstname'];
$middlename =
$_POST['middlename'];
$lastname =
$_POST['lastname'];
$username =
$_POST['username'];
$password =
$_POST['password'];
$confirm_password =
$_POST['confirm_password'];
// $admin_type =
$_POST['admin_type'];
$result=mysqli_query($con,"select * from admin WHERE
username='$username' ") or die (mysqli_error());
$row=mysqli_num_rows($result);
if ($row > 0)
elseif($password != $confirm_password)
}else
?>
<!-- content ends here -->
</div>
</div>
</div>
</div>
Admin.php
<div class="page-title">
<div class="title_left">
<h3>
</h3>
</div>
</div>
<div class="clearfix"></div>
<div class="row">
<div class="x_panel">
<div class="x_title">
<?php
$user_row =mysqli_fetch_array($user_query);
$admin_type = $user_row['admin_type'];
?>
?>
<li>
<a href="add_admin.php"
style="background:none;">
</a>
</li>
<?php } ?>
<li><a class="collapse-link"><i class="fa fa-chevron-up"></i></a></li>
<!-- If needed
<li class="dropdown">
</a>
</ul>
</li>
-->
</ul>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div class="table-responsive">
<tr>
<th>Image</th>
<th>Full Name</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php
$id=$row['admin_id'];
?>
<tr>
<td>
<?php
if($row['admin_image'] != ""): ?>
<img src="upload/<?php
echo $row['admin_image']; ?>" width="100px" height="100px" style="border:4px groove #CCCCCC;
border-radius:5px;">
</td>
<td>
</a>
</a>
<!--
<i class="glyphicon
glyphicon-trash icon-white"></i>
</a>-->
<!-- delete modal admin -->
<div class="modal-dialog">
<div class="modal-
content">
<div class="modal-
header">
<h4
class="modal-title" id="myModalLabel"><i class="glyphicon glyphicon-user"></i> Admin</h4>
</div>
<div class="modal-
body">
<div
class="alert alert-danger">
</div>
<div
class="modal-footer">
<a
href="delete_admin.php<?php echo '?admin_id='.$id; ?>" style="margin-bottom:5px;" class="btn
btn-primary"><i class="glyphicon glyphicon-ok icon-white"></i> Yes</a>
</div>
</div>
</div>
</div>
</div>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<style>
.btn-primary {
color: #fff;
background-color: #421919;
border-color: #421919;
}
</style>
book.php
<div class="page-title">
<div class="title_left">
<h3>
Books
</h3>
<style>
.page-title {
color: black;
h3{
font-weight: bold;
</style>
</div>
</div>
<div class="clearfix"></div>
<div class="row">
<div class="x_panel">
<a href="print_barcode1.php"
target="_blank" style="background:none;">
<Button class="sqaure-button"
backgroundColor="maroon"><i class="fa fa-print"></i> Print Booklist</Button>
</a>
</a>
<br />
<br />
<div class="x_title">
<li>
<a href="add_book.php"
style="background:none;">
</a>
</li>
<!-- If needed
<li class="dropdown">
</a>
</ul>
</li>
-->
</ul>
<div class="clearfix"></div>
<li role="presentation"
class="active"><a href="book.php">All</a></li>
<!--<li role="presentation"><a
href="old_books.php">Old Books</a></li>-->
<button style="padding:8px;"
class="btn btn-primary" role="presentation"><a href="lost_books.php" style="color: white;">Lost
Books</a></button>
<style>
a{
color: black;
</style>
<li role="presentation"><a
href="damage_books.php">Damaged Books</a></li>
<!--<li role="presentation"><a
href="sub_rep.php">Subject for Replacement Books</a></li>
<li role="presentation"><a
href="hard_bound.php">Hardbound Books</a></li> -->
</ul>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div class="table-responsive">
<thead>
<tr>
<th
style="width:100px;">Book Image</th>
<th>Barcode</th>
<th>BookName</th>
<th>ISBN</th>
<th>Author</th>
<th>Copies</th>
<th>Category</th>
<th>Status</th>
<th>Remarks</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php
$id=$row['book_id'];
$category_id=$row['category_id'];
$cat_query = mysqli_query($con,"select *
from category where category_id = '$category_id'")or die(mysqli_error());
$cat_row = mysqli_fetch_array($cat_query);
?>
<tr>
<td>
<?php if($row['book_image'] !=
""): ?>
<img class="img-thumbnail"
width="75px" height="50px">
<td><?php echo
$row['book_copies']; ?></td>
<td><?php echo
$cat_row['classname']; ?></td>
<td>
</a>-->
</a>
<i class="glyphicon
glyphicon-trash icon-white"></i>
</a>
<div class="modal-dialog">
<div class="modal-
content">
<div class="modal-
header">
<h4
class="modal-title" id="myModalLabel"><i class="glyphicon glyphicon-user"></i> User</h4>
</div>
<div class="modal-
body">
<div
class="alert alert-danger">
</div>
<div
class="modal-footer">
<a
href="delete_book.php<?php echo '?book_id='.$id; ?>" style="margin-bottom:5px;" class="btn btn-
primary"><i class="glyphicon glyphicon-ok icon-white"></i> Yes</a>
</div>
</div>
</div>
</div>
</div>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<Style>
.btn-primary {
color: #fff;
background-color: blue;
border-color: #1A82C3;
color: #fff;
background-color: blue;
.sqaure-button {
height: 100%;
font-weight: bold;
width: 50%;
background-color: #421919;
color: white;
font-size: 20px;
.sqaure-button:after{
content: "";
display: block;
.btn-primary {
color: #fff;
background-color: #421919;
border-color: #421919;
.nav>li>a {
position: relative;
display: block;
background-color: #421919;
color: #fff;
border-color: #421919;
</Style>
borrow.php
<div class="page-title">
<div class="title_left">
<h3>
</h3>
</div>
</div>
<div class="clearfix"></div>
<div class="row">
<div class="x_panel">
<div class="x_title">
<!-- If needed
<li class="dropdown">
</a>
</ul>
</li>
-->
</ul>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div class="row">
<div class="col-md-4"></div>
<div class="col-md-4">
<option
value="0">Select School ID Number</option>
<?php
$result=
mysqli_query($con,"select * from user where status = 'Active' ") or die (mysqli_error());
while ($row=
mysqli_fetch_array ($result) ){
$id=$row['user_id'];
?>
<?php } ?>
</select>
<br />
<br />
</form>
<?php
include ('include/dbcon.php');
if (isset($_POST['submit'])) {
$school_number = $_POST['school_number'];
$count = mysqli_num_rows($sql);
$row = mysqli_fetch_array($sql);
}else{
$school_number = $_POST['school_number'];
?>
</div>
<div class="col-md-4"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<div class="row">
</div>
<button onclick="window.location.href='settings.php';">
options
</button>
</form>
<style>
</style>
<?php
$school_number = $_GET['school_number'];
$user_row = mysqli_fetch_array($user_query);
?>
<div class="page-title">
<div class="title_left">
<h3>
</h3>
</div>
</div>
<div class="clearfix"></div>
<div class="row">
<div class="x_panel">
<div class="x_title">
<?php
$row = mysqli_fetch_array($sql);
?>
<h2>
</h2>
<!-- If needed
<li class="dropdown">
</a>
</ul>
</li>
-->
<div class="clearfix"></div>
</div>
<div class="x_content">
<div class="table-responsive">
<thead>
<tr>
<th>Barcode</th>
<th>BookName</th>
<th>Author</th>
<th>Date Borrowed</th>
<th>Due Date</th>
<th>Penalty</th>
<th>Action</th>
<?php
$borrow_query =
mysqli_query($con,"SELECT * FROM borrow_book
$borrow_count =
mysqli_num_rows($borrow_query);
while($borrow_row =
mysqli_fetch_array($borrow_query)){
$due_date=
$borrow_row['due_date'];
$timezone = "Asia/Manila";
if(function_exists('date_default_timezone_set')) date_default_timezone_set($timezone);
$date_returned = date("Y-m-d
H:i:s");
//$due_date =
strtotime($cur_date);
///$checkout = date('m/d/Y',
strtotime("+1 day", strtotime($due_date)));
$penalty_amount_query=
mysqli_query($con,"select * from penalty order by penalty_id DESC ") or die (mysqli_error());
$penalty_amount =
mysqli_fetch_assoc($penalty_amount_query);
if ($date_returned >
$due_date) {
$penalty =
round((float)(strtotime($date_returned) - strtotime($due_date)) / (60 * 60 *24) *
($penalty_amount['penalty_amount']));
$penalty = 'No
Penalty';
} else {
$penalty = 'No
Penalty';
?>
</tr>
</thead>
<tbody>
<tr>
<td><?php echo
$borrow_row['book_barcode']; ?></td>
<td style="text-transform:
capitalize"><?php echo $borrow_row['book_title']; ?></td>
<td style="text-transform:
capitalize"><?php echo $borrow_row['author']; ?></td>
<!-- <td><?php echo
$borrow_row['isbn']; ?></td>-->
<?php
if ($borrow_row['status'] !=
'Hardbound') {
echo
"<td>".date('M d, Y h:m:s a',strtotime($borrow_row['due_date']))."</td>";
} else {
echo
"<td>".'Hardbound Book, Inside Only'."</td>";
?>
<?php
if ($borrow_row['status'] !=
'Hardbound') {
echo "<td>".
$penalty."</td>";
} else {
echo
"<td>".'Hardbound Book, Inside Only'."</td>";
?>
<input type="hidden"
name="date_returned" class="new_text" id="sd" value="<?php echo $date_returned ?>" size="16"
maxlength="10" />
<input type="hidden"
name="user_id" value="<?php echo $borrow_row['user_id']; ?>">
<input type="hidden"
name="borrow_book_id" value="<?php echo $borrow_row['borrow_book_id']; ?>">
<input type="hidden"
name="book_id" value="<?php echo $borrow_row['book_id']; ?>">
<input type="hidden"
name="date_borrowed" value="<?php echo $borrow_row['date_borrowed']; ?>">
<input type="hidden"
name="due_date" value="<?php echo $borrow_row['due_date']; ?>">
</form>
</td>
</tr>
<?php
echo '
<table style="float:right;">
<tr>
<td
style="padding:10px;" class="alert alert-danger">No books borrowed</td>
</tr>
</table>
';
?>
<?php
if (isset($_POST['return'])) {
$user_id=
$_POST['user_id'];
$borrow_book_id=
$_POST['borrow_book_id'];
$book_id=
$_POST['book_id'];
$date_borrowed=
$_POST['date_borrowed'];
$due_date=
$_POST['due_date'];
$date_returned =
$_POST['date_returned'];
$update_copies =
mysqli_query($con,"SELECT * from book where book_id = '$book_id' ") or die (mysqli_error());
$copies_row=
mysqli_fetch_assoc($update_copies);
$book_copies =
$copies_row['book_copies'];
$new_book_copies =
$book_copies + 1;
if ($new_book_copies ==
'0') {
$remark = 'Not
Available';
} else {
$remark =
'Available';
$timezone = "Asia/Manila";
if(function_exists('date_default_timezone_set')) date_default_timezone_set($timezone);
$cur_date = date("Y-m-d
H:i:s");
$date_returned_now =
date("Y-m-d H:i:s");
//$due_date =
strtotime($cur_date);
//$due_date =
strtotime("+3 day", $due_date);
///$checkout =
date('m/d/Y', strtotime("+1 day", strtotime($due_date)));
$penalty_amount_query=
mysqli_query($con,"select * from penalty order by penalty_id DESC ") or die (mysqli_error());
$penalty_amount =
mysqli_fetch_assoc($penalty_amount_query);
if ($date_returned >
$due_date) {
$penalty =
round((float)(strtotime($date_returned) - strtotime($due_date)) / (60 * 60 *24) *
($penalty_amount['penalty_amount']));
$penalty = 'No
Penalty';
} else {
$penalty = 'No
Penalty';
}
mysqli_query($con,"UPDATE borrow_book SET borrowed_status = 'returned', date_returned
= '$date_returned_now', book_penalty = '$penalty' WHERE borrow_book_id= '$borrow_book_id'
and user_id = '$user_id' and book_id = '$book_id' ") or die (mysqli_error());
mysqli_query($con,"INSERT
INTO return_book (user_id, book_id, date_borrowed, due_date, date_returned, book_penalty)
values ('$user_id',
'$book_id', '$date_borrowed', '$due_date', '$date_returned', '$penalty')") or die (mysqli_error());
$report_history_row1=mysqli_fetch_array($report_history1);
$admin_row1=$report_history_row1['firstname']." ".$report_history_row1['middlename']."
".$report_history_row1['lastname'];
mysqli_query($con,"INSERT
INTO report
(book_id, user_id,
admin_name, detail_action, date_transaction)
VALUES
('$book_id','$user_id','$admin_row1','Returned Book',NOW())") or die(mysqli_error());
?>
<script>
window.location="borrow_book.php?school_number=<?php echo $school_number ?>";
</script>
<?php
?>
</tbody>
</table>
</div>
<form method="post">
<div class="col-xs-4">
</div>
</form>
<th>Barcode</th>
<th>Title</th>
<th>Author</th>
<th>ISBN</th>
<th>Status</th>
<th>Action</th>
<?php
if (isset($_POST['barcode'])){
$barcode =
$_POST['barcode'];
$book_query =
mysqli_query($con,"SELECT * FROM book WHERE book_barcode = '$barcode' ") or die
(mysqli_error());
$book_count =
mysqli_num_rows($book_query);
$book_row =
mysqli_fetch_array($book_query);
if
($book_row['book_barcode'] != $barcode){
echo '
<table>
<tr>
</tr>
</table>
';
echo '
<table>
<tr>
</tr>
</table>
';
}else{
?>
<tr>
<td>
</td>
<td><?php echo
$book_row['book_barcode'] ?></td>
</tr>
<?php } }?>
<?php
$allowable_days_query=
mysqli_query($con,"select * from allowed_days order by allowed_days_id DESC ") or die
(mysqli_error());
$allowable_days_row =
mysqli_fetch_assoc($allowable_days_query);
$timezone = "Asia/Manila";
if(function_exists('date_default_timezone_set')) date_default_timezone_set($timezone);
$due_date = strtotime($cur_date);
$due_date = strtotime("+".
$allowable_days_row['no_of_days']." day", $due_date);
?>
<input type="hidden"
name="date_borrowed" class="new_text" id="sd" value="<?php echo $date_borrowed ?>"
size="16" maxlength="10" />
<?php
if (isset($_POST['borrow'])){
$user_id
=$_POST['user_id'];
$book_id
=$_POST['book_id'];
$date_borrowed
=$_POST['date_borrowed'];
$due_date
=$_POST['due_date'];
$trapBookCount=
mysqli_query($con,"SELECT count(*) as books_allowed from borrow_book where user_id =
'$user_id' and borrowed_status = 'borrowed'") or die (mysqli_error());
$countBorrowed =
mysqli_fetch_assoc($trapBookCount);
$bookCountQuery=
mysqli_query($con,"SELECT count(*) as book_count from borrow_book where user_id = '$user_id'
and borrowed_status = 'borrowed' and book_id = $book_id") or die (mysqli_error());
$bookCount =
mysqli_fetch_assoc($bookCountQuery);
$allowed_book_query=
mysqli_query($con,"select * from allowed_book order by allowed_book_id DESC ") or die
(mysqli_error());
$allowed =
mysqli_fetch_assoc($allowed_book_query);
if
($countBorrowed['books_allowed'] == $allowed['qntty_books']){
echo "<script>alert('
".$allowed['qntty_books']." ".'Books Allowed per User!'." '); window.location='borrow_book.php?
school_number=".$school_number."'</script>";
}elseif
($bookCount['book_count'] == 1){
echo
"<script>alert('Book Already Borrowed!'); window.location='borrow_book.php?school_number=".
$school_number."'</script>";
}else{
$update_copies =
mysqli_query($con,"SELECT * from book where book_id = '$book_id' ") or die (mysqli_error());
$copies_row=
mysqli_fetch_assoc($update_copies);
$book_copies =
$copies_row['book_copies'];
$new_book_copies =
$book_copies - 1;
echo
"<script>alert('Book out of Copy!'); window.location='borrow_book.php?school_number=".
$school_number."'</script>";
}elseif
($copies_row['status'] == 'Damaged'){
echo
"<script>alert('Book Cannot Borrow At This Moment!'); window.location='borrow_book.php?
school_number=".$school_number."'</script>";
}elseif
($copies_row['status'] == 'Lost'){
echo
"<script>alert('Book Cannot Borrow At This Moment!'); window.location='borrow_book.php?
school_number=".$school_number."'</script>";
}else{
if ($new_book_copies ==
'0') {
$remark = 'Not
Available';
} else {
$remark =
'Available';
mysqli_query($con,"INSERT
INTO borrow_book(user_id,book_id,date_borrowed,due_date,borrowed_status)
VALUES('$user_id','$book_id','$date_borrowed','$due_date','borrowed')") or die
(mysqli_error());
$report_history_row=mysqli_fetch_array($report_history);
$admin_row=$report_history_row['firstname']." ".$report_history_row['middlename']." ".
$report_history_row['lastname'];
mysqli_query($con,"INSERT
INTO report
(book_id, user_id,
admin_name, detail_action, date_transaction)
VALUES
('$book_id','$user_id','$admin_row','Borrowed Book',NOW())") or die(mysqli_error());
?>
<script>
</script>
<?php
?>
</form>
</table>
</div>
</div>
<!-- content ends here -->
</div>
</div>
</div>
borrowed.php
<div class="page-title">
<div class="title_left">
<h3>
</h3>
</div>
</div>
<div class="clearfix"></div>
<div class="row">
<div class="x_panel">
<div class="x_title">
</form>
</div>
-->
<li>
<a href="print_borrowed_books.php"
target="_blank" style="background:none;">
</a>
</li>
<!-- If needed
<li class="dropdown">
</a>
</ul>
</li>
-->
</ul>
<div class="clearfix"></div>
<div class="control-group">
<div class="controls">
<div class="col-md-3">
</div>
</div>
</div>
<div class="control-group">
<div class="controls">
<div class="col-md-3">
</div>
</div>
</div>
<button type="submit"
name="search" class="btn btn-primary btn-outline"><i class="fa fa-calendar-o"></i>
Search</button>
</form>
</div>
<div class="span">
<form
method="POST" target="_blank" action="print_returned_book.php">
</button>
</form>
</div>
</div>
-->
<div class="x_content">
<div class="table-responsive">
<?php
$where ="";
if(isset($_GET['search'])){
$where = " and
(date(borrow_book.date_borrowed) between '".date("Y-m-d",strtotime($_GET['datefrom']))."' and
'".date("Y-m-d",strtotime($_GET['dateto']))."' ) ";
$return_query= mysqli_query($con,"SELECT
* from borrow_book
where borrow_book.borrowed_status =
'borrowed' $where order by borrow_book.borrow_book_id DESC") or die (mysqli_error());
$return_count =
mysqli_num_rows($return_query);
// $count_penalty =
mysqli_query($con,"SELECT sum(book_penalty) FROM return_book ")or die(mysqli_error());
// $count_penalty_row =
mysqli_fetch_array($count_penalty);
?>
</div> -->
<thead>
<tr>
<th>Barcode</th>
<th>Borrower Name</th>
<th>Title</th>
<!--- <th>Author</th>
<th>ISBN</th> -->
<th>Date Borrowed</th>
<th>Due Date</th>
<!-- <th>Date
Returned</th> -->
</tr>
</thead>
<tbody>
<?php
$id=$return_row['borrow_book_id'];
?>
<tr>
<td><?php echo
$return_row['book_barcode']; ?></td>
<td style="text-transform:
capitalize"><?php echo $return_row['firstname']." ".$return_row['lastname']; ?></td>
<td style="text-transform:
capitalize"><?php echo $return_row['book_title']; ?></td>
<td><?php // echo
$return_row['isbn']; ?></td> -->
<?php
if ($return_row['book_penalty'] !=
'No Penalty'){
}else {
echo "<td>".date("M d, Y
h:m:s a",strtotime($return_row['due_date']))."</td>";
?>
<?php
// if ($return_row['book_penalty'] !
= 'No Penalty'){
// echo "<td>".date("M d, Y
h:m:s a",strtotime($return_row['date_returned']))."</td>";
// }
?>
<?php
// if ($return_row['book_penalty'] !
= 'No Penalty'){
// }else {
// echo "<td>".
$return_row['book_penalty']."</td>";
// }
?>
</tr>
<?php
echo '
<table style="float:right;">
<tr>
<td
style="padding:10px;" class="alert alert-danger">No Books returned at this moment</td>
</tr>
</table>
';
?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<style>
.btn-danger {
background: #421919;
border-color: #421919;
.alert-danger, .alert-error {
color: #E9EDEF;
background-color:#421919;
border-color: #421919;
</style>
home.php
<div class="clearfix"></div>
<style>
.center {
margin-left: auto;
float: right;
}
-->
</style>
<div class="dash1">
<div class="left"></div>
<div class="right">
<?php
$result = mysqli_query($con,"SELECT *
FROM admin");
$num_rows = mysqli_num_rows($result);
?>
<style>
.dash1 {
width: 350px;
height: 150px;
background: white;
border-radius: 80px;
</style>
<a href="admin.php">
</a>
<style>
.count_top {
color: black;
}
</style>
<div class="icon-design">
</div>
<style>
.icon-design img{
width: 100px;
height: 100px;
display: block;
margin-left: auto;
margin-right: auto;
</style>
<style>
.countgreen {
text-align: center;
color: black;
font-size: 20px;
}
</style>
<a href="admin.php">
</a>
<style>
.count_bottom {
text-align:center;
color: black;
display: block;
</style>
</div>
</div>
<div class="dash2">
<div class="left"></div>
<div class="right">
<style>
.dash2 {
width: 350px;
height: 150px;
background: white;
float: left;
border-radius:50px;
</style>
<?php
$result = mysqli_query($con,"SELECT *
FROM user");
$num_rows = mysqli_num_rows($result);
?>
<div class="icon-design">
</div>
</style>
<a href="user.php">
<a href="user.php">
<span class="count_bottom">Total of
Members</span>
</a>
</div>
</div>
<style>
.count_bottom {
color: black;
.countgreen {
color: black;
}
</style>
<div class="dash3">
<div class="left"></div>
<div class="right">
<style>
.dash3 {
width: 350px;
height: 150px;
background: white;
float: left;
border-radius: 80px;
}
</style>
<?php
$result = mysqli_query($con,"SELECT *
FROM book");
$num_rows = mysqli_num_rows($result);
?>
<div class="icon-design">
</div>
<a href="book.php">
</a>
<a href="book.php">
</a>
</div>
</div>
<div class="dash4">
<div class="left"></div>
<div class="right">
<style>
.countgreen {
color: black;
</style>
<style>
.dash4 {
width: 350px;
height: 150px;
background: white;
float: left;
border-radius: 80px;
</style>
<?php
$result = mysqli_query($con,"SELECT *
FROM borrow_book");
$num_rows = mysqli_num_rows($result);
?>
<div class="icon-design">
</div>
<a href="borrowed.php">
<a href="borrowed.php">
</div>
</a>
</div>
<div class="dash5">
<div class="left"></div>
<div class="right">
<style>
.countgreen {
color: black;
}
</style>
<style>
.dash5 {
width: 350px;
height: 150px;
background: white;
float: left;
border-radius: 80px;
.right_col {
min-height: 770px;
</style>
<?php
$result = mysqli_query($con,"SELECT *
FROM return_book");
$num_rows = mysqli_num_rows($result);
?>
<div class="icon-design">
</div>
<a href="returned_book.php">
</a>
<a href="returned_book.php">
</div>
</div>
</a>
</div>
<style>
.countgreen {
color: black;
}
</style>
login.php
<?php
include('include/dbcon.php');
if (isset($_POST['login'])){
$username=$_POST['username'];
$password=$_POST['password'];
$count=mysqli_num_rows($login_query);
$row=mysqli_fetch_array($login_query);
session_start();
$_SESSION['id']=$row['admin_id'];
}else{
?>
<?php }
?>
user.php
<div class="page-title">
<div class="title_left">
<h3>
<style>
H3 {
color: BLACK;
font-weight: bold;
</style>
</h3>
</div>
</div>
<div class="clearfix"></div>
<div class="row">
<div class="x_panel">
<!--
<a href="member_print.php"
target="_blank" style="background:none;">
</a>
<a href="print_barcode.php"
target="_blank" style="background:none;">
<br />
<br />
-->
<div class="x_title">
<li>
<a href="add_user.php"
style="background:none;">
</a>
</li>
<li>
<!--
<a href="import_members.php"
style="background:none;">
</a>
</li>
-->
<!--- <li>
<a href="update_members_status.php"
style="background:none;">
<button class="btn btn-danger btn-
outline"><i class="fa fa-cog fa-spin"></i> Activate All Members</button>
</a>
</li> -->
<!-- If needed
<li class="dropdown">
</a>
</ul>
</li>
-->
</ul>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div class="table-responsive">
<table cellpadding="0" cellspacing="0"
border="0" class="table table-striped table-bordered" id="example">
<thead>
<tr>
<th>School ID</th>
<th>Member Full
Name</th>
<th>Contact Number</th>
<th>Type</th>
<th>Level</th>
<th>Course</th>
<th>Section</th>
<th>Status</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php
$id=$row['user_id'];
?>
<tr>
<!--- <td>
<img src="images/user.png"
width="100px" height="100px" style="border:4px groove #CCCCCC; border-radius:5px;">
<td>
</a>
</a>
<i class="glyphicon
glyphicon-trash icon-white"></i>
</a>
<div class="modal-dialog">
<div class="modal-
content">
<div class="modal-
header">
<h4
class="modal-title" id="myModalLabel"><i class="glyphicon glyphicon-user"></i> User</h4>
</div>
<div class="modal-
body">
<div
class="alert alert-danger">
</div>
<div
class="modal-footer">
<a
href="delete_user.php<?php echo '?user_id='.$id; ?>" style="margin-bottom:5px;" class="btn btn-
primary"><i class="glyphicon glyphicon-ok icon-white"></i> Yes</a>
</div>
</div>
</div>
</div>
</div>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<style>
.btn-primary {
color: #fff;
background-color:blue;
border-color: #1A82C3;
</style>
A. Functional Suitability
1. Functional Completeness. The system covers all the specified tasks 4.60 Strongly agree
and user objectives.
2. Functional Correctness. The system provides the correct results with 4.80 Strongly agree
the needed degree of precision.
3. Functional Appropriateness. The system facilitates the 5.00 Very strongly agree
accomplishment of specified tasks and objectives.
B. Performance Efficiency
System’s Capabilities and Features Mean Descriptive Ratings
4. Time Behavior. The system’s response and processing times and 5.00 Very strongly agree
throughput rates when performing its functions meet requirements.
5. Resource Utilization. The system’s amounts and types of resources 4.60 Strongly agree
used when performing its functions, meet requirements.
6. Capacity. The system’s maximum limits of parameters meet 4.80 Strongly agree
requirements.
C. Compatibility
7. Co-existence. The system can perform its required functions 4.40 Strongly agree
efficiently while sharing a common environment and resources with
other products, without detrimental impact on any other product.
8. Interoperability. The system can exchange information and use the 4.60 Strongly agree
information that has been exchanged.
D. Usability
10. Learnability. The system can be used by specified users to achieve 4.80 Strongly agree
specified goals of learning to use the application with effectiveness,
efficiency, freedom from risk and satisfaction in a specified context of
use.
11. Operability. The system has attributes that make it easy to operate and 5.00 Very strongly agree
control.
12. User Error Protection. The system protects users against making 5.00 Very strongly agree
errors.
13. User Interaction Aesthetics. The system’s user interface enables 5.00 Very strongly agree
pleasing and satisfying interaction for the user.
14. Accessibility. The system can be used by people with the widest range 4.80 Strongly agree
of characteristics and capabilities to achieve a specified goal in a
specified context of use.
E. Reliability
15. Maturity. The system meets the needs for reliability under normal 4.60 Strongly agree
System’s Capabilities and Features Mean Descriptive Ratings
operation
16. Availability. The system is operational and accessible when required 5.00 Very strongly agree
for use.
17. Fault Tolerance. The system operates as intended despite the 5.00 Very strongly agree
presence of hardware or software faults.
18. Recoverability. The system can recover the data directly affected and 5.00 Very strongly agree
re-establish the desired state.
F. Security
19. Confidentiality. The system ensures that data are accessible only to
those authorized to have access.
20. Integrity. The system prevents unauthorized access to, or modification 5.00 Very strongly agree
of, computer programs or data.
21. Non-repudiation. The system can be proven to have taken place, so 5.00 Very strongly agree
that the events or actions cannot be repudiated later.
G. Portability
22. Adaptability. The system can effectively and efficiently be adapted 4.80 Strongly agree
for different or evolving hardware, software or other operational or
usage environments
23. Installability. The system can be successfully installed and/or 5.00 Very strongly agree
uninstalled in a specified environment
Appendix H
Sample Generated Outputs
APPENDICES I
User Manuals
Administrator Module
Login Module
In this module it illustrates that the admin should provide a combination of username
and password to access the system. If the admin entered invalid username and password the
admin cannot access the system.
Home Tab
In this module shows where you can view the total of the staff.
In this module show the total of the borrower.
In this module shows the list of member’s information who registered in to the
system. And it has five function. Add Members, Search Bar, View, Delete and Edit. The
function of Add member is for adding a new member which we can view here and the second
function is for search Bar. the function for search bar is to easily locate the name of the
members and third function is for View. The function for view is to view the member’s
information. And the fourth function is the Edit, the function for edit is to edit the member’s
information and the last function is Delete, the function for delete is to delete the member’s
information.
New Members Form
In this module, this form includes all the basic information of members. in this form show us
where the librarian can add new members in the system.
Books Tab
In this module, shows all the list of books and it has nine function the first is the
damaged book shows all the book damaged, the second is the lost books shows if what books
lost, the third is Add book and the function is to add book in the system, the fourth is the
search bar and the function for search bar is to easily locate the information of the books. The
fifth is the Edit and the for is to edit the books information, and the Seventh is the print book
list the function is to know all the list of books and also it can print. The eighth function is the
print books barcode and the function is to know the books barcode and also it can print. And
the last is the delete the function for delete is to delete the books information.
In this Module, this form includes all the basic information of Add book. This form show
where the librarian can add Books in the system.
Book Print Reports
In this module, shows the printed reports of all the books registered in the system.
List of Books Barcode
Borrow Tab
In this module, the borrow tab show us the field of selecting the name who are borrow
a book and selecting a name who are returning the book by simply search the name or ID
number of the borrower.
In this module, shows the form of selecting a school ID number to borrow a book.
Option Tab
In this module, this form shows us the limitation of borrowing a book and editing the
amount of penalty.
In this module, the borrowed books tab shows us all the members who borrowed
book.
Print Books Borrowed
In this module, shows the printed reports of all the members who borrowed books in
the library.
Returned Books Tab
In this module. The returned books tab shows us all the members who returned the
books.
Returned Tab
In this module, shows the printed reports of all members who returned the books.
Transaction Reports Tab
In this module, show all the transaction who borrowed and returned books and the
assigned admin.