Sie sind auf Seite 1von 120

School of Science and Technology

Faculty of Information Systems and Technology


LIBRARY BOOK MANAGEMENT SYSTEM
By
KWEINGOTI SHADRACK BENARD
631448

Final year project submitted in partial fulfillment of the


Requirements for the degree of
BSc Information Systems and Technology
SPRING 2014
Supervisor DR. SILVESTER NAMUYE (Ph.D.)

STATEMENT OF ORIGINALITY
I Hereby testify that everything in this project work implementation is written by my own except the
printed or electronic sources I have declared as a citation or as a paraphrase and identified by all the
needed bibliographic information. I know that my project work cannot be accepted with undeclared
sources and that a plagiarism will cause that I fail the Project Implementation Assignment.

Name of the Student:

Signature of the Student:

Date:

Name of the Supervisor:

Signature of Supervisor:

2|Page

Date:

ACKNOWLEDGEMENT
I would like to thank the Almighty God for seeing me through my entire degree program. He kept me
strong physically, emotionally, and spiritually. Moreover, He also gave me the wisdom, knowledge, and
understanding which enabled me to pursue my degree successfully.
I owe special thanks to Dr. Silvester Namuye, Professor of Information Systems and Technology, who
was also the supervisor of this project. He shared his vast experience and knowledge, providing the
necessary guidance from the start to the end of this project. His advice enabled me to finish this project
successfully.
Special thanks to my beloved parents, Dr. Reuben Kweingoti, and Mrs. Helen Asami for their unending
love and support they have provided me in my entire life. It is through their encouragement and constant
prayers that I was able to come this far with my studies.
I would like to thank the rest of my family members and my friends for their contribution towards this
project. Their advice was very helpful.

3|Page

DEFINITIONS, ACRONYMS, AND ABBREVIATIONS


LBMS

Library Book Management System

DBMS

Database Management Systems

GB

Gigabyte

HD

Hard Disk

HTTP

Hyper Text Transmission Protocol

HTML5

Hyper Text Markup Language 5

IEEE

Institute of Electrical & Electronics Engineers

MB

Megabyte

OS

Operating System

PC

Personal Computer

SRS

Software Requirements Specification

SSL

Secure Socket Layer

DFD

Data Flow Diagram

ERD

Entity Relationship Diagram

PHP

Hypertext Processor

MYSQL

Open source database application

TCP/IP

Transmission Control Protocol / Internet


Protocol

LAN

Local Area Network

DFD

Data Flow Diagram

ERD

Entity Relationship Diagram

GUI

Graphical User Interface

4|Page

ABSTRACT
The advent of diverse information technology systems has revolutionized the way of doing things. A
majority of business solutions are automated to meet the changing needs of the end users. Information
systems have proved to be effective in implementing the business processes of most organizations and
institutions across the globe.
Library Book Management System is an online application that was developed and designed with the sole
objective of automating library services. The system was intended to address the current problems
experienced in Narok county libraries, with an emphasis on Maasai Mara University library which has not
fully automated its services. This system aimed at automating the processes of cataloging, book
circulation, fine calculation, card processing, member details maintenance, and reports generation.
A number of tools were used to implement this system. They include: PHP scripting language, HTML5,
JavaScript, JQuery library, Cascading Style Sheets, MySQL 5.3 database running on Wamp Server,
Bootstrap, Microsoft Visio 2010, Microsoft Project 2007, Microsoft Office 2010, Adobe Dreamweaver
CS6, and Adobe Photoshop CS4.
In reference to this systems objectives, a fully automated library book management system was
developed using the aforementioned tools. The systems performance meets users requirements, hence
providing the main benefit of concentrating all the library services and functions within the power of a
mouse click and feeding of data into the system.

5|Page

TABLE OF CONTENTS
STATEMENT OF ORIGINALITY .............................................................................................................. 2
ACKNOWLEDGEMENT ............................................................................................................................ 3
DEFINITIONS, ACRONYMS, AND ABBREVIATIONS ......................................................................... 4
ABSTRACT.................................................................................................................................................. 5
1.

2.

3.

INTRODUCTION .............................................................................................................................. 11
1.1.

Background and Motivation........................................................................................................ 11

1.2.

Problem Statement ...................................................................................................................... 11

1.3.

Project Goal ................................................................................................................................ 12

1.4.

Project Objectives ....................................................................................................................... 12

1.5.

Benefits of the Proposed System ................................................................................................ 12

LITERATURE REVIEW ................................................................................................................... 13


2.1.

Introduction ................................................................................................................................. 13

2.2.

A Look at Automation of Libraries in Institutions of Learning .................................................. 14

2.3.

Functionalities of Automated Library Systems........................................................................... 16

2.4.

Challenges facing Automating Librarys in Kenya .................................................................... 16

2.5.

Conclusion .................................................................................................................................. 17

DESIGN METHODOLOGY .............................................................................................................. 18


3.1.

System feasibility ........................................................................................................................ 18

3.1.1.

Operational feasibility ......................................................................................................... 18

3.1.2.

Technical feasibility ............................................................................................................ 18

3.1.3.

Cultural Feasibility.............................................................................................................. 18

3.1.4.

Economic Feasibility........................................................................................................... 19

3.1.5.

Legal Feasibility.................................................................................................................. 19

3.1.6.

Schedule feasibility ............................................................................................................. 19

3.2.

System Design ............................................................................................................................ 19

3.2.1.
3.3.

System Specification ........................................................................................................... 19

System configuration .................................................................................................................. 19

3.3.1.

System Modules .................................................................................................................. 19

3.3.2.

System Services .................................................................................................................. 20

3.3.2.2.1.

Security ........................................................................................................................... 23

3.3.2.2.2.

Performance .................................................................................................................... 23

3.3.2.2.3.

Reliability ........................................................................................................................ 24

6|Page

3.3.2.2.3.

Portability ........................................................................................................................ 24

3.3.2.2.4.

Usability .......................................................................................................................... 24

3.3.2.2.5.

Friendliness ..................................................................................................................... 24

3.3.2.2.6.

Privacy ............................................................................................................................ 24

3.3.2.2.7.

Extensibility .................................................................................................................... 24

3.3.3.
4.

System Architecture ............................................................................................................ 25

SYSTEM ANALYSIS AND DESIGN ............................................................................................... 27


4.1.

Site Map of the Library Book Management System ................................................................... 27

4.1.1.

Librarian Portal ................................................................................................................... 28

4.1.2.

Member Portal..................................................................................................................... 29

4.2.

Level 0 DFD (Context Diagram) ................................................................................................ 30

4.3.

Level 1 DFD ............................................................................................................................... 31

4.4.

Use Case Diagram....................................................................................................................... 34

4.4.1.

Login Use Case Narration ................................................................................................... 35

4.4.2.

Maintain User Details Use Case Narration ......................................................................... 36

4.4.3.

Maintain Member Details Use Case Narration ................................................................... 38

4.4.4.

Maintain Book Details Use Case Narration ........................................................................ 40

4.4.5.

Lend Book Use Case Narration .......................................................................................... 42

4.4.6.

Return Book Use Case Narration ........................................................................................ 44

4.4.7.

Reserve Book Use Case Narration ...................................................................................... 45

4.4.8.

Search Book Use Case Narration ........................................................................................ 47

4.4.9.

Search Member Use Case Narration ................................................................................... 48

4.4.10.

File Complaint Use Case Narration .................................................................................... 49

4.4.11.

Generate Report Use Case Narration .................................................................................. 50

4.5.

Sequence Diagrams ..................................................................................................................... 51

4.6.1.

Login Sequence Diagram .................................................................................................... 51

4.6.2.

Maintain User Details ......................................................................................................... 52

4.6.3.

Maintain Member Details ................................................................................................... 53

4.6.4.

Maintain Book Details ........................................................................................................ 54

4.6.5.

Issue Book Sequence .......................................................................................................... 55

4.6.6.

Return Book Sequence ........................................................................................................ 56

4.6.7.

Search Book Sequence ........................................................................................................ 57

7|Page

4.6.8.

Reserve Book Sequence ...................................................................................................... 58

4.6.9.

File Complaint Sequence .................................................................................................... 59

4.6.10.

Generate Report Sequence .................................................................................................. 60

4.6.11.

Search Member Sequence ................................................................................................... 61

4.7.

Activity Diagrams ....................................................................................................................... 62

4.7.1.

Login Activity Diagram ...................................................................................................... 62

4.7.2.

Maintain User Details ......................................................................................................... 62

4.7.4.

Generate Report .................................................................................................................. 63

4.7.5.

Issue Book Activity Diagram .............................................................................................. 64

4.7.6.

Return Book Activity Diagram ........................................................................................... 65

4.7.7.

Search Book Activity Diagram ........................................................................................... 66

4.7.8.

Reserve Book Activity Diagram ......................................................................................... 67

4.7.9.

File Complaint Activity Diagram ....................................................................................... 68

4.8.

Conceptual Design ...................................................................................................................... 69

4.9.

Logical Design (Relational Database Schema) ........................................................................... 71


Normalization.......................................................................................................................... 78

4.10.
5.

IMPLEMENTATION AND RESULTS ............................................................................................. 81


5.1.

The Librarian Access Level .......................................................................................................... 83

5.1.1.

Login Form .......................................................................................................................... 83

5.1.2.

Librarian Profile ................................................................................................................... 84

5.1.3.

Add User.............................................................................................................................. 85

5.1.4.

Users List ............................................................................................................................. 86

5.1.5.

Search User Results ............................................................................................................. 86

5.1.6.

Add Member ....................................................................................................................... 87

5.1.7.

Members List....................................................................................................................... 88

5.1.8.

Search Member ................................................................................................................... 89

5.1.9.

Add Member Card............................................................................................................... 90

5.1.10.

List Member Cards .............................................................................................................. 91

5.1.11.

Search Member Card .......................................................................................................... 91

5.1.12.

Print Card ............................................................................................................................ 92

5.1.13.

List Books ............................................................................................................................ 92

5.1.14.

Search Book......................................................................................................................... 93

8|Page

5.1.15.

Issue Book ........................................................................................................................... 93

5.1.16.

List Members Borrowed Books .......................................................................................... 94

5.1.17.

Search Members Borrowed Books..................................................................................... 94

5.1.18.

Return Book ........................................................................................................................ 95

5.1.19.

Member Fines ..................................................................................................................... 96

5.1.20.

Print Receipt........................................................................................................................ 97

5.1.21.

Generate Reports ................................................................................................................ 97

5.2.

6.

The Member Access Level........................................................................................................... 98

5.2.1.

Member Home Page ........................................................................................................... 98

5.2.2.

Member Profile ................................................................................................................... 99

5.2.3.

Display Books .................................................................................................................... 100

5.2.4.

Search Book....................................................................................................................... 100

5.2.5.

Reserve Book..................................................................................................................... 101

5.2.6.

Check Reservation Status .................................................................................................. 102

5.2.7.

Check History .................................................................................................................... 102

5.2.8.

E-Library ............................................................................................................................ 103

5.2.9.

Change Password .............................................................................................................. 103

5.2.10.

File Complaint ................................................................................................................... 104

SOFTWARE REQUIREMENTS SPECIFICATIONS..................................................................... 105

Preface ...................................................................................................................................................... 105


6.1.

Introduction ............................................................................................................................... 105

6.1.1.

Purpose .................................................................................................................................. 105

6.1.2.

Overview ............................................................................................................................... 105

6.2.

The Overall Descriptions .......................................................................................................... 105

6.2.1.

Product Perspective ............................................................................................................... 105

6.2.1.1.

System Interfaces .......................................................................................................... 105

6.2.1.2.

User Interface ................................................................................................................ 105

6.2.1.3.

Hardware Interface ........................................................................................................ 106

6.2.1.4.

Software Interface ......................................................................................................... 106

6.2.1.5.

Communication Interface .............................................................................................. 106

6.2.1.6.

Memory Constraints ...................................................................................................... 106

6.2.1.7.

Operations ..................................................................................................................... 106

9|Page

6.2.1.8.

Site Adaptation Requirements ...................................................................................... 107

6.2.2.

Product Functions ................................................................................................................. 107

6.2.3.

User Characteristics .............................................................................................................. 107

6.2.4.

General Constraints ............................................................................................................... 107

6.2.5.

Assumptions and Dependencies............................................................................................ 108

6.3. Specific Requirements ...................................................................................................................... 108


External Interfaces ................................................................................................................ 108

6.3.1.

6.3.1.1.

User Interface ................................................................................................................ 108

6.3.1.2.

Hardware Interface ........................................................................................................ 108

6.3.1.3.

Software Interface ......................................................................................................... 108

6.3.1.4.

Communication Interface .............................................................................................. 109

6.4.
7.

8.

Design Constraints .................................................................................................................... 109

RECOMMENDATIONS AND CONCLUSIONS ........................................................................... 110


7.1.

Limitations ................................................................................................................................ 110

7.2.

Recommendations ..................................................................................................................... 110

7.3.

Conclusions ............................................................................................................................... 110

REFERENCES ................................................................................................................................. 111

APPENDIX ............................................................................................................................................... 112


Appendix 1 a. Schedule of Project Activities ....................................................................................... 112
Appendix 2 a. Books Report .................................................................................................................. 112
Appendix 2 b. Members Reports .......................................................................................................... 112
Appendix 2 c. Member Fines Report .................................................................................................... 113
Appendix 2 d. General Authors, Publishers, and Books Details Report................................................ 113
Appendix 2 e. Category Details Report ................................................................................................. 113
Appendix 2 f. Publishers Report............................................................................................................ 113
Appendix 2 g. Authors Report............................................................................................................... 114
Appendix 3: CODE ................................................................................................................................ 114

10 | P a g e

CHAPTER ONE

1. INTRODUCTION
1.1.

Background and Motivation

Accelerated technological advancements experienced in the 21st century have enabled automation of
services delivered to the people across the globe. Currently, many libraries have embraced the trend of
automating their services by providing rich electronic resources for research and other purposes to the
public. Maasai Mara University library was established in 2007. The library has grown immensely with
collections expanded from 2000 to more than 30,000 volumes of books, e-book, as well as e-journals.
Despite having come this far, the institution has not yet fully automated their library services hence a need
to replace the system with a fully automated online system that can be accessed by users remotely, from
the comfort of their locations. My motivation to develop this system came from the increased need to
access resources over the internet for purposes of research, increased information technological
advancements that enables service automation, and the governments drive to digitize resources for
extensive research in both public and private universities. The vast knowledge and skills acquired during
the past four years of my study at USIU also motivated me to develop a system that provides a solution to
a problem.

