"Library Management System": Bachelor of Computer Applications From C.C.S University, Meerut (2018-2021)
"Library Management System": Bachelor of Computer Applications From C.C.S University, Meerut (2018-2021)
PROJECT REPORT
ON
ROLL NO.-180920106065
This is to certify that the above statement made by the candidate is correct to the
best of my Knowledge.
Date:
My first sincere appreciation and gratitude goes to Mr. Ashish Aggarwal for his
guidance, constructive comments and valuable suggestions. During making of my
Project he helped me a lot.
All the work done in coming up with this system is dedicated to my brother for
being with/part of me in the whole process.
Thank you,
Place:
Contents
ABSTRACT 1
INTRODUCTION 2
2. SYSTEM ANALYSIS......................................................................................4
3. SYSTEM DESIGN.........................................................................................14
4. SYSTEM IMPLEMENTATION.............................................................23
4.1 SCREENSHOTS..........................................................................................23
5. SYSTEM TESTING………………………………………………………………………...…65
ABSTRACT
Overall this project of ours is being developed to help the students as well as staff
of library to maintain the library in the best way possible and also reduce the
human efforts.
1
INTRODUCTION
This chapter gives an overview about the aim , objectives ,background and operation
environment of the system.
The project aims and objectives that will be achieved after completion of this project are
discussed in this subchapter. The aims and objectives are as follows:
2
In addition, report module is also included in Library Management System. If
user’s position is admin, the user is able to generate different kinds of reports like
lists of students registered, list of books, issue and return reports.
All these modules are able to help librarian to manage the library with more
convenience and in a more efficient way as compared to library systems which are
not computerized.
DATABASE MY SQL
3
2. SYSTEM ANALYSIS
In this chapter, we will discuss and analyze about the developing process of
Library Management System including software requirement specification (SRS)
and comparison between existing and proposed system . The functional and non
functional requirements are included in SRS part to provide complete description
and overview of system requirement before the developing process is carried out.
Besides that, existing vs proposed provides a view of how the proposed system
will be more efficient than the existing one.
PRODUCT DESCRIPTION:
PROBLEM STATEMENT:
4
Difficult to search record
After the number of records become large the space for physical storage of file and
records also increases if no computerized system is implemented.
Cost consuming
As there is no computerized system the to add each record paper will be needed
which will increase the cost for the management of library.
The system is developed to cope up with the current issues and problems of
library .The system can add user, validate user and is also bug free.
Save cost
Librarian is able to search record by using few clicks of mouse and few search
keywords thus saving his valuable time.
Option of online Notice board
Teacher have a facility to upload lectures notes in a pdf file having size not more
than 10mb
5
2.1.3 SYSTEM REQUIREMENTS
Product Requirements
EFFICIENCY REQUIREMENT
When a library management system will be implemented librarian and user will
easily acess library as searching and book transaction will be very faster .
RELIABILITY REQUIREMENT
USABILITY REQUIREMENT
The system is designed for a user friendly environment so that student and staff of
library can perform the various tasks easily and in an effective way.
ORGANIZATIONAL REQUIREMENT
IMPLEMENTATION REQUIREMNTS
In implementing whole system it uses html in front end with php as server side
scripting language which will be used for database connectivity and the backend ie
the database part is developed using mysql.
DELIVERY REQUIREMENTS
The whole system is expected to be delivered in six months of time with a weekly
evaluation by the project guide.
6
2.1.3.2 FUNCTIONAL REQUIREMENTS
1. NORMAL USER
Description of feature
This feature used by the user to login into system. They are required to enter user
id and password before they are allowed to enter the system .The user id and
password will be verified and if invalid id is there user is allowed to not enter the
system.
Functional requirements
Description of feature
This feature can be performed by all users to register new user to create account.
Functional requirements
-System must be able to verify information
-System must be able to delete information if information is wrong
Description of feature
This feature allows to add new books to the library
Functional requirements
-System must be able to verify information
-System must be able to enter number of copies into table.
- System must be able to not allow two books having same book id.
7
1.5 SEARCH BOOK
DESCRIPTION OF FEATURE
This feature is found in book maintenance part . we can search book based on book
id , book name , publication or by author name.
Functional requirements
- System must be able to search the database based on select search type
- System must be able to filter book based on keyword enterd
- System must be able to show the filtered book in table view
DESCRIPTION OF FEATURE
This feature allows to issue and return books and also view reports of book issued.
Functional requirements
-System must be able to enter issue information in database.
-System must be able to update number of books.
- System must be able to search if book is available or not before issuing books
-System should be able to enter issue and return date information
DESCRIPTION OF FEATURE
This feature allows teacher and student to add information about various
workshops being conducted in college and colleges nearby.
8
Functional requirements
-System should be able to add detailed information about events .
-System should be able to display information on notice board available in the
homepage of site
This section describes the software and hardware requirements of the system
Intel core i5 2nd generation is used as a processor because it is fast than other
processors an provide reliable and stable and we can run our pc for longtime. By
using this processor we can keep on developing our project without any worries.
Ram 1 gb is used as it will provide fast reading and writing capabilities and
will in turn support in processing.
9
2.2 EXISTING VS PROPOSED SYSTEM
i. Existing system does not have any facility of teachers login or student
login where as proposed system will have a facility of student login as
well as teacher’s login
ii. Existing system does not have a facility of online reservation of books
whereas proposed system has a facility of online reservation of books.
iii. Existing system does not have any facility of online notice board where
description of workshops happening in our college as well as nearby
colleges is being provided.
iv. Existing system does not has any option of lectures notes uploaded by
teachers whereas proposed system will have this facility.
v. Existing system does not have any facility to generate student reports as
well book issue reports whereas proposed system provides librarian with
a tool to generate reports.
vi. Existing system does not has any facility for book request and
sugeestions where as in proposed system after logging in to their
accounts student can request books as well as provide suggestions to
improve library.
10
2.3 SOFTWARE TOOLS USED
The whole Project is divided in two parts the front end and the back end.
The front end is designed using of html , Php ,css, Java script
HTML - HTML or Hyper Text Markup Language is the main markup
language for creating web pages and other information that can be
displayed in a web browser.HTML is written in the form of HTML elements
consisting of tags enclosed in angle brackets (like <html>), within the web
page content. HTML tags most commonly come in pairs like <h1> and
</h1>, although some tags represent empty elements and so are
unpaired, for example <img>. The first tag in a pair is the start tag, and the
second tag is the end tag (they are also called opening tags and closing
tags). In between these tags web designers can add text, further tags,
comments and other types of text-based content. The purpose of a web
browser is to read HTML documents and compose them into visible or
audible web pages. The browser does not display the HTML tags, but uses
the tags to interpret the content of the page.HTML elements form the
building blocks of all websites. HTML allows images and objects to be
embedded and can be used to create interactive forms. It provides a
means to create structured documents by denoting structural semantics for
text such as headings, paragraphs, lists, links, quotes and other items. It
can embed scripts written in languages such as JavaScript which affect the
behavior of HTML web pages.
CSS- Cascading Style Sheets (CSS) is a style sheet language used for
describing the look and formatting of a document written in a markup
language. While most often used to style web pages and interfaces written
in HTML and XHTML, the language can be applied to any kind of XML
document, including plain XML, SVG and XUL. CSS is a cornerstone
specification of the web and almost all web pages use CSS style sheets to
describe their presentation.CSS is designed primarily to enable the
separation of document content from document presentation, including
elements such as the layout, colors, and fonts. This separation can improve
content accessibility, provide more flexibility and control in the specification
of presentation characteristics, enable multiple pages to share formatting,
and reduce complexity and repetition in the structural content (such as by
allowing for table less web design).CSS can also allow the same markup
page to be presented in different styles for different rendering methods,
such as on-screen, in print, by voice (when read out by a speech-based
browser or screen reader) and on Braille-based, tactile devices. It can also
be used to allow the web page to display differently depending on the
screen size or device on which it is being viewed. While the author of a
document typically links that document to a CSS file, readers can use a
different style sheet, perhaps one on their own computer, to override the
one the author has specified. However if the author or the reader did not
link the document to a specific style sheet the default style of the browser
will be applied.CSS specifies a priority scheme to determine which style
rules apply if more than one rule matches against a particular element. In
this so-called cascade, priorities or weights are calculated and assigned to
rules, so that the results are predictable.
12
PHP- PHP is a server-side scripting language designed for web
development but also used as a general-purpose programming language.
PHP is now installed on more than 244 million websites and 2.1 million web
servers. Originally created by Rasmus Lerdorf in 1995, the reference
implementation of PHP is now produced by The PHP Group. While PHP
originally stood for Personal Home Page, it now stands for PHP: Hypertext
Preprocessor, a recursive backronym.PHP code is interpreted by a web
server with a PHP processor module, which generates the resulting web
page: PHP commands can be embedded directly into an HTML source
document rather than calling an external file to process data. It has also
evolved to include a command-line interface capability and can be used in
standalone graphical applications. PHP is free software released under the
PHP License. PHP can be deployed on most web servers and also as a
standalone shell on almost every operating system and platform, free of
charge.
2.3.2 BACK END- The back end is designed using mysql which is used to
design the databases
MYSQL- MySQL ("My S-Q-L", officially, but also called "My Sequel")
is (as of July 2013) the world's second most widely used open-source
relational database management system (RDBMS). It is named after co-
founder Michael Widenius daughter, My. The SQL phrase stands for
Structured Query Language. The MySQL development project has made
its source code available under the terms of the GNU General Public
License, as well as under a variety of proprietary agreements. MySQL was
owned and sponsored by a single for-profit firm, the Swedish company
MySQL AB, now owned by Oracle Corporation .MySQL is a popular choice
of database for use in web applications, and is a central component of the
widely used LAMP open source web application software stack (and other
'AMP' stacks). LAMP is an acronym for "Linux, Apache, MySQL,
Perl/PHP/Python." Free-software-open source projects that require a full-
featured database management system often use MySQL. For commercial
use, several paid editions are available, and offer additional functionality.
Applications which use MySQL databases include: TYPO3, MODx, Joomla,
WordPress, phpBB, MyBB, Drupal and other software. MySQL is also used
in many high-profile, large-scale websites, including Wikipedia, Google
(though not for searches), Facebook, Twitter, Flickr, and YouTube
SYSTEM DESIGN
BOOKS TABLE
FIELD DATATYPE DEFAULT KEY EXTRA
ID Int(10) NONE PRIMARY Auto_Increment
ISBN_NO Varchar(100) NO
BOOK_TITLE Varchar(200) NO
BOOK_TYPE Int(10) NO
AUTHOR_NAME Varchar(100) NO
QUANTITY Int(11) NO
PURCHASE_DA Date NO
TE
EDITION Varchar(40) NO
PRICE Decimal(10.2) 0.00
PAGES Int(11) NO
PUBLISHER Varchar(140) NO
14
BOOK ISSUE
MAGAZINES
FIELD DATATYPE DEFAULT KEY EXTRA
ID Int(10) NONE PRIMARY Auto_Increment
TYPE Varchar(40) NULL
NAME Varchar(100) NULL
DATE_OF_RECEI Date NULL
PT
DATE_PUBLISHE Date NULL
D
PAGES Int(11) NULL
PRICE Decimal(10.2) 0.00
PUBLISHER Varchar(140) NULL
MEMBERSHIP GROUPPERMISSION
FIELD DATATYPE DEFAULT KEY EXTRA
PERMISSION_I Int(10) NONE PRIMARY Auto_Increment
D
GROUP_ID Int(11) NULL
TABLE_NAME Varchar(100) NULL
ALLOWINSERT Tinyint(4) NULL
ALLOWVIEW Tinyint(4) 0
ALLOWEDIT Tinyint(4) 0
ALLOWDELETE Tinyint(4) 0
MEMBERSHIP GROUPS
FIELD DATATYPE DEFAULT KEY EXTRA
GROUP_ID Int(10) NONE PRIMARY Auto_Increment
NAME Varchar(20) NULL
DESCRIPTION Text NULL
ALLOWSIGNUP Tinyint(4) NULL
NEEDSAPPROV Tinyint(4) NULL
AL
TYPES
FIELD DATATYPE DEFAULT KEY EXTRA
ID Int(10) NONE PRIMARY Auto_Increment
NAME Varchar(40) NULL
16
MEMBERSHIP_USERRECORDS
FIELD DATATYPE DEFAULT KEY EXTRA
RECID Bigint(20) NONE PRIMARY Auto_Increment
TABLENAME Varchar(100) NULL
PKVALUE Varchar(255) NULL
MEMBERID Varchar(20) NULL
DATEADDED Bigint(20) NULL
DATEUPDATED Bigint(20) NULL
GROUPID Int(11) NULL
MEMBERSHIP_USERPERMISSION
FIELD DATATYPE DEFAULT KEY EXTRA
PERMISSIONID Int(10) NONE PRIMARY Auto_Increment
MEMBERID Varchar(20) NONE
TABLENAME Varchar(100) NULL
ALLOWINSERT Tinyint(4) NULL
ALLOEVIEW Tinyint(4) 0
ALLOWEDIT Tinyint(4) 0
ALLOWDELETE Tinyint(4) 0
NEWSPAPERS
FIELD DATATYPE DEFAULT KEY EXTRA
ID Int(10) NONE PRIMARY Auto_Increment
LANGUAGE Varchar(100) NULL
NAME Varchar(100) NULL
DATE_OF_RECEI Date NULL
PT
DATE_PUBLISHE Date NULL
D
PAGES Int(11) NULL
PRICE Decimal(10.2) 0
TYPE Varchar(40) NULL
PUBLISHER Varchar(100) NULL
17
RETURN_BOOK
FIELD DATATYPE DEFAULT KEY EXTRA
ID Int(10) NULL PRIMARY Auto_Increment
BOOK_NO Int(10) NULL
BOOK_TITLE Int(10) NULL
ISSUE_DATE Date NULL
DUE_DATE Int(10) 1
RETURN_DAT Date NULL
E
MEMBER Int(10) NULL
NUMBER Int(10) NULL
FINE Decimal(10.2) 0.00
STATUS Varchar(40) NULL
MEMBERSHIP_USERS
FIELD DATATYPE DEFAULT KEY EXTRA
MEMBERID Varchar(20) NONE
PASSMD5 Varchar(40) NULL
EMAIL Varchar(100) NULL
SIGNUP Date NULL
GROUPID Int(10) NULL
ISBANNED Tinyint(4) NULL
ISAPPROVED Tinyint(4) NULL
CUSTOM1 Text NULL
CUSTOM2 Text NULL
CUSTOM3 Text NULL
CUSTOM4 Text NULL
COMMENTS Text NULL
PASS_RESET_KEY Text NULL
PASS_RESET_EXPI Int(10) NULL
RY
18
3.2 DATA FLOW DIAGRAMS
19
SYSTEM IMPLEMENTATION
1. Screenshots
23
Screenshot of SignUp/Login Page
Home.php
<?php if(!isset($Translation)){ @header('Location: index.php'); exit; } ?>
<?php
/*
---------------------------------
For possible classes, refer to the Bootstrap grid columns, panels and buttons
documentation:
Panels: http://getbootstrap.com/components/#panels
Buttons: http://getbootstrap.com/css/#buttons
*/
$block_classes = array(
); ?>
<style>
.panel-body-description{
margin-top: 10px;
height: 100px;
overflow: auto;
margin: 0 10px;
max-height: 32px;
</style>
<?php
/* accessible tables */
$arrTables = get_tables_info();
$groups = get_table_groups();
$tg = array();
if(count($groups)){
$tg[$tn] = $grp;
}}
$i = 0; $current_group = '';
$tc = $arrTables[$tn];
$tChkHL = array_search($tn,
array('books','NewsPapers','Magazines','Users','Book_Issue','Return_Book','Types'));
$count_badge = '';
if($tc['homepageShowCount']){
$sql_from = get_sql_from($tn);
$t_perm = getTablePermissions($tn);
$can_insert = $t_perm['insert'];
$searchFirst = (($tChkFF !== false && $tChkFF !== null) ? '?Filter_x=1' : '');
?>
<?php } ?>
<?php
echo
get_home_links($homeLinks, $block_classes['other'], $current_group);
?>
</div>
<?php } ?>
<?php } ?>
<div class="panel-body">
<div class="btn-
group" style="width: 100%;">
<a style="width:
85%;" class="btn btn-lg <?php echo (!$i ? $block_classes['first']['link'] : $block_classes['other']
['link']); ?>" title="<?php echo preg_replace("/&(#[0-9]+|[a-z]+);/i", "&$1;",
html_attr(strip_tags($tc['Description']))); ?>" href="<?php echo $tn; ?>_view.php<?php echo
$searchFirst; ?>"><?php echo ($tc['tableIcon'] ? '<img src="' . $tc['tableIcon'] . '">' : '');?
><strong><?php echo $tc['Caption']; ?></strong><?php echo $count_badge; ?></a>
</div>
<?php } ?>
<div class="panel-body-
description"><?php echo $tc['Description']; ?></div>
</div>
</div>
</div>
<?php } ?>
<?php
/* custom home links, as defined in
"hooks/links-home.php" */
echo get_home_links($homeLinks,
$block_classes['other'], '*');
?>
</div>
<?php } ?>
<?php
echo
get_home_links($homeLinks, $block_classes['other'], $tgroup);
echo
get_home_links($homeLinks, $block_classes['other']);
?>
</div>
<?php
$i++;
}else{
?><script>window.location='index.php?signIn=1';</script><?php
?>
<script>
$j(function(){
$j('div[id$="-tile"] .panel-body-description').each(function(){
});
if(!table_descriptions_exist){
$j('.panel-body .btn').height(32);
$j('.btn-add-new').click(function(){
url: tn + '_view.php?addNew_x=1&Embedded=1',
size: 'full',
});
return false;
});
$j('.collapser').click(function(){
$j(this).children('.glyphicon').toggleClass('glyphicon-chevron-right
glyphicon-chevron-down');
});
$j('.collapser').each(function(){
});
$j('.collapser:visible').eq(0).click();
});
</script>
<?php } ?>
<div class="row">
</div>
<div class="panel-heading">
<?php } ?>
<div class="clearfix"></div>
</div>
<div class="panel-body">
<div class="form-group">
</div>
<div class="form-group">
</div>
<div class="checkbox">
</label>
</div>
<div class="row">
</div>
</div> </form>
</div>
<?php if(is_array(getTableList()) && count(getTableList())){ /* if anon. users can see any tables ... */ ?>
<div class="panel-footer">
</div>
<?php } ?>
</div></div>
</div>
<script>document.getElementById('username').focus();</script>
Main.php
<?php if(!isset($Translation)){ @header('Location:index.php'); exit; } ?>
<!DOCTYPE html>
<html>
<head>
<title>Dashboard</title>
<!--[if gt IE 8]><!-->
<!--<![endif]-->
<!--[if lt IE 9]>
<![endif]-->
<script>var $j = jQuery.noConflict();</script>
<?php } ?>
</head>
<!--widgets here-->
<div class="row">
<div class="inner">
<h3><?php include_once('books_count.php');?></h3>
<p>Books</p>
</div>
<div class="icon">
</div>
</div>
</div>
<div class="inner">
<h3><?php include_once('members_count.php');?></h3>
<p>Members</p>
</div>
<div class="icon">
</div>
</div>
<div class="inner">
<h3><?php include_once('newspapers_count.php');?></h3>
<p>NewsPapers</p>
</div>
<div class="icon">
</div>
</div>
</div>
<div class="inner">
<h3><?php include_once('magazines_count.php');?></h3>
<p>Magazines</p>
</div>
<div class="icon">
</div>
</div>
</div>
</div><!--/first set-->
<!--second set-->
<div class="row">
<div class="info-box">
<div class="info-box-content">
<span class="info-box-text">Issued</span>
</div>
</div>
</div>
<div class="info-box-content">
<span class="info-box-text">Returned</span>
</div>
</div>
</div>
<div class="info-box">
<div class="info-box-content">
</div>
</div>
</div>
<div class="info-box">
<div class="info-box-content">
</div>
</div>
</div>
</div><!--/second set-->
</div>
</div>
</body>
</html>
Membership_Signup.php
<?php
$app_name = 'SAIDE';
$currDir = dirname(__FILE__);
include("{$currDir}/defaultLang.php");
include("{$currDir}/language.php");
include("{$currDir}/lib.php");
include_once("{$currDir}/header.php");
$adminConfig = config('adminConfig');
$noSignup = true;
exit;
if($_POST['signUp'] != ''){
// receive data
$memberID = is_allowed_username($_POST['newUsername']);
$email = isEmail($_POST['email']);
$password = $_POST['password'];
$confirmPassword = $_POST['confirmPassword'];
$groupID = intval($_POST['groupID']);
$custom1 = makeSafe($_POST['custom1']);
$custom2 = makeSafe($_POST['custom2']);
$custom3 = makeSafe($_POST['custom3']);
$custom4 = makeSafe($_POST['custom4']);
// validate data
if(!$memberID){
exit;
exit;
if($password != $confirmPassword){
exit;
if(!$email){
exit;
exit;
$message = nl2br(
"Custom fields:\n" .
);
sendmail(array(
));
));
// hook: member_activity
if(function_exists('member_activity')){
$args = array();
redirect("membership_thankyou.php$redirect");
exit;
?>
<div class="row">
</div>
<div class="panel-heading">
</div>
<div class="panel-body">
<div class="form-group">
<div class="clearfix"></div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label for="password"
class="control-label"><?php echo $Translation['password']; ?></label>
<input class="form-control"
type="password" required="" placeholder="<?php echo $Translation['password']; ?>" id="password"
name="password">
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label for="confirmPassword"
class="control-label"><?php echo $Translation['confirm password']; ?></label>
<input class="form-control"
type="password" required="" placeholder="<?php echo $Translation['confirm password']; ?>"
id="confirmPassword" name="confirmPassword">
</div>
</div>
</div>
<div class="form-group">
</div>
<div class="form-group">
</div>
<?php
if(!
$adminConfig['hide_custom_user_fields_during_signup']){
if($adminConfig['custom'.$cf] !=
''){
?>
<div class="col-sm-
3"><label class="control-label" for="custom<?php echo $cf; ?>"><?php echo $adminConfig['custom'.
$cf]; ?></label></div>
<div class="col-sm-
9"><input class="form-control" type="text" placeholder="<?php echo $adminConfig['custom'.$cf]; ?>"
id="custom<?php echo $cf; ?>" name="custom<?php echo $cf; ?>"></div>
</div>
<?php
?>
<div class="row">
</div>
</div>
</form>
<script>
$j(function() {
$j('#username').focus();
$j('#usernameAvailable, #usernameNotAvailable').click(function()
{ $j('#username').focus(); });
if(ps == 'strong'){
$j('#password').parents('.form-group').removeClass('has-error
has-warning').addClass('has-success');
$j('#password').parents('.form-group').removeClass('has-
success has-error').addClass('has-warning');
}else{
$j('#password').parents('.form-group').removeClass('has-
success has-warning').addClass('has-error');
}
});
if($j('#confirmPassword').val() != $j('#password').val() || !
$j('#confirmPassword').val().length){
$j('#confirmPassword').parents('.form-
group').removeClass('has-success').addClass('has-error');
}else{
$j('#confirmPassword').parents('.form-
group').removeClass('has-error').addClass('has-success');
});
$j('#email').on('change', function(){
if(validateEmail($j('#email').val())){
$j('#email').parents('.form-group').removeClass('has-
error').addClass('has-success');
}else{
$j('#email').parents('.form-group').removeClass('has-
success').addClass('has-error');
});
});
function checkUser(){
// abort previous request, if any
reset_username_status();
uaro = $j.ajax({
url: 'checkMemberID.php',
type: 'GET',
success: function(resp){
var ua=resp;
reset_username_status('success');
}else{
reset_username_status('error');
});
function reset_username_status(status){
$j('#usernameNotAvailable, #usernameAvailable')
.addClass('hidden')
.parents('.form-group')
.removeClass('has-error has-success');
if(status == 'success'){
$j('#usernameAvailable')
.removeClass('hidden')
.parents('.form-group')
.addClass('has-success');
if(status == 'error'){
$j('#usernameNotAvailable')
.removeClass('hidden')
.parents('.form-group')
.addClass('has-error');
function jsValidateSignup(){
var p1 = $j('#password').val();
var p2 = $j('#confirmPassword').val();
/* user exists? */
if(!$j('#username').parents('.form-group').hasClass('has-success')){
return false;
if(p1 != p2){
modal_window({ message: '<div class="alert alert-danger"><?php echo
html_attr($Translation['password no match']); ?></div>', title: "<?php echo
html_attr($Translation['error:']); ?>", close: function(){ $j('#confirmPassword').focus(); } });
return false;
if(!validateEmail(email)){
return false;
return true;
</script>
<style>
</style>
<?php } ?>
$currDir=dirname(__FILE__);
include("$currDir/defaultLang.php");
include("$currDir/language.php");
include("$currDir/lib.php");
@include("$currDir/hooks/Users.php");
include("$currDir/Users_dml.php");
$perm=getTablePermissions('Users');
if(!$perm[0]){
exit;
$x = new DataList;
$x->TableName = "Users";
$x->QueryFieldsTV = array(
);
$x->SortFields = array(
1 => '`Users`.`id`',
2 => 2,
3 => 3,
4 => 4,
5 => '`Users`.`ID_Number`'
);
$x->QueryFieldsCSV = array(
);
$x->QueryFieldsFilters = array(
$x->QueryFieldsQS = array(
);
$x->filterers = array();
$x->QueryWhere = '';
$x->QueryOrder = '';
$x->AllowSelection = 1;
$x->AllowDelete = $perm[4];
$x->AllowMassDelete = true;
$x->AllowInsert = $perm[1];
$x->AllowUpdate = $perm[3];
$x->SeparateDV = 1;
$x->AllowDeleteOfParents = 0;
$x->AllowFilters = 1;
$x->AllowSavingFilters = 1;
$x->AllowSorting = 1;
$x->AllowNavigation = 1;
$x->AllowPrinting = 1;
$x->AllowCSV = 1;
$x->RecordsPerPage = 10;
$x->QuickSearch = 1;
$x->ScriptFileName = "Users_view.php";
$x->RedirectAfterInsert = "Users_view.php?SelectedID=#ID#";
$x->TableTitle = "Users";
$x->TableIcon = "resources/table_icons/group.png";
$x->PrimaryKey = "`Users`.`id`";
$x->Template = 'templates/Users_templateTV.html';
$x->SelectedTemplate = 'templates/Users_templateTVS.html';
$x->TemplateDV = 'templates/Users_templateDV.html';
$x->TemplateDVP = 'templates/Users_templateDVP.html';
$x->ShowTableHeader = 1;
$x->ShowRecordSlots = 0;
$x->TVClasses = "";
$x->DVClasses = "";
$x->HighlightColor = '#FFF0C2';
// mm: build the query based on current member's permissions
$DisplayRecords = $_REQUEST['DisplayRecords'];
$x->QueryFrom.=', membership_userrecords';
$x->QueryFrom.=', membership_userrecords';
// no further action
$x->QueryFrom = '`Users`';
$x->QueryWhere = '';
$x->DefaultSortField = '';
// hook: Users_init
$render=TRUE;
if(function_exists('Users_init')){
$args=array();
if($render) $x->Render();
// hook: Users_header
$headerCode='';
if(function_exists('Users_header')){
$args=array();
if(!$headerCode){
include_once("$currDir/header.php");
}else{
echo $x->HTML;
// hook: Users_footer
$footerCode='';
if(function_exists('Users_footer')){
$args=array();
if(!$footerCode){
include_once("$currDir/footer.php");
}else{
ob_start(); include_once("$currDir/footer.php"); $dFooter=ob_get_contents();
ob_end_clean();
?>
Index.php
<?php
$currDir = dirname(__FILE__);
include("{$currDir}/defaultLang.php");
include("{$currDir}/language.php");
include("{$currDir}/lib.php");
$x = new DataList;
$x->TableTitle = $Translation['homepage'];
$tablesPerRow = 2;
$arrTables = getTableList();
// according to provided GET parameters, either log out, show login form (possibly with a failed
login message), or show homepage
if(isset($_GET['signOut'])){
logOutUser();
redirect("index.php?signIn=1");
}elseif(isset($_GET['loginFailed']) || isset($_GET['signIn'])){
include("{$currDir}/login.php");
}else{
include("{$currDir}/main.php"); }
5. System Testing
The aim of the system testing process was to determine all defects in our project
.The
program was subjected to a set of test inputs and various observations were made
and based
on these observations it will be decided whether the program behaves as expected
or not. Our
Project went through two levels of testing
1.Unit testing
2.integration testing
UNIT TESTING
Unit testing is undertaken when a module has been created and succesfully
reviewed .In order
to test a single module we need to provide a complete environment ie besides the
module we
would require
The procedures belonging to other modules that the module under test calls
Non local data structures that module accesses
A procedure to call the functions of the module under test with appropriate
parameters
Unit testing was done on each and every module that is described under module
description of chapter 4.
Test for teacher login form- This form is used for logg in of teacher .In this we
enter the
username and password if all these are correct teacher login page will open other
wise if any of
data is wrong it will get redirected back to the login page and again ask for
username and
password.
INTEGRATION TESTING
In this type of testing we test various integration of the project module by
providing the input
.The primary objective is to test the module interfaces in order to ensure that no
errors are occurring when one module invokes the other module.
66
6. CONCLUSION & FUTURE SCOPE
It makes entire process online where student can search books, staff can generate
reports and do book transactions. It also has a facility for student login where
student can login and can see status of books issued as well request for book or
give some suggestions. It has a facility of teacher’s login where teachers can add
lectures notes and also give necessary suggestion to library and also add info about
workshops or events happening in our college or nearby college in the online
notice board.
There is a future scope of this facility that many more features such as online
lectures video tutorials can be added by teachers as well as online assignments
submission facility , a feature Of group chat where students can discuss various
issues of engineering can be added to this project thus making it more interactive
more user friendly and project which fulfills each users need in the best way
possible.
REFERENCES
http://www.w3schools.com/html/html_intro.asp
http://www.Udemy.com/css/css_background.asp
http://www.w3schools.com/js/js_datatypes.asp
67