You are on page 1of 97

i

DEVELOPMENT OF A MULTI-PLATFORM ONLINE LIBRARY


MANAGEMENT SYSTEM
(CASE STUDY: BELLS UNIVERSITY OF TECHNOLOGY LIBRARY)
BY
OKEY IKECHUKWU OGBONNAYA
2010/1282

SUBMITTED TO THE DEPARTMENT OF COMPUTER SCIENCE
AND
COLLEGE OF INFORMATION AND COMMUNICATION
TECHNOLOGY,
BELLS UNIVERSITY OF TECHNOLOGY, OTA, OGUN STATE.



IN PARTIAL FULFILMENT OF THE REQUIREMENT FOR THE AWARD
OF THE DEGREE OF BACHELOR OF TECHNOLOGY (B.TECH) IN
COMPUTER SCIENCE






JUNE, 2014.

ii

CERTIFICATION

This is to certify that this project was clearly implemented and documented by OKEY
IKECHUKWU OGBONNAYA of the MATRIC NUMBER 2010/1282, and submitted to the
COMPUTER SCIENCE DEPARTMENT OF INFORMATION AND COMMUNICATION
TECHNOLOGY, BELLS UNIVERSITY OF TECHNOLOGY, OTA, OGUN STATE for the award of a
degree.


Engineer Ezike
Supervisor Signature and Date



Professor E.R. Adagunodo
Head of Department Signature and Date


iii

DEDICATION

I will like to dedicate this project to God Almighty for seeing me through my stay in the university and
my parents, Engr. C. O. Okey and Mrs. J. O. Okey who gave me the opportunity of becoming a scholar.
I will also like to thank my wonderful siblings Ihuoma and Emmanuel who always show me great
support and love throughout my stay in the university.

iv

ACKNOWLEDGEMENT

All thanks to the Almighty God for his infinite mercy, wisdom, strength and guidance throughout the
course of my academic career.
My profound gratitude to my parents Engr. C. O. Okey and Mrs. J. O. Okey, who have prayed and
cared for me in love right from my birth, May the Almighty God continue to bless you and grant your
heart desires in Jesus Name Amen. For his guidance and immense support, I will like to thank my
supervisor, Engineer Ezike who guided me on the way and manner of carrying out my project plus
encouraged me to struggle and overcome challenges during the course of my project.
For their support, I want to thank the Bells University Library Staffs for supporting me during the
process of development of this project.
I will also like to use the opportunity to show gratitude to the entire COLICT staff for their profound
lectures and guidance they bestowed on me during my stay at the university.
Finally, I want to thank Mr. Augustine Okere [former staff of Fleet Technologies Limited] for his
patience and guidance may God continue to bless you.

v

ABSTRACT

The main aim of this project is to help solve the current problem of the readers service department,
collection and development department, technical department and the e-library. The current
readers desk management system automates the basic operations carried out in that department
but still has some limitations and prone to errors that can be caused by the network or the readers
desk.
The online library management system can be seen as a modern innovation that is expected to help
in the registration of users such as the students and teaching staff of the institution, registration and
the classification of books, extracting and storing the details of e-books, generating reports, accurate
calculation of fines, sending mails to registered users of the system to inform them of the new
collections and remind them to return borrowed materials. This system can perform two automated
tasks with the help of two windows services.
The windows service is a light-weight background program that provides core operating system
functions such as web services, error or report logging etc. In this project, the purpose of the windows
service is to provide web services for automatically adding defaulters to the defaulters list and
deleting user reservations. The main advantage of using a windows service is that the system can still
carry out its automated functions even when the application is not running.

vi

TABLE OF CONTENTS

TITLE ....................................................................................................................................................................... i
CERTIFICATION ...................................................................................................................................................... ii
DEDICATION ......................................................................................................................................................... iii
ACKNOWLEDGEMENT .......................................................................................................................................... iv
ABSTRACT .............................................................................................................................................................. v
LIST OF FIGURES ................................................................................................................................................. viii
CHAPTER ONE ........................................................................................................................................................1
INTRODUCTION .................................................................................................................................................1
1.0 Library Overview ...............................................................................................................................1
1.1 Purpose of a Library ..........................................................................................................................1
1.2 Evolution of Libraries .........................................................................................................................1
1.3 Problem Statement ...........................................................................................................................3
1.4 Motivation .........................................................................................................................................4
1.5 Aim and Objectives ............................................................................................................................5
1.5.1 Objectives ......................................................................................................................................5
1.6 Methodology .....................................................................................................................................5
1.7 Justification of Research ....................................................................................................................6
1.8 Scope of Research .............................................................................................................................7
1.9 Contribution to Knowledge ...............................................................................................................7
CHAPTER TWO .......................................................................................................................................................8
LITERATURE REVIEW .........................................................................................................................................8
2.0 Library ................................................................................................................................................8
2.1 Library Management .........................................................................................................................8
2.2 Library Catalog ...................................................................................................................................9
2.3 Online Public Access Catalog [OPAC] ................................................................................................9
2.4 Library Management System (LMS) ............................................................................................... 10
2.5 Related Works ................................................................................................................................ 11
CHAPTER THREE ................................................................................................................................................. 26
SYSTEM DESIGN .............................................................................................................................................. 26
3.0 System Design ................................................................................................................................ 26
3.1 Purpose of System Design .............................................................................................................. 26
3.2 Goal of Proposed System ............................................................................................................... 26
3.3 Phases of Proposed System ............................................................................................................ 27
vii

3.4 System Architecture of Proposed Multiplatform Online Library Management System ................ 28
3.5 Four-Tier System Architecture of Proposed System ...................................................................... 31
CHAPTER FOUR ................................................................................................................................................... 47
SYSTEM IMPLEMENTATION............................................................................................................................ 47
4.0 System Implementation ................................................................................................................. 47
4.1 The Home Page .......................................................................................................................... 47
4.2 Login Page .................................................................................................................................. 48
4.3 Library Administrator ................................................................................................................. 49
4.4 Circulation Desk Staff ................................................................................................................. 56
4.5 Acquisition Staff ......................................................................................................................... 62
4.6 Library Users ............................................................................................................................... 64
4.7 Classification Staff ...................................................................................................................... 66
4.8 E-Library Administrator .............................................................................................................. 67
CHAPTER FIVE ..................................................................................................................................................... 68
CONCLUSION AND RECOMMENDATION ........................................................................................................ 68
5.1 Conclusion ...................................................................................................................................... 68
5.2 Recommendation ........................................................................................................................... 69
References .......................................................................................................................................................... 70
APPENDIX 1: SOURCE CODE ..................................................................................................................................1
APPENDIX 2: TRANSACT-SQL STATEMENTS ....................................................................................................... 15



viii

LIST OF FIGURES
Figure 3.1 - Four-Tier System Architecture Of Proposed System [Adapted From N. Sivakumar, 2009.] ........... 30
Figure 3.2 - ER-Diagram for the Proposed Library Management System .......................................................... 32
Figure 3.3 Use Case Diagram for the Proposed Library Management System . 33
Figure 3.4 - Sequence Diagram for User Login ................................................................................................... 34
Figure 3.5 - Sequence Diagram for User Registration ........................................................................................ 35
Figure 3.6 - Sequence Diagram for Book Registration ....................................................................................... 36
Figure 3.7 - Sequence Diagram for Book Check-In And Check-Out ................................................................... 37
Figure 3.8 - Sequence Diagram for Searching .................................................................................................... 38
Figure 3.9 - Login Activity Diagram [STUDENT AND STAFF] ............................................................................... 39
Figure 3.10 - Login Activity Diagram [CIRCULATION DESK STAFF] ..................................................................... 40
Figure 3.11 - Login Activity Diagram [COLLECTION AND DEVELOPMENT STAFF] .............................................. 41
Figure 3.12 - Book Registration Activity Diagram .............................................................................................. 42
Figure 3.13 - Registration Activity Diagram ........................................................................................................ 43
Figure 3.14 - Search Activity Diagram ................................................................................................................ 44
Figure 3.15 - Class Diagram ................................................................................................................................ 45
Figure 3.16 Database Diagram ........................................................................................................................ 46
Figure 4.1 Home Page ..................................................................................................................................... 47
Figure 4.2 Login Page....................................................................................................................................... 48
Figure 4.3 User Management [STUDENT REGISTRATION] .............................................................................. 49
Figure 4.4 User Management [TEACHING STAFF REGISTRATION] .................................................................. 50
Figure 4.5 User Management [LIBRARY STAFF REGISTRATION] ..................................................................... 50
Figure 4.6 User Management [LIST OF EXISTING MEMBERS] ......................................................................... 51
Figure 4.7 User Management [UPDATING EXISTING USER DETAILS] .............................................................. 51
Figure 4.8 Book Management [BOOK REGISTRATION] ................................................................................... 52
Figure 4.9a Book Management [VIEW LIBRARY STOCK] ................................................................................. 52
Figure 4.9b Book Management [VIEW LIBRARY STOCK] ................................................................................. 53
Figure 4.10 Transaction Log ............................................................................................................................ 53
Figure 4.11a Fine Records ............................................................................................................................... 54
Figure 4.11b Fine Records [STUDENT FINE RECORDS] .................................................................................... 54
Figure 4.11c Fine Records [STAFF FINE RECORDS] .......................................................................................... 55
Figure 4.12a Classmark Books ......................................................................................................................... 55
Figure 4.12b Classmark Books ......................................................................................................................... 56
Figure 4.13 Student Registration ..................................................................................................................... 57
Figure 4.14 Teaching Staff Registration........................................................................................................... 57
Figure 4.15a Book Transaction ........................................................................................................................ 58
Figure 4.15b Book Transaction [ISSUE BOOK] ................................................................................................. 58
Figure 4.15c Book Transaction [FINE PAYMENT] ............................................................................................ 59
Figure 4.16a Fine Records ............................................................................................................................... 59
Figure 4.16b Fine Records [STUDENT FINE RECORDS] .................................................................................... 60
Figure 4.16c Fine Records [STAFF FINE RECORDS] .......................................................................................... 60
Figure 4.17 Reservations ................................................................................................................................. 61
Figure 4.18 Reminder ...................................................................................................................................... 61
Figure 4.19 Book Registration ......................................................................................................................... 62
Figure 4.20 View Stock .................................................................................................................................... 63
ix

Figure 4.21 Notification ................................................................................................................................... 63
Figure 4.22a Library Search ............................................................................................................................. 64
Figure 4.22b Library Search [BOOK DETAILS] .................................................................................................. 65
Figure 4.23a Library Page ................................................................................................................................ 65
Figure 4.23b Library Collection ........................................................................................................................ 66
Figure 4.24 Classmark Books ........................................................................................................................... 66
Figure 4.25a E-Book Registration .................................................................................................................... 67
Figure 4.25b E-Book Registration .................................................................................................................... 67

1

CHAPTER ONE
INTRODUCTION

1.0 Library Overview
A library can be defined as an organized collection of books and periodicals that are made
accessible to the public or members of an institution. It can also be seen as a building containing
collections of information resources that can be easily accessed by the public for reference or
borrowing. [Wikipedia, 2013], [Oxford Dictionaries, 2013]
1.1 Purpose of a Library
Below are the itemized list of library purposes:
1. In the academic sector, libraries provide information and support for members of an
institution or school in their pursuit of academic excellence. [Buena Vista University, 2013]
2. To meet up with the information needs of the public by providing materials or referral.
[Chelmsford Public Library, 2013]
3. Encourages the use of library materials and services for recreation. [Chelmsford Public
Library, 2013]
4. Libraries facilitate informal self-education of all people in the community. [Chelmsford
Public Library, 2013]
1.2 Evolution of Libraries
In an ancient kingdom located at the Southern Mesopotamia; Babylonia, the libraries there were
a collection of clay tablets. In 330 B.C. the first public library in Greece contained preserved works
of great dramatists. Out of these above mentioned libraries, the most famous libraries of
antiquity were those of Alexandria, founded by Ptolemy I, which contained some 700,000 Greek
scrolls. [Infoplease. The Columbia Electronic Encyclopedia, 2013]
Libraries from Greece, Asian Minor and Syria were the first Roman libraries as a result of the
conquest in the first and second century. Early Christian libraries were in the residence of a
religious community called monasteries. From the ninth to fifteenth century, Arabs collected fine
2

libraries also the Jews and the Byzantines collected fine libraries during the medieval period.
[Infoplease. The Columbia Electronic Encyclopedia, 2013]
In the year 1732, a circulatory library called the Library Company of Philadelphia in the United States
was chartered on the initiative of Benjamin Franklin. The first tax-supporting library was opened at
Philadelphia in the year 1833, then the American Library Association was later formed in the year
1876. Traveling libraries and book mobiles began to take books to people living in the rural areas
in the early twentieth century. [Infoplease. The Columbia Electronic Encyclopedia, 2013]
By the end of the twentieth century, many resources were made available to library patrons in
electronic formats which could be easily accessed directly from home or work due to digital
revolution. [Infoplease. The Columbia Electronic Encyclopedia, 2013]













3

1.3 Problem Statement
Through thorough investigation in the university library, it was discovered that the existing
computerized library system is not fully implemented or deployed because of poor network
infrastructure and network connectivity. As a result the library is operated manually by a group
of people in different department. The present e-library system does not have a database to
store the details of claimed e-books, neither does it have an emailing system for providing user
notification or information services. Claimed e-books are stored in different folders for each
college and their respective departments. This method of storage is primitive and inefficient to
carry out smooth operations such as fetching the details of an e-book, adding and deleting e-
books, updating the details of an e-book and downloading e-books.
In the Readers Service Department of the library section, student and staff registration processes
are done by providing the student or staff a registration form to fill in order to make him/her a
member of the university library. This form of library transaction can be made more effective by
computerizing the process.
Manual system is also employed in the process of issuing and discharging books in the library. In
the case of issuing books, the staff searches for students or staffs file among a huge pile of files,
then asks the student or staff for the number of copies left in the shelf for the book that is to be
issued. This system is time consuming and very unprofessional since a file system is employed in
storing library members data and secondly it is expected of the staff issuing a book to know the
number of copies left on the shelf for that particular book rather than asking the student or staff
the number of copies left in the shelf for a particular book. For effective and efficient operation,
library staff should have details of the books on shelf and off shelf at the click of a mouse button.
This implies computerizing the process.
In the Collection and Development Department books are registered by writing down the details
of each book such as the date the book was brought, accession number, author, title, publisher,
the year of publication, number of copies on both the accessions register [a document used in
maintaining the collection of books in the library] and bibliographic data worksheet [a data entry
worksheet that contains the necessary fields to enter the bibliographic data of each book] before
they are later registered into the system which uses Microsoft Excel worksheet. This form or
method of book registration is inefficient and a duplication of effort because the details of each
4

book are written down twice both on the accessions register and the bibliographic data
worksheet. Staffs from other departments take part in class marking the books brought to the
library due to the shortage of staffs in the Technical Department. From the library users point of
view the time taken to search for a book which may or may not be on the bookshelf or may not
be correctly ordered, is time consuming, thereby making the users frustrated and discouraged.
In the e-library section, the acquired e-books are classified into different categories using an
online catalogue. The e-books are later stored in different folders for each college and their
respective departments. For example e-books that are related to information technology are
stored in the COLICT [College of Information and Communication Technology] folder. This folder
contains two sub-folders, one for the Computer Science Department and the other for
Information Technology Department. Once the e-books are stored in their respective folders,
hyperlinks are generated manually for each e-book to enable users have access to them. This
method of transaction is time consuming, inefficient and primitive in a situation whereby 1500
e-books are acquired per session.
The reason for this research is to automate the manual processes carried out in the areas of
member registration, searching for existing member files, location of books in the library section,
registration of e-books, deleting e-books, updating details of existing e-books and providing easy
access for users in the e-library section. Failure to resolve the above stated problems in the
existing manual system may lead to a steady decrease of library usage and over-stretching of
existing staff. Thus leading to diminishing returns in library staff productivity.
1.4 Motivation
The loss of time and money engendered by the inefficient operations in most section of the
library, particularly in record keeping of both hard and soft copies of books, monitoring the stock
and performing daily book transactions such as issuing books, discharging books, reserving books
and downloading available e-books in both sections of the library motivated me in carrying out
this research.




5

1.5 Aim and Objectives
The aim of this project is to develop a multi-platform online library management system that can
both handle and manage the daily activities carried out in the library in an efficient and reliable
manner.
1.5.1 Objectives
The objectives of this project are listed below:
1. Develop a relational database to store book details (hard and soft), staff details and
student details.
2. Provision of a search functionality to enable users search for books efficiently and system
administrator search for users.
3. Provision of an e-book extraction functionality for extracting the details of the e-books in
pdf formats only.
4. Development of a user account management component to handle account related
matters for each user in different departments.
5. Designing a user-friendly interface for the users to enable them navigate through the
system on the web.
6. Emailing system/Mail services for user notification or information.

1.6 Methodology
In order to provide solution in achieving the above objectives, using Bells University library as a
case study, the following will be carried out:
1. Carried out a detailed literature review to better understand current issues in library
researches, studies, their operations and implementation using modern technology.
2. Thorough study of Bells university library will be carried out through continuous visits and
observations of the library environment.
3. Design an Online Library Management System that can be used in Bells University of
Technology Library. The process of designing this system is listed below:
6

a. Design the user interface with different views using UML. The UML diagrams
produced will include: Class Diagram, Sequential Diagram, Activity Diagram and E-R
Model.

b. Four-Tier architecture will be employed in the development of the application and
Singleton software design pattern will also be used.

c. Stored procedures and LINQ [Language Integrated Query] will be used for easy
database transactions
such as INSERT, DELETE, UPDATE and SELECT.

d. The application will be developed with a server-side programming language ASP.NET
in C#
4. Implementation of the design in 3 above will require the following tools:
a. Microsoft Visual Studio 2012.
b. ASP.NET in C# will be utilized in server-side programming.
c. Microsoft SQL Server Management Studio 2012 for the database.
d. A content management system like DotNetNuke to manage the contents of the web
application.
5. Implementation and unit testing will be carried out in the development cycle of the
application.
6. Proper documentation will be carried out.
7. Training of library staff on the software and hardware will be introduced.
1.7 Justification of Research
1. This study will help in providing better solutions in areas where the existing system is not
effective.
2. The proposed system will automate the daily activities carried out in both sections of the
library. The benefits of a content management system would automatically scale the
application to fit various devices such as tablets, smartphones and smaller browser
windows, enable quick and easy page management and provide web application manager
easy access to shared resources.



7

1.8 Scope of Research
This project is primarily focused on improving the daily activities carried out at Bells University of
Technology [BUT] library. This improvement includes: computerizing the registration process of
books both in hard copy and soft copy [e-book], students and staffs; providing email notifications
services to all members (staff and students) of the library and providing easy means of monitoring
the library stock, leading to a more reliable and smooth system of operation.

1.9 Contribution to Knowledge
A content management system will be employed in the development of the web application for
the purpose of page management, user account or profile management and automatic scaling of
application to fit various devices. The introduction of emailing system and efficient search engine
for both books and library members to both sections of the library will improve and smoothen
the processes done in those sections. Efficiency and effectiveness are met at certain standards.













8

CHAPTER TWO
LITERATURE REVIEW

2.0 Library
A library can be defined as a depository built to house a collection of books, literary documents,
or records for studying or borrowing. It can also be seen as a building containing collections of
information resources that can be easily accessed by the public for reference or borrowing.
[Oxford Dictionaries. Oxford University Press, 2013]
In [Grant-Ezeronye Grant, 2011], the library is divided into different housekeeping operations
which include:
1. Acquisition Control
2. Serials Control
3. Cataloging and Classification
4. Circulation Control
5. Web Cataloguing
6. Metadata Linking

2.1 Library Management
This is a sub-discipline of the institutional management that focuses on specific issues faced by
the librarians and library management professionals. It encompasses normal management tasks
as well as intellectual freedom, anti-censorship, and fundraising tasks. Issues faced in library
management frequently overlap those faced in management of non-profit organizations.
[Wikipedia. Wikimedia Foundation, 2013]
Below are the basic tasks in library management:
1. Planning the acquisition of materials [Wikipedia. Wikimedia Foundation, 2013]
9

2. Negotiating borrowing materials from other libraries [Wikipedia. Wikimedia Foundation,
2013]
3. Selection of library materials [Wikipedia. Wikimedia Foundation, 2013]
4. Stacks Maintenance [Wikipedia. Wikimedia Foundation, 2013]
5. Fee collection process [Wikipedia. Wikimedia Foundation, 2013]
6. Membership Management [Wikipedia. Wikimedia Foundation, 2013]
7. Responding to challenge [Wikipedia. Wikimedia Foundation, 2013]
8. Approving and designing events [Wikipedia. Wikimedia Foundation, 2013]
9. Fundraising [Wikipedia. Wikimedia Foundation, 2013]
The long-term issues addressed in library management are:
1. Planning the construction of new libraries [Wikipedia. Wikimedia Foundation, 2013]
2. Extensions to existing ones [Wikipedia. Wikimedia Foundation, 2013]
3. Building Maintenance [Wikipedia. Wikimedia Foundation, 2013]
4. Updating the information books and new version [Wikipedia. Wikimedia Foundation, 2013]

2.2 Library Catalog
This is a register of bibliographic items (e.g., books, computer files, graphics, realia, cartographic
materials, etc.) found in a library or group of libraries, such as a network of libraries at several
geographical locations. A bibliographic item can be seen as any information entity that is
considered library material or a group of library materials linked from the catalog as far as it is
relevant to the catalog and to the users (patrons) of the library. [Wikipedia. Wikimedia Foundation,
2013]
2.3 Online Public Access Catalog [OPAC]
This can be defined as an online database of materials held by a particular or group of libraries.
It can also be defines as a computerized system to catalog and organize library materials. An
OPAC is available to library patrons to search the catalog for bibliographic items (e.g., books,
computer files, graphics, regalia, cartographic materials, etc.). [Wikipedia. Wikimedia Foundation,
2013], [Dictionary.com. Dictionary.com, 2013.]
10

2.4 Library Management System (LMS)
This is a computer-based system that the functions carried out in the library such as acquisition,
cataloging, circulation, budget management and collection analysis. The heart of every library
management system is a relational database where all records or data related to the library and
users are stored. The number and names given to different subsystems [modules] in an LMS may
vary from one system to the other. Todays modern LMS offers the various combinations of these
modules: Requisition, Acquisition, Cataloguing, Circulation, Serials Control, Enquiry, OPAC
[Online Public Access Catalogue], Inter library loans, Self-service stations, Federated search,
Mobile Library and more. [Wikipedia. Wikimedia Foundation, 2013]
Throughout the years, computer-based systems have been referred to by different names which
are:
1. Automated Library System (ALS) [Wikipedia. Wikimedia Foundation, 2013]
2. Automated System [Wikipedia. Wikimedia Foundation, 2013]
3. Housekeeping System [Wikipedia. Wikimedia Foundation, 2013]
4. Integrated Library System [Wikipedia. Wikimedia Foundation, 2013]
5. Integrated Automated Library System [Wikipedia. Wikimedia Foundation, 2013]
6. Library and Information Management System (LIMS) [Wikipedia. Wikimedia Foundation,
2013]
7. Library Management System and more [Wikipedia. Wikimedia Foundation, 2013]






11

2.5 Related Works
[Neelakandan etal, 2010] implemented an automated library management system for the
University Department Library in the School of Chemistry Bharathidasan University. This work
was motivated by the inefficient and static [not dynamic or flexible] methods of carrying out the
daily activities in the library plus the great importance of applying modern techniques and
approaches for the efficient retrieval and dissemination of information and services for the
clientele.
The main objective of this study is to automate the Departmental Library of Chemistry by
implementing an automated system using Koha Library Integrated Open Source Software.
The methodology used in carrying out this research work involves integrating a free and open
source software with other third party applications such as: MySQL dump utility for MySQL
replication dumps, MySQL database etc. Monitoring the activities in the School of Chemistry
Library and taking stock of situations. Then performing physical examination of the books in order
to extract their bibliographic details which are later entered in an excel sheet.
The researchers successfully implemented the Koha Open Source Software but there were
limitations which occurred in the process of implementing the automated library management
system. These limitations include:
1. LACK OF INFRASTRUCTURAL FACILITY: This has to do with problems related to
infrastructure such as: Lack of Hardware; Lack of Software; Lack of Network Facilities and
Lack of Financial Resources.
2. LACK OF ENVIRONMENTAL SUPPORT: [Neelakandan etal, 2010] categorized this
problem into External and Internal problem. According to their research the internal
problem can be solved by the institution but solving the external problem may be difficult
to solve. The external problem has to do with generating power to run the library
management system.
3. LACK OF FINANCIAL RESOURCES: The University support for all departments were limited
to books and racks in the library. As a result of this no fund was allotted to the automation
software package, which lead to the implementation of a free open software in the
chemistry library.
12

[Sivakumar, 2012] defines a library management system (LMS) as a multi-user, multi-tasking
integrated library management software that works either on a single machine or in a client-
server multi-platform environment designed for managing various activities of a library. Since a
library contains a very large collections of books and large number of members, it is impossible
for the librarian to manage the day to day activities manually.
In this study, the library management system consists of various modules and functionalities
which includes:
1. ACQUISITION
2. CATALOGING
3. CIRCULATION
4. OPAC [ONLINE PUBLIC ACCESS CATALOG]
5. SERIALS
6. ADMINISTRATION
7. STOCK VERIFICATION
8. INTER LIBRARY LOAN
9. ACCESSIONING
10. MASTERS
11. MIS REPORTS
12. ADMINISTRATION
The table below is an overview of the functions carried out in each module.
MODULES FUNCTIONS
ACQUISITION Customization of acquisition reports,
Printing of acquisition reports and order list,
Creating a publisher directory,
Generating accounts reports; Balancing of
budget, Creating outstanding order report,
Generating items report
13

CATALOGING Creation of catalog on Author, Title, Class,
ISBN and Series,
Detect duplicate records,
Importing files downloaded from online
database, Editing cataloguing,
Providing Authority files such as Authors,
Subjects, Editors, Titles and Keywords,
Generation of Authority list
CIRCULATION Generation of overdue notices,
Loan period control,
Generating statistics of materials borrowed,
Checking the availability of an item,
Reserving books,
Maintaining a circulation list,
Online request,
Automated fine calculations and accounts,
Printing borrowers card
OPAC Search for bibliographic items in the library.
The search could be based on the Author,
Title, Class, ISBN and Series of a particular
material
SERIALS Subscriptions to new periodicals are carried
out in this module.
ADMINISTRATION Renewal of periodicals,
Generation of claims for the materials not
received, Generate Suppliers Directory,
Generating statistics of periodicals received,
Producing periodical budget and balance,
Approval and ordering,
Cataloging of journal articles, indexing and
abstraction,
Periodic documentation list
STOCK VERIFICATION Stock verification of display, on shelf,
checked out, lost, written off, damaged,
missing, reference and withdrawn.
It also includes reporting on the status of
items in the library.
INTER LIBRARY LOAN Borrowing and returning of books,
magazines, journals etc. from external
libraries
14

The name of the software package implemented in this work is LEARNSOFT. It is a digital library
management system that helps in carrying out day to day library activities such as the
acquisitioning of library materials [books journals, serials, etc.], cataloging, circulation control,
serials control etc.
LEARNSOFT can be configured to suit the specifications of an organization by choosing one or
more of the modules it consists of. It works well on stand-alone machines as it does in a network
of computers. According to [Sivakumar, 2012] LEARNSOFT is a versatile software that can be used
in various types of libraries such as: University Libraries, Public libraries, Corporate Libraries,
Schools or Colleges and Individuals Collection [Personal Library].
LEARNSOFT possesses the following features:
MODULES FEATURES
CATALOGING Catalog any type of material such as Books,
Articles, Audio and Video Media, Serial
publications etc. This is done based on AACR2
(Anglo American Cataloguing Rules) standard.
CIRCULATION Member Information,
Registration card with members photograph
and barcode ID,
User specified code of member ID,
Subjects of interest for members,
Loans and reservations data retrieval by
borrower identification,
Inventory/Circulation status,
Physical stock verification,
Transaction logging,
Binding issues or receipts,
Shelf list,
Tracking fines and fees due,
Calendar master for maintaining holidays,
Rules based on computation of fines for
overdue items,
Deferred reservations to ensure availability of
items on shelf at specified future date,
Inter library loan monitoring system,
Prioritized reservation queue
ACQUISITION Proposal for acquisition,
15

Inquiry to book sellers/publishers,
Purchase orders (foreign / local),
Books on approval memos,
Purchase bills,
Payment details of purchase bills,
Credit notes,
Detailed information about vendors,
Multiple Currencies and conversion rates
SERIALS CONTROL Keeping track of receipts of issues, filing claims
for issues not received, preparing binding
orders, etc.

Journal Title Information includes: Title,
Abbreviation, ISSN and other identification
numbers,
Publisher/Agent,
Periodicity,
Delivery Mode,
Gratis/Exchange/Depository,
Multiple Address for Communications,
Holding note for Union catalog,
Separate list of journals on proposal
BULLETIN PRINTING Helps in the publication of an information
bulletin containing particulars of the latest
additions of books or articles.
SELECTIVE DISSEMINATION SERVICE (SDS) Enables users to record their preferred
subjects and change their preferences at any
time either from the web interface or through
the librarian.
STATISTICAL ANALYSIS This module is responsible for producing
different statistical information required for
library management such as: Distribution of
transactions over working-hours, week-days,
or
Months, Popularity of subjects, Popularity of
item types, Most active or inactive items and
members
BUDGET CONTROL SYSTEM Provides for multiple budget heads and
periods, multiple currencies, and periodic
expense tracking. The budget master database
16

contains the values of actual expenses,
purchase orders raised, credit notes received
and the balances remaining from the total
amount, etc. for every budget head.

It is also responsible for maintaining the details
for various budget periods. These details
include:
Distribution of loans and overdue loans for a
borrower category,
Distribution of loans and overdue loans for a
subject group,
Reservation queue sizes and
average waiting period Information is
presented in the form of bar charts, pie charts,
etc.
ON-LINE SEARCH FACILITIES This module provides On-line Public Access
Catalogue [OPAC] facility which offers
powerful on-line search facilities to search
through library
catalogues: Author, Keyword, Subject class,
Title, Publisher, Place of publication, Main
entry, Material type, Place of conference,
Subject name, ISBN / ISSN, Year of conference,
Series Titles, Serials Title and Year of
Publication.

[Tan Chaur Chuan, 2010] points out that library management system is mainly used by librarian
and library administrator. The librarian is able to manage the following modules: Member
maintenance module; Book maintenance module and Book transaction module. [Tan Chaur
Chuan, 2010] also stated that the library management system allows user [librarian] to manage
the publisher as well as lost book module. The other type of user which is the admin level staff is
able to handle the staff module and view the report module.
The main objective of this work is to automate the daily transactions that take place in the library
in order to eliminate the traditional paper-work and to prevent the occurrence of missing records
or files. Bar Code and SMS technology were implemented in this work.
17

The methodology used in the development of the system is Waterfall Model. The waterfall model
is a software development model that consists of the following stages which are:
1. Requirement Analysis
2. System Design
3. Programming
4. System Testing
5. System Evaluation
[Tan Chaur Chuan, 2010] explains that the requirement analysis is a stage to gather the user
requirements such as functional requirements. The next stage is the system design where the
design of the user interface and database will take place. Programming stage is the next stage
after the system design and this stage has to do with coding. After the coding stage is the system
testing, this is carried out in order to minimize system bugs. System evaluation is the last and
final stage of the waterfall model which involves comparing it with an existing system.
In this work the library management system is divide into two: the online website and the library
system. The project scope of this work is the library system.


[Tan Chaur Chuan, 2010] divide the library system into different modules and functions which
are listed below:
MODULES FUNCTIONS
AUTHORIZATION AND AUTHENTICATION ID/Password Checking,
Password Recovery
MEMBER MAINTENANCE Add new member,
Edit member,
Print ID card,
Search member
BOOK MAINTENANCE Add new book,
Edit book information,
Generate barcode,
Search book
PUBLISHER MAINTENANCE Add new publisher,
Edit publisher information,
Search publisher
18

EMPLOYEE MAINTENANCE Add new employee,
Edit employee,
Search employee
BOOK TRANSACTION Rental Module,
Check Reservation,
Return Module,
Fine Module,
Lost Book Module
REPORT Transaction Report,
Top 10 Book Report,
Activity Log

[Tan Chaur Chuan, 2010] encountered some problems in the development process of the
project. These problems include:
1. The user requirements were not gathered from the end user in the planning stage of the
project. The requirements were gotten from the internet and opinions of supervisors
and friends.
2. The project did not start on time.
3. There was a problem with the logic of the program due to some errors in the user
interface design.
[Kumar, 2012] defines an online library as a system that maintains books in the server in any
format. It allows storing books, documents, audio and video files. The online library enables users
to search and open documents by giving a simple query. [Kumar, 2012] also defines an online
library management system as a system, which maintains books, documents and audio/video
files. In order to use this system one must be a member of the library. Library members or
registered users can search for books by giving a simple query. The online library uses internal
feedback from the user to improve search processes in every search. The system also makes use
of indexing to locate documents very fast in a search that is related to the query. This project was
motivated by the defects of the existing system which includes: using manual methods to record
the details of acquired library materials; low level of security; complexity arises in the
maintenance of library catalogue and arrangement of books to the catalogue and difficulty in
generating information reports.
19

The objectives of this project are: to provide users an easy way to register online and have
personal accounts; automate the daily activities that are carried in the library such as issuing
books, returning books, registering books, audio/video files, e-books, generating reports etc.
[Kumar, 2012] carried out an analysis of the existing system by gathering and interpreting the
facts, diagnosing the problems. A problem analysis was also carried out in order to have a clear
understanding of the needs of the users and what is expected of the automated system. The
analysis was done in the form of interviews, questionnaires and information from
documentation. The major problem encountered during the analysis is resolving how to organize
the information from documentation. System diagrams such as USE CASE Diagrams, Sequential
Diagrams, Collaboration Diagrams, Activity Diagrams, Class Diagrams, Deployment Diagrams and
E-R Diagrams were employed in the design of the system. Database design was also carried out.
Then the system was tested for errors and deployed on server.
The tools used in the development of this system are:
1. NetBeans IDE 7.0.1
2. J2EE Technologies JSP, Servlet and JDPC
3. Oracle 10g Database
4. HTML, JavaScript and Java Server Pages Front End.

[Tripathi and Srivastava, 2012] developed a library management system for the purpose of
monitoring and controlling the transactions in a library. The application provides facilities to
students or members in searching for required books and also allow the system administrator or
librarian to issue and return books plus creating and deleting members of the library. The
researchers defined system analysis as a detailed study of the various operations performed by
a system and their relationship within and outside of the system.
[Tripathi and Srivastava, 2012] carried out a detailed analysis of the existing system in a library
and discovered that daily library transactions are done manually. Such transactions include:
borrowing and returning of books, searching for existing members and books then finally
preparing a list of borrowed books and available books in the library. An automated system was
developed after the feasibility study to rectify the manual difficulties in managing the library. The
20

researchers specified the system requirements for running the application and these
requirements include: Windows 98 or NT 4.0 Operating Systems (software requirements) and
486 to 500 MHz microprocessor with a RAM ranging from 8 MB to 32MB (hardware
requirements).
The system implementation phase in the research work involves transforming the theoretical
design to a working system. [Tripathi and Srivastava, 2012] divided the implementation phase
into ten steps and in each step different web pages are developed. These pages include: Login
Page, Welcome Page, User Profile Page, Change Password, Search Page, Admin Login Page,
Admin Home Page, Book Transaction (Issue and Return) and Add Book Page. There was a limited
time framework in the development and implementation of the software.

[Adams etal, 2007] developed a web-based library management system using Java Server Page
[JSP], servlets and JDBC. Entity-Relationship Model was used to design the database that will
store and organize the librarys data. The aim of this work is to implement a library management
system that has an internet-based graphic user interface which will enable the users to access
the system remotely.
[Adams etal, 2007] carried out a requirement analysis to determine the needs or expectations
of the users and to have an understanding of how the library is being operated. The expectations
of the system include: The presence of a database to store information pertaining to its users,
media stored in the library and the physical location of other branches of the library; Keeping
track of the status of each media item; Registering users for the library card. In the process of
carrying out the analysis the researcher were able to outline the functions of each user of the
system, starting from the customers and then the librarian. For the purpose of this work the
media is limited to books and videos.
The researchers made use of the Entity-Relationship Model [E-R Model] to guide them in
designing the relational database of the library management system. The relational database is
normalized to a third normal form [3NF] in order to remove any form of redundancy. The user
interface of the system is done by considering how the database is accessed. This lead [Adams
etal, 2007] to use the JDBC API [Java Development Connectivity API] in designing the interface
of the software.
21

In conclusion [Adams etal, 2007] were able to design and implement the library management
system and a relational database to manage the system. There will be an improved account
management and search functionality for future development.
In [Grant-Ezeronye, 2011] a library is a collection of resources i.e. books and periodicals that
allows users to have access to its resources, make use of them and borrow them whenever they
want to. The researcher also defined the library as a collection that is maintained by an institution
and shared by people who cannot afford to purchase many books by themselves or would prefer
to make use of the items because they preferred to. The aim of this project is to develop an
automated system that will improve the readers desk operation at the University Library [Bells
University Library Case Study]. Barcode reader and fingerprint scanner are used in the
development of the system.
The research methodology of [Grant-Ezeronye, 2011] involves studying the existing automated
system at the readers desk; reviewing existing literatures; making use of waterfall model for the
software development cycle; documentation and training of staff on the hardware and software
of the system. The scope of this project is limited to automating the operations carried out at the
readers desk department. These activities include: issuing and returning books, registration of
both users and books and the sign-in and sign-out processes of users.
The implementation of the barcode reader and fingerprint scanner was successful. This
implementation helps in making the operations to be done simultaneously thereby saving time
and reducing errors. The automated system is limited to a number of operations such as
registration, check-in/out of books, etc. performed at the readers desk. Other processes like
attending to request forms, non-members of the university, getting and arranging important
newspaper clips etc. as well as placing the system online in order to allow users view available
books on the shelf were not attended to.
[Grant-Ezeronye, 2011] recommended that the Bells University librarian to employ the use of the
software to the Circulation department of the library because the system will help to reduce the
error encountered in the manual labor involved in the library activities and also increases
operation speed. The research also
encourages students and staff to develop the system further due to its limitations.
22

According to [Maureen and Blessing, 2011] library automation has to do with the act of
computerizing the daily activities of the library system. These activities include: users and
materials registration, issuing and returning books, locating materials and calculating overdue
fines of defaulters. The researchers pointed out that the manual method of library management
system in most state universities for example Delta State University are prone to problems in the
following areas: Registration of users, Monitoring the stock of library materials, Waste of energy
in searching for a particular material.
The aim of this project work is to design an automated system that will help university libraries
to keep accurate track of the transactions done by storing the information about library users.
Then giving an accurate location of library material to ease the search of library users and keeping
track of all borrowed and returned books.
[Maureen and Blessing, 2011] reviewed different literatures related to their work, carried out a
system analysis of the existing library system to determine the setbacks it has. Design the system
through the use of structured flowcharts. [Maureen and Blessing, 2011] designed the database
using the SQL [Structured Query Language] Enterprise Manager. The tables design for the system
are:
1. The Catalogue Table
2. The Circulation Table
3. The Serial Table
4. User Account Table
5. Library User Table
[Maureen and Blessing, 2011] explains that there are various tasks carried out in the
implementation phase of the system, these tasks involve program development; testing and
debugging of the program; the acquisition and installation of the hardware and the training of
the library staff in order to be able to operate the system. The software architecture employed
in the development of the system is a 2-tier architecture. The system is then tested for bugs. This
involves two program testing which are: The Alpha testing and The Beta testing.
In conclusion the system [librarysoft] can monitor the operations of the library, speed up
searching processes, validating users and generating reports for the library staff to assist them in
managing the resources of the library.
23


[Bhupendra etal, 2011] developed an online library management system for the purpose of
automating the operations carried in a library. The system provides facilities for users to aid them
in performing specific task with ease. Such facilities include: Stock Maintenance; Report
Generation and Transaction Entry. The scope of this project work is limited to institutions and
offices. The authors of this research work carried out a feasibility study of the present library
system in order to identify and analyze the drawbacks of the present system plus to understand
the flow of operation carried out in the library.
[Bhupendra etal, 2011] divided the system into three components, the first component is
responsible for maintaining the stock of the library; the second component is responsible for
logging transactions and finally the third component is responsible for generating reports. Three
data tables were created during the development of the system which are: Members Table, Add
Book Table and Issue Table. E-R Model [Entity-Relation] and DFD [Data Flow Diagram] were
employed in designing the system.
[Bhupendra etal, 2011] stated that in future new features can be added as required and it can
easily be implemented under various situations. The scope of the system involves: Extensibility
[making improvements on the system]; Reusability [reusable codes for maintenance and
upgrades]; Understandability [the source code can easily be understood by another programmer
other than the creator] and Cost-effectiveness [minimum cost is required to implement the
system].
In conclusion the system has a highly efficient GUI based component. The system was
implemented successfully and it meets all the requirements of the users.

[Nair, 2011] stated that a solution developed using the .NET technology was introduced to
improve the accuracy of the information handled in libraries. This solution helps the
administrator accomplish his tasks at ease and allows users to sign-up or sing-in easily since it is
an online library management system. From the administrators view the system helps him/her
to monitor the stock of the library, manage the library and other related information from his/her
desktop. From the users view the system them to sign-in and effectively search for books,
24

borrow or reserve books if they are available in the library. The details of both the library
materials and users are stored in the database.
The aim and objective of this project is to create a library management system which sorts the
administrators, staffs and students separately.
[Nair, 2011] pointed out that a feasibility study is carried out to determine whether or not a
project is worth doing. The researcher also mentioned that feasibility study is performed in order
to determine the feasibility of a project such that the content and recommendation of the study
will be used as a basis for deciding to proceed, postpone, or cancel the project. [Nair, 2011]
classified feasibility into the following types: Technical Feasibility, Operational Feasibility,
Economic Feasibility and Social Feasibility. Through thorough feasibility study of the present
system some problems were identified and analyzed. The system was divide into three
components which are:
1. Stock Maintenance
2. Transaction Entry
3. Report Generation
[Nair, 2011] made use of the following technologies to develop the library management system:
ASP.NET 2.0 in C#, Visual Web Developer Express Edition and SQL Server Express Edition. The
software development model used in the development cycle of the system is the Waterfall
Model. According to [Nair, 2011] the waterfall model consists of the following stages which are:
1. Requirement Analysis and Definition
2. System Design Phase
3. Coding
4. Testing




25

[Nair, 2011] explains that the requirement analysis and design stage has to do with establishing
the systems services and goals by consulting the end-users of the system. The next stage involves
establishing the overall system architecture which includes data structures and algorithm. In the
coding stage, the design is converted into a machine readable form. The final stage of the
software development cycle is the testing stage where the logical internals of the system are
tested to ensure that the system meets up with the user requirement and to uncover hidden
bugs.
In conclusion the system was developed using a very friendly GUI [Graphical User Interface] and
the implementation was a success.




















26

CHAPTER THREE
SYSTEM DESIGN

3.0 System Design
This can be defined as the process of defining the architecture, components, modules, interfaces,
and data for a system to satisfy specific requirements. It can also be defined as the design of
systems which implies a systematic and rigorous approach to design. It is seen as the application
of systems theory to product development. [Wikipedia. Wikimedia Foundation, 2013], [Dubberly
Design Office, 2013]
3.1 Purpose of System Design
The primary purpose of system design is to define the overall architecture, type, scope and
number of systems that will be developed, procured and modified to implement a particular
project. [Flightsystems, 2013]
3.2 Goal of Proposed System
The goal of the proposed system is outlined below:
1. AUTOMATION: The online system will be designed in such a way that it will eliminate the
traditional paper-work in carrying out daily library operations and prevent the occurrence
of missing records and files.

2. PLATFORM INDEPENDENCE: The online system will be able to run on various software
platforms in terms of operating system such as Android, Windows and iOS. This feature
can be achieved by making use of a content management system [DotNetNuke for this
project] in order to automatically scale the application to run on the various stated
operating systems. Therefore the online system will be accessible through the web
browsers of laptops, smartphones, tablets and desktops.

3. CONVINIECE: Users can register into the system with their laptops, smartphones or
tablets without physically being in the library. Users should be able to login to the system
conveniently with their portable or mobile devices such as smartphones or tablets and
laptops. Users should be able to download e-books and reserve books online.

4. MAINTENANCE: The online system will be designed in such a way that the components
of the system will be developed in a modular form i.e. the components of the system will
be developed in modules so that the system can be maintained easily.

5. INTEGRITY: Records can only be added, modified or deleted by an authorized user.
27

6. ACCURACY: The automated online system should be able to reduce errors to the
minimum.



3.3 Phases of Proposed System
The proposed system will be divided into two phases and they are:
1. HARDWARE PHASE: This phase involves the integration of a webcam for taking user
profile picture.
N.B: The webcam integration is only done for desktops.

2. SOFTWARE PHASE: This phase can be divided into two sub-phases:
a. Front End User Interface [Web pages]
b. Back End Database [Relational Database]
The development tools used in designing the proposed system are:
1. MICROSOFT VISUAL STUDIO: Microsoft Visual Studio is an integrated development
environment [IDE] from Microsoft which is used to develop console applications, graphic
user interface applications, websites, web applications and web services. Applications
developed with visual studio are done in both native code and managed code for all
platforms supported by Microsoft Windows, Windows Mobile, .NET Framework, .NET
Compact Framework and Microsoft Silverlight. [Wikipedia, 2013]
Visual Studio includes a code editor that supports Intellisense as well as code refactoring.
It possesses an integrated debugger that works as a source-level debugger and a machine-
level debugger. Other built-in tools include a forms designer for building GUI applications,
web designer, class designer, and database schema designer. Visual Studio supports
different programming languages by means of language services, which allow the code
editor and debugger to support (to varying degrees) nearly any programming language,
provided a language-specific service exists. Built-in languages include C/C++ (via Visual
C++), VB.NET (via Visual Basic .NET), C# (via Visual C#), and F# (as of Visual Studio 2010).
[Wikipedia, 2013]

2. MICROSOFT SQL SERVER MANAGEMENT STUDIO: Microsoft SQL Management Studio is an
integrated environment designed for accessing, configuring, managing, administering, and
28

developing all components of SQL Server. It has two tools which are script editors and graphic
tools that work with objects and features of the server plus it grants access for developers
and administrators of all skill level. A key feature of SQL Server Management Studio is the
Object Explorer, which allows the user to browse, select, and act upon any of the objects
within the server. Other features include: Enterprise Manager, Query Analyzer, and Analysis
Manager. [Wikipedia, 2013]
In addition to this, SQL Server Management Studio works with all components of SQL Server
such as Reporting Services and Integration Services. Fleet Technologies makes use of SQL
Server Management Studio to create databases for the web applications, write stored
procedures in order to perform logic operations, create SQL transactions and crystal report.
[Wikipedia, 2013]
3.4 System Architecture of Proposed Multiplatform Online Library
Management System
System architecture can be defined as a conceptual model that defines the structure, behavior
and gives more vies of a system. It can also be defined as a set of conventions, rules and standard
that is employed in the technical framework of a computer system plus customer
requirements and specifications, that the system's manufacturer (or a system integrator) follows
in designing (or integrating) the system's various components such
as hardware, software and/or networks. System architecture can also be seen as a generic
discipline to handle objects called Systems, in a way that supports the structural reasoning of
the objects. [Wikipedia, 2014], [BusinessDictionary.com, 2014], [Boris Golden, 2014]
There are four types of system architecture namely:
1. INTEGRATED ARCHITECTURE: This is a type of system architecture where system
upgrades and growth are done by replacing the entire components of the system.
[Themetisfiles, 2014]

2. DISTRIBUTED ARCHITECTURE: This is a type of system architecture that is designed to
enable growth and scale multiple workloads. In this architecture, system upgrades are
done by replacing the components of the system. [Themetisfiles, 2014]

29

3. POOLED ARCHITECTURE: This type of architecture is designed to enable efficient scaling
and growth of multiple workloads. System upgrade is done by replacing the system
components within a pool. System growth is done by adding system components to a
pool. Computing, storage and networks are in separate resource pools consisting of
component blocks and orchestrated separately [Themetisfiles, 2014]

4. CONVERGED ARCHTIECTURE: Converged system architecture is a type of architecture
that is designed to support rapid deployment of multiple workloads. Computing, storage
and networks are in separate resource pools which are jointly orchestrated and are in a
single chassis. System upgrade is through swapping components within the chassis.
System growth is through adding components to empty chassis slots. [Themetisfiles,
2014]
30


Figure 3.1 - Four-Tier System Architecture Of Proposed System [Adapted From N. Sivakumar,
2009.]

31

3.5 Four-Tier System Architecture of Proposed System
The above system architecture shows how the system operates and functions. It consists of four
layers: The Business Object Layer, Presentation Layer, Business Logic Layer and Data Access
Layer. The business object layer [BOL] represents the stack holders of the system i.e. the people
that will make use of the system. The presentation layer [PL] represents the web pages or web
forms that act as an interface for the users to interact with the system. The business logic layer
[BLL] represents the logical operations carried out by the system, such operation includes:
calculation and validation operations. The data access layer [DAL] consists of data access
methods, data access components and a relational database which stores all the information
related to the library such as books [Hardcopy and Softcopy], library users with their properties
and functions.





















32


Figure 3.2 - ER-Diagram for the Proposed Library Management System
33


Figure 3.3 Use Case Diagram for the Proposed Library Management System
34


Figure 3.4 - Sequence Diagram for User Login









35



Figure 3.5 - Sequence Diagram for User Registration













36


Figure 3.6 - Sequence Diagram for Book Registration







37

Figure 3.7 - Sequence Diagram for Book Check-In And Check-Out
38


Figure 3.8 - Sequence Diagram for Searching









39


Figure 3.9 - Login Activity Diagram [STUDENT AND STAFF]










40


Figure 3.10 - Login Activity Diagram [CIRCULATION DESK STAFF]
41


Figure 3.11 - Login Activity Diagram [COLLECTION AND DEVELOPMENT STAFF]











42


Figure 3.12 - Book Registration Activity Diagram








43


Figure 3.13 - Registration Activity Diagram







44


Figure 3.14 - Search Activity Diagram
45


Figure 3.15 - Class Diagram
46


Figure 3.16 Database Diagram
47

CHAPTER FOUR
SYSTEM IMPLEMENTATION

4.0 System Implementation
System implementation can be defined as the construction of the new system and the delivery
of that system into production i.e. the day-to-day business or organization operation. It can also
be seen as the process of defining how the system should be built, ensuring that the system is
operational and used and finally ensuring that the system meets quality standards i.e. quality
assurance. [N.p., 2014], [N.p., 2014]
System implementation covers a broad spectrum of activities from detailed workflow analysis
to the formal go-live of the new system. Therefore the overall working feature and conditions
of the system are to be highlighted and components are described. [HRSA, 2014]

4.1 The Home Page
The home page of the library management system is composed of a welcome message and
bells university logo. It serves as the welcome screen to the users of the system. Below is the
pictorial view of the home page

Figure 4.1 Home Page
48

4.2 Login Page
The login page serves as an access point for existing users of the system. It allows users with
username and password to access the system and carry out operations that are relevant to the
user. It also allows new users to register for a username and password in order to gain access
into the system. The username uniquely identifies each user of the system and the password is
a string of characters used to authenticate the user or prove the identity of the user or access
approval to gain access to resources or the system.
In case of a mismatch in the username and password, the system would display an error
message Login Failed. Please remember that passwords are case sensitive.

Figure 4.2 Login Page






49

4.3 Library Administrator
The library administrator holds the primary role of leadership in the library. In the library
management system, the library administrator is responsible for administering user roles to
different users of the system. The administrator is seen as a super user and has a better
privilege than regular library staff and users. Below is a list of pages that can be viewed by the
administrator:
1. USER MANAGEMENT
2. BOOK MANAGEMENT
3. TRANSACTION LOG
4. FINE PAYMENT
5. CLASSMARK BOOKS

USER MANAGEMENT: The user management page enables the library administrator to add new
users and manage or view existing users. At the point of registration, each new user [student,
teaching staff and library staff] is assigned a role to enable them carry out activities relevant to
their role.

Figure 4.3 User Management [STUDENT REGISTRATION]



50


Figure 4.4 User Management [TEACHING STAFF REGISTRATION]


Figure 4.5 User Management [LIBRARY STAFF REGISTRATION]

51


Figure 4.6 User Management [LIST OF EXISTING MEMBERS]


Figure 4.7 User Management [UPDATING EXISTING USER DETAILS]

52

BOOK MANAGEMENT: The book management page enables the library administrator to add
new books and view the library stock.

Figure 4.8 Book Management [BOOK REGISTRATION]
Figure 4.9a Book Management [VIEW LIBRARY STOCK]
53


Figure 4.9b Book Management [VIEW LIBRARY STOCK]

TRANSACTION LOG: The transaction log is a record of the activities carried out in the system,
these activities include: user registration, book registration, issuing, renewing and returning of
books, fine payment etc.
Figure 4.10 Transaction Log
54

FINE PAYMENT: The fine payment page enables the library administrator to view fine records.

Figure 4.11a Fine Records


Figure 4.11b Fine Records [STUDENT FINE RECORDS]

55


Figure 4.11c Fine Records [STAFF FINE RECORDS]

CLASSMARK BOOKS: The classmark books page enables the library administrator to classmark
books.
Figure 4.12a Classmark Books
56

Figure 4.12b Classmark Books

4.4 Circulation Desk Staff
The circulation desk staff is responsible for registering users, issuing and discharging books,
attending to the reservation requests of the students and teaching staff and fine payment.
Below is a list of pages that can be viewed by the circulation desk staff:
1. REGISTRATION
2. BOOK TRANSACTION
3. FINE PAYMENTS
4. RESERVATIONS
5. REMINDER









57

REGISTRATION: The registration page enables the circulation desk staff to register new users.

Figure 4.13 Student Registration

Figure 4.14 Teaching Staff Registration
58

BOOK TRANSACTION: The book transaction page enables the circulation desk staff to carry out
the following transactions: issue book, renew book, return/discharge book and fine payment.

Figure 4.15a Book Transaction


Figure 4.15b Book Transaction [ISSUE BOOK]

59


Figure 4.15c Book Transaction [FINE PAYMENT]

FINE PAYMENT: The fine payment page enables the circulation desk staff to view fine records.

Figure 4.16a Fine Records

60


Figure 4.16b Fine Records [STUDENT FINE RECORDS]


Figure 4.16c Fine Records [STAFF FINE RECORDS]

61

RESERVATIONS: The reservations page enables the circulation desk staff to view reserved
books made by students and staff.
Figure 4.17 Reservations
REMINDER: The reminder page enables the circulation desk staff to send reminder messages in
the form of an e-mail to users who have a day left to return possessed books.
Figure 4.18 Reminder

62

4.5 Acquisition Staff
The acquisition staff is responsible for registering books, monitoring the library stock and
sending notifications about new book arrivals to registered users. Below is a list of pages that
can be viewed by the acquisition staff:
1. ADD BOOKS
2. VIEW STOCK
3. NOTIFICATION

ADD BOOKS: The add books page enables the acquisition staff to register/add new books to the
systems database.

Figure 4.19 Book Registration







63

VIEW STOCK: The view stock page allows the acquisition staff to view the library stock [list of
registered books].

Figure 4.20 View Stock

NOTIFICATION: The notification page allows the acquisition staff to send notifications
concerning new collections of books to the mailboxes of registered users.
Figure 4.21 Notification
64

4.6 Library Users
The library users are those that make use of the library for the purpose of gaining knowledge
and research. For the purpose of this project the library users are limited to the students and
teaching staff of Bells University of Technology. Below is a list of pages that can be viewed by
the teaching staff and students:
1. SEARCH
2. LIBRARY

SEARCH: The search page allows the students and staff to search for books in the library by
title, subject and author.

Figure 4.22a Library Search






65


Figure 4.22b Library Search [BOOK DETAILS]

LIBRARY: The library page enables the students and staff to view the entire book collection in
the library.
Figure 4.23a Library Page
66


Figure 4.23b Library Collection


4.7 Classification Staff
The classification staff is responsible for classifying the books in the library. The CLASSMARK
BOOKS page is viewed by the classification staff.
Figure 4.24 Classmark Books
67

4.8 E-Library Administrator
The e-library administrator is responsible for adding e-books.

Figure 4.25a E-Book Registration


Figure 4.25b E-Book Registration


68

CHAPTER FIVE
CONCLUSION AND RECOMMENDATION

5.1 Conclusion
What I have achieved in the course of this project is developing an online library management
system that can automated the activities carried out in the various sections of the library. The
implementation of an email service as stated on previous sections has been achieved. The system
is able to carry out automated task such as the deletion of user reservations and adding
defaulters to the defaulters list through the use of a windows service.
I have been able to study the current section of the readers service, collection and development
and technical departments plus the e-library. I also reviewed various literatures on different
library management systems. This project has been able to establish the use of a class library
from iTextSharp to extract the metadata of pdf files to ease the registration process of e-books
in the e-library. The module responsible for extracting e-book details was designed for pdf files
only. The major challenge in the process of extracting e-book details from pdf files is that not all
pdf files have a complete meta-data. As a result, the system will not be able to effectively extract
and store the details of the e-books.
The report generation feature of the system enables the library staff in the readers service
department and the collection and development department to generate reports in an excel
format. This enables them to possess a printed copy of the generated reports.
Lastly, this project has been able to show an architectural design [four-tier system architecture]
of an online library management system using Microsoft Enterprise Library for database
connectivity, iTextSharp Library for extraction pdf metadata and windows service to carry out
automated tasks. The differences between my work and that of [Grant-Ezeronye, 2011] is that
the developed system is a web-based management system. It possesses an emailing functionality
for sending notifications and reminders. It is capable of carrying out automated tasks through the
use of a windows service. The online library management system provides the functionality of
extracting pdf details from the meta-date of pdf files and is able to record the various transactions
or activities carried out in the library.
69

5.2 Recommendation
I hereby recommend the Bells University librarian to employ the use of this automated software
to the University Library. The system will reduce the errors encountered, and the manual process
involved in the library activities; and also to increase operation speed.
The online library management system only automates the activities carried out in the readers
service department, collection and development department, technical department and the e-
library. Processes like attending to non-members of the university, getting and arranging
important newspaper clips and keeping record of serials could not be attended to.
I encounter the university to try and encourage the students and staff to carry out further
research in the development of library automated systems that can overcome the limitation of
the present online library management system. Upgrade approach of technology should be
recognized, acknowledged and accepted since the Library resides in a University of Technology.
Students in lower levels can also improve on this system hereby making it their final year project.












70

References
1. Ashutosh Tripathi and Ashish Srivastava, 2012. Online Library Management System.
IOSR JOURNAL OF ENGINEERING (IOSRJEN). Pg. 180 186
2. Akazue Maureen and Ojeme Blessing, 2011. Design of an Automated Library
Management System for State Universities in Nigeria. ASIAN JOURNAL OF
INFORMATION TECHNOLOGY. Pg. 335 340
3. AllWords.com, 2013. Definition of System Design [Online]:
http://www.allwords.com/word-systems+design.html
4. Bhupendra, Shraddha Panwar and Vijay Vaishnav, 2011. Online Library Management
System. Project Report, November 2011.
5. Bijesh Nair, 2011. Online Library System. Final year project report of Masters of
Computer Application in G.V School of Engineering and Technology. April 2011.
6. Buena Vista University (2013), Library Mission [Online]:
http://www.bvu.edu/library/about_us/purpose.dot
7. Chelmsford Public Library (2013), Objectives and Purposes of the Library [Online]:
http://www.chelmsfordlibrary.org/library_info/policies/objectives.html
8. Dictionary.com, 2013. Online Public Access Catalog [Online]:
http://dictionary.reference.com/browse/Online+Public+Access+Catalog?s=t
9. Darren Adams, Sergey Begun, Andrew Fail, Shawn Halger and Franklin Lee, 2007.
Library Management System: Design and Implementation. Final year project, April
2007.
10. Dubberly Design Office, 2013. System Design [Online]:
http://www.dubberly.com/articles/what-is-systems-design.html
11. Flightsystems, 2013. Purpose of System Design [Online]:
http://flightsystems.org/system_design_definition.htm
12. Grant-Ezeronye G. C., 2011. Development of a Librarys Readers Desk Management
System. Final year project submitted to the Department of Computer Science, June
2011.
13. HRSA (Health Resources and Services Administration), 2014. System Implementation
[Online]:
http://www.hrsa.gov/healthit/toolbox/HealthITAdoptiontoolbox/SystemImplementatio
n/
14. Infoplease. The Columbia Electronic Encyclopedia, 6th Ed. - Columbia University Press
(2013), Library: Evolution [Online]:
http://www.infoplease.com/encyclopedia/entertainment/library-evolution.html
71

15. M. Satish Kumar, 2012. Online Library. Final year project, July 2012.
16. N. Sivakumar, 2012. International Library Management Systems. INTERNATIONAL
JOURNAL OF LIBRARY AND INFORMATION SCIENCE RESEARCH AND DEVELOPMENT. Pg.
35 - 47
17. Neelakandan. B, Duraisekar. S, Balasubramani.R, Srinivasa Ragavan.S (2010),
Implementation of Automated Library Management System in the School of Chemistry
Bharathidasan University using Koha Open Source Software. INTERNATIONAL JOURNAL
OF APPLIED ENGINEERING RESEARCH, DINDIGUL. Pg. 149 - 167
18. N.p., System Implementation, 2014. [Online]:
http://web.simmons.edu/~benoit/lis486/SystemsImplementation.html
19. N.p., System Implementation, 2014. [Online]:
http://www.uky.edu/~dsianita/695A&D/lecture5.html
20. Oxford Dictionaries, 2013. Definition of Library in English, Oxford University Press.
[Online]: http://oxforddictionaries.com/definition/english/library
21. Tan Chaur Chuan, 2010. Library Management System. Final year project submitted to
the Department of School of Arts and Science, Campbell University, U.S.A
22. Wikipedia. Wikimedia Foundation (2013), Library [Online]:
http://en.wikipedia.org/wiki/Library
23. Wikipedia. Wikimedia Foundation (2013), Library Management [Online]:
http://en.wikipedia.org/wiki/Library_management
24. Wikipedia. Wikimedia Foundation (2013), Library Catalog [Online]:
http://en.wikipedia.org/wiki/Library_catalog
25. Wikipedia. Wikimedia Foundation (2013), Online Public Access Catalog [Online]:
http://en.wikipedia.org/wiki/Online_Public_Access_Catalog
26. Wikipedia. Wikimedia Foundation (2013), Library Management System [Online]:
http://en.wikipedia.org/wiki/Library_management_system
27. Wikipedia. Wikimedia Foundation (2013), System Design [Online]:
http://en.wikipedia.org/wiki/System_design







APPENDIX 1: SOURCE CODE
USER REGISTRATION
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DotNetNuke.Entities.Modules;
using DotNetNuke.Entities.Users;
using DotNetNuke.Common;
using System.Data;
using BEL;
using BLL;
using Utilities;
using DotNetNuke.Security.Membership;
using DotNetNuke.Security;
using DotNetNuke.Security.Roles;
using System.Net.Mail;
using System.IO;
using System.Drawing;

public partial class DesktopModules_LMS_Modules_Registration : PortalModuleBase
{
//Close all panels
public void ClosePanels()
{
messagePanel.Visible = false;
generalDetailsPanel.Visible = false;
studentPanel.Visible = false;
staffPanel.Visible = false;
}

//Resetting mulitple controls in the form
public void ResetControls(ControlCollection ctrls)
{
try
{
foreach (Control ctrl in ctrls)
{
if (ctrl is TextBox)
{
((TextBox)ctrl).Text = String.Empty;
}

if(ctrl is System.Web.UI.WebControls.Image)
{
if (((System.Web.UI.WebControls.Image)ctrl).ID.Equals("profilePicture"))
{
((System.Web.UI.WebControls.Image)ctrl).ImageUrl =
"~/images/no_avatar.gif";
}
}
ResetControls(ctrl.Controls);
}
}
catch (Exception ex)
{
ErrorMgt.WriteLog(ex);

ClosePanels();
messagePanel.Visible = true;
msgLb.ForeColor = System.Drawing.Color.Red;
msgLb.Text = "An error occured. Please contact administrator if error persists";
}
}

//Resetting DropDown Lists
public void ResetDropDownList()
{
if(userCategoryDropDown.SelectedValue == "1")
{
studentCollegeDropDown.SelectedIndex = 0;
studentDepartmentDropDown.SelectedIndex = 0;
studentDepartmentDropDown.Enabled = false;
levelDropDown.SelectedIndex = 0;
yoaDropDown.SelectedIndex = 0;
}
else if (userCategoryDropDown.SelectedValue == "2")
{
staffCollegeDropDown.SelectedIndex = 0;
staffDepartmentDropDown.SelectedIndex = 0;
staffDepartmentDropDown.Enabled = false;
statusDropDownList.SelectedIndex = 0;
yoeDropDown.SelectedIndex = 0;
}
}

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ClosePanels();
messagePanel.Visible = true;
generalDetailsPanel.Visible = true;

studentCollegeDropDown.DataSource =
(DataTable)UserBLL.LoadCollege().ReturnObject;
studentCollegeDropDown.DataTextField = "college_name";
studentCollegeDropDown.DataValueField = "college_id";
studentCollegeDropDown.DataBind();

staffCollegeDropDown.DataSource = (DataTable)UserBLL.LoadCollege().ReturnObject;
staffCollegeDropDown.DataTextField = "college_name";
staffCollegeDropDown.DataValueField = "college_id";
staffCollegeDropDown.DataBind();
}
else
{
if (Session["imagepath"] == null)
{
profilePicture.ImageUrl = "~/images/no_avatar.gif";
}
else
{
profilePicture.ImageUrl = Session["imagepath"].ToString();
}
}
}

//Saving Student Details
protected void studentRegistrationBtn_Click(object sender, EventArgs e)
{

try
{
UserBEL.Instance.first_name = firstNameTextBox.Text;
UserBEL.Instance.middle_name = middleNameTextBox.Text;
UserBEL.Instance.last_name = lastNameTextBox.Text;
UserBEL.Instance.gender = (maleRadBtn.Checked) ? "Male" : "Female";
UserBEL.Instance.email = emailTextBox.Text;
UserBEL.Instance.phone_number = personalPhoneNumberTextBox.Text;
UserBEL.Instance.home_phone_number = homePhoneNumberTextBox.Text;
UserBEL.Instance.home_address = addressTextBox.Text;
UserBEL.Instance.cos = categoryRadList.SelectedItem.Text;
UserBEL.Instance.user_id = matricNumberTextBox.Text;
UserBEL.Instance.others = (categoryRadList.SelectedItem.Text == "OTHERS") ?
othersTextBox.Text : null;
UserBEL.Instance.college_id =
Convert.ToInt32(studentCollegeDropDown.SelectedValue);
UserBEL.Instance.department_id =
Convert.ToInt32(studentDepartmentDropDown.SelectedValue);
UserBEL.Instance.library_department = null;
UserBEL.Instance.user_status = null;
UserBEL.Instance.yoe = null;
UserBEL.Instance.user_level = Convert.ToInt32(levelDropDown.SelectedValue);
UserBEL.Instance.yoa = Convert.ToInt32(yoaDropDown.SelectedValue);
UserBEL.Instance.hostel = hallTextBox.Text;
UserBEL.Instance.room_number = roomNumberTextBox.Text;
UserBEL.Instance.nos = nosRadList.SelectedItem.Text;
UserBEL.Instance.user_picture = profilePicture.ImageUrl;
UserBEL.Instance.dor = dorLabel.Text;
UserBEL.Instance.user_category =
userCategoryDropDown.SelectedItem.Text.ToString();

OperationResultInfo result = UserBLL.AddUser(UserBEL.Instance.first_name,
UserBEL.Instance.middle_name,
UserBEL.Instance.last_name, UserBEL.Instance.gender,
UserBEL.Instance.phone_number,
UserBEL.Instance.email, UserBEL.Instance.home_address,
UserBEL.Instance.home_phone_number, UserBEL.Instance.user_picture,
UserBEL.Instance.college_id, UserBEL.Instance.department_id,
UserBEL.Instance.library_department,
UserBEL.Instance.user_level, UserBEL.Instance.user_status,
UserBEL.Instance.user_category,
UserBEL.Instance.user_id, UserBEL.Instance.cos, UserBEL.Instance.nos,
UserBEL.Instance.others,
UserBEL.Instance.yoe, UserBEL.Instance.yoa, UserBEL.Instance.dor,
UserBEL.Instance.hostel, UserBEL.Instance.room_number);

Session.Clear();
Session.Abandon();

switch (result.Status)
{
case 100:
CreatePortalUser();
ClosePanels();
messagePanel.Visible = true;
generalDetailsPanel.Visible = true;
studentPanel.Visible = true;
msgLb.ForeColor = System.Drawing.Color.Green;
msgLb.Text = "Registration Completed successfully !!!"+ "</br>" +
Session["msg"].ToString();
TransactionLog.Instance.WriteLog(10, dorLabel.Text,
DateTime.Now.ToShortTimeString(), UserInfo.Username, UserInfo.DisplayName,
UserBEL.Instance.first_name, null, null, null);

break;
case -100:
ClosePanels();
messagePanel.Visible = true;
generalDetailsPanel.Visible = true;
studentPanel.Visible = true;
msgLb.ForeColor = System.Drawing.Color.Red;
msgLb.Text = "User ID already in use !!!";
ResetControls(Page.Controls);
ResetDropDownList();
break;
case -99:
ClosePanels();
messagePanel.Visible = true;
generalDetailsPanel.Visible = true;
studentPanel.Visible = true;
msgLb.ForeColor = System.Drawing.Color.Red;
msgLb.Text = "An error occured will processing request. Contact
Administrator"+ "</br>" + Session["msg"].ToString();;
ResetControls(Page.Controls);
ResetDropDownList();
break;
}
}
catch (Exception ex)
{
ErrorMgt.WriteLog(ex);
ClosePanels();
messagePanel.Visible = true;
generalDetailsPanel.Visible = true;
msgLb.ForeColor = System.Drawing.Color.Red;
msgLb.Text = "An error occured will processing request. Contact Administrator";
}

}

//Saving Staff Details
protected void staffRegisterBtn_Click(object sender, EventArgs e)
{
try
{
UserBEL.Instance.first_name = firstNameTextBox.Text;
UserBEL.Instance.middle_name = middleNameTextBox.Text;
UserBEL.Instance.last_name = lastNameTextBox.Text;
UserBEL.Instance.gender = (maleRadBtn.Checked) ? "Male" : "Female";
UserBEL.Instance.email = emailTextBox.Text;
UserBEL.Instance.phone_number = personalPhoneNumberTextBox.Text;
UserBEL.Instance.home_phone_number = homePhoneNumberTextBox.Text;
UserBEL.Instance.home_address = addressTextBox.Text;
UserBEL.Instance.user_status = statusDropDownList.SelectedValue;
UserBEL.Instance.cos = cosRadList.SelectedItem.Text;
UserBEL.Instance.user_id = staffIDTextBox.Text;
UserBEL.Instance.others = (cosRadList.SelectedItem.Text == "OTHERS") ?
othersTextBox2.Text : null;
UserBEL.Instance.college_id =
Convert.ToInt32(staffCollegeDropDown.SelectedValue);
UserBEL.Instance.department_id =
Convert.ToInt32(staffDepartmentDropDown.SelectedValue);
UserBEL.Instance.library_department = null;
UserBEL.Instance.user_level = null;
UserBEL.Instance.yoa = null;
UserBEL.Instance.hostel = null;
UserBEL.Instance.room_number = null;

UserBEL.Instance.nos = null;
UserBEL.Instance.user_status = statusDropDownList.SelectedValue;
UserBEL.Instance.yoe = Convert.ToInt32(yoeDropDown.SelectedValue);
UserBEL.Instance.user_picture = profilePicture.ImageUrl;
UserBEL.Instance.dor = staffDorLb.Text;
UserBEL.Instance.user_category =
userCategoryDropDown.SelectedItem.Text.ToString();

OperationResultInfo result = UserBLL.AddUser(UserBEL.Instance.first_name,
UserBEL.Instance.middle_name,
UserBEL.Instance.last_name, UserBEL.Instance.gender,
UserBEL.Instance.phone_number,
UserBEL.Instance.email, UserBEL.Instance.home_address,
UserBEL.Instance.home_phone_number, UserBEL.Instance.user_picture,
UserBEL.Instance.college_id, UserBEL.Instance.department_id,
UserBEL.Instance.library_department,
UserBEL.Instance.user_level, UserBEL.Instance.user_status,
UserBEL.Instance.user_category,
UserBEL.Instance.user_id, UserBEL.Instance.cos, UserBEL.Instance.nos,
UserBEL.Instance.others,
UserBEL.Instance.yoe, UserBEL.Instance.yoa, UserBEL.Instance.dor,
UserBEL.Instance.hostel, UserBEL.Instance.room_number);

switch (result.Status)
{
case 100:
CreatePortalUser();
ClosePanels();
messagePanel.Visible = true;
generalDetailsPanel.Visible = true;
msgLb.ForeColor = System.Drawing.Color.Green;
msgLb.Text = "Registration Completed successfully !!!";
TransactionLog.Instance.WriteLog(10, dorLabel.Text,
(DateTime.Now.TimeOfDay).ToString(), UserInfo.Username, UserInfo.DisplayName,
UserBEL.Instance.first_name, null, null, null);
break;
case -100:
ClosePanels();
messagePanel.Visible = true;
generalDetailsPanel.Visible = true;
staffPanel.Visible = true;
msgLb.ForeColor = System.Drawing.Color.Red;
msgLb.Text = "User ID already in use !!!";
ResetControls(Page.Controls);
ResetDropDownList();
break;
case -99:
ClosePanels();
messagePanel.Visible = true;
generalDetailsPanel.Visible = true;
staffPanel.Visible = true;
msgLb.ForeColor = System.Drawing.Color.Red;
msgLb.Text = "An error occured will processing request. Contact
Administrator";
ResetControls(Page.Controls);
ResetDropDownList();
break;
}
}
catch (Exception ex)
{
ErrorMgt.WriteLog(ex);
ClosePanels();

messagePanel.Visible = true;
generalDetailsPanel.Visible = true;
msgLb.ForeColor = System.Drawing.Color.Red;
msgLb.Text = "An error occured will processing request. Contact Administrator";
}
}




//User Category
protected void userCategoryDropDown_SelectedIndexChanged(object sender, EventArgs e)
{
if (userCategoryDropDown.SelectedItem.Text == "---Select---")
{
ClosePanels();
generalDetailsPanel.Visible = true;
}
else if (userCategoryDropDown.SelectedItem.Text == "Student")
{
ClosePanels();
generalDetailsPanel.Visible = true;
studentPanel.Visible = true;
firstNameValidator.ValidationGroup = "StudentDetails";
middleNameValidator.ValidationGroup = "StudentDetails";
lastNameValidator.ValidationGroup = "StudentDetails";
addressValidator.ValidationGroup = "StudentDetails";
emailValidator.ValidationGroup = "StudentDetails";
homePhoneNumberValidator.ValidationGroup = "StudentDetails";
personalPhoneNumberValidator.ValidationGroup = "StudentDetails";
dorLabel.Text = DateTime.Today.ToString("dd/MM/yyyy");

}
else if (userCategoryDropDown.SelectedItem.Text == "Teaching Staff")
{
ClosePanels();
generalDetailsPanel.Visible = true;
staffPanel.Visible = true;
firstNameValidator.ValidationGroup = "StaffDetails";
middleNameValidator.ValidationGroup = "StaffDetails";
lastNameValidator.ValidationGroup = "StaffDetails";
addressValidator.ValidationGroup = "StaffDetails";
emailValidator.ValidationGroup = "StaffDetails";
homePhoneNumberValidator.ValidationGroup = "StaffDetails";
personalPhoneNumberValidator.ValidationGroup = "StaffDetails";
staffDorLb.Text = DateTime.Today.ToString("dd/MM/yyyy");
}
}

protected void studentCancelBtn_Click(object sender, EventArgs e)
{
Response.Redirect(Globals.NavigateURL());
}

protected void staffCancelBtn_Click(object sender, EventArgs e)
{
Response.Redirect(Globals.NavigateURL());
}

protected void studentCollegeDropDown_SelectedIndexChanged(object sender, EventArgs e)
{
if (studentCollegeDropDown.SelectedValue != "0")
{

studentDepartmentDropDown.Enabled = true;
int college_id = Convert.ToInt32(studentCollegeDropDown.SelectedValue);

DataTable table = (DataTable)UserBLL.LoadDepartment(college_id).ReturnObject;
studentDepartmentDropDown.Items.Clear();
studentDepartmentDropDown.DataSource = table;
studentDepartmentDropDown.DataTextField = "department_name";
studentDepartmentDropDown.DataValueField = "department_id";
studentDepartmentDropDown.DataBind();
studentDepartmentDropDown.Items.Insert(0, new ListItem("---Select---", "0"));
}
else
{
studentDepartmentDropDown.Enabled = false;
studentDepartmentDropDown.SelectedValue = "0";
}

}

protected void staffCollegeDropDown_SelectedIndexChanged(object sender, EventArgs e)
{
if (staffCollegeDropDown.SelectedValue != "0")
{
staffDepartmentDropDown.Enabled = true;
int college_id = Convert.ToInt32(staffCollegeDropDown.SelectedValue);

DataTable table = (DataTable)UserBLL.LoadDepartment(college_id).ReturnObject;
staffDepartmentDropDown.Items.Clear();
staffDepartmentDropDown.DataSource = table;
staffDepartmentDropDown.DataTextField = "department_name";
staffDepartmentDropDown.DataValueField = "department_id";
staffDepartmentDropDown.DataBind();
staffDepartmentDropDown.Items.Insert(0, new ListItem("---Select---", "0"));
}
else
{
staffDepartmentDropDown.Enabled = false;
staffDepartmentDropDown.SelectedValue = "0";
}
}

//Resetting Controls
protected void studentResetBtn_Click(object sender, EventArgs e)
{
ResetControls(Page.Controls);
ResetDropDownList();
Session.Clear();
Session.Abandon();
}

//Resetting Controls
protected void staffResetBtn_Click(object sender, EventArgs e)
{
ResetControls(Page.Controls);
ResetDropDownList();
Session.Clear();
Session.Abandon();
}

/*Creating DNN User*/
public void CreatePortalUser()
{
UserInfo objUser = new UserInfo();

string password = UserController.GeneratePassword(8).ToString();
var roleCtl = new RoleController();

objUser.FirstName = firstNameTextBox.Text;
objUser.LastName = lastNameTextBox.Text;
objUser.IsSuperUser = false;
objUser.Username = (userCategoryDropDown.SelectedValue == "1") ?
matricNumberTextBox.Text : staffIDTextBox.Text;
objUser.DisplayName = firstNameTextBox.Text + " " + lastNameTextBox.Text;
objUser.Email = emailTextBox.Text;
objUser.PortalID = this.PortalId;
objUser.Membership.Password = password;
objUser.Membership.UpdatePassword = true; //enables users to change their password
objUser.Membership.Approved = true;
objUser.Membership.IsOnLine = false;

UserCreateStatus objCreateStatus = UserController.CreateUser(ref objUser);

RoleInfo newRole = roleCtl.GetRoleByName(PortalId, "Library Users");
roleCtl.AddUserRole(PortalId, objUser.UserID, newRole.RoleID, DateTime.MinValue);

StringBuilder message = new StringBuilder();

message.AppendFormat("<table width='400px' align='center'>");
message.AppendFormat("<tr><td colspan='2' align='center'>User Details</td></tr>");
message.AppendFormat("<tr><td align='right'>First Name:</td><td align='left'>" +
objUser.FirstName + "</td></tr>");
message.AppendFormat("<tr><td align='right'>Last Name:</td><td align='left'>" +
objUser.LastName + "</td></tr>");
message.AppendFormat("<tr><td align='right'>Username:</td><td align='left'>" +
objUser.Username + "</td></tr>");
message.AppendFormat("<tr><td align='right'>Password:</td><td align='left'>" +
objUser.Membership.Password + "</td></tr>");
message.AppendFormat("</table>");

string msgBody = message.ToString();

bool mailStatus = SendMail.SendMailToUser(objUser.Email, "Registration Details",
msgBody);

if (mailStatus)
{
Session["msg"] = " Mail sent successfully !!!";
}
else
{
Session["msg"] = " Failed to send mail. Please check your network connectivity
!!!";
}
}

//Sending Mail To User
public void SendMailToUser(string user_email, string mailBody)
{
try
{
MailMessage mailMessage = new MailMessage("dnnapplicationnorply@gmail.com",
user_email);
mailMessage.Subject = "Registration Details";
mailMessage.IsBodyHtml = true;
mailMessage.Body = mailBody;

SmtpClient smtpClient = new SmtpClient();

smtpClient.Send(mailMessage);
}
catch (Exception ex)
{
ErrorMgt.WriteLog(ex);
msgLb.ForeColor = System.Drawing.Color.Red;
msgLb.Text = "Failed to send mail. Please check your network connectivity !!!";
}

}

protected void cosRadList_SelectedIndexChanged(object sender, EventArgs e)
{
if (cosRadList.SelectedItem.Text == "OTHERS")
{
othersTextBox2.Enabled = true;
}
else
{
othersTextBox2.Enabled = false;
}
}

protected void categoryRadList_SelectedIndexChanged(object sender, EventArgs e)
{
if (categoryRadList.SelectedItem.Text == "OTHERS")
{
othersTextBox.Enabled = true;
}
else
{
othersTextBox.Enabled = false;
}
}
}

BOOK REGISTRATION
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Drawing;
using System.Web.UI.WebControls;
using DotNetNuke.Entities.Modules;
using DotNetNuke.Entities.Users;
using BEL;
using BLL;
using Utilities;
using DotNetNuke.Common;
using System.Data;
using System.IO;

public partial class DesktopModules_LMS_Modules_AddBook : PortalModuleBase
{
public void ResetControls(ControlCollection controls)
{
foreach(Control ctrl in controls)
{
if(ctrl is TextBox)

{
((TextBox)ctrl).Text = string.Empty;
}

if(ctrl is System.Web.UI.WebControls.Image)
{
if (((System.Web.UI.WebControls.Image)ctrl).ID.Equals("bookThumbNail"))
{
((System.Web.UI.WebControls.Image)ctrl).ImageUrl = "~/book_thumbnail/no
thumbnail.png";
}
}

ResetControls(ctrl.Controls);
}
}

protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
userLiteral.Text = UserInfo.DisplayName;
msgPanel.Visible = true;

disciplineDropDown.DataSource = (DataTable)BookBLL.LoadDiscipline().ReturnObject;
disciplineDropDown.DataTextField = "discipline";
disciplineDropDown.DataValueField = "discipline_id";
disciplineDropDown.DataBind();
}
}

protected void addBookBtn_Click(object sender, EventArgs e)
{
try
{
BookBEL.Instance.book_title = bookTitleTextBox.Text;
BookBEL.Instance.edition = editionTextBox.Text;
BookBEL.Instance.author = authorTextBox.Text;
BookBEL.Instance.publisher = publisherTextBox.Text;
BookBEL.Instance.yop = Convert.ToInt32(yopTextBox.Text);
BookBEL.Instance.pop = popTextBox.Text;
BookBEL.Instance.copies = Convert.ToInt32(copiesTextBox.Text);
BookBEL.Instance.subject = subjectsTextBox.Text;
BookBEL.Instance.acquisition_type =
Convert.ToInt32(acquisitionDropDown.SelectedValue);

if (acquisitionDropDown.SelectedIndex != 0)
{
BookBEL.Instance.price = null;
}
else
{
BookBEL.Instance.price = Convert.ToInt32(priceTextBox.Text);
}

BookBEL.Instance.cataloger = userLiteral.Text;
BookBEL.Instance.thumbnail = (bookThumbNail.ImageUrl == "~/book_thumbnail/no
thumbnail.png") ? "~/book_thumbnail/no image.png" : bookThumbNail.ImageUrl;
BookBEL.Instance.isbn = isbnTextBox.Text;
BookBEL.Instance.book_description = descriptionTextBox.Text;
BookBEL.Instance.discipline_id =
Convert.ToInt32(disciplineDropDown.SelectedValue);

BookBEL.Instance.subDiscipline_id =
Convert.ToInt32(subDisciplineDropDown.SelectedValue);
BookBEL.Instance.book_type = Convert.ToInt32(bookTypeDropDown.SelectedValue);
BookBEL.Instance.book_location =
Convert.ToInt32(bookLocationDropDown.SelectedValue);
BookBEL.Instance.book_label = barcodeTextBox.Text;
BookBEL.Instance.vetted_by = vetTextBox.Text;

OperationResultInfo result = BookBLL.AddBooks(BookBEL.Instance.book_title,
BookBEL.Instance.edition, BookBEL.Instance.author, BookBEL.Instance.publisher,
BookBEL.Instance.yop,
BookBEL.Instance.pop, BookBEL.Instance.copies, BookBEL.Instance.subject,
BookBEL.Instance.acquisition_type, BookBEL.Instance.price, BookBEL.Instance.cataloger,
BookBEL.Instance.thumbnail, BookBEL.Instance.isbn,
BookBEL.Instance.book_description, BookBEL.Instance.discipline_id,
BookBEL.Instance.subDiscipline_id, BookBEL.Instance.book_type,
BookBEL.Instance.book_location,
BookBEL.Instance.book_label, BookBEL.Instance.vetted_by);

switch(result.Status)
{
case 100:
msgPanel.Visible = true;
msgLabel.ForeColor = Color.Green;
msgLabel.Text = "Book registration completed successfully";
TransactionLog.Instance.WriteLog(20, DateTime.Now.ToString("dd/MM/yyyy"),
DateTime.Now.ToShortTimeString(), UserInfo.Username,
UserInfo.DisplayName, null, BookBEL.Instance.book_title, null, null);
Session.Clear();
Session.Abandon();
break;
case -100:
msgPanel.Visible = true;
msgLabel.ForeColor = Color.Red;
msgLabel.Text = "Book title already exist";
break;
case -99:
msgPanel.Visible = true;
msgLabel.ForeColor = Color.Red;
msgLabel.Text = "An error occured will processing request. Contact
Administrator !!!";
break;
}
}
catch(Exception ex)
{
ErrorMgt.WriteLog(ex);
msgPanel.Visible = true;
msgLabel.ForeColor = Color.Red;
msgLabel.Text = "An error occured while registering the book. Contact
Administrator !!!";
}
}

protected void cancelBtn_Click(object sender, EventArgs e)
{
Response.Redirect(Globals.NavigateURL());
}

protected void resetBtn_Click(object sender, EventArgs e)
{
ResetControls(Page.Controls);
Session.Clear();

Session.Abandon();
}

protected void disciplineDropDown_SelectedIndexChanged(object sender, EventArgs e)
{
if(disciplineDropDown.SelectedValue != "0")
{
subDisciplineDropDown.Enabled = true;
subDisciplineDropDown.Items.Clear();
subDisciplineDropDown.DataSource =
(DataTable)BookBLL.LoadSubDiscipline(Convert.ToInt32(disciplineDropDown.SelectedValue)).Retur
nObject;
subDisciplineDropDown.DataTextField = "sub-discipline";
subDisciplineDropDown.DataValueField = "sub-discipline_id";
subDisciplineDropDown.DataBind();
subDisciplineDropDown.Items.Insert(0, new ListItem("---Select---", "0"));
}
else
{
subDisciplineDropDown.Enabled = false;
subDisciplineDropDown.SelectedValue = "0"; } }
protected void acquisitionDropDown_SelectedIndexChanged(object sender, EventArgs e)
{
if (acquisitionDropDown.SelectedItem.Text == "Purchase")
{
priceTextBox.Enabled = true;
priceValidator.Enabled = true;
}
else
{
priceTextBox.Enabled = false;
priceValidator.Enabled = false;
}
}

protected void uploadBtn_Click(object sender, EventArgs e)
{
thumbNailUploadPopUp.Show();
if (thumbNailUpload.HasFile)
{
string extension = Path.GetExtension(thumbNailUpload.FileName);

if (extension.ToLower() == ".png" || extension.ToLower() == ".jpg")
{
thumbNailUpload.PostedFile.SaveAs(Server.MapPath("~/book_thumbnail/") +
thumbNailUpload.FileName);
Session["image_name"] = thumbNailUpload.FileName;
messageLabel.ForeColor = Color.Green;
messageLabel.Text = "image uploaded successfully";
}
else
{
messageLabel.ForeColor = Color.Red;
messageLabel.Text = "Only images of .png or .jpg are allowed";
}
}
else
{
messageLabel.ForeColor = Color.Red;
messageLabel.Text = "No file has been selected";
}
}


protected void closeBtn_Click(object sender, EventArgs e)
{
if (Session["image_name"] != null)
{
bookThumbNail.ImageUrl = "~/book_thumbnail/" +
(Session["image_name"]).ToString();
}
else
{
bookThumbNail.ImageUrl = "~/book_thumbnail/no thumbnail.png";
}

}

protected void bookThumbNail_Click(object sender, ImageClickEventArgs e)
{
thumbNailUploadPopUp.Show();
messageLabel.Text = string.Empty;
}
}

BOOK TRANSACTION [FINE PAYMENT]
using DotNetNuke.Entities.Modules;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;
using Utilities;

public partial class DesktopModules_LMS_Modules_FinePayment : PortalModuleBase
{
public void ClosePanels()
{
messagePanel.Visible = false;
studentFinePaymentPanel.Visible = false;
staffFinePaymentPanel.Visible = false;
}

protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
ClosePanels();
}
}

protected void recordTypeDropDown_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
if (Convert.ToInt32(recordTypeDropDown.SelectedValue) == 0)
{
ClosePanels();
}
else if (Convert.ToInt32(recordTypeDropDown.SelectedValue) == 100)

{
ClosePanels();
DataTable table =
(DataTable)BookTransactionBLL.LoadFineRecords(Convert.ToInt32(recordTypeDropDown.SelectedValu
e)).ReturnObject;
studentFineGrid.DataSource = table;
studentFineGrid.DataBind();
studentFinePaymentPanel.Visible = true;
studentRecordExportBtn.Enabled = (table.Rows.Count > 0) ? true : false;
}
else if (Convert.ToInt32(recordTypeDropDown.SelectedValue) == 200)
{
ClosePanels();
DataTable table =
(DataTable)BookTransactionBLL.LoadFineRecords(Convert.ToInt32(recordTypeDropDown.SelectedValu
e)).ReturnObject;
staffFineGrid.DataSource = table;
staffFineGrid.DataBind();
staffFinePaymentPanel.Visible = true;
staffRecordExportBtn.Enabled = (table.Rows.Count > 0) ? true : false;
}
}
catch(Exception ex)
{
ErrorMgt.WriteLog(ex);
messagePanel.Visible = true;
messageLabel.ForeColor = Color.Red;
messageLabel.Text = "An error occured. Contact Administrator if error persists";
}
}

protected void studentRecordExportBtn_Click(object sender, EventArgs e)
{
try
{
GridViewToExcel.ExportToExcel(studentFineGrid, "Student Fine Records");
}
catch (Exception ex)
{
ErrorMgt.WriteLog(ex);
messagePanel.Visible = true;
messageLabel.ForeColor = Color.Red;
messageLabel.Text = "An error occured. Contact Administrator if error persists";
}
}

protected void staffRecordExportBtn_Click(object sender, EventArgs e)
{
try
{
GridViewToExcel.ExportToExcel(staffFineGrid, "Staff Fine Records");
}
catch (Exception ex)
{
ErrorMgt.WriteLog(ex);
messagePanel.Visible = true;
messageLabel.ForeColor = Color.Red;
messageLabel.Text = "An error occured. Contact Administrator if error persists";
}
}
}


APPENDIX 2: TRANSACT-SQL STATEMENTS
USER REGISTRATION
ALTER PROCEDURE [dbo].[LMS_AddUser]
(
@first_name VARCHAR(50),
@middle_name VARCHAR(50),
@last_name VARCHAR(50),
@gender VARCHAR(7),
@phone_number VARCHAR(50),
@email VARCHAR(50),
@home_address VARCHAR(50),
@home_phone_number VARCHAR(50),
@user_picture VARCHAR(MAX),
@college_id INTEGER,
@department_id INTEGER,
@library_department VARCHAR(50),
@user_level int,
@user_status VARCHAR(50),
@user_category VARCHAR(50),
@user_id VARCHAR(50),
@cos VARCHAR(50),
@nos VARCHAR(50),
@others VARCHAR(50),
@yoe INT,
@yoa INT,
@dor VARCHAR(50),
@hostel VARCHAR(50),
@room_number NCHAR(10)
)
AS
BEGIN
IF EXISTS (SELECT userID FROM LMS_Users WHERE userID = @user_id)
BEGIN
SELECT -100
END
ELSE
BEGIN
INSERT INTO dbo.LMS_Users (first_name, middle_name, last_name,
gender, phone_number, email, home_address, home_phone_number,
user_picture, college_id, department_id, library_department, user_level,
user_status, user_category, userID, cos, nos, others, yoe, yoa, dor, hostel, room_number)
VALUES (
@first_name, @middle_name, @last_name, @gender,
@phone_number, @email, @home_address, @home_phone_number,
@user_picture, @college_id, @department_id,
@library_department, @user_level, @user_status, @user_category, @user_id, @cos, @nos,
@others, @yoe, @yoa, @dor, @hostel, @room_number
)
SELECT 100
END
END





BOOK REGISTRATION
ALTER PROCEDURE [dbo].[LMS_AddBooks]
(
@book_title VARCHAR(MAX),
@edition VARCHAR(10),
@author VARCHAR(50),
@publisher VARCHAR(50),
@yop INTEGER,
@pop VARCHAR(50),
@copies INTEGER,
@subjects VARCHAR(50),
@acquisition_type INTEGER,
@price INTEGER,
@name_of_cataloger VARCHAR(50),
@book_thumbnail VARCHAR(MAX),
@isbn VARCHAR(50),
@description VARCHAR(MAX),
@discipline_id INTEGER,
@subDiscipline_id INTEGER,
@book_type INTEGER,
@book_location INTEGER,
@barcode_label VARCHAR(50),
@vetted_by VARCHAR(50)
)
AS
BEGIN
IF EXISTS(SELECT book_title FROM LMS_Books WHERE
[dbo].[LMS_RemoveAllSpaces](book_title) = [dbo].[LMS_RemoveAllSpaces](@book_title))
BEGIN
SELECT -100
END
ELSE
BEGIN
INSERT INTO dbo.LMS_Books (book_title, edition, author, publisher,
year_of_publication, place_of_publication, copies, number_of_pages, subjects,
acquisition_type, book_price, cataloger, book_thumbnail, isbn, illustrated, classmark,
book_description, discipline_id, subdiscipline_id, book_type, book_location, barcode_label,
book_availability, vetted_by)
VALUES (@book_title, @edition, @author, @publisher,
@yop, @pop, @copies, NULL, @subjects, @acquisition_type,
@price,
@name_of_cataloger, @book_thumbnail, @isbn, NULL, NULL,
@description, @discipline_id, @subDiscipline_id, @book_type,
@book_location,
@barcode_label, 1, @vetted_by)
DECLARE @accession_number AS VARCHAR(50), @counter AS INTEGER, @book_id AS
INTEGER
SELECT @book_id = book_id FROM dbo.LMS_Books WHERE book_title = @book_title
SET @counter = 0

WHILE (@counter < @copies)
BEGIN
SELECT @accession_number = CASE WHEN LEN(random_number) < 6 THEN
REPLICATE('0', 6-LEN(random_number))+''+random_number ELSE random_number
END
FROM dbo.LMS_RandomNumber
UPDATE dbo.LMS_RandomNumber SET random_number = (CONVERT(INTEGER,
random_number) + 1)
INSERT INTO LMS_AccessionNumber (book_id, accession_number) VALUES
(@book_id, @accession_number)
SET @counter = @counter + 1
END

SELECT 100
END
END

BOOK TRANSACTION [ISSUE BOOK]
ALTER PROCEDURE [dbo].[LMS_IssueBook]
(
@accession_number VARCHAR(50),
@user_id VARCHAR(50),
@issuer_username VARCHAR(50),
@date_issued DATE,
@due_date DATE,
@renew_status INTEGER,
@return_status INTEGER
)
AS
BEGIN
IF EXISTS (SELECT * FROM LMS_Issued_Books WHERE accession_number = @accession_number
AND userID = @user_id AND renew_status = 0 AND return_status = 0)
BEGIN
SELECT -100
END
ELSE
BEGIN
INSERT INTO LMS_Issued_Books (accession_number, userID, issuer_username,
date_issued, due_date, renew_status, return_status)
VALUES (@accession_number, @user_id, @issuer_username, @date_issued, @due_date,
@renew_status, @return_status)
SELECT 100
END

END