Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
100% found this document useful (1 vote)
563 views

Project Document - Library Management System

Library Management System project report. My Final year project report. ASP.NET C#, DotNetNuke, HTML, CSS3.

Uploaded by

Ikechukwu Okey
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
563 views

Project Document - Library Management System

Library Management System project report. My Final year project report. ASP.NET C#, DotNetNuke, HTML, CSS3.

Uploaded by

Ikechukwu Okey
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 102

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.

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

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.

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.

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.

TABLE OF CONTENTS
TITL
.......................................................................................................................................... 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

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

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
Figure
Figure
Figure
Figure
Figure
Figure

3.4 - Sequence Diagram for User Login................................................................34


3.5 - Sequence Diagram for User Registration.....................................................35
3.6 - Sequence Diagram for Book Registration....................................................36
3.7 - Sequence Diagram for Book Check-In And Check-Out ................................37
3.8 - Sequence Diagram for Searching.................................................................38
3.9 - Login Activity Diagram [STUDENT AND STAFF]............................................39
3.10 - Login Activity Diagram [CIRCULATION DESK STAFF]..................................40

Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure

3.11 - Login Activity Diagram [COLLECTION AND DEVELOPMENT STAFF]............41


3.12 - Book Registration Activity Diagram...........................................................42
3.13 - Registration Activity Diagram....................................................................43
3.14 - Search Activity Diagram............................................................................44
3.15 - Class Diagram............................................................................................ 45
3.16 Database Diagram..................................................................................... 46
4.1 Home Page.................................................................................................. 47
4.2 Login Page................................................................................................... 48
4.3 User Management [STUDENT REGISTRATION].............................................49
4.4 User Management [TEACHING STAFF REGISTRATION].................................50
4.5 User Management [LIBRARY STAFF REGISTRATION]....................................50
4.6 User Management [LIST OF EXISTING MEMBERS].......................................51
4.7 User Management [UPDATING EXISTING USER DETAILS].............................51
4.8 Book Management [BOOK REGISTRATION]..................................................52
4.9a Book Management [VIEW LIBRARY STOCK]...............................................52
4.9b Book Management [VIEW LIBRARY STOCK]...............................................53
4.10 Transaction Log......................................................................................... 53
4.11a Fine Records............................................................................................ 54
4.11b Fine Records [STUDENT FINE RECORDS].................................................54
4.11c Fine Records [STAFF FINE RECORDS].......................................................55
4.12a Classmark Books..................................................................................... 55
4.12b Classmark Books..................................................................................... 56
4.13 Student Registration..................................................................................57
4.14 Teaching Staff Registration........................................................................57
4.15a Book Transaction..................................................................................... 58
4.15b Book Transaction [ISSUE BOOK]...............................................................58
4.15c Book Transaction [FINE PAYMENT]............................................................59
4.16a Fine Records............................................................................................ 59
4.16b Fine Records [STUDENT FINE RECORDS].................................................60
4.16c Fine Records [STAFF FINE RECORDS].......................................................60
4.17 Reservations.............................................................................................. 61
4.18 Reminder................................................................................................... 61
4.19 Book Registration...................................................................................... 62
4.20 View Stock................................................................................................. 63
4.21 Notification................................................................................................ 63
4.22a Library Search......................................................................................... 64
4.22b Library Search [BOOK DETAILS]...............................................................65
4.23a Library Page............................................................................................. 65
4.23b Library Collection..................................................................................... 66
4.24 Classmark Books....................................................................................... 66
4.25a E-Book Registration................................................................................. 67
4.25b E-Book Registration................................................................................. 67

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 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]

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 ebooks, 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
3

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 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 ebooks 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 e4

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.

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:
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.
b.
c.
d.

Microsoft Visual Studio 2012.


ASP.NET in C# will be utilized in server-side programming.
Microsoft SQL Server Management Studio 2012 for the database.
A content management system like DotNetNuke to manage the
contents of the web application.
6

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.

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
7

smoothen the processes done in those sections. Efficiency and effectiveness


are met at certain standards.

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:
8

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

freedom, anti-censorship,

management

tasks

and fundraising tasks.

as

well

Issues

as intellectual

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]
2. Negotiating

borrowing

materials