1.2.

Problem Statement

The current system is operated manually. A membership form has to be filled with all the members
details and signed duly. The form is submitted alongside the membership registration fee. The librarian
staff enters this information in the all members records book. A temporary note is issued to the member
as he/she waits for the official membership card. Librarian checks through the book records to find out its
availability before a member can borrow it. A member can borrow a book by producing their cards which
are retained until they return the book. Librarian notes the borrow date and due date on the book card. A
fine is calculated on return of the book. This fine is calculated manually. The manual system poses a
number of challenges which include:

It wastes a lot of time.

Its difficult to process large volumes of information concerning books.

Fines are calculated manually hence accuracy is not guaranteed.

There is no backup for the records hence in case of any exposure to danger, all information gets
lost.

11 | P a g e

A lot of paper work is involved hence more room and staff to handle them which translates to
more costs; making the system expensive.

Its difficult to search where a book is sectioned in the library and its availability.

1.3.

Project Goal

The goal of coming up with this system was to design, develop, and implement a fully automated online
library book management system.

1.4.

Project Objectives

This system has a number of objectives:

To develop a system that ensures the privacy of its users and enable them access it remotely.

To enable easy maintenance of members and book details.

To enable easy retrieval of books by simply searching the system.

To design a system that responds in a timely manner.

To enable easy borrowing and returning of books.

To enable automated fine calculation and reports generation.

To enable a secure and portable database system that eliminates duplicate data.

To ensure a paperless environment.

1.5.

Benefits of the Proposed System

This system improves services delivered to end users. Information can be searched from the system and
the results displayed in a timely manner. Costs incurred are reduced by cutting down the number of
library workforce. Data is saved in the most appropriate manner eliminating duplication and redundancy.
Multiple users can access the system at the same time. The system operates electronically hence ensures
less space is occupied and also presents a paperless working environment. The system has access control
limiting access to restricted areas. User privacy is ensured by providing login functionality which verifies
them to determine their authenticity to access the system. Library staff members are motivated by the
system since it makes work easier. The system has a friendly user interface which is attractive and easy to
use. Information concerning all the library activities is stored in the most secure manner. The systems
database is password protected preventing unauthorized access and it can also be backed up easily.
Repetition of processes is done away with. The system is easy to manage and administer and can be
accessed remotely on any computer connected to the internet.

12 | P a g e

CHAPTER TWO

2. LITERATURE REVIEW
2.1.

Introduction

This chapter reviews information about the Library Management Systems that have already been
researched and developed together with the various approaches used by these systems. Online journals,
articles, publications and books were used to provide information on this topic.
Libraries across the world present a conducive environment where people converge to do their research
and study. Majority of these libraries are situated within the facilities of learning institution. These
libraries play an important role in the entire operation of an institution. (Chweh S.S, 1981) In his journal
titled User criteria for evaluation of library service outlined features of a good library. These include:
Availability of periodicals, good collection of reference material, non-book materials and books, and the
quality of reference services delivered, quite environment for studying, catalog integrity, how services are
friendly and willingness of librarians to help.
The Library Book Management System has been developed with the aim of improving services delivered
to its users. This is made possible by automating all the library services. The system was developed after
evaluating the legacy system which had not automated a majority of its functions. User requirements were
gathered so as to determine the relevant functionality that was needed. This evaluation acted as a
management tool to measure the effectiveness of services delivered to the library users and to identify
disadvantages of the system and the most appropriate way forward.
Book lending systems were created way back in the past centuries even before the computer age. The
French book wheel invention enabled scholars to circulate books by stepping on a pedal that turned a
book table. Albert Cotgreave developed the book indicator back in 1863. It housed smaller versions of the
books making it possible to tell the availability of the book, or if it was overdue. Automation of libraries
began in 1930s. This is when the punch card systems were used to manage book acquisition and
circulation. (Gapen, 1993) Notes; virtual library comprises aspect of remotely accessing services and
content of other libraries, alongside other resources of information. The internet acts as a powerful tool
through which materials can be made available for sharing and access by anyone across the globe.
Libraries have accumulated resources that can provide a good source of information for research and
other use. Making these rich resources available to the general public across the globe is of great
advantage. The aim of technological advancements is to make work easier and ensure efficiency is
realized in all facets of life where its applicable.
13 | P a g e

(Aswal, 2006) Notes; that library automation is the process of interconnecting systems to enable the
sharing of information through networks hence providing access to large volumes of content and
information to users across the globe. The use of the internet and networking has been emphasized a lot.
A library needs the latest technology been used in the 21 century, hence, institutions need to phase out
legacy systems, and embrace automation of all their services.
(Johnson, Houda, & Tony., 2004) Note that a virtual library can connect e-learners to online public library
catalogues, resource rich databases which are licensed and electronic books, materials for research and
learning. These virtual libraries allow users to access them around the globe and at any time so long as
they are connected to the internet. The adoption of the Library Book Management System poses great
benefits to the end users since the system aims at delivering automated services efficiently and effectively
via the internet.

2.2.

A Look at Automation of Libraries in Institutions of Learning

Over the past years, library management systems have been under rapid development. These online
libraries are flexible because they offer a 24hrs access, and operate 7day a week, and 365 days a year.
These library systems enable easy searching of material hence saving time. They enable information that
was only available to a few individuals accessible to everyone. They also help in preserving material that
could otherwise wear off. Original documents are translated into digital formats and archived in
databases.
(Roberts, 1999) A Librarian at Cohen Hillel Academy points out that after automating their library
services; the electronic catalogue was faster, versatile, and easier to use than the old card catalog which
they used before automation. The new system encouraged both students and teachers to do more research
by utilizing the resources offered. The librarian notes that the school library had only automated their
circulation functions which made use of older circulation software. They used this program till 1998 when
they decided to upgrade to the Follett Software Companys Circulation Plus and Catalog which was
computerized. She notes that to motivate the library staff their workload must be simplified and the
technology been used by the school streamlined. This system had a number of advantages:
a. It increased interest in the Library and enabled easy access to resources. This helped both the
students and staff to find electronic resources more easily.
b. It presented a user-friendly technology; whereby the windows platform was easy to use with less
training required. Location of material became easier and it was done promptly.
c. Reports were generated easily hence presenting library staff with the opportunity to manage
library operations effectively.
14 | P a g e

d. The system presented a consistent learning environment and ease of maintenance.


A majority of libraries in Kenya are found in research centers, private and public institutions of learning.
Public universities have the highest volumes of books, journals, research papers, and other collections.
The libraries were set up with the main aim of been used by both the students, teachers, lecturers and staff
members within the institution. There has been a collected effort by the library management to restructure
their services so as to extend them to other outsiders other than the normal users. Many of the libraries are
coming up with information resource centers in the spirit of embracing technology.
(Amollo, 2011) Highlighted the relevance of digitizing libraries as:

It improves and widens access to electronic collections done by other digital libraries.

It enhances the lifetime of information material.

It encourages and facilitates sharing of resources amongst libraries across the world.

It reduces duplication of work.

(Amollo, 2011) Points out a number of initiatives aimed at digitizing libraries in Kenya. One of these
initiatives is the Greenstone digital library software which was engineered by UNESCO back in 2008, and
held at University of Nairobi (UoN). In 2007, Electronic Information for Libraries teamed up with the
Koha Foundation to develop expertise and to grow the network for Greenstone which is a suite of
software for building and distributing digital library collection in South Africa. This foundation was
extended back in 2009 to involve sixteen countries including Kenya. There are three designated National
Centers in Kenya which were established to play a key role organizing training events and supporting
trainees who are undertaking digitization projects or building Greenstone digital library applications.
Such initiatives are aimed at expanding the information technology world to be incorporated in the
libraries so as to make academic resources available to everyone across the world.
Library Book Management System is an online system, which enables its users to access it round the
clock. It has an added functionality for users to feel they are part of the system by displaying their profile
on login and enabling them to update their details.

15 | P a g e

2.3.

Functionalities of Automated Library Systems

A good number of Library Management Systems suppliers have come together with the aim of integrating
a number of functionalities. These include:

The inter library loan modules, incorporated in the circulation system.

Online Public Access Catalogs providing search functionality.

Incorporating resource management software and reading list within OPACs.

Sending users reminders on reservations by using integrated computer telephony.

Serials check-in using Electronic Packing Slip.

The use of Radio Frequency Identification technology for checking stock. The use of RFID tags
to track library material.

(Felstead, 2004) Points out functionalities developed by a number of Library Managements Systems
developers. They comprise of:

Developing digital solutions aimed at managing libraries.

Development of portal programs with the aim of offering users a centralized place to search
resources at ago.

Use of Open URL technology that offer links to reference materials and other useful resources.

Development of electronic resource managing solutions that control licensing and subscription of
information and resources respectively.

2.4.

Challenges facing Automating Librarys in Kenya

Libraries in Kenya are faced with a number of challenges when it comes to automating the library
services. Some of these reasons include:

Lack of sufficient funds to support the entire automation process.

Lack of facilities to run the automated software program.

Lack of the man power with adequate skills to handle the systems.

(Otando, 2011) Highlighted a number of problems encountered in the development of institutional


repositories. They include: inadequate staffing and lack of technical experts for the systems, limited
support from high institution managements levels, lack of sensitization, low funding for the systems, and
non-prioritization institutional repositories within library systems. These issues can be solved if
institutions observe the points mentioned above accordingly.

16 | P a g e

2.5.

Conclusion

The Library Book Management System facilitates the provision of access to large volumes of resources
available online hence enhancing knowledge amongst its users. Knowledge is meant to be shared; hence
this system provides an open environment for all its users to learn from each other by providing a
platform of accessing rich material resources online. The system is also cost effective hence it provides a
great deal for institutions which cannot afford the more expensive library managements systems a chance
to own one. To provide and enhance a useful learning and research oriented environment, libraries should
automate all their services provided to their end users.

17 | P a g e

CHAPTER THREE

3. DESIGN METHODOLOGY

3.1.

System feasibility

A system undergoes a number of feasibility analyses to ascertain if it can be acquired and eventually
adopted. It involves a continuous process that looks at the operational, technical, economic, cultural,
legal, and schedule feasibility of a system among other factors.
3.1.1.

Operational feasibility

Operational feasibility evaluates whether a system is relevant to operate in a particular environment.


Library Book Management System presents a number of features making it operationally feasible.
Reports are generated automatically by a function that retrieves relevant information from the database
and present them to a user in Microsoft Excel formats. The system is easy to use and navigate hence
enables any user with minimal computer skills to use it. The system has incorporated the use of security
features and access levels that allow only authorized users to login. The system is navigable since it
presents users with a number of options to click on and accomplish their functions. It presents an easier
way to capture user input for eventual processing. End users dont need to have technical skills to use the
system.
3.1.2.

Technical feasibility

The system is technically feasible in a number of ways. It was developed using a number of readily
available web development tools. Coding was done using PHP server side scripting language, JavaScript,
Bootstrap, CSS, JQuery, and HTML5. The system made use of MySQL database and Wamp Server
which are open source and cross platform independent.
3.1.3. Cultural Feasibility
Cultural feasibility takes a look at the feelings of the system end users. A number of issues raised by the
end users were put into consideration while designing this system. The system is culturally feasible in a
number of ways. End users can access the system and view their profiles using their respective unique
passwords and usernames. The system has functionality for users to change their passwords. The users
have come to appreciate the system due to its attractive and user friendly nature. The system grants more
access privileges to the librarian unlike other users of the system due to his administrative nature of
tasks.

18 | P a g e

3.1.4. Economic Feasibility


This feasibility looks at the costs incurred in operating the system versus the revenue and accumulated
returns. Library Book Management Systems is economically feasible in the sense that; its cheaper to
acquire, it saves on the cost spend on paper since it operates automatically, the number of employees
needed to operate the system is reduced hence lowering labor costs, and it saves time by facilitating
quicker services to the end users.
3.1.5. Legal Feasibility
This system has minimal licensing issues since it was developed using open source software. This system
is meant to operate in the library, hence its subject to the rules and regulations governing the institution.
3.1.6.

Schedule feasibility

Refer to; Appendix 1 a. Schedule of Project Activities to view the Gantt and Perl chart.

3.2.

System Design

3.2.1.

System Specification

3.2.1.1.

Hardware Specification

3.2.1.2.

Software Specification

Processor:

Intel Pentium IV and above.

Operating System:

Window XP, 7, 8

RAM:

At least 1GB

Language:

PHP

Hard Disk:

At least 80 GB

Database:

MySQL 5.3

Monitor:

17 inch Color Monitor.

Server:

Wamp Server

Processor:

3.0 GHz Processor

Browser:

Peripherals: Mouse and Keyboard

3.3.

System configuration

3.3.1.

System Modules

Mozilla Firefox, Internet Explorer,

Google Chrome.

Library Book Management System is separated into a number of modules. Each module has an interface
within which a number of functions are enabled. The system has access rights to control access to the
modules.
a) Circulation Module
This module has functionality to enable the borrowing and return of books. Fines are also automatically
calculated through this module. It enables easy retrieval of information concerning available, overdue,

19 | P a g e

lost, returned, damaged, and issued books. It displays information about a member alongside the books
they borrow. It notifies a member if the book in their possession is overdue.
b) Cataloging Module
This module enables the librarian to capture a book details in the most appropriate manner. This enables
ease of retrieval of information concerning the book to the end users. With regard to this module, the
system captures all the book details, the respective authors, publishers, category, and its section within the
library. This module
c) Online Public Access Catalogue (OPAC) Module
This module enables members to access books from the convenience of their location. A number of
search criteria are presented to the users where one can search a book by its category, the author, the
publisher, the book code, or the title of the book.
d) Reservation Module
This module enables a member to reserve a book and check the status. It enables librarian to respond to
reservations.
e) Reports Module
This module enables the librarian to generate reports from the system using the reports functionality. The
reports are then displayed in Microsoft Excel formats.
f) User Management Module
Using this module, a librarian can create new users to the system. It also enables them to update the user
details.

3.3.2. System Services


3.3.2.1.
Functional Requirements
The system has a number of functions which include:
a) The system shall enable the librarian to create a new user using the Add User functionality. The
system shall assign users a unique username and password which allows them to access the system.
The system shall enable the librarian to display all the users using the List Users functionality. The
system shall enable the librarian to update or delete a users details. The system shall enable all users
20 | P a g e

to change their passwords using the Change Password functionality. If a user forgets his/her
password, the system shall enable the librarian to reset and issue them new passwords using the
Update User functionality.
b) The system shall enable the librarian to update a members information using the Update Member
functionality. This information comprises of all the members details.
c) The system shall enable the librarian to add a member card using the Add Card functionality. This
enables the necessary information concerning the member to be captured in order to process their
respective cards. The system shall enable the librarian to print the members card using the Print
Card functionality. The system shall enable the librarian to update, display, and search or delete the
members card information from the system using the Update Card, List Card, Search Card or Delete
Card functionalities.
d) The system shall enable the librarian to display all the members registered to the system using the List
Member functionality. The system shall enable the librarian to delete, update, and search a member
using the Delete Member, Update Member, and Search Member functionalities.
e) The system shall enable the librarian to add new books to the system using the Add Book functionality
where he captures all the book details into the system. The system shall enable the librarian to list,
delete, update, and search a book using the List Books, Delete Book, Update Book, and Search Book
functionalities respectively. The system shall enable the librarian to view damaged books, lost books,
overdue books, and returned books using their respective functionalities in the system.
f) The system shall enable the librarian to add new authors to the system using the Add Author
functionality where he captures all the authors details into the system. The system shall enable the
librarian to list, delete, update, and search an author using the List Authors, Delete Author, Update
Author, and Search Author functionalities.
g) The system shall enable the librarian to add new authors books to the system using the Add Author
Book functionality where he captures all the authors books details into the system. The system shall
enable the librarian to list, delete, update, and search an authors books using the List Author Books,
Delete Author Book, and Update Author Book functionalities.
h) The system shall enable the librarian to add publishers to the system using the Add Publisher
functionality where he captures all the publishers details into the system. The system shall enable
the librarian to list, delete, update, and search a publisher using the List Publishers, Delete Publisher,
Update Publisher, and Search Publisher functionalities.
i)

The system shall enable the librarian to add a category to the system using the Add Category
functionality where he captures all the category details into the system. The system shall enable the

21 | P a g e

librarian to list, delete, update, and search a category using the List Category, Delete Category,
Update Category, and Search Category functionalities.
j)

The system shall enable the librarian to add a books category to the system using the Add Book
Category functionality where he captures all the books category details into the system. The system
shall enable the librarian to list, delete, and update a books category using the List Book Category,
Delete Book Category, and Update Book Category functionalities.

k) The system shall enable the librarian to issue a book to a registered member using the Add Lending
functionality where all the information about the issued books is entered. The system shall enable the
librarian to display the books and members who borrowed them using the List Lending functionality.
The system shall enable the librarian to search for a member who borrowed the books using Search
functionality.
l)

The system shall enable the librarian to view member fines and print a receipt for the member. The
system shall enable the librarian to view, list, and update member reservation and member complaints
using their respective functionalities in the system.

m) The system shall enable the librarian to view reports generated by the system. The system shall print
out these reports.
n) The system shall enable the librarian to respond to member complaints by sending them an email
using the Mail functionality after which it allows him/her to delete them using the Delete
functionality.
o) The system shall enable the librarian to list and respond to the visitors feedback using the Manage
feedback functionality. The system shall enable the librarian to delete and update the feedback using
the respective functionalities.
p) The system shall enable the librarian to change his/her password using the Change Password
functionality.
q) The system shall enable users to view and update their profile using the Profile and Update Profile
functionalities respectively.
r) The system shall enable a member to display and search books using the Display Book and Search
Book functionalities.
s) The system shall enable a member to reserve a book if they wish depending on the books availability
and allow them to check the reservation status using the Reserve Book and Check Reservation Status
functionalities respectively.
t)

The system shall enable a member to view their history where they can check their past activities and
outstanding balances using the View History functionality.

u) The system shall enable a member to view books gallery using the Gallery functionality.
22 | P a g e

v) The system shall enable a member to file a complaint using the File Complaint function.
w) The system shall enable a member to change his/her own password using the Change Password
functionality.
3.3.2.2.
3.3.2.2.1.

Non-Functional Requirements
Security

The LBMS has incorporated authorization mechanisms that ensure users access the system according to
the access levels granted to them. This has also ensured that certain functions are assigned to different
modules hence preventing unnecessary communication between some parts of the program.
The system has incorporated the use of mysql_real_escape_string function for all calls to MySQL
database to prevent SQL injection. This function removes any magic quotes added to any input string by
users and properly sanitizes the input. The system has incorporated the aspect of sanitizing user input to
prevent possible hacking by passing any variables received from the $_POST and $_GET arrays through
the mysql_real_escape_string function.
The system has incorporated the use of htmlentities function to prevent HTML injection, Cross Site
Scripting (XSS) and to ensure users privacy and protection. This function prevents malicious users from
inputting java script code that could display itself on the systems website. It also prevents the malicious
users from stealing cookies from the system users which might disclose crucial information like
passwords and usernames. They also prevent them from launching an attack to download Trojan horse on
the users PC.
The system has incorporated the use of a one-way-function, in this case the sha1 function, which is easy
to use and converts strings of text into a random string. This function is impossible to reverse hence
making its output to be safely stored in the database. The sha1 function encrypts user passwords. This
function has an algorithm that passes a string to hash and returns a 40 character hexadecimal number.
3.3.2.2.2.

Performance

3.3.2.2.2.1.

Response Time

The respond time to a user should be within one to two seconds from the request time.
3.3.2.2.2.2.

Throughput

The LBMS shall enable many users to access it concurrently. The volume of transactions will depend
directly on the number of users.

23 | P a g e

3.3.2.2.2.3.

Utilization of Resources

The LBMS shall make use of a MySQL database that can handle close to 5000 records. The system
resources shall be modified in accordance with user requirements.
3.3.2.2.3.

Reliability

The LBMS shall operate 99% of the time. This system has to be reliable due to the important role it plays,
and the crucial data it handles.
3.3.2.2.4.

Accuracy

The LBMS accuracy is determined by the speed of use executed by its users.
3.3.2.2.5.

Access Reliability

The LBMS shall provide access reliability of 99.9%.


3.3.2.2.6.

Availability

The LBRM shall be 100% available to all the users. The users shall be able to use it 24hrs a day, and 365
days a year. This system shall operate 24hrs a day and 7days a week.
3.3.2.2.3.

Portability

The LBMS has been developed and coded using PHP scripts. These scripts run on a windows
environment via the Wamp Server. The codes can be moved from this environment to other platforms like
UNIX and Mac OS supporting other servers like IIS, Apache with PHP scripts and ODBC modules
installed.
3.3.2.2.4.

Usability

The LBMS has a user friendly interface which is self-explanatory and easy to use. It supports any web
browser as an interface making it easily accessible and usable. It requires no specific training on the
users part. Any kind of errors have been handled using a number of formats.
3.3.2.2.5.

Friendliness

The LBMSs has a simple look and feel with highly contrasting colors.
3.3.2.2.6.

Privacy

The LBMS user privacy has to be secured and protected.


3.3.2.2.7.

Extensibility

The LBMS should be expanded in the future to handle more users and books.

24 | P a g e

3.3.3.

System Architecture

The Library Book Management System makes use of a Layered Architecture. Architectural designs have
to incorporate the concept of independence and separation. This allows any changes taking place to be
localized. A layered architecture applies this notion of independence and separation. The systems
functionality is organized and divided into separate layers. Each layer depends on the services offered by
the immediate layer beneath it. The system was developed incrementally allowing users to access some
services provided by the layers as they underwent development. This architecture is also portable and it
can be changed easily. This systems architecture is divided into a number of layers including the web
browser, user interface, core functionality, and the operating system/database.
(a) Operating System, Servers and Database Layer
This layer comprises of the database and operating system which basically acts as the support software
for the system. This system can run on any operating system including Window, Linux, and Mac OS. It
makes use of MySQL database running on Wamp Server. PHP server side scripting language was used to
code the system.
(b) Core functionality Layer
This layer houses:

The application layer which has all the application functionality.

The data access layer which facilitates access to the MySQL database.

(c) User Interface Layer


This layer contains the user interface management. It incorporates the login functionality that
authenticates and verifies the system users.

(d) Web Interface Layer


This layer contains the various web browser applications that provide an interface between the clients and
the inner layer.
The fig 1 shows the Architecture diagram for the Library Book Management System.

25 | P a g e

LIBRARY BOOK MANAGEMENT SYSTEM


Web Browser Interface
Firefox,Google,Internet Explorer Browsers

User Interface
Member
Portal

Staff
Portal

Core Functionality
Staff
Login

Member
Login

Application Layer

Data Access Layer

Operating System & Database


Windows
OS

PHP

Linux
OS

MySQL
Database

Wamp Server

Mac Os
Institution Servers

Fig 1: Layered Architecture diagram for the Library Book Management System

26 | P a g e

4.

4.1.

SYSTEM ANALYSIS AND DESIGN

Site Map of the Library Book Management System

Fig 2: The Site Map of Library Book & Revenue Management System.

27 | P a g e

4.1.1.

Librarian Portal

Fig 3: The Site Map showing the Librarian Portal.

28 | P a g e

4.1.2.

Member Portal

Fig 4: The Site Map showing the Member portal.

29 | P a g e

4.2.

Level 0 DFD (Context Diagram)

LIBRARIAN

Login
Accepted Issue
Login
Or
book
Search
Rejected
Search member
book

Return/reserve book
File complaint
Search book
login

Display Books/
members
Display
reports
Respond to
complaints

LIBRARY BOOK MANAGEMENT SYSTEM

Login accepetd/rejected
Display book
MEMBER

Borrow book
feedback
Issue fines

Fig 5: Context Diagram for Library Book Management System

In the context diagram above, users login the system. They are either accepted or rejected. A member can
reserve a book, borrow a book, return a book, display books, search books, file complaint, and receive
feedback from the system. The system also issues them fines. A librarian can issue a book, search a
member, search a book, display reports, view members, view books, and respond to complaints.

30 | P a g e

4.3.

Level 1 DFD

4.3.1.

Member

member
details

1.
Verify
member

Valid member

Non-valid
member

Member requests
To view profile

member
details

Rejected or
Non- member

2.
View Profile

Member requests
To update profile

3.
Update Profile

Member requests
To search book

4.
Search book

Book details

5.
Display book

member profile
details

members

Updated member
details

Valid
Member

Member requests
To reserve book

Searched book
details

Book details

Book
details

11.
Reserve book

Member book
Reservation details

Reservation
confirmation

Member request
To file complaint

12.
Check
reservation
status

books

reservation
Member
details

Reservation
details

13.
File complaint

Complaint
details

Complaint
feedback

14.
View
complaint
feedback

Fig 6: Level 1 DFD for Member

31 | P a g e

Member
details

Complaint
details

complaint

4.3.2.

Librarian Staff
Staff member
details
Valid staff member

Non-valid staff
member
Valid
Staff Member

Staff member requests


To issue book

Staff member displays


Issued book details

Book is
returned

Fine
details

payment

1.
Verify
member

Staff member
details

members

Rejected or
Non-staff member

6.
Issue book

7.
Display Issued
book

Issued member book details

Issued member book


details

8.
Return book

Returned member
Book details

9.
Calculate Fine

10.
Bill member

Generated
reports

membook

Member book
details

Member
Book
details
Payment details

Payment details

Revenue

15.
Generate
Reports
Required details
To generate reports

LBMS Entire
Database

Fig 7: DFD for Staff Member

In Fig 6 & 7 above, a member can be a librarian staff or a normal member. The system verifies a member
by matching their input details with the ones in the members data store. An error message is issued if the
details are invalid. The members can view and update their profile whose details are retrieved from the
members data store. A member can search and display a book whose details are retrieved from the books

32 | P a g e

data store. A librarian staff can issue a book to members and these details stored in the membook data
store. He/she can display issued books whose details are retrieved from the membook data store. The
librarian staff can returns a book, which had been borrowed by a member, to the system; these details are
stored in the membook data store. Using these details, the system calculates fines and enables the staff to
view them. The staff bills a member and the system stores the details in the revenue data store. A member
can reserve a book. This process requires the respective member details retrieved from members data
store and book details retrieved from books data store. Reservation details are stored in the reservations
data store. A member checks reservation status whose details are retrieved from the reservations data
store. He/she can go ahead and file a complaint whose details are stored in the complaint data store. The
member can view complaint feedback. The system generates reports automatically on request by the
librarian who selects the desired report to be displayed.

33 | P a g e

4.4.

Use Case Diagram

Login

Maintain User
Details
Maintain Member
Details
Maintain Book
Details

Lend Book

Return Book

Librarian

Reserve Book

Search Book

File Complaint

Generate Report

Search Member

Fig 8: Library Book Management System Use Case Diagram.

34 | P a g e

Member

4.4.1. Login Use Case Narration


Login
Use Case Name
This use case shows the process followed by a user before login into
4.4.1.1. Introduction

4.4.1.2. Actors

the Library Book Management System.


I.

Librarian.

II.

Member.

None.
4.4.1.3. Pre-Conditions
If the use case is successful, an actor is logged into the system.
4.4.1.4. Post-Condition

The system state remains unchanged if the use case was not carried
out.
The use case begins when an actor wishes to login to the LBMS.

4.4.1.5. Basic Flow

a. The actor is requested to enter his/her username and


password.
b. The actor then responds by entering their respective login
details.
c. LBMS validates the input login details, and if found
authentic the user is allowed into the system.

4.4.1.6. Alternate Flow

4.4.1.6.1.

Invalid user login details

An error message is displayed if the input username and


password are incorrect.

The actor can decide to login to the system again or the


entire process is cancelled.

The use case ends.

4.4.1.6.2.

Empty Fields Error

An error message is issued if the member did not fill in the


required fields.

An actor should be given a username and password before login to


4.4.1.7. Special Requirements

the system.
None

4.4.1.8. Use Case Relationship

35 | P a g e

4.4.2. Maintain User Details Use Case Narration


Maintain User Details
Use Case Name
This use case enables the librarian to maintain all the LBMSs user
4.4.2.1. Introduction

details, which includes adding, updating, and deleting users from the
system.
Librarian.

4.4.2.2. Actors
Before this use case begins, the librarian must be logged on to the system.
4.4.2.3. Pre-Conditions
User details are update, added, or deleted if the use case was successful.
4.4.2.4. Post-Condition

The system state remains unchanged if the use case was not carried out.
The use case begins when the librarian wishes to add, update, or delete a

4.4.2.5. Basic Flow

user from the system.


I.

This system requests the librarian to specify the action they wish
to perform, which could be to add, delete, or update a user details.

II.

One of the sub-flows executes upon been chosen by the librarian.

If he/she chose add user, the sub-flow executes.

If he/she chose update user, the sub-flow executes.

If he/she chose delete user, the sub-flow executes.

4.4.2.5.1.

Add User

1. The system requests the librarian to enter user details; username


and password.
2. A unique user_id is generated by the system.
3. Upon provision of these details, a user is added to the system.
4.4.2.5.2.

Update User

1. The system requests the librarian to click on the user_id in the


row containing the user details they wish to update.
2. The system retrieves and displays the user details.
3. The librarian makes desired changes in the various inputs
containing the user details.
4. Ones the librarian is done doing the changes; the system updates
the user details.

36 | P a g e

4.4.2.5.3.

Delete User

1. The system requests the librarian to click on the row containing


the user_id to be deleted.
2. The system prompts the librarian to confirm the deletion action,
and then it fetches the respective user details to be deleted.
3. System then deletes the user from the system.
4.4.2.6. Alternate Flow

4.4.2.6.1.

User was not found

An error message is issued by the system in case a user was not


found in any one of the sub-flows carried out.

The librarian then cancels the operation ending this use case.

4.4.2.6.2.

Cancelled Update

If in the update sub-flow the librarian decides to cancel the update


then the process is terminated and basic flow restarted from the
beginning.

4.4.2.6.3.

Cancelled Delete

If in the delete sub-flow the librarian decides to cancel the


deletion then the process is terminated and basic flow restarted
from the beginning.

None
4.4.2.7. Special
Requirements
None
4.4.2.8. Use
Relationship

37 | P a g e

Case

4.4.3. Maintain Member Details Use Case Narration


Maintain Member Details
Use Case Name
This use case enables the librarian to maintain all the LBMSs member
4.4.3.1. Introduction

details, which includes adding, updating, and deleting members from the
system.
Librarian.

4.4.3.2. Actors
Before this use case begins, the librarian must be logged on to the system.
4.4.3.3. Pre-Conditions
Member details are update, added, or deleted if the use case was
4.4.3.4. Post-Condition

successful.
The system state remains unchanged if the use case was not carried out.
The use case begins when the librarian wishes to add, update, or delete a

4.4.3.5. Basic Flow

member from the system.


a. This system requests the librarian to specify the action they wish
to perform, which could be to add, delete, or update a member
details.
b. One of the sub-flows executes upon been chosen by the librarian.

If he/she chose add a member, the sub-flow executes.

If he/she chose update a member, the sub-flow executes.

If he/she chose delete a member, the sub-flow executes.

4.4.3.5.1.

Add Member

a. The system requests the librarian to enter member details. This


include: mem_no, mem_fname, mem_lname, mem_address,
mem_city, mem_state, mem_postcode, mem_phone, mem_email,
mem_occup,

mem_dor,

mem_dob,

user_id,

gende,

and

personalImage.
b. A unique mem_no is generated by the system.
c. Upon provision of these details, a member is added to the system.
4.4.3.5.2.

Update Member

a. The system requests the librarian to click on the mem_no in the


row containing the member details they wish to update.
b. The system retrieves and displays the member details.
38 | P a g e

c. The librarian makes desired changes in the various inputs


containing the member details.
d. Ones the librarian is done doing the changes; the system updates
the member details.
4.4.3.5.3.

Delete Member

a. The system requests the librarian to click on the row containing


the mem_no to be deleted.
b. The system prompts the librarian to confirm the deletion action,
and then it fetches the respective member details to be deleted.
c. System then deletes the member from the system.
4.4.3.6. Alternate Flow

4.4.3.6.1.

Member was not found

An error message is issued by the system in case a member was


not found in any one of the sub-flows carried out.

The librarian then cancels the operation ending this use case.

4.4.3.6.2.

Cancelled Update

If in the update sub-flow the librarian decides to cancel the update


then the process is terminated and basic flow restarted from the
beginning.

4.4.3.6.3.

Cancelled Delete

If in the delete sub-flow the librarian decides to cancel the


deletion then the process is terminated and basic flow restarted
from the beginning.

None
4.4.3.7. Special
Requirements
None
4.4.3.8. Use
Relationship

39 | P a g e

Case

4.4.4. Maintain Book Details Use Case Narration


Maintain Book Details
Use Case Name
This use case enables the librarian to maintain all the LBMSs book
4.4.4.1. Introduction

details, which includes adding, updating, and deleting books from


the system.
Librarian.

4.4.4.2. Actors
Before this use case begins, the librarian must be logged on to the
4.4.4.3. Pre-Conditions

system.
Book details are update, added, or deleted if the use case was

4.4.4.4. Post-Condition

successful.
The system state remains unchanged if the use case was not carried
out.
The use case begins when the librarian wishes to add, update, or

4.4.4.5. Basic Flow

delete a book from the system.


a. This system requests the librarian to specify the action they
wish to perform, which could be to add, delete, or update a
book details.
b. One of the sub-flows executes upon been chosen by the
librarian.

If he/she chose add a book, the sub-flow executes.

If he/she chose update a book, the sub-flow executes.

If he/she chose delete a book, the sub-flow executes.

4.4.4.5.1.

Add Book

a. The system requests the librarian to enter book details. This


include: bk_code, bk_title, pub_id, bk_dop, bk_info,
bk_version,

withdrawn,

bk_qty,

bk_cost,

bk_image,

bk_isbn, and section.


b. A unique bk_code is generated by the system.
c. Upon provision of these details, a book is added to the
system.
4.4.4.5.2.

40 | P a g e

Update Book

a. The system requests the librarian to click on the bk_code in


the row containing the book details they wish to update.
b. The system retrieves and displays the book details.
c. The librarian makes the desired changes in various inputs
containing the book details.
d. Ones the librarian is done doing the changes; the system
updates the book details.
4.4.4.5.3.

Delete Book

a. The system requests the librarian to click on the row


containing the bk_code to be deleted.
b. The system prompts the librarian to confirm the deletion
action, and then it fetches the respective book details to be
deleted.
c. System then deletes the book from the system.
4.4.4.6. Alternate Flow

4.4.4.6.1.

Book was not found

An error message is issued by the system in case a book was


not found in any one of the sub-flows carried out.

The librarian then cancels the operation ending this use case.

4.4.4.6.2.

Cancelled Update

If in the update sub-flow the librarian decides to cancel the


update then the process is terminated and basic flow
restarted from the beginning.

4.4.4.6.3.

Cancelled Delete

If in the delete sub-flow the librarian decides to cancel the


deletion then the process is terminated and basic flow
restarted from the beginning.

None
4.4.4.7. Special Requirements
None
4.4.4.8. Use Case Relationship

41 | P a g e

4.4.5. Lend Book Use Case Narration


Lend Book
Use Case Name
This use case enables the librarian to issue out books to registered
4.4.5.1. Introduction

members.
1. Librarian.

4.4.5.2. Actors

2. Member.
Before this use case begins, the librarian must be logged on to the

4.4.5.3. Pre-Conditions

system.
Books should be available.
A members should provide the librarian with his/her member_no.
A member is issued books if the use case was successful.

4.4.5.4. Post-Condition

The system state remains unchanged if the use case was not carried
out.
The use case begins when the librarian wishes to issue/lend books to a

4.4.5.5. Basic Flow

member.
The librarian choses add lending function to realize this action.
4.4.5.5.1.

Add Lending

a. The system requests the librarian to enter the mem_no in order


to verify their details in the system.
b. The system requests the librarian to enter the bk_code in order
to check the availability of this book.
c. The system requests the librarian to enter additional
information like the borrow_date and the due_date.
d. Ones the librarian provides this details the system updates the
lending.
4.4.5.6. Alternate Flow

4.4.5.6.1.

Book was not found/unavailable

An error message is issued by the system in case a book was


unavailable or not found in the add lending sub-flows.

The librarian then cancels the operation ending this use case.

4.4.5.6.2.

42 | P a g e

Exceeded Limit of books

An error message is issued if the number of books borrowed

by a member exceeds six, and they are not yet returned. At this
point the use case ends.
4.4.5.6.3.

Cancelled Lending

If in the sub-flow the librarian decides to cancel the lending


then the process is terminated and basic flow restarted from
the beginning.

4.4.5.6.4.

Incorrect Inputs Entered

If in the sub-flow the librarian enters the wrong details, an


error message will be issued. The librarian may decide to end
the use case or start at the beginning.

4.4.5.6.5.

Member does not exist.

If a member is not found in the system, an error message is


issued and the use case ends.

Borrowed books should not be more than six.


4.4.5.7. Special Requirements
None
4.4.5.8. Use Case Relationship

43 | P a g e

4.4.6. Return Book Use Case Narration


Return Book
Use Case Name
This use case enables a member to return books.
4.4.6.1. Introduction
1. Librarian.
4.4.6.2. Actors

2. Member.
Before this use case begins, the librarian must be logged on to the

4.4.6.3. Pre-Conditions

system.
A member should have borrowed books.
A member should provide the librarian with his/her mem_no.
A member returns books if the use case was successful.

4.4.6.4. Post-Condition

The system state remains unchanged if the use case was not carried
out.
The use case begins when the member wishes to return the

4.4.6.5. Basic Flow

borrowed books.
The librarian choses update lending function to realize this action.
4.4.6.5.1.

Update Lending

a. The system requests the librarian to enter the mem_no and


the bk_code to verify if they are correct.
b. The system requests the librarian to enter additional
information like the return date, if the book is returned,
and if its damaged or not.
c. Ones the librarian provides this details the system updates
the lending.
d. The system calculates fines automatically.
4.4.6.6. Alternate Flow

4.4.6.6.1.

Incorrect Mem_no and Bk_code

An error message is issued by the system in case a


member provides the wrong details which might be his/her
mem_no, or the bk_code.

The librarian then cancels the operation ending this use


case.

4.4.6.6.2.
44 | P a g e

Cancelled Lending

If in the sub-flow the librarian decides to cancel the


lending then the process is terminated and basic flow
restarted from the beginning.

4.4.6.6.3.

Incorrect Inputs Entered

If in the sub-flow the librarian enters the wrong details, an


error message will be issued. The librarian may decide to
end the use case or start at the beginning.

4.4.6.7. Special Requirements


None
4.4.6.8. Use Case Relationship

4.4.7. Reserve Book Use Case Narration


Reserve Book
Use Case Name
This use case enables a member to reserve books.
4.4.7.1. Introduction
1. Member.
4.4.7.2. Actors

2. Librarian.
Before this use case begins, a member must be logged on to the

4.4.7.3. Pre-Conditions

system.
Member should have the correct bk_code to be reserved and this
book must be available for it to be reserved.
A member reserves books if the use case was successful.

4.4.7.4. Post-Condition

The system state remains unchanged if the use case was not carried
out.
The librarian enables member reservation process to be completed
by responding appropriately to any reservations.
The use case begins when the member wishes to reserve books.

4.4.7.5. Basic Flow

The member choses the reserve book functionality to realize this


action.
The following sub-flows take place:

If a member chooses to add reservation, the sub-flow will be


executed.

45 | P a g e

If a member chooses to cancel reservation, the sub-flow will


be executed.

If a member chooses to check reservation status, the subflow will be executed.

If a librarian chooses to update reservation, the sub-flow will


be executed.

If the librarian chooses to delete reservation, the sub-flow


will be executed.

4.4.7.5.1.

Add Reservation

a. The system requests the member to enter mem_no and


bk_code.
b. The system requests the member to enter additional
information like the reserve date, and pick date.
c. Ones the member provides this details the system updates
the reservation.
4.4.7.5.2.

Update Reservation

a. The system requests the librarian to click on the row


containing a member reservation that they wish to update.
b. The system is querried fetching all the reservation details
c. Ones the librarian is done doing the desired changes, the
system updates the reservation.
4.4.7.5.3.

Check Reservation Status

The system enables a member to click on this function in


order to view the reservation status.

4.4.7.5.4.

Cancel Reservation

The system enables a member to cancel a reservation if they


so wish.

4.4.7.5.5.

Delete Reservation

The system requests the librarian to select the row


containing the reservation_no to be deleted.

46 | P a g e

The system prompts the librarian if they would like to go


ahead with the deletion action.

The system queries the database, fetching the respective


reservation details.

4.4.7.6. Alternate Flow

The reservation is deleted.

4.4.7.6.1.

Cancelled Reservation

If in the sub-flow a member decides to cancel reservation


then the process is terminated and basic flow restarted from
the beginning.

4.4.7.6.2.

Unavailable book

If in the sub-flow a member enters the details of a book


which is not available, an error message will be issued.

4.4.7.7. Special Requirements

A member should know the book details before reserving it.

The base case involves querying and updating the database case.
4.4.7.8. Use Case Relationship

The base case involves updating the reservation case.

4.4.8. Search Book Use Case Narration


Search Book
Use Case Name
This use case enables users to search for books by category, title, author,
4.4.8.1. Introduction

book code, or publisher.


1. Librarian.

4.4.8.2. Actors

2. Member.
Before this use case begins, a user must be logged on to the system.

4.4.8.3. Pre-Conditions

Book must available for searching.


A user is presented with search results if the use case was successful.

4.4.8.4. Post-Condition

The system state remains unchanged if the use case was not carried out.
The use case begins when a user wishes to search for a book in the

4.4.8.5. Basic Flow

system.
The user choses the search function to realize this action.

47 | P a g e

4.4.8.5.1.

Search Book

a. The system requests the user to select search criteria.


b. The system queries the database to fetch the book details and
displays the results to the user.
4.4.8.6. Alternate Flow

4.4.8.6.1.

Incorrect Inputs

An error message is issued by the system in case a user enters the


wrong details to be searched.

4.4.8.6.2.

Search Results Not Found

An error message is issued in case the search results were not


found.

None.
4.4.8.7. Special
Requirements
The base case involves querying the database.
4.4.8.8. Use

Case

Relationship

4.4.9. Search Member Use Case Narration


Search Book
Use Case Name
This use case enables the librarian to search for a member.
4.4.9.1. Introduction
1. Librarian.
4.4.9.2. Actors
Before this use case begins, the librarian must be logged on to the
4.4.9.3. Pre-Conditions

system.
A member must be registered to the system to enable them to be
searched.
The librarian is presented with search results containing the respective

4.4.9.4. Post-Condition

member details if the use case was successful.


The system state remains unchanged if the use case was not carried
out.
The use case begins when the librarian wishes to search for a member

4.4.9.5. Basic Flow

48 | P a g e

in the system.

The librarian choses the search function to realize this action.


4.4.9.5.1.

Search Member

a. The system requests the librarian to enter the mem_no to be


searched.
b. The system queries the database to fetch the member details
and displays them.
4.4.9.6. Alternate Flow

4.4.9.6.1.

Incorrect Inputs

An error message is issued by the system in case the librarian


enters the wrong details to be searched.

4.4.9.6.2.

Search Results Not Found

An error message is issued in case the search results were not


found.

None.
4.4.9.7. Special Requirements
The base case involves querying the database.
4.4.9.8. Use Case Relationship

4.4.10.

File Complaint Use Case Narration


File Complaint

Use Case Name


This use case enables a member to file a complaint and the
4.4.10.1.

Introduction

4.4.10.2.

Actors

4.4.10.3.

Pre-Conditions

4.4.10.4.

Post-Condition

librarian to respond to the complaint via mail.


1. Librarian.
2. Member.
Before this use case begins both the actors must be logged on
to the system.

A member files complaint if the use case was successful.


The system state remains unchanged if the use case was not
carried out.
The use case begins when the member wishes to file a
4.4.10.5.

Basic Flow

complaint.
The member choses the file compliant function.

49 | P a g e

4.4.10.5.1. File Complaint


a) The system requests the member to enter the mem_no,
compliant date, email, phone, and notes.
b) Ones they provide this details, a complaint is filed.
4.4.10.5.2. Update Complaint
a) The system requests the librarian to respond to the
complaint by email.
b) The system requests the librarian to select the row
containing the complaint_id to be updated; the system
is queried displaying the compliant details.
c) The librarian checks that they have responded to the
complaints.
d) Ones done, the compliant is updated.
4.4.10.6.

Alternate Flow

4.4.10.6.1. Incorrect Inputs

An error message is issued by the system in case the


member enters the wrong details in the inputs.

None.
4.4.10.7.

Special Requirements

4.4.10.8.

Use Case Relationship

4.4.11.

Generate Report Use Case Narration

The base case involves querying the database.

Generate Reports
4.4.12. Use Case Name
This use case enables the librarian to generate reports.
4.4.12.1.

Introduction

4.4.12.2.

Actors

4.4.12.3.

Pre-Conditions

4.4.12.4.

Post-Condition

1. Librarian.
Before this use case begins the librarian must be logged in the
system.

The librarian generates and views reports if the use case was
successful.
The system state remains unchanged if the use case was not

50 | P a g e

carried out.
The use case begins when the librarian wishes to generate
4.4.12.5.

Basic Flow

reports.
He/she choses the generate report function.
4.4.12.5.1. Generate Report
a) The system requests the librarian to click on the
desired report to generate.
b) Ones they provide this details, the system is queried
fetching all the details concerning the selected report
to be generated.
c) A report is then generated and displayed.
None

4.4.12.6.

Alternate Flow

4.4.12.7.

Special Requirements

4.4.12.8.

Use Case Relationship

None.
The base case involves querying the database.

4.5.

Sequence Diagrams
4.6.1.

Login Sequence Diagram

user

: login user

: verify user

:user details

1. Enter username and


password
2. submit details

User can be a
librarian or
member

3. Get user details

4. verify user details

5. Success
or
Error message

51 | P a g e

Fig 9: Login Sequence Diagram


Process:
1. Enter username and password.
2. Submit details.
3. Get user details from the users data store.
4. Verify user details.
5. Issue a success or error message.
4.6.2.

: Librarian

Maintain User Details

: User Details Form

:User Details Controller

: User Details

1. Enter User Details

2. Submit User Details


3. Add/Update User Details

4. User Successfully
Added/Updated
5. Select row containing
user id to be
deleted
6. Submit user id
7. Delete User
Details

8. Delete Successful
or
Error message

Fig 10: Maintain User Details Sequence Diagram


Process:
1. Enter user details.
2. Submit the user details.
52 | P a g e

3. Add/Update the user details.


4. Issue success or error message.
5. Select row containing user id to be deleted.
6. Submit user id.
7. Delete user details.
8. Success or error message.
4.6.3.

Maintain Member Details

: Member
Details Form

: Librarian

1. Enter Member
Details

: Member Details
Controller

: Member Details

2. Submit Member
Details

3. Add/Update Member
Details

4. Success or
Error Message
5. Select row
containing member no
to be deleted

6. Submit member no

8. Success
or
Error Message

Fig 11: Maintain Member Details Sequence Diagram


Process:
1. Enter member details.
2. Submit the member details.
53 | P a g e

7. Delete Member
Details

3. Add/update member details.


4. Issue success or error message.
5. Select row containing member number to be deleted.
6. Submit member number.
7. Delete member details.
8. Success or error message.
4.6.4.

Maintain Book Details

: Book
Details Form

: Librarian

1. Enter Book
Details

: Book Details
Controller

: Book Details

2. Submit Book
Details
3. Add/Update Book
Details

4. Success or
Error Message
5. Select row
containing book code
to be deleted

6. Submit book code

8. Success
or
Error Message

Fig 12: Maintain Book Details Sequence Diagram


Process:
1. Enter book details.
54 | P a g e

7. Delete Book
Details

2. Submit the book details.


3. Add/update book details.
4. Issue success or error message.
5. Select row containing book code to be deleted.
6. Submit book code.
7. Delete book details.
8. Success or error message.
4.6.5.

: Librarian

Issue Book Sequence


: Member
Details
Controller

: Message
Form

: Book
Details
Controller

: Lending
Form

: Member
Details

: Book
Details

:Member Book
Details

1. Enter Member no
2. Get Member Details

3. Verify member details

4. Invalid
member
5. Check if can borrow books
6. cant
borrow
message
7. Enter Book Code
8. Get Book Details
9. Check book can be issued/not
10. book cant be isssued
error message

11. Enter lending details


(member no and book code)
12. Add lending details

Fig 13: Issue Book Sequence Diagram


Process:
1. Enter member number.

7. Enter book code.

2. Get member details.

8. Get book details.

3. Verify member details.

9. Check book can be issued or not.

55 | P a g e

4. Issue invalid member message.

10. Book cant be issued.

5. Check if member can borrow books

11. Enter lending details (mem_no, bk_code

6. Member cant borrow book message

borrow date, due date, return date).


12. Add lending details.

4.6.6.

Return Book Sequence

: Lending
Form

: Librarian

: Member
Book Details

1. Enter member no

2. Get member book


details
3. Verify if member book details
are correct

4. Update member book


details

5. Calculate Fine

Fig 14: Return Book Sequence Diagram


Process:
1. Enter member number.
2. Get member book details (mem_no, bk_code, borrow_date, due_date, return_date).
3. Verify if member book details are correct.
4. Update member book details.
5. Calculate fine.
56 | P a g e

: Compute
Fines

4.6.7.

Search Book Sequence

: User

: Search Books
Form
1. Enter title, author,
category, book code, or
publisher

: Search
Controller

2. Get Details

User can be a
librarian or a
member

3. Search Details

4. Display Results

Fig 15: Search Book Sequence Diagram


Process:
1. Enter book code, title, author, publisher, or category.
2. Submit details.
3. Search details.
4. Display book.

57 | P a g e

: Book Details

4.6.8.

Reserve Book Sequence

: Reservation
Form

: User

: Reservation
Controller

: Book Details

1. Enter member no,


book code
2. Submit details

User can be a
librarian or a
member

3. Get book details

4. Check book can


be reserved
5. Success/
Error
message

7. Select row
with reservation_no
to be deleted

6. Add Reservation

8. Submite details
9. Delete Reservation
10. Delete successful
message

Fig 16: Reserve Book Sequence Diagram


Process:
1. Enter mem_no and book_code.
2. Submit details.
3. Get book details.
4. Check book can be reserved.
5. Success or error message.
6. Add reservation.
7. Select row with reservation_no to be deleted.
8. Submit details.
9. Delete reservation.
10. Success message.

58 | P a g e

: Reservation
Details

4.6.9.

File Complaint Sequence

User can be a
member or
librarian

1. Enter complaint
details

: Compliant
Details

: Complaint
Controller

: Complaint
Form

: User

2. Submit complaint
details

3. Add Complaint details

4. success or
error message

4. Select row with


complaint_id to
update
5. Submit details
6. Update complaint

7. Select row with


complaint_id to
delete

8. Submit details
7. Delete compliant

8. Delete successful
message

Fig 17: File Complaint Sequence Diagram


Process:
1. Enter complaint details.

7. Select row with complaint id to delete.

2. Submit complaint details.

8. Submit details.

3. Add compliant details.

9. Success message.

4. Select row with complaint id to update.


5. Submit details.
6. Update details.

59 | P a g e

4.6.10. Generate Report Sequence

: Reports
Form

: Librarian

1. Click on the
report to be
generated

: Reports
Generator

: LBRMS
Database

2. Submit report
to be generated
3. Query database to
get report details

4. Display report

Fig 18: Generate Report Sequence Diagram


Process:
1. Click on the report to be generated.
2. Submit details.
3. Database is queried to get report details.
4. Display report.

60 | P a g e

4.6.11. Search Member Sequence

: Search
Members
Form

: Librarian

: Search
Controller

: Member
Details

1. Enter mem_no
2. Get Details

3. Search Details

4. Display Results

Fig 19: Search Member Sequence Diagram


Process:
1. Enter member number.
2. Submit details.
3. Search details.
4. Display results.

61 | P a g e

4.7. Activity Diagrams


4.7.1.

Login Activity Diagram

enter username
[Empty
Text
Fields]

[user]
[validate]

Login

[Login again]

Empty fields error message


User can be a
librarian or a member

enter password

Clear text fields

[Filled Text fields


authenticate user]

[Invalid
user]
Issue invalid user error message

Clear text fields


[login again]

[Valid User]

Logged In

Fig 20: Login Activity Diagram.


4.7.2.

Maintain User Details


Existing user error message

[user already exists]


[user
details]
Add User

[Non-user]

Enter user details

Add user details

[Librarian]
Choose Action

Update User

Select row with user_id to be updated

Update User

[user details]
Delete User

Select row with user_id to be deleted

Fig 21: Maintain User Details Activity Diagram

62 | P a g e

Delete User

4.7.3.

Maintain Book Details

Existing book error message

[book exists]
[book
details]
Add Book

[Non existing
book]

Enter book details

Add book details

[book
details]

[Librarian]
Choose Action

Update Book

Select row with bk_code to be updated

Update Book

[book details]
Delete Book

Select row with bk_code to be deleted

Delete Book

Fig 22: Maintain Book Details Activity Diagram

4.7.4.

Generate Report
[report
details]

[Librarian]
Select report to be generated

Fig 23: Generate Report Activity Diagram

63 | P a g e

Generate Report

Display Report

4.7.5.

Issue Book Activity Diagram

Enter mem_no
[Empty
inputs]

[validate
details]

[Librarian]

Issue error message

Enter bk_code

[Filled inputs]

[wrong
details]
Issue Error message

[correct details]

Check book is available


[available book details]

[not available]
Cant issue book
[is available]

Check No. of books borrowed by member


[books borrowed by member details]
[borrowed
books>6]
Issue Error Message
[borrowed
books<6]

Issue Book

Fig 24: Issue Book Activity Diagram

64 | P a g e

Update membook Database

Clear Fields

4.7.6.

Return Book Activity Diagram

Enter mem_no
[validate
inputs]

[Librarian]

[Empty
inputs]
Issue error message

Enter bk_code

[Filled inputs]

[wrong
details]
Issue Error message

[correct details]

Return book

Update membook Database


[member book details]

Calculate Fine

Fig 25: Return Book Activity Diagram

65 | P a g e

Clear Fields

4.7.7.

Search Book Activity Diagram

User
A user can be a librarian or a member

Select Search Option

By Publisher

By Category

By Title

By Author

By Book Code

Enter publisher name

Enter category name or cat_id

Enter book title

Enter author name

Enter book code

[publisher
details]

[category details]

[book details]

[author details] [book details]

Search Results

[Correct details]
[search details
not available]
Error message
[available search details]

Display Results

Fig 26: Search Book Activity Diagram

66 | P a g e

4.7.8.

Reserve Book Activity Diagram

Enter mem_no
[user]

[Empty
inputs]

[validate]

Issue error message


User can be
a librarian
or a member

Enter bk_code
[Filled inputs]

[Incorrect
details]
Issue Error Message
[Correct details]

Reserve Book

Update Reservation

Check Reservation Status


[librarian]

Respond to Reservation

Fig 27: Reserve Book Activity Diagram

67 | P a g e

Clear fields

4.7.9.

File Complaint Activity Diagram

[user]

[validate]

[Empty
inputs]

Enter complaint details


A user can be
a librarian
or a member

Issue error message


[Filled inputs]

File Complaint
[librarian]

Respond to Reservation

Update complaint database

Fig 28: File Complaint Activity Diagram

68 | P a g e

Clear fields

4.8.

Conceptual Design

The ERD model diagram below will be used to show the various entities in this system and how they
relate to each other.
Description of Cardinality
An identifying relationship is shown using a dotted line; a non-identifying relationship is shown using a
solid line. Identifying relationship means that the primary key of the parent entity is also included as the
primary key of the child entity forming a compound key. A non-identifying relationship means that the
primary key of the parent entity is included in the child entity this time not as part of the primary key but
as a foreign key. The following is an illustration of Identifying and Non-identifying relationship with
regard to the fig 29 below.

Table 4.2 a. identifying relationship:


Parent Table

Authors table (Primary Key au_id) and

Child Table

books table (Primary Key bk_code)

Books table (Primary Key bk_code) and

the (au_id and bk_code).

category table (Primary Key cat_id)

Books table (Primary Key bk_code) and


members table (Primary Key: mem_no)

69 | P a g e

Authorbooks table with PK formed by both

Bookcategory table with PK formed by


both the (bk_code and cat_id).

Membook table with PK formed by both


the (mem_no and bk_code).

publishers

users

reservation

PK pub_id

PK

pub_name
pub_address
pub_postalcode
pub_city
pub_state
pub_phone
pub_email

PK

reserve_id

user_id

U1 username
hashed_password
admin

FK2,I1 mem_no
FK1,I2 bk_code
reserve_date
pick_date
status

authors
authorbooks

PK au_id
au_fname
au_lname
au_phone
au_email
gender

books
PK

bookcategory

category
PK cat_id

complaint

PK,FK1,I1 au_id
PK,FK2,I2 bk_code

PK,FK1,I1 bk_code
PK,FK2,I2 cat_id

cat_name
lend_rate
daily_fine
contact

members

bk_code

PK

bk_title
FK1,I1 pub_id
bk_dop
bk_info
bk_version
withdrawn
lost
bk_qty
bk_cost
bk_image
bk_isbn
section

complain_id

FK1,I1 mem_no
email
phone
complain_date
notes
responded_to

mem_no

mem_fname
mem_lname
mem_address
mem_city
mem_state
mem_postcode
mem_phone
mem_email
mem_occup
mem_dor
mem_dob
FK1,I1 user_id
gender
personalImage

PK contact_id
fname
lname
mname
address
city
state
postalcode
phone
email
gender
comment
status

PK

revenue
PK

rev_no

FK1,I1 mem_no
amount_added
amount_charged
comment
served_by

membook
PK,FK1,I2 bk_code
PK,FK2,I1 mem_no

membercard
PK

borrow_date
return_date
date_due
note_time
returned
damaged

card_no

FK1,I1,U1 mem_no
issue_date
expiry_date
memberImage

Fig 29: Entity Relationship Diagram for the Library Book Management System:
Table 4.2 b. Non-identifying relationship:
Parent Table

Users table

Child Table

Members table with Foreign key (user_id)


from users table.

members and books table

Reservation

table

with

Foreign

key

(mem_no) from members table & Foreign


key (bk_code) from books table.

Members table

Revenue table with Foreign key (mem_no)


from members table.

70 | P a g e

Members table

Complaint table with Foreign key (mem_no) from


members table.

membercard with Foreign key (mem_no) from

Members

members table

An author can have one or many books. The relationship is one to many. A book can have one or many
authors. The relationship is one to many. A book can also be in one or more categories. The relationship
is one to many. A book can be reserved by zero, one or more members. The relationship is zero to many.
A category can have one or many books. This relationship is one to many. A member can borrow zero,
one or more books. This relationship is zero to many. A member can also have one or more complaints.
This relationship is one to many. A member can have one or many revenues. The relationship is one to
many. A member can add one or many member cards. This relationship is one to many. A member can
reserve zero, one or many books. This is a zero to many relationships. User can have one or more
members hence a one to many relationships. A publisher can have one or many books. This is a one to
many relationships. A member can have only one member card. This is a one-to-one relationship. A book
can have one or many members. A member can have one or many books. This is a zero to many
relationships.

4.9.Logical Design (Relational Database Schema)


The logical schema describes the tables in the database in detail.

Table 4.4(a): Table for authorbooks


COLUMN NAME

DESCRIPTION

DATA TYPE

PRIMARY NULL
KEY

au_id

Primary Key & Foreign Key(au_id) int(10)

Yes

No

Yes

No

References authors(au_id)
bk_code

Primary Key & Foreign Key(au_id) int(10)


References books(bk_code)

71 | P a g e

Table 4.4(b): Table for authors


COLUMN NAME

DESCRIPTION

DATA

PRIMARY NULL

TYPE

KEY
Yes

au_id

Primary Key(ab_id) auto_incremented

int(10)

No

au_fname

Author First Name

varchar(20)

No

au_lname

Author Last Name

varchar(20)

No

au_phone

Author Phone Number

varchar(20)

No

au_email

Author Email Address

varchar(20)

No

Gender

Author Gender

varchar(20)

No

Table 4.4(c): Table for bookcategory


COLUMN

DESCRIPTION

NAME
bk_code

DATA

PRIMARY NULL

TYPE

KEY

Primary Key & Foreign Key(bk_code) int(10)

Yes

No

Yes

No

References books(bk_code)
cat_id

Primary

Key

&

Foreign

References category(cat_id)

72 | P a g e

Key(cat_id) int(10)

Table 4.4(d): Table for books


COLUMN

DESCRIPTION

DATA

NAME
bk_code

PRIMARY KEY

NULL

Yes

No

TYPE
Primary

Key

(bk_code) int(10)

auto_incremented
bk_title

The title of the book.

pub_id

Foreign

Key(pub_id)

varchar(100) No
References int(10)

No

No

No

publishers(pub_id)
bk_dop

Book date of publication

date

No

No

bk_info

Brief notes describing the book

varchar(200) No

No

bk_version

The version or edition of the book

varchar(10)

No

No

withdrawn

The availability of the book in the

tinytext

No

No

No

No

system.
bk_qty

The quantity or number of copies of varchar(12)


the book.

bk_cost

The price of the book

varchar(20)

No

No

bk_image

The image/picture of the book cover

varchar(50)

No

No

bk_isbn

The international standard book varchar(30)

No

No

The section where the book is varchar(100) No

No

number.
Section

located in the library.

73 | P a g e

Table 4.4(e): Table for category


COLUMN NAME

DESCRIPTION

DATA

PRIMARY NULL

TYPE

KEY

cat_id

Primary Key(cat_id)

varchar(20) Yes

No

cat_name

The Category name

varchar(80) No

No

lend_rate

The lend rate

varchar(20) No

No

daily_fine

The daily fine

varchar(20) No

No

Table 4.4(f): Table for complaint


COLUMN

DESCRIPTION

NAME
complain_id

Primary Key(complain_id) auto_incremented

mem_no

Foreign

Key(mem_no)

DATA

PRIMARY NULL

TYPE

KEY

int(10)

Yes

No

No

No

References int(10)

members(mem_no)
Email

Complainant email address

varchar(20)

No

No

Phone

Complainant phone number

varchar(20)

No

No

date

No

No

complain_date The date of the complain


Notes

Brief notes describing the complain

varchar(200)

No

No

responded_to

Whether the complaint has been responded to

tinytext

No

Yes

Table 4.4(g): Table for membercard


COLUMN

DESCRIPTION

NAME
card_no

Primary Key(card_no) auto_incremented

mem_no

Foreign

Key(mem_no)

DATA

PRIMARY

TYPE

KEY

int(10)

Yes

No

No

No

References int(10)

NULL

members(mem_no)
issue_date

Date of issue of the card

date

No

No

expiry_date

Date of expiry of the card

date

No

No

memberImage

Image of the member

varchar(50) No

No

74 | P a g e

Table 4.4(h): Table for contact


COLUMN

DESCRIPTION

NAME
contact_id

Primary

DATA

PRIMARY NULL

TYPE

KEY

Key(contact_id) int(10)

Yes

No

No

No

No

No

No

No

No

No

No

No

No

No

No

No

No

No

No

No

No

No

Comment of person willing to provide varchar(200) No

No

auto_incremented
Fname

First name of person willing to provide varchar(20)


their feedback

Lname

Last name of person willing to provide varchar(20)


their feedback

Mname

Middle name

of person willing to varchar(20)

provide their feedback


address

Address of person willing to provide varchar(20)


their feedback

City

City of person willing to provide their varchar(20)


feedback

State

State of person willing to provide their varchar(20)


feedback

postalcode

Postal Code of person willing to provide varchar(20)


their feedback

Phone

Phone number of person willing to varchar(20)


provide their feedback

Email

Email address of person willing to varchar(20)


provide their feedback

Gender

Gender of person willing to provide their varchar(9)


feedback

comment

their feedback
Status

75 | P a g e

Whether the feedback was responded to

varchar(200) No

Yes

Table 4.4(i): Table for members


COLUMN

DESCRIPTION

NAME

DATA

PRIMARY

TYPE

KEY

NULL

Yes

No

mem_no

Primary Key(mem_no) auto_incremented

Int(10)

mem_fname

Member first name

varchar(20) No

No

mem_lname

Member last name

varchar(20) No

No

mem_address

Member address

varchar(20) No

No

mem_city

Member city

varchar(20) No

No

mem_state

Member state

varchar(20) No

No

mem_postcode

Member postal code

varchar(20) No

No

mem_phone

Member phone number

varchar(20) No

No

mem_email

Member email address

varchar(20) No

No

mem_occup

Member occupation

varchar(20) No

No

mem_dor

Member date of registration

date

No

No

mem_dob

Member date of birth

date

No

No

user_id

Member user id

int(10)

No

No

Gender

Member gender

tinytext

No

No

personalImage

Member personal image

varchar(50) No

No

Table 4.4(j): Table for membook


COLUMN

DESCRIPTION

NAME
bk_code

DATA

PRIMARY NULL

TYPE

KEY

Primary Key & Foreign Key(bk_code) References int(10)

Yes

No

Yes

No

books(bk_code)
mem_no

Primary Key & Foreign Key(mem_no) References int(10)


members(mem_no)

borrow_date

Book borrow date

No

No

return_date

Book return date

No

Yes

date_due

Book due date

No

No

returned

If book is returned

No

No

damaged

If book is returned and damaged

No

No

76 | P a g e

Table 4.4(k): Table for publishers


COLUMN

DESCRIPTION

DATA TYPE

PRIMARY

NAME

NULL

KEY

pub_id

Primary Key(pub_id) auto_incremented

int(10)

Yes

No

pub_name

Publisher name

varchar(20)

No

No

pub_address

Publisher address

varchar(20)

No

No

pub_postalcode

Publisher postal code

varchar(20)

No

No

pub_city

Publisher city

varchar(20)

No

No

pub_state

Publisher state

varchar(20)

No

No

pub_phone

Publisher phone

varchar(20)

No

No

pub_email

Publisher email

varchar(20)

No

No

Table 4.4(l): Table for reservations


COLUMN

DESCRIPTION

DATA

PRIMARY

TYPE

KEY

int(10)

Yes

No

References int(10)

No

No

References int(10)

No

No

NAME
reserve_id

Primary Key(reserve_id) auto_incremented

mem_no

Foreign

Key(mem_no)

NULL

members(mem_no)
bk_code

Foreign

Key(bk_code)

members(bk_code)
reserve_date

Date of book reservation

date

No

No

pick_date

Book pick up date

date

No

No

Status

Brief notes about reservation status

varchar(60) No

Yes

Table 4.4(n): Table for users


COLUMN

DESCRIPTION

NAME

DATA

PRIMARY

TYPE

KEY

NULL

user_id

Primary Key(user_id) auto_incremented

int(10)

Yes

No

username

Username of the member

varchar(20)

No

No

varchar(60)

No

No

tinyint(4)

No

No

hashed_password Encrypted password of the member


Admin

77 | P a g e

Whether member is admin or not

Table 4.4(m): Table for revenue


COLUMN

DESCRIPTION

NAME
rev_no

Primary Key(rev_no) auto_incremented

mem_no

Foreign

Key(mem_no)

DATA

PRIMARY

TYPE

KEY

int(10)

Yes

No

No

No

References int(10)

NULL

members(mem_no)
amount_added

The total amount the member has paid

varchar(20)

No

No

amount_charged

The total amount the member is charged

varchar(20)

No

No

comment

Brief comment, whether cleared or on hold

varchar(20)

No

No

served_by

The librarian name who served the member

varchar(20)

No

No

4.10.

Normalization

Normalization is a process of producing a set of suitable relations that support organizations data
requirements. The data is transformed from a problem while ensuring its integrity and elimination of
redundancy. This reduces the possibility of encountering anomalies. Normalization ensures that logical
designs are validated to satisfy constraints which prevent unnecessary data duplication. An anomaly refers
to inconsistencies in data stored in a database as a result of operations such as update, insertion, or
deletion. These inconsistencies occur when a specific record is stored in multiple locations and its
respective copies are not updated. To avoid these anomalies, we carry out different implementation levels
called Normal Forms. In this case, we will go up to the third normal form (3NF). The following
illustrates the steps taken to arrive at the 3NF.

Moving from the Un-normalized Form (UNF) to First Normal Form (1NF); which ensures no
repeating groups or elements in the database.

First Normal Form (1NF) to the Second Normal Form (2NF); which ensures no partial
dependencies on a concatenated or compound key.

Second Normal Form(2NF) to 3NF; which ensures no dependencies on a non-key attributes

The table below shows part of the normalization process of the major entities in the system.

78 | P a g e

Table 4.5(a): Table for Normalization

UNF

1NF

2NF

3NF

Book code
Book Title
Book Date of Publication
Book Information
Book version
Withdrawn
Book quantity
Book cost
Book image
Book isbn
Book section
Publisher id
Publisher name
Publisher address
Publisher postal code
Publisher city
Publisher state
Publisher phone
Publisher email
Book category computer
science
Book
category
information systems
Computer science lend
rate
Computer science daily
fine
Information systems lend
rate
Information systems daily
fine
Author first name
Author last name
Author phone number
Author email address
Author gender
Member number
Member first name
Member last name
Member address
Member city
Member state
Member postal code
Member phone number
Member email address
Member
date
of
registration

Book code
Title
Dop
Info
Version
Withdrawn
Qty
Cost
Image
Isbn
Section
Publisher id
Publisher name
Publisher address
Publisher
postal
code
Publisher city
Publisher state
Publisher phone
Publisher email

Book code
Title
Dop
Info
Version
Withdrawn
Qty
Cost
Image
Isbn
Section
Publisher id
Publisher name
Publisher address
Publisher postal code
Publisher city
Publisher state
Publisher phone
Publisher email

Book code
Title
Dop
Info
Version
Withdrawn
Qty
Cost
Image
Isbn
Section
*Publisher id

79 | P a g e

Book code
Category ID

Book code
Category ID
Name
Lend rate
Daily fine

Book code
Author ID
Author first name
Author last name
Author
phone
number
Author
email
address
Author gender
Book code
Member no
Member first name

Category ID
Name
Lend rate
Daily fine

Publisher id
name
address
postal code
city
state
phone
email

Books

Publishers

Book code
Category ID

book category

Category ID
Name
Lend rate
Daily fine

Category

Book code
Author ID
Book code
Author ID
Author ID
Author first name
Author last name
Author phone number
Author email address
Author gender

Author ID
first name
last name
phone number
email address
gender

Authorbooks

Authors

Member date of birth


Member user id
Member gender
Member image
Member username
user password
Member user admin
Member card no
Card issue&expiry date

80 | P a g e

Member last name


Member address
Member city
Member state
Member postal code
Member
phone
number
Member
email
address
Member date of
registration
Member date of
birth
Member user id
Member gender
Member image
Member username
user password
Member user admin

Book code
Member no

Book code
Member no

Member no
first name
last name
address
Member no
Member first name
city
Member last name
state
Member address
postal code
Member city
phone number
Member state
email address
Member postal code
date of registration
Memberphone number date of birth
Member email address gender
Member
date
of image
registration
*User id
Member date of birth
Member user id
Member gender
User id
Member image
Username
Member username
User password
User password
Admin
Member user admin

Membook

Members

Users

CHAPTER FOUR

5. IMPLEMENTATION AND RESULTS


This chapter covers the system tests and results. This are demonstrated using a number of screen shots.
Library Book Management System aimed at accomplishing a number of tasks. The system met its
accomplishments and the following section looks at this tasks and how they are accomplished.
LBMS has been designed and developed with high security standards. A number of security levels have
been designed to limit privileges according to a user type. Users can access a page depending on the
security levels given to them. These levels determine the various rights and operations a user can carry
out on the system. The levels include; the librarian access levels and the members access levels.
The Fig 5.1 (a) shows the Library Book Management Systems homepage. All the users login to the
system from this page. A user clicks on the sign in button where the login form appears enabling them to
carry on with this process.

81 | P a g e

Fig 5.1 (a): The Library Book Management System Home Page.

82 | P a g e

5.1.

The Librarian Access Level

The librarian has the responsibility to maintain all the system users. This task includes authorizing users
to access and use the system. Each user is assigned a unique username and password. All the created users
are members by default. For specific users to have more access rights and privileges, an extra security
level has to be enforced on the particular users, hence qualifying them as librarians of the system
5.1.1. Login Form
Fig 5.1 (b), below shows a login form where a user inputs their unique user details required to login the
system. If the user provides the correct details, he/she is logged into the system as shown in Fig 5.1 (c). If
the details provided are incorrect, an error message is issued to the user.

Fig 5.1 (b): Login Form

Fig 5.1 (c): Figure showing error message: Username/password combination incorrect
83 | P a g e

5.1.2. Librarian Profile


The Fig 5.1 (d) below shows the librarian profile which is loaded once he/she successfully logs into the
system. In this case the user is sheddyben, who is also the librarian. It also displays the announcements
posted by the librarian and the form to post a new announcement.

84 | P a g e

Fig 5.1 (d): Figure showing librarian welcome screen once they log in.

5.1.3. Add User


Fig 5.1 (e), below shows the process of creating a new user to the system. This task is carried out by the
librarian who is logged in the system. In this case, we created a user, Daniel Munene, to the system. His
username is dan while his password is also dan. The system encrypts all the passwords issued to the users.

Fig 5.1 (e): Figure showing add user form.

85 | P a g e

Fig 5.1 (f), below shows a user created success message. In this case, user dan was created successfully in
the system.

Fig 5.1 (f): Figure showing a user added successful message.


5.1.4. Users List
Fig 5.1 (g) below shows the users list. In this case we search the username dan and display his user
details.

Fig 5.1 (g): Figure showing users list.


5.1.5. Search User Results
Fig 5.1 (i), below shows the searched users dan information in the system

86 | P a g e

Fig 5.1 (i): Figure showing searched user details

5.1.6. Add Member


Fig 5.1 (j) shows the process of adding a user dan to become a member in the system. This process
includes keying in all the details about Daniel Munene, the user we created and adding him as a member.
These details include: Member Number (Auto generated by the system), First Name, Last Name, Address,
City, State, Postal Code, Phone number, Email, Occupation, Registration Date, Date of Birth, User Id (Is
pulled from the database), Gender, and the Personal Image.

87 | P a g e

Fig 5.1 (j): Figure showing add new member form.

5.1.7. Members List


The system issued the user dan Member Number 25 which uniquely identifies him. Fig 5.1 (k) below
shows the members list. From this list, a member can be searched to verify his existence in the system. To
search a member, member number 25 was keyed in the search member text box.

88 | P a g e

Fig 5.1 (k): Members list screen shot diagram

5.1.8. Search Member


Fig 5.1 (l) below shows the members search results. In this case it displays the user Dan, who after
becoming a member was issued with Member No. 25, and using this number the system displays his
details.

89 | P a g e

Fig 5.1 (l): Search member results.


5.1.9. Add Member Card
Fig 5.1 (m) below shows how to add a members card to the system. Member number 25, who is user
dan, was issued with a card by the system. Fig 5.1 (n) shows the cards list, from where we can search
for the members card using the members number. Fig 5.1 (o) shows the members searched card results
and from these the system prints out the members card.

Fig 5.1 (m): Add Member Card screen shot diagram.


90 | P a g e

5.1.10. List Member Cards


Fig 5.1 (n) below, shows the members cards list.

Fig 5.1 (n): Member cards list screen shot diagram.


5.1.11. Search Member Card
Fig 5.1 (o), below shows the member card search results. In this the system displays Daniel Munenes
card.

Fig 5.1 (o): Screen shot diagram showing the searched member card details.
91 | P a g e

5.1.12. Print Card


Fig 5.1 (p) below shows the printed member card. Using this card we can verify members by querying
their member number in the system which displays all their details.

Fig 5.1 (p): Figure showing printed member card


5.1.13. List Books
Fig 5.1 (q) shows the books list. From this form, a user can search a book by keying in the book code. Fig
5.1 (r) shows the searched book results. In this case, book code number 10 was searched in the system.

Fig 5.1 (q): Books List screen shot diagram.

92 | P a g e

5.1.14. Search Book


Fig 5.1 (r) shows the book code number 10 search results. The diagram shows all the books details
including its availability in the library.

Fig 5.1 (r) Searched book results


5.1.15. Issue Book
Fig 5.1 (s) below shows the process of issuing a book to member number 25 whom we created. The
following fields were filled; Book Title, Member Name, Borrow Date, and the Due Date.

Fig 5.1 (s): Issue member a book screen shot diagram


93 | P a g e

5.1.16. List Members Borrowed Books


Fig 5.1 (t) below shows the list of members borrowed books. From this page we can search a members
number to check the books they borrowed. Fig 5.1 (u) shows the search results of the book a member
borrowed. In this case we keyed in member number 25 who is Daniel Munene.

Fig 5.1 (t): Figure showing the members borrowed books.

5.1.17. Search Members Borrowed Books


Fig 5.1 (u) shows the searched results for member number 25. These show the books the member
borrowed alongside their respective information.

94 | P a g e

Fig 5.1 (u): Figure showing members borrowed books search results.
5.1.18. Return Book
Fig 5.1 (v) below shows member number 25 returned the borrowed book.

Fig 5.1 (v): Figure showing return of book to the system.

95 | P a g e

5.1.19. Member Fines


Fig 5.1 (w) below shows the member fines. From this page a receipt can be issued to the member.

Fig 5.1 (w): Figure showing the member fines

96 | P a g e

5.1.20. Print Receipt


Fig 5.1 (x) below shows the member receipt.

Fig 5.1 (x): Figure showing member receipt.

5.1.21. Generate Reports


Refer to Appendix 2 a, b, c, d, e, f and g to view the reports generated by the system.

97 | P a g e

5.2.

The Member Access Level

Members access the system to certain access levels. On login, the member is welcomed to their home
page where they can view announcements, notifications, and books carousel. They can also view and
update their profile. They can view the books gallery, access external links to other online libraries,
change passwords and file complaints.
5.2.1. Member Home Page
Fig 5.2 (a) below shows the announcements and notifications been conveyed to the logged in members.

Fig 5.2 (a): Figure showing the member page with books carousel, notification, and
announcements.
98 | P a g e

5.2.2. Member Profile

Fig 5.2 (b) below shows the members profile. A member can change his or her personal details and view
their respective user details by clicking on the buttons displayed.

Fig 5.2 (b): Figure showing the members profile

99 | P a g e

5.2.3. Display Books


Fig 5.2 (c): below shows books displayed by the system to the logged in members.

Fig 5.2 (c): Figure showing the displayed books


5.2.4. Search Book
Fig 5.2 (d): shows the various criteria by which a member can search a book in the system. In this case
the member chose to search a book by author called deitel.

Fig 5.2 (d): Figure showing searching a book by author

100 | P a g e

Fig 5.2 (e): shows the searched book results.

Fig 5.2 (e): Figure showing searched book results.

5.2.5. Reserve Book


Fig 5.2 (f): shows member Daniel who was logged in reserving a book. The fields required include:
Book Title: Object Oriented Design, Reservation Date: 2014-04-16, and Pick Date:2014-04-18.

Fig 5.2 (f): Figure showing book reservation.

101 | P a g e

5.2.6. Check Reservation Status


Fig 5.2 (g): shows the book reservation status. In this case the book was not yet assigned.

Fig 5.2 (g): Figure showing book reservation status.


5.2.7. Check History
Fig 5.2 (h): below shows the members borrowing history and the fines charged.

Fig 5.2 (h): Figure showing the members history and fines.

102 | P a g e

5.2.8. E-Library

Fig 5.2 (i): below shows the E-library links where a member can visit other online libraries.

Fig 5.2 (i): Figure showing the E-library links.


5.2.9. Change Password
Fig 5.2 (i): below shows the change password form. The fields required include: Old Password, New
Password, and Confirm New Password. In this case member Daniel changed the password from dan to
daniel.

Fig 5.2 (i): Figure showing the change password form.

103 | P a g e

5.2.10. File Complaint


Fig 5.2 (k): below shows member filing a complaint. Fields required include: Email, Phone, Date, and
Comment.

Fig 5.2 (k): Figure showing file complaint by member.

104 | P a g e

CHAPTER FIVE

6. SOFTWARE REQUIREMENTS SPECIFICATIONS

Preface
This section contains the Software Requirements Specifications (SRS) document for the Library Book
Management System.
6.1.

Introduction

The subsequent sections contain a general overview of the entire Software Requirements Specifications
document.
6.1.1.

Purpose

This SRS document contains all the software requirements needed for the Library Book Management
System.
6.1.2.

Overview

This document is prepared in respect to the IEEE Recommended Practice for SRS. The systems product
perspective, the systems product functions, the systems user characteristics, the systems general
constraints, the systems assumptions and dependencies are covered in section 5.2. Section 5.3 covers the
systems functional, non-functional and external interface requirements.
6.2.

The Overall Descriptions

The factors affecting this system and the general requirements are described in this section. This section
provides a general understanding of the specific requirements for the system.

6.2.1. Product Perspective


The LBMS is a stand-alone system running independently.
6.2.1.1.
System Interfaces
The data held in the database should be shared among all the clients connected to the network supporting
the entire system.
6.2.1.2.
User Interface
The user interface screen format consists of menu driven options making it easier to use and manipulate.
Among this options include:

105 | P a g e

Automated date pickers which prevents users from entering ambiguous dates.

All text boxes are validated to ensure correct data in entered in the system.

Check boxes that ensure the user keys in the correct information.

The system has confirmation messages, alerts, and error messages. These error messages include; web
server error messages, input, process, and output error messages.
6.2.1.3.
Hardware Interface
Server Side: LBMS runs on the library servers connected to 100Megabytes access to the internet
backbone. The Local Area Network (LAN) is used for collecting information and raw data from the
system users.
Client Side: Personal computer supporting Windows OS, Mac OS, and Linux OS environments with a
keyboard and mouse, printers, 3.0 GHz processor, at least 1GB RAM, 17 inch Color Monitor, and at least
80GB HD.
6.2.1.4.

Software Interface

Server Side: Wamp Server is used to enable the system interact with its end users accordingly. The
system is coded using PHP server side scripting language. The system has a firewall to prevent any
unauthorized access.
Client Side: The client side requires Internet Explorer, Google Chrome, or Mozilla Firefox browser
applications to run and any OS that can support them.
6.2.1.5.

Communication Interface

TCP/IP is the main communication protocol used to transmit data between the clients and the servers. All
the upper level communications carried out between the web server and its clients are done using HTTP.
The system is also connected to the World Wide Web.
6.2.1.6.
Memory Constraints
The system requires at least 80GB disk space and 1GB space RAM for its services.
6.2.1.7.
Operations
The librarian confirms whether a member is registered to the system before carrying out any transactions
with him/her with regard to the system. The librarian adds new users to the system and issues them a
membership card. The librarian issues registered members with books and handles their return. The
members should be able to know the books they borrowed and fines charged against them through the
system. Members reserve books through the system and check the status online. Members return
borrowed books and the system charges them accordingly. Librarian prints out receipts and issues them
106 | P a g e

out to the respective members. Members file complaints and librarians respond to them via mail. All the
system users search books using their preferred criteria and the system displays the results to them. All
the users access and update their profiles through the system. The system generates reports for use by the
librarians.
6.2.1.8.

Site Adaptation Requirements

The servers of the institution operating the system have requirements to support and operate PHP
scripting language and Wamp Server.

6.2.2. Product Functions


The systems core functions include:

Allows for capturing of all the users information.

Creation of users and assigning usernames and passwords.

Allows for addition, updating, listing, searching and deletion of information concerning
authorbooks, authors, bookcategory, books, category, complaint, contact, membercard, members,
membook, publishers, reservation, revenue, and users.

Provides information concerning available books.

Provides information about transactions carried out on books including borrowing, return, and
searching of books in an easier manner.

Provides information about borrowed, overdue, lost, returned, and damaged books.

Provides information about fines charged against a book depending on its category.

Gives details about the fines payable against a member.

Generates report for use by the librarian and other management.

6.2.3. User Characteristics


All the system users must be familiar with the rules and regulations governing the institution. They must
have basic knowledge and experience with Windows OS environment and equipped with basic internet
browsing skills. They require basic knowledge for operating this system.

6.2.4. General Constraints


Safety and Security: Users must access the system using their respective usernames and passwords. The
system must exit normally.
Reliability: Users must avoid the use of blank characters when filling any inputs.
Parallel Operations: The system must enable many users to access it simultaneously.
107 | P a g e

Control Functions: The system has confirmation messages, alerts, and error messages. Error messages
include; web server error messages, input, process, and output error messages. Error handling is done
using the various data recovery and error handling mechanisms.

6.2.5. Assumptions and Dependencies


Every user must be computer literate and must have the appropriate hardware and software configuration
stated in sections 6.2.1.1, 6.2.1.2, 6.2.1.3, and 6.2.1.4. The institution must have computers connected to
the internet with the relevant servers installed. All users of the system must know and understand English
language since the system is developed and operated using this language.

6.3.

Specific Requirements

6.3.1. External Interfaces


6.3.1.1.
User Interface
The system makes use of a user-friendly graphical user interface (GUI) making it easy to use and
understand. This interface acts as a link between the system users and the software. Its made up of:
Screen Formats: The first screen to be displayed is the LBMS home page. This web page contains a
login form where all the users have to be authenticated for them to have full access to the system. The
web page has tabbing capability allowing users to open other related links in other tabs, hence enabling
multiple windows to be visible. These way users can easily switch between multiple pages displayed on
the screen.
Data Format: The system supports alphanumeric data formats.
Screen Messages: A number of messages are displayed while using the system, for instance the
JavaScript prompt messages, error messages, among others. These messages require user to take the most
appropriate actions accordingly.
6.3.1.2.
Hardware Interface
The LBMS support input and output devices. The printers are used to print out the member cards,
receipts, and generated reports.
6.3.1.3.
Software Interface
The system makes use of Windows 7 Operating System and a MySQL database.

108 | P a g e

6.3.1.4.
Communication Interface
A communication is established between client systems and servers interconnected together via the LAN
with 100Mbs access to the internet backbone.

6.4.

Design Constraints

6.4.1.

Software Language Used

The languages that shall be used for coding the LBMS are PHP, JavaScript, JQuery Library, Bootstrap,
CSS, Ajax, and HTML5. Wamp Server needs to be installed for working on the coding phase.
6.4.2.

Web Development Tools

LBMS was developed using Adobe Dream Weaver CS6 which enables Rapid Application Development.
Adobe Photoshop CS4 was used to make the systems banner and customize all the images. Microsoft
Visio 2010 was used to reverse engineer the ERD, and to draw all the analysis diagrams. Microsoft Word
2010 was used to do all the documentation. Online references and tutorials were also used for developing
programs in PHP, JavaScript scripting languages and HTML5.

109 | P a g e

CHAPTER SIX

7. RECOMMENDATIONS AND CONCLUSIONS


7.1. Limitations
A number of limitations were encountered. They include; the time given to complete the project was
limited given that the researcher had other task to perform on the side. Learning of new technologies in
order to come up with a good system also took part of the system development time.
7.2. Recommendations
There is a need for people to take initiative to be computer literate in order to familiarize with these
technologies and appreciate them. Library staffs need to undergo training in order to acquire basic skills
in information technology which will enable them to use the library book managements system. Libraries
across the country should embrace the trend of automating their services. This system should be extended
to incorporate other modules for example the acquisition module among others, in order to be fully
integrated.
7.3. Conclusions
The availability of new technology has enabled automation of nearly all services provided in any facet of
life. The library is not an exception to this great idea; hence it comes with a good number of advantages
when all the activities that take place in it are automated. New jobs will always be created as a result of
automation. Staff will always be motivated to work with new automated systems, since a lot of paper
work is eliminated, and functions and services are concentrated just within the power of a mouse click
and input of data into the system. Costs are incurred only once; when buying the system, and training
personnel. Users have the convenience of accessing the system from the comfort of their locations since
its web based. Cost benefit analysis of the system also shows that it generates more revenue than expenses
hence the system is economically feasible.

110 | P a g e

8. REFERENCES

Aggarwal, K.K., & Singh, Y. (2007). Software Engineering (3rd Ed.). New Age International
Publishers.

Alison Felstead. (2004). Library systems marketplace: a digest of current literature Program:
electronic library and information systems.

Amollo, B. A. (2011). Digitization for libraries in Kenya. 2nd International Conference on


African digital Libraries and Archives. URL:http://www.slideshare.net/bamollo/digitization-forlibraries-in-kenya

Aswal, R.S., (2006). Library Automation for 21 Century. New Delhi: Ess Ess Publication.

Chweh, S. S. (1982). User criteria for evaluation of library service. Journal of Library
Administration, 2(1), 35-46.

Gapen, D. K. (1993). The virtual library: Knowledge, society and the librarian. In The Virtual
Library: Visions and Realities, edited by L. M. Saunders, pp.1-14. Information Today, Medford,
NJ.

IEEE Standards 1016-1998, Recommended Practice for Software Design Descriptions

IEEE Standards 830-1998, IEEE Recommended Practice for Software Requirements


Specifications.

Johnson, K., Houda, T., & Tony T. (2004). Library Support for Online Learners: e-Resources,
e-Services, and the Human Factors. In Theory and Practice of Online Learning, edited by Terry
Anderson and Fathi Elloumi. Athabasca, Alberta: Athabasca University, 349-365.

Otando, R. M. (2011). Building Institutional Repositories in KLISC Member Institutions in


Kenya: Current Status and Emerging challenges.

Pressman, Roger S. (2000) Software Engineering: A Practitioners Approach, (5th Ed.).


McGraw-Hill.

Roberts, P. (1999). Students Books reclaim priority status at library. Marblehead


Massachusetts.

111 | P a g e

APPENDIX
Appendix 1 a. Schedule of Project Activities

Appendix 2 a. Books Report

Appendix 2 b. Members Reports

112 | P a g e

Appendix 2 c. Member Fines Report

Appendix 2 d. General Authors, Publishers, and Books Details Report

Appendix 2 e. Category Details Report

Appendix 2 f. Publishers Report

113 | P a g e

Appendix 2 g. Authors Report

Appendix 3: CODE
index.php: Login form code
<?php
if (isset($_POST['submit'])) { $username = trim(mysql_prep($_POST['username']));//sanitizing user input
using the mysql_prep function.
$password = trim(mysql_prep($_POST['password']));
$hashedPassword = sha1($password);//password encryption using the sha1 one way function.
$query = "SELECT user_id, username, admin FROM users WHERE username='{$username}' AND
hashed_password='{$hashedPassword}' LIMIT 1";
$result_set = mysql_query($query);
confirm_query($result_set); //authenticating single match.........................
if (mysql_num_rows($result_set) == 1) {
$found_user = mysql_fetch_array($result_set);
$_SESSION['user_id'] = $found_user['user_id'];
$_SESSION['username'] = $found_user['username'];
$_SESSION['admin'] = $found_user['admin'];
if ($found_user['admin']) {//check if user id admin or not.
redirect_to("librarianHomePage.php");//if user is admin redirect to his page.
} else { redirect_to("memberhomepage.php");//if user is not admin.}
} else { $message = "Username/password combination incorrect"; }
echo $message; } else {$username = ""; $password = "";}
114 | P a g e

?> <form class="form-signin" action="index.php" method="post">


<div class="control-group">
<label class="control-label">Username:</label>
<div class="controls">
<input type="text" name="username" value="<?php echo htmlentities($username); ?>"
placeholder="username"/>
</div>
</div>
<!-- close div control group -->
<div class="control-group">
<label class="control-label">Password:</label>
<div class="controls">
<input type="password" name="password" value="<?php echo htmlentities($password);
?>" placeholder="password"/>
</div>
</div>
<!-- close div cntrl group -->
<div class="control-group">
<div class="controls">
<input type="submit" name="submit" value="Login" class="btn btn-success btn-large"/>
<input type="reset" name="reset" value="Clear" class="btn btn-primary btn-large"/>
</div>
<br/><div><p><a href="mailto:sheddyben@gmail.com?subject= Forgot My Password" class="btn btninverse">Forgot My Password!</a>
<p>
</div></div><!-- close div for form --> </form>

115 | P a g e

adduser.php
<?php //check if the form and its information have been submitted.
if (isset($_POST['submit'])) {
$username = trim(mysql_prep($_POST['username']));//sanitize user input to prevent SQL injection.
$password = trim(mysql_prep($_POST['password'])); //sanitize user input to prevent SQL injection.
$hashedPassword = sha1($password);//using one-way sha1 function to encrypt password.
$query = "INSERT
INTO users
'{$username}','{$hashedPassword}','')";

(username,

hashed_password,

admin)

VALUES(

$result = mysql_query($query, $connection); confirm_query($result);


$query3 = "SELECT user_id FROM users WHERE username='{$username}' AND
hashed_password='{$hashedPassword}' LIMIT 1"; $result3 = mysql_query($query3, $connection);
confirm_query($result3);
$row = mysql_fetch_row($result3);
$user_id = $row[0];
$user_name = $row[0];
$query2 = "INSERT INTO members(user_id) VALUES('{$user_id}')";
$result2 = mysql_query($query2, $connection);
confirm_query($result2);
if ($result && $result2 && $result3) {
$message = "<p align='center'>User was successfully created!</p>";
$message .= "<p align='center'>User name: {$username} </p>";
$message .= "<p align='center'>Password: {$password} </p>";
} else { $message = "The user could not be created."; }
$message .= "<br />" . mysql_error();
} else {
$username = "";
$password = "";
}
?>

116 | P a g e

<?php
$html = '<div class="reports"><br/>
<form action="adduser.php" method="post">
<h1 align="center" class="myheading">Add New User</h1><br/>
<h4 class="form-signin-heading" align="center">Enter Details To Add User</h4>
<div class="category"><table class="table" align="center"><tr>
<div class="control-group"><th><label class="control-label">Username:</label></th>
<div
class="controls">
<td><input
type="text"
required
name="username"
placeholder="username" /></td></div></div><!-- close div control group --></tr><tr>
<div
class="control-group"><th><label
class="controls"><td><input
type="password"
placeholder="password"/></td></div>

value=""

class="control-label">Password:</label></th><div
required
name="password"
value=""

</div><!-- close div cntrl group --></tr> <tr>


<div class="control-group"><div class="controls"><td></td>
<td><input type="submit" name="submit" value="Add User" class="btn btn-primary btn-large" />
<input type="reset" name="submit" value="Clear" class="btn btn-success btn-large" /></td>
</div></div><!-- close div for form --></tr>
</table></div>
</form><br/><br/><br/><br/>
</div>
<br/><br/><br/><br/> ';
echo $html;
?>
Php Script to prevent SQL Injection
if (!function_exists("GetSQLValueString")) {
//escapes the string using MySQL's built-in string escaping function, then if it is a non-numeric value,
surrounding it in single quotes
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
117 | P a g e

//get_magic_quotes_gpc function returns TRUE if magic quotes are active. In that case, any slashes that
have been added to a string have to be removed or the function }
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) :
mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;}}
searchbook.php
<?php
error_reporting(0);//error handling
extract($_POST);//extract all form values
$message = NULL;
$bk_code = trim(mysql_prep($bName));//sanitize input from the form

118 | P a g e

//query to display book


$query = "SELECT books.bk_code, books.bk_title, books.pub_id, books.bk_dop, books.bk_info,
books.bk_version, books.bk_qty, books.bk_cost, books.bk_image, books.bk_isbn, books.`section`,
category.cat_id FROM books, bookcategory, category WHERE category.cat_id = bookcategory.cat_id
AND bookcategory.bk_code = books.bk_code AND books.bk_code={$bk_code}";
$result = mysql_query($query, $connection); ?>
<?php extract($_POST); $message = NULL; $bk_code = mysql_prep($bName);
//query to count the number of available books in the system.
$query_num = "SELECT (books.bk_qty-temp.borrowed_books_count) as available_copies FROM books
LEFT JOIN(SELECT count(*) as borrowed_books_count FROM membook WHERE bk_code=$bk_code
AND returned='N') as temp ON books.bk_code=$bk_code where books.bk_code=$bk_code";
$rs = mysql_query($query_num, $connection);//query the database
$row_rs = mysql_fetch_assoc($rs);
//error handling script
$ca = mysql_num_rows($rs);
$ca_two = mysql_num_rows($result);
if ($ca == 0 && $ca_two == 0) {
die('

<div class=""><br/><br/><br/><h1 align="center">Oops!...No search results found.</h1><br/>

<p align="center"><a href="listBook.php" class="btn btn-success btn-large">Go Back</a></p></div>');


} else {}?>
<br/><div id="books"><br/><div class="row-fluid"><?php while ($row = mysql_fetch_array($result)) {
?><h2 align="center" class="myheading"><?php echo $row['bk_title']; ?></h2><br/><br/><div
class="span2 offset2"> <br/><br/>
<p><a href=<?php echo "editBook.php?bk_code=" . $row['bk_code']; ?> target="_blank" class="btn btninverse">Click to Update Book Details</a></p>

<p>BOOK CODE: <?php echo $row['bk_code']; ?><br/></p>


<p>BOOK TITLE: <?php echo $row['bk_title']; ?><br/></p>
<p>PUB ID: <?php echo $row['pub_id']; ?><br/></p>
<p>DATE OF PUBLICATION: <?php echo $row['bk_dop']; ?><br/></p></div>
<div class="span2">
<?php echo "<p align=\"center\"><img class='pull-left img-polaroid' height='250' width='250'
src='images/books/" . "{$row['bk_image']}' /></p>"; ?> </div>
119 | P a g e

<div class="span3"><p>EDITION: <?php echo $row['bk_version']; ?><br/></p>


<p>PRICE: <?php echo "Ksh." . $row['bk_cost']; ?><br/></p>
<p>ISBN: <?php echo $row['bk_isbn']; ?><br/></p>
<p>CATEGORY ID: <?php echo $row['cat_id']; ?><br/></p>
<p>SECTION: <?php echo $row['section']; ?><br/></p>
<p>NUMBER OF COPIES: <?php echo $row['bk_qty']; ?><br/></p>
<p>AVAILABLE COPIES:<?php echo $row_rs ['available_copies']; ?></p></div>
<div class="span5
?></p><br/><br/>

offset4"><p><br/>ABOUT

THE

BOOK:<br/><?php

echo

$row['bk_info'];

<a href="listBook.php" class="btn btn-primary btn-large">Go Back</a>


<a href=<?php echo "deleteBook.php?bk_code=" . $row['bk_code']; ?> class="btn btn-danger btn-large
delete">DELETE</a> <br/><br/> </p></div> </div>
</div>
<?php } ?>

120 | P a g e

Das könnte Ihnen auch gefallen