"Library Management System": A Project Report On
"Library Management System": A Project Report On
Ms.Mani Tanya-110416024
Supriti-110416029
Kanish-110416083
DECLARATION
We hereby declare that the work done on the dissertation entitled “Library Management
System” has been carried out by us and submitted in partial fulfilment of the requirement for
The Summer internship program.
We also declare that the various contents incorporated in the dissertation have not been
submitted in any form for the award of any other degree of other Institution or University.
Name:Tanya,Supriti,Kanish
Place: Bahadurgarh
Date:27/07/19
The satisfaction that accompanies that the successful completion of any task would be
incomplete without the mention of people whose ceaseless cooperation made it possible,
whose constant guidance and encouragement crown all efforts with success. It was not only a
technical endeavour but also the initialization of us, (the fresher) into the world of industrial
engineering field.
We are grateful to my project guide Mrs. Geetanjali Tyagi for the guidance, inspiration and
constructive suggestions that helped us in the preparation of this project.
And finally we extent our heartfelt gratitude to our parents and friends whose constant
support made us enthusiastic enough to accomplish the task and finally emerge with a
successful project.
TABLE OF CONTENTS
In the present system all work is done on paper. The whole session attendance is stored in
register and at the end of the session the reports are generated. We are not interested in
generating report in the middle of the session or as per the requirement because it takes more
time in calculation. At the end of session the students who don’t have 75% attendance get a
notice.
• Not User Friendly: The existing system is not user friendly because the retrieval of data is
very slow and data is not maintained efficiently.
• Manual control: All calculations to generate report is done manually so there is greater
chance of errors.
• Lots of paperwork: Existing system requires lot of paper work. Loss of even a single
register/record led to difficult situation because all the papers are needed to generate the
reports.
• Time consuming: Every work is done manually so we cannot generate report in the middle
of the session or as per the requirement because it is very time consuming.
CHARACTERISTIC OF THE PROPOSED SYSTEM
• User Friendly:- The proposed system is user friendly because the retrieval and storing of
data is fast and data is maintained efficiently. Moreover the graphical user interface is
provided in the proposed system, which provides user to deal with the system very easily.
• Reports are easily generated: reports can be easily generated in the proposed system so
user can generate the report as per the requirement (monthly) or in the middle of the session.
User can give the notice to the students so he/she become regular.
• Very less paper work: The proposed system requires very less paper work. All the data is
feted into the computer immediately and reports can be generated through computers.
Moreover work become very easy because there is no need to keep data on papers.
1. Introduction
1.1 Problem Definition
The Library management system takes input as users detail including update, return
booksetc. The contents are intendedto be utilized by the engineering class as guidelines for
implementation and testing. At theend of the particular semester the system would provide
with user list which would help the respective librarian to take particular action.
1.2 Product Scope
The student attendance management system will allow the teacher to maintain a record
of attendance of students intheir respectiveclasses from a PC. Also, the system will permit the
teacher incharge tomaintain all the essential details regarding a particular student.
Furthermore, the programprovidesdifferent modes to edit attendance,view statistics, and take
notes on elementspertaining to attendance. The goal is to provide a professor withan easy,
portable solution to attendance record maintenance and attendance statistics.
2. Overall Description
2.1 Product Perspective
The Library Management System isintended to replace themanual model of book
recordkeeping by means of rollcall and paper records. The rollcall and paper records
arereplaced with a single interaction between the librarian and
thelibraryManagementSystem. librarian will beable to view detailsregarding attendance of
individual studentson their PC andquickly maintain attendance records. The system will be
developed in such a way to provide easy addition of enhanced features, which may be desired
in subsequent versions.
AS-1: The database mentioned within this Software Requirements Specification document
ispreviously administered with the correct information needed by the Library
ManagementSystem.
AS-2: For Maintain books policies, since librarians do not usually tabulate tardiness, it
isassume a user is either present or absent. The system also assumes that detailregardingeach
user would be made correctly.
DE-1: Class data being usedfor setup and student recognition is dependent on informationin
adatabase administered outside of the capabilities of the Student Attendance
ManagementSystem.
DE-2: Statistics on student attendance is dependent on admin’s consistent utilizationof
thesystem for each class period.
3. Specific Requirements:
UI-1: The
library ManagementSystem shall provide details of students in the class toaid intaking roll.
UI-2: These details can be clicked with a mouse in order to view a particular users record.
UI-4: The program will provide a pagethat produces current statistics on class attendance
SI-1.1: This software will transmit the users info to a database on a machine.
SI-1.2: The user will be allowed to modify users records at any time.
SI-1.3: If the user forgets to transmit the information, the system will automatically send
itforthem.
SI-2: Database: The Attendance Management System will communicate with the database
toperform thefollowing options.
SI-2.1: To allow a user to enter attendance.
SI-2.2: To allow a user to modify attendance.
SI-2.3: To allow a user to query a system to gain statistics concerning individual and
classattendance.
4. System Features
4.1. Database- Storage
4.2 Description and Priority- Proposed database is intended to store, retrieve, update and
manipulate information related to Library Management which includes:
Users Login
Management of books
Update books
Return book
4.3 Stimulus/Response Sequences responses for administrator: the admin can login and
logout. On login the system checks for validity of login. If the login and password are valid,
the response to this action is the admin will be able to modify, view, add, deleting.
PHP code may be executed with a command line interface (CLI), embedded
into HTML code, or used in combination with various web template systems, web content
management systems, and web frameworks. PHP code is usually processed by a
PHP interpreterimplemented as a module in a web server or as a Common Gateway
Interface (CGI) executable. The web server outputs the results of the interpreted and executed
PHP code, which may be any type of data, such as generated HTML code or binary image
data. PHP can be used for many programming tasks outside of the web context, such
as standalone graphical applicationsand robotic dronecontrol.
The standard PHP interpreter, powered by the Zend Engine, is free software released under
the PHP License. PHP has been widely ported and can be deployed on most web servers on
almost every operating system and platform, free of charge..
The PHP language evolved without a written formal specification or standard until 2014, with
the original implementation acting as the de facto standard which other implementations
aimed to follow. Since 2014, work has gone on to create a formal PHP specification.
2.XAMPP: it is a free and open source cross-platform web server solution stack package
developed by Apache Friends, consisting mainly of the Apache HTTP Server, MySQL
database, and interpreters for scripts written in the PHP and Perl programming languages.
Xampp Server :
Student Details
Entry Operator Admin
Student
Attendance
Management
System
Student Attendance
Report Generated
First Level Data Flow Diagram of Student Attendance Management System
Report
Student info Generation
entry
Student
Attendance
Report
Student info
Enter enrollno, Management
password System
Enter password
Admin
ENTITY RELATIONSHIP DIAGRAM
Semester
NAME T_ID Batch Enrollno
ADMIN ATTENDANCE
Main
-tains
Belongs
COURSE Studies
S.Code
T_ID
Name
STUDENT
Semester
Branch
NAME
Enrollno
CHAPTER 5
Economically Feasibility: The system being developed is economic with respect to School
or College’s point of view. It is cost effective in the sense that has eliminated the paper work
completely. The system is also time effective because the calculations are automated which
are made at the end of the month or as per the user requirement. The result obtained contains
minimum errors and are highly accurate as the data is required.
Technical feasibility: The technical requirement for the system is economic and it does not
use any other additional Hardware and software.
Behavioural Feasibility: The system working is quite easy to use and learn due to its simple
but attractive interface. User requires no special training for operating the system
CHAPTER 6
TESTING
1.books
2.Book issue
3.membership-grouppermissions
4.membership-users
5.newspaper
6.return_book
7.types
8.users
CHAPTER 7
The objective of this project was to implement and view information about Library
Management System. The system developed is able to meet all basic requirements. There is
always room for improvement in any software, however efficient the system may be.
The system is flexible enough for future modifications. The system has been factored into
different modules to make system adapt to further changes. Every effort has been made to
cover all user requirements and make it user friendly.
APPENDIX A
SCREEN SHOTS
1.Login
2.Dashboard
3.Users
Print
Usersfilter
4. Books
5.Magazines
6.Newspaper
5.Issued
6.Returned
7.Actions
APPENDIX B
SOURCE CODE
Index.php
<?php
error_reporting(E_ERROR | E_WARNING | E_PARSE);
$host = $_SERVER['HTTP_HOST'];
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$http = (strtolower($_SERVER['HTTPS']) == 'on' ? 'https:' : 'http:');
$extra = 'pageHome.php';
header("Location: $http//$host$uri/$extra");
exit;
?>
ajax-maintanance-mode.php
<?php
$currDir = dirname(__FILE__);
require("{$currDir}/incCommon.php");
if(!getLoggedAdmin()) exit;
$status = $_REQUEST['status'];
if($status == 'on') maintenance_mode(true);
if($status == 'o<?php
error_reporting(E_ERROR | E_WARNING | E_PARSE);
$host = $_SERVER['HTTP_HOST'];
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$http = (strtolower($_SERVER['HTTPS']) == 'on' ? 'https:' : 'http:');
$extra = 'pageHome.php';
header("Location: $http//$host$uri/$extra");
exit;
?>ff') maintenance_mode(false);
getUsers.php
<?php
// This script and data application were generated by AppGini 5.70
// Download AppGini for free from https://bigprof.com/appgini/download/
/*
ajax-callable script that retrieves a list of users for admin, indicating which ones have
access to supplied table.
REQUEST parameters:
===============
t: table name
id: optional, primary key value of current record
p: page number (default = 1)
s: search term
*/
/* return json */
header('Content-type: application/json');
$start_ts = microtime(true);
$curr_dir=dirname(__FILE__);
require("{$curr_dir}/incCommon.php");
$id = false;
if(isset($_REQUEST['id'])) $id = iconv('UTF-8', datalist_db_encoding,
$_REQUEST['id']);
$search_term = false;
if(isset($_REQUEST['s'])) $search_term = iconv('UTF-8', datalist_db_encoding,
$_REQUEST['s']);
$page = intval($_REQUEST['p']);
if($page < 1) $page = 1;
$skip = $results_per_page * ($page - 1);
$table_name = $_REQUEST['t'];
if(!in_array($table_name, array_keys(getTableList()))){
/* invalid table */
echo '{"results":[{"id":"","text":"Invalid table"}],"more":false,"elapsed":0}';
exit;
}
$prepared_data = array();
$where = "g.name!='{$adminConfig['anonymousGroup']}' and p.allowView>0 ";
if($search_term){
$search_term = makeSafe($search_term);
$where .= "and (u.memberID like '%{$search_term}%' or g.name like
'%{$search_term}%')";
}
$res = sql("select u.memberID, g.name from membership_users u left join
membership_groups g on u.groupID=g.groupID left join membership_grouppermissions p
on g.groupID=p.groupID and p.tableName='{$table_name}' where {$where} order by
g.name, u.memberID limit {$skip}, {$results_per_page}", $eo);
while($row = db_fetch_row($res)){
$prepared_data[] = array('id' => iconv(datalist_db_encoding, 'UTF-8',
$row[0]), 'text' => iconv(datalist_db_encoding, 'UTF-8', "<b>{$row[1]}</b>/{$row[0]}"));
}
echo json_encode(array(
'results' => $prepared_data,
'more' => (@db_num_rows($res) >= $results_per_page),
'elapsed' => round(microtime(true) - $start_ts, 3)
));
incCommon.php
<?php
error_reporting(E_ERROR | E_WARNING | E_PARSE);
$adminConfig = config('adminConfig');
include("{$currDir}/incFunctions.php");
@include_once("{$currDir}/../hooks/__global.php");
include("{$currDir}/../language.php");
include("{$currDir}/../defaultLang.php");
include("{$currDir}/../language-admin.php");
#####################################################################
###
?>
incFooter.php
</div><!-- /div class="container" -->
</body>
</html>
<?php exit; ?>
incHeader.php
<!DOCTYPE html>
<?php if(!defined('PREPEND_PATH')) define('PREPEND_PATH', '../'); ?>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<head>
<meta charset="<?php echo datalist_db_encoding; ?>">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><?php echo ucwords('SAIDE') . ' | ' . $Translation['admin area'];
?><?php echo html_attr(isset($GLOBALS['page_title']) ? " | {$GLOBALS['page_title']}" :
''); ?></title>
<!--[if lt IE 9]>
<script src="<?php echo PREPEND_PATH;
?>resources/initializr/js/vendor/modernizr-2.6.2-respond-1.1.0.min.js"></script>
<![endif]-->
<script src="<?php echo PREPEND_PATH; ?>resources/jquery/js/jquery-
1.12.4.min.js"></script>
<script>var $j = jQuery.noConflict(); var AppGini = AppGini || {};</script>
<script src="toolTips.js"></script>
<script src="<?php echo PREPEND_PATH;
?>resources/initializr/js/vendor/bootstrap.min.js"></script>
<script src="<?php echo PREPEND_PATH;
?>resources/lightbox/js/prototype.js"></script>
<script src="<?php echo PREPEND_PATH;
?>resources/lightbox/js/scriptaculous.js?load=effects"></script>
<script>
function jsValidateEmail(address){
var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-
z]{2,4})$/;
if(reg.test(address) == false){
modal_window({ message: '<div class="alert alert-
danger">'+"<?php echo $Translation['invalid email'];?>"+'</div>', title: "<?php echo
$Translation['error'] ; ?>" });
return false;
}else{
return true;
}
}
function jsShowWait(){
return window.confirm("<?php echo $Translation['sending
mails']; ?>");
}
function jsValidateAdminSettings(){
var p1=document.getElementById('adminPassword').value;
var p2=document.getElementById('confirmPassword').value;
if(p1=='' || p1==p2){
return
jsValidateEmail(document.getElementById('senderEmail').value);
}else{
modal_window({ message: '<div class="alert alert-
error">'+"<?php echo $Translation['password mismatch']; ?>"+'</div>', title: "<?php echo
$Translation['error'] ; ?>" });
return false;
}
}
function jsConfirmTransfer(){
var confirmMessage;
var
sg=document.getElementById('sourceGroupID').options[document.getElementById('sourceG
roupID').selectedIndex].text;
var sm=document.getElementById('sourceMemberID').value;
var
dg=document.getElementById('destinationGroupID').options[document.getElementById('des
tinationGroupID').selectedIndex].text;
if(document.getElementById('destinationMemberID')){
var
dm=document.getElementById('destinationMemberID').value;
}
if(document.getElementById('dontMoveMembers')){
var
dmm=document.getElementById('dontMoveMembers').checked;
}
if(document.getElementById('moveMembers')){
var
mm=document.getElementById('moveMembers').checked;
}
//confirm('sg='+sg+'\n'+'sm='+sm+'\n'+'dg='+dg+'\n'+'dm='+dm+'\n'+'mm='+mm+'\n'+
'dmm='+dmm+'\n');
}
if((dmm || dm) && sm!='-1'){
if(mm){
if(dmm){
confirmMessage = "<?php echo $Translation['sure
move data of all members']; ?>";
confirmMessage =
confirmMessage.replace(/<OLDGROUP>/, sg).replace(/<MEMBER>/,
dm).replace(/<NEWGROUP>/, dg);
return window.confirm(confirmMessage);
}
}
function showDialog(dialogId){
$$('.dialog-box').invoke('addClassName', 'hidden-block');
$(dialogId).removeClassName('hidden-block');
return false
};
function hideDialogs(){
$$('.dialog-box').invoke('addClassName', 'hidden-block');
return false
};
$j(function(){
$j('input[type=submit],input[type=button]').each(function(){
var label = $j(this).val();
var onclick = $j(this).attr('onclick') || '';
var name = $j(this).attr('name') || '';
var type = $j(this).attr('type');
<style>
.dialog-box{
background-color: white;
border: 1px solid silver;
border-radius: 10px 10px 10px 10px;
box-shadow: 0 3px 100px silver;
left: 30%;
padding: 10px;
position: absolute;
top: 20%;
width: 40%;
}
.hidden-block{
display: none;
}
.menu-item-icon{
margin-right: .5em;
}
.rtl .menu-item-icon{
margin-right: inherit !important;
margin-left: .5em;
}
</style>
</head>
<body>
<div class="container theme-bootstrap theme-compact">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-
toggle="dropdown"><i class="glyphicon glyphicon-user"></i> <?php echo
$Translation['members'] ;?> <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a
href="pageViewMembers.php"><i class="glyphicon menu-item-icon text-info glyphicon-
eye-open"></i> <?php echo $Translation['view members'] ; ?></a></li>
<li><a href="pageEditMember.php"><i
class="glyphicon menu-item-icon text-info glyphicon-plus"></i> <?php echo
$Translation['add member'] ; ?></a></li>
<li class="divider"></li>
<li><a href="pageViewRecords.php"><i
class="glyphicon menu-item-icon text-info glyphicon-th"></i> <?php echo
$Translation["view members' records"]; ?> </a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-
toggle="dropdown"><i class="glyphicon glyphicon-cog"></i> <?php echo
$Translation["utilities"] ; ?> <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="pageSettings.php"><i
class="glyphicon menu-item-icon text-info glyphicon-cog"></i> <?php echo
$Translation["admin settings"] ; ?></a></li>
<li class="divider"></li>
<li><a
href="pageRebuildThumbnails.php"><i class="glyphicon menu-item-icon text-info
glyphicon-picture"></i> <?php echo $Translation["rebuild thumbnails"] ; ?></a></li>
<li><a href="pageRebuildFields.php"><i
class="glyphicon menu-item-icon text-info glyphicon-refresh"></i> <?php echo
$Translation['rebuild fields'] ; ?></a></li>
<li><a href="pageUploadCSV.php"><i
class="glyphicon menu-item-icon text-info glyphicon-upload"></i> <?php echo
$Translation['import CSV'] ; ?></a></li>
<li><a
href="pageTransferOwnership.php"><i class="glyphicon menu-item-icon text-info
glyphicon-random"></i> <?php echo $Translation['batch transfer'] ; ?></a></li>
<li><a
href="pageMail.php?sendToAll=1"><i class="glyphicon menu-item-icon text-info
glyphicon-envelope"></i> <?php echo $Translation['mail all users'] ; ?></a></li>
<li><a
href="pageBackupRestore.php"><i class="glyphicon menu-item-icon text-info glyphicon-
tasks"></i> <?php echo $Translation['database backups'] ; ?></a></li>
<li class="divider"></li>
<li><a
href="https://forums.appgini.com" target="_blank"><i class="glyphicon menu-item-icon
text-info glyphicon-new-window"></i> <?php echo $Translation['AppGini forum'];
?></a></li>
</ul>
</li>
<div class="navbar-right">
<a href="<?php echo PREPEND_PATH; ?>index.php"
class="btn btn-success navbar-btn"><?php echo $Translation["user's area"] ; ?></a>
<a href="<?php echo PREPEND_PATH;
?>index.php?signOut=1" class="btn btn-warning navbar-btn"><i class="glyphicon
glyphicon-log-out"></i> <?php echo $Translation["sign out"] ; ?></a>
</div>
</div>
</nav>
<script>
/* periodically check if user is still signed in */
setInterval(function(){
$j.ajax({
url: '<?php echo PREPEND_PATH;
?>ajax_check_login.php',
success: function(username){
if(!username.length) window.location = '<?php
echo PREPEND_PATH; ?>index.php?signIn=1';
}
});
}, 60000);
</script>
<?php
if(!strstr($_SERVER['PHP_SELF'], 'pageSettings.php') &&
$adminConfig['adminPassword'] == md5('admin')){
$noSignup=TRUE;
?>
<div class="alert alert-danger">
<p><strong><?php echo $Translation["attention"] ; ?></strong></p>
<p><?php if($adminConfig['adminUsername'] == 'admin'){
echo $Translation['security risk admin'];
}else{
echo $Translation['security risk'];
} ?></p>
</div>
<?php } ?>