Wikimedia Foundation, 2013]

from

other

libraries

[Wikipedia.

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]
9

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.]

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]
10

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]

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.

11

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.
[Sivakumar, 2012] defines a library management system (LMS) as a multiuser, 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
12

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
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
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,

ACQUISITION

CATALOGING

13

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
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.

14

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 standalone 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
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.
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
Proposal for acquisition,
Inquiry to book sellers/publishers,
Purchase orders (foreign / local),
Books on approval memos,
Purchase bills,
Payment details of purchase bills,

CATALOGING

CIRCULATION

ACQUISITION

15

Credit notes,
Detailed information about vendors,
Multiple Currencies and conversion rates
Keeping track of receipts of issues, filing
claims for issues not received, preparing
binding orders, etc.

SERIALS CONTROL

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
Helps in the publication of an information
bulletin containing particulars of the latest
additions of books or articles.
Enables users to record their preferred
subjects and change their preferences at
any time either from the web interface or
through the librarian.
This module is responsible for producing
different statistical information required for
library management such as: Distribution o
transactions over working-hours, weekdays, or
Months, Popularity of subjects, Popularity of
item types, Most active or inactive items
and members
Provides for multiple budget heads and
periods, multiple currencies, and periodic
expense tracking. The budget master
database 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.

BULLETIN PRINTING

SELECTIVE DISSEMINATION SERVICE


(SDS)

STATISTICAL ANALYSIS

BUDGET CONTROL SYSTEM

It is also responsible for maintaining the


details for various budget periods. These
16

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.
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.

ON-LINE SEARCH FACILITIES

[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.
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
17

2.
3.
4.
5.

System Design
Programming
System Testing
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
AUTHORIZATION AND AUTHENTICATION
MEMBER MAINTENANCE

BOOK MAINTENANCE

PUBLISHER MAINTENANCE

EMPLOYEE MAINTENANCE

BOOK TRANSACTION
18

FUNCTIONS
ID/Password Checking,
Password Recovery
Add new member,
Edit member,
Print ID card,
Search member
Add new book,
Edit book information,
Generate barcode,
Search book
Add new publisher,
Edit publisher information,
Search publisher
Add new employee,
Edit employee,
Search employee
Rental Module,

Check Reservation,
Return Module,
Fine Module,
Lost Book Module
Transaction Report,
Top 10 Book Report,
Activity Log

REPORT

[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.
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

19

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.
2.
3.
4.

NetBeans IDE 7.0.1


J2EE Technologies JSP, Servlet and JDPC
Oracle 10g Database
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
20

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 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.
21

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.
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
22

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.
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
23

using the SQL [Structured Query Language] Enterprise Manager. The tables
design for the system are:
1.
2.
3.
4.
5.

The Catalogue Table


The Circulation Table
The Serial Table
User Account Table
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.

[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
24

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, 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
25

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.
2.
3.
4.

Requirement Analysis and Definition


System Design Phase
Coding
Testing

[Nair, 2011] explains that the requirement analysis and design stage has to
do with establishing the systems services and goals by consulting the endusers 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.

26

In conclusion the system was developed using a very friendly GUI [Graphical
User Interface] and the implementation was a success.

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
27

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.
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:
28

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 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
29

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

computer

requirements and specifications,

that

system

plus customer

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]
3. POOLED ARCHITECTURE: This type of architecture is designed to
enable efficient scaling and growth of multiple workloads. System
30

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

[Themetisfiles,

and

orchestrated

separately
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]

31

Figure 3.1 - Four-Tier System Architecture Of Proposed System


[Adapted From N. Sivakumar, 2009.]

32

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.

33

34

Figure 3.2 - ER-Diagram for the Proposed Library Management


System

35

Figure 3.3 Use Case Diagram for the Proposed Library


36

Management System
Figure 3.4 - Sequence Diagram for User Login

37

Figure 3.5 - Sequence Diagram for User Registration

38

Figure 3.6 - Sequence Diagram for Book Registration

39

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


40

Figure 3.8 - Sequence Diagram for Searching

41

Figure 3.9 - Login Activity Diagram [STUDENT AND STAFF]

42

Figure 3.10 - Login Activity Diagram [CIRCULATION DESK STAFF]

43

Figure 3.11 - Login Activity Diagram [COLLECTION AND


DEVELOPMENT STAFF]

44

Figure 3.12 - Book Registration Activity Diagram

45

Figure 3.13 - Registration Activity Diagram

46

Figure 3.14 - Search Activity Diagram


47

Figure 3.15 - Class Diagram


48

Figure 3.16 Database Diagram


49

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


50

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

51

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.
2.
3.
4.
5.

USER MANAGEMENT
BOOK MANAGEMENT
TRANSACTION LOG
FINE PAYMENT
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]

52

Figure 4.4 User Management [TEACHING STAFF REGISTRATION]

Figure 4.5 User Management [LIBRARY STAFF REGISTRATION]


53

Figure 4.6 User Management [LIST OF EXISTING MEMBERS]

Figure 4.7 User Management [UPDATING EXISTING USER DETAILS]


54

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]

55

Figure 4.9a Book Management [VIEW LIBRARY STOCK]

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.

56

Figure 4.10 Transaction Log


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

view fine records.

Figure 4.11a Fine Records

57

Figure 4.11b Fine Records [STUDENT FINE RECORDS]

Figure 4.11c Fine Records [STAFF FINE RECORDS]


58

CLASSMARK BOOKS: The classmark books page enables the library


administrator to classmark books.

Figure 4.12a Classmark Books

Figure 4.12b Classmark Books

4.4

Circulation Desk Staf

59

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.
2.
3.
4.
5.

REGISTRATION
BOOK TRANSACTION
FINE PAYMENTS
RESERVATIONS
REMINDER

REGISTRATION: The registration page enables the circulation desk staff to

register new users.


60

Figure 4.13 Student Registration

Figure 4.14 Teaching Staf Registration


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.


61

Figure 4.15a Book Transaction

Figure 4.15b Book Transaction [ISSUE BOOK]

Figure 4.15c Book Transaction [FINE PAYMENT]

62

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

view fine records.

Figure 4.16a Fine Records

63

Figure 4.16b Fine Records [STUDENT FINE RECORDS]

Figure 4.16c Fine Records [STAFF FINE RECORDS]

64

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
65

4.5

Acquisition Staf

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

66

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.

67

Figure 4.21 Notification


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.

68

Figure 4.22a Library Search

69

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

70

Figure 4.23b Library Collection

4.7

Classification Staf

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


4.8

E-Library Administrator
71

The e-library administrator is responsible for adding e-books.

Figure 4.25a E-Book Registration

Figure 4.25b E-Book Registration

CHAPTER FIVE
72

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 ebook 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
73

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.

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.

74

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
75

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/SystemI
mplementation/
14.
Infoplease. The Columbia Electronic Encyclopedia, 6th Ed. Columbia University Press (2013), Library: Evolution [Online]:
http://www.infoplease.com/encyclopedia/entertainment/libraryevolution.html
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]:
76

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

77

APPENDIX 1: SOURCE CODE


USER REGISTRATION
using
using
using
using
using
using
using
using
using
using
using
using
using
using
using
using
using
using
using
using

System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Web;
System.Web.UI;
System.Web.UI.WebControls;
DotNetNuke.Entities.Modules;
DotNetNuke.Entities.Users;
DotNetNuke.Common;
System.Data;
BEL;
BLL;
Utilities;
DotNetNuke.Security.Membership;
DotNetNuke.Security;
DotNetNuke.Security.Roles;
System.Net.Mail;
System.IO;
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
using
using
using
using
using
using
using
using
using
using
using
using
using
using

System;
System.Collections.Generic;
System.Linq;
System.Web;
System.Web.UI;
System.Drawing;
System.Web.UI.WebControls;
DotNetNuke.Entities.Modules;
DotNetNuke.Entities.Users;
BEL;
BLL;
Utilities;
DotNetNuke.Common;
System.Data;
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)).ReturnOb
ject;
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
using
using
using
using
using
using
using
using
using
using

DotNetNuke.Entities.Modules;
System;
System.Collections.Generic;
System.Linq;
System.Data;
System.Drawing;
System.Web;
System.Web.UI;
System.Web.UI.WebControls;
BLL;
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.SelectedValue
)).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.SelectedValue
)).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

You might also like