Beruflich Dokumente
Kultur Dokumente
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.
Date:
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
DBMS
GB
Gigabyte
HD
Hard Disk
HTTP
HTML5
IEEE
MB
Megabyte
OS
Operating System
PC
Personal Computer
SRS
SSL
DFD
ERD
PHP
Hypertext Processor
MYSQL
TCP/IP
LAN
DFD
ERD
GUI
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.
1.2.
1.3.
1.4.
1.5.
Introduction ................................................................................................................................. 13
2.2.
2.3.
2.4.
2.5.
Conclusion .................................................................................................................................. 17
3.1.1.
3.1.2.
3.1.3.
Cultural Feasibility.............................................................................................................. 18
3.1.4.
Economic Feasibility........................................................................................................... 19
3.1.5.
Legal Feasibility.................................................................................................................. 19
3.1.6.
3.2.
3.2.1.
3.3.
3.3.1.
3.3.2.
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.
4.1.1.
4.1.2.
Member Portal..................................................................................................................... 29
4.2.
4.3.
4.4.
4.4.1.
4.4.2.
4.4.3.
4.4.4.
4.4.5.
4.4.6.
4.4.7.
4.4.8.
4.4.9.
4.4.10.
4.4.11.
4.5.
4.6.1.
4.6.2.
4.6.3.
4.6.4.
4.6.5.
4.6.6.
4.6.7.
7|Page
4.6.8.
4.6.9.
4.6.10.
4.6.11.
4.7.
4.7.1.
4.7.2.
4.7.4.
4.7.5.
4.7.6.
4.7.7.
4.7.8.
4.7.9.
4.8.
4.9.
4.10.
5.
5.1.1.
5.1.2.
5.1.3.
Add User.............................................................................................................................. 85
5.1.4.
5.1.5.
5.1.6.
5.1.7.
Members List....................................................................................................................... 88
5.1.8.
5.1.9.
5.1.10.
5.1.11.
5.1.12.
5.1.13.
5.1.14.
Search Book......................................................................................................................... 93
8|Page
5.1.15.
5.1.16.
5.1.17.
5.1.18.
5.1.19.
5.1.20.
Print Receipt........................................................................................................................ 97
5.1.21.
5.2.
6.
5.2.1.
5.2.2.
5.2.3.
5.2.4.
5.2.5.
5.2.6.
5.2.7.
5.2.8.
5.2.9.
5.2.10.
6.1.1.
6.1.2.
6.2.
6.2.1.
6.2.1.1.
6.2.1.2.
6.2.1.3.
6.2.1.4.
6.2.1.5.
6.2.1.6.
6.2.1.7.
9|Page
6.2.1.8.
6.2.2.
6.2.3.
6.2.4.
6.2.5.
6.3.1.
6.3.1.1.
6.3.1.2.
6.3.1.3.
6.3.1.4.
6.4.
7.
8.
7.2.
7.3.
10 | P a g e
CHAPTER ONE
1. INTRODUCTION
1.1.
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:
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
To develop a system that ensures the privacy of its users and enable them access it remotely.
To enable a secure and portable database system that eliminates duplicate data.
1.5.
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.
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
It improves and widens access to electronic collections done by other digital libraries.
It encourages and facilitates sharing of resources amongst libraries across the world.
(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.
A good number of Library Management Systems suppliers have come together with the aim of integrating
a number of functionalities. These include:
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:
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.
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 the man power with adequate skills to handle the systems.
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
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
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:
Operating System:
Window XP, 7, 8
RAM:
At least 1GB
Language:
PHP
Hard Disk:
At least 80 GB
Database:
MySQL 5.3
Monitor:
Server:
Wamp Server
Processor:
Browser:
3.3.
System configuration
3.3.1.
System Modules
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.
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
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
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 data access layer which facilitates access to the MySQL database.
25 | P a g e
User Interface
Member
Portal
Staff
Portal
Core Functionality
Staff
Login
Member
Login
Application Layer
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.
Fig 2: The Site Map of Library Book & Revenue Management System.
27 | P a g e
4.1.1.
Librarian Portal
28 | P a g e
4.1.2.
Member Portal
29 | P a g e
4.2.
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
Login accepetd/rejected
Display book
MEMBER
Borrow book
feedback
Issue fines
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
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
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
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
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.
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
34 | P a g e
Member
4.4.1.2. Actors
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.6.1.
4.4.1.6.2.
the system.
None
35 | P a g e
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
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.
4.4.2.5.1.
Add User
Update User
36 | P a g e
4.4.2.5.3.
Delete User
4.4.2.6.1.
The librarian then cancels the operation ending this use case.
4.4.2.6.2.
Cancelled Update
4.4.2.6.3.
Cancelled Delete
None
4.4.2.7. Special
Requirements
None
4.4.2.8. Use
Relationship
37 | P a g e
Case
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.1.
Add Member
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
Delete Member
4.4.3.6.1.
The librarian then cancels the operation ending this use case.
4.4.3.6.2.
Cancelled Update
4.4.3.6.3.
Cancelled Delete
None
4.4.3.7. Special
Requirements
None
4.4.3.8. Use
Relationship
39 | P a g e
Case
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.1.
Add Book
withdrawn,
bk_qty,
bk_cost,
bk_image,
40 | P a g e
Update Book
Delete Book
4.4.4.6.1.
The librarian then cancels the operation ending this use case.
4.4.4.6.2.
Cancelled Update
4.4.4.6.3.
Cancelled Delete
None
4.4.4.7. Special Requirements
None
4.4.4.8. Use Case Relationship
41 | P a g e
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
member.
The librarian choses add lending function to realize this action.
4.4.5.5.1.
Add Lending
4.4.5.6.1.
The librarian then cancels the operation ending this use case.
4.4.5.6.2.
42 | P a g e
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
4.4.5.6.4.
4.4.5.6.5.
43 | P a g e
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
borrowed books.
The librarian choses update lending function to realize this action.
4.4.6.5.1.
Update Lending
4.4.6.6.1.
4.4.6.6.2.
44 | P a g e
Cancelled Lending
4.4.6.6.3.
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.
45 | P a g e
4.4.7.5.1.
Add Reservation
Update Reservation
4.4.7.5.4.
Cancel Reservation
4.4.7.5.5.
Delete Reservation
46 | P a g e
4.4.7.6.1.
Cancelled Reservation
4.4.7.6.2.
Unavailable book
The base case involves querying and updating the database case.
4.4.7.8. Use Case Relationship
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
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
system.
The user choses the search function to realize this action.
47 | P a g e
4.4.8.5.1.
Search Book
4.4.8.6.1.
Incorrect Inputs
4.4.8.6.2.
None.
4.4.8.7. Special
Requirements
The base case involves querying the database.
4.4.8.8. Use
Case
Relationship
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
48 | P a g e
in the system.
Search Member
4.4.9.6.1.
Incorrect Inputs
4.4.9.6.2.
None.
4.4.9.7. Special Requirements
The base case involves querying the database.
4.4.9.8. Use Case Relationship
4.4.10.
Introduction
4.4.10.2.
Actors
4.4.10.3.
Pre-Conditions
4.4.10.4.
Post-Condition
Basic Flow
complaint.
The member choses the file compliant function.
49 | P a g e
Alternate Flow
None.
4.4.10.7.
Special Requirements
4.4.10.8.
4.4.11.
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.
None.
The base case involves querying the database.
4.5.
Sequence Diagrams
4.6.1.
user
: login user
: verify user
:user details
User can be a
librarian or
member
5. Success
or
Error message
51 | P a g e
: Librarian
: 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
: 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
7. Delete Member
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
8. Success
or
Error Message
7. Delete Book
Details
: Librarian
: Message
Form
: Book
Details
Controller
: Lending
Form
: Member
Details
: Book
Details
:Member Book
Details
1. Enter Member no
2. Get 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
55 | P a g e
4.6.6.
: Lending
Form
: Librarian
: Member
Book Details
1. Enter member no
5. Calculate Fine
: Compute
Fines
4.6.7.
: 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
57 | P a g e
: Book Details
4.6.8.
: Reservation
Form
: User
: Reservation
Controller
: Book Details
User can be a
librarian or a
member
7. Select row
with reservation_no
to be deleted
6. Add Reservation
8. Submite details
9. Delete Reservation
10. Delete successful
message
58 | P a g e
: Reservation
Details
4.6.9.
User can be a
member or
librarian
1. Enter complaint
details
: Compliant
Details
: Complaint
Controller
: Complaint
Form
: User
2. Submit complaint
details
4. success or
error message
8. Submit details
7. Delete compliant
8. Delete successful
message
8. Submit details.
9. Success message.
59 | P a g e
: 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
60 | P a g e
: Search
Members
Form
: Librarian
: Search
Controller
: Member
Details
1. Enter mem_no
2. Get Details
3. Search Details
4. Display Results
61 | P a g e
enter username
[Empty
Text
Fields]
[user]
[validate]
Login
[Login again]
enter password
[Invalid
user]
Issue invalid user error message
[Valid User]
Logged In
[Non-user]
[Librarian]
Choose Action
Update User
Update User
[user details]
Delete User
62 | P a g e
Delete User
4.7.3.
[book exists]
[book
details]
Add Book
[Non existing
book]
[book
details]
[Librarian]
Choose Action
Update Book
Update Book
[book details]
Delete Book
Delete Book
4.7.4.
Generate Report
[report
details]
[Librarian]
Select report to be generated
63 | P a g e
Generate Report
Display Report
4.7.5.
Enter mem_no
[Empty
inputs]
[validate
details]
[Librarian]
Enter bk_code
[Filled inputs]
[wrong
details]
Issue Error message
[correct details]
[not available]
Cant issue book
[is available]
Issue Book
64 | P a g e
Clear Fields
4.7.6.
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
Calculate Fine
65 | P a g e
Clear Fields
4.7.7.
User
A user can be a librarian or a member
By Publisher
By Category
By Title
By Author
By Book Code
[publisher
details]
[category details]
[book details]
Search Results
[Correct details]
[search details
not available]
Error message
[available search details]
Display Results
66 | P a g e
4.7.8.
Enter mem_no
[user]
[Empty
inputs]
[validate]
Enter bk_code
[Filled inputs]
[Incorrect
details]
Issue Error Message
[Correct details]
Reserve Book
Update Reservation
Respond to Reservation
67 | P a g e
Clear fields
4.7.9.
[user]
[validate]
[Empty
inputs]
File Complaint
[librarian]
Respond to Reservation
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.
Child Table
69 | P a g e
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
Reservation
table
with
Foreign
key
Members table
70 | P a g e
Members table
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.
DESCRIPTION
DATA TYPE
PRIMARY NULL
KEY
au_id
Yes
No
Yes
No
References authors(au_id)
bk_code
71 | P a g e
DESCRIPTION
DATA
PRIMARY NULL
TYPE
KEY
Yes
au_id
int(10)
No
au_fname
varchar(20)
No
au_lname
varchar(20)
No
au_phone
varchar(20)
No
au_email
varchar(20)
No
Gender
Author Gender
varchar(20)
No
DESCRIPTION
NAME
bk_code
DATA
PRIMARY NULL
TYPE
KEY
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)
DESCRIPTION
DATA
NAME
bk_code
PRIMARY KEY
NULL
Yes
No
TYPE
Primary
Key
(bk_code) int(10)
auto_incremented
bk_title
pub_id
Foreign
Key(pub_id)
varchar(100) No
References int(10)
No
No
No
publishers(pub_id)
bk_dop
date
No
No
bk_info
varchar(200) No
No
bk_version
varchar(10)
No
No
withdrawn
tinytext
No
No
No
No
system.
bk_qty
bk_cost
varchar(20)
No
No
bk_image
varchar(50)
No
No
bk_isbn
No
No
No
number.
Section
73 | P a g e
DESCRIPTION
DATA
PRIMARY NULL
TYPE
KEY
cat_id
Primary Key(cat_id)
varchar(20) Yes
No
cat_name
varchar(80) No
No
lend_rate
varchar(20) No
No
daily_fine
varchar(20) No
No
DESCRIPTION
NAME
complain_id
mem_no
Foreign
Key(mem_no)
DATA
PRIMARY NULL
TYPE
KEY
int(10)
Yes
No
No
No
References int(10)
members(mem_no)
Email
varchar(20)
No
No
Phone
varchar(20)
No
No
date
No
No
varchar(200)
No
No
responded_to
tinytext
No
Yes
DESCRIPTION
NAME
card_no
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
No
No
expiry_date
date
No
No
memberImage
varchar(50) No
No
74 | P a g e
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
No
auto_incremented
Fname
Lname
Mname
Middle name
City
State
postalcode
Phone
Gender
comment
their feedback
Status
75 | P a g e
varchar(200) No
Yes
DESCRIPTION
NAME
DATA
PRIMARY
TYPE
KEY
NULL
Yes
No
mem_no
Int(10)
mem_fname
varchar(20) No
No
mem_lname
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
varchar(20) No
No
mem_phone
varchar(20) No
No
mem_email
varchar(20) No
No
mem_occup
Member occupation
varchar(20) No
No
mem_dor
date
No
No
mem_dob
date
No
No
user_id
Member user id
int(10)
No
No
Gender
Member gender
tinytext
No
No
personalImage
varchar(50) No
No
DESCRIPTION
NAME
bk_code
DATA
PRIMARY NULL
TYPE
KEY
Yes
No
Yes
No
books(bk_code)
mem_no
borrow_date
No
No
return_date
No
Yes
date_due
No
No
returned
If book is returned
No
No
damaged
No
No
76 | P a g e
DESCRIPTION
DATA TYPE
PRIMARY
NAME
NULL
KEY
pub_id
int(10)
Yes
No
pub_name
Publisher name
varchar(20)
No
No
pub_address
Publisher address
varchar(20)
No
No
pub_postalcode
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
DESCRIPTION
DATA
PRIMARY
TYPE
KEY
int(10)
Yes
No
References int(10)
No
No
References int(10)
No
No
NAME
reserve_id
mem_no
Foreign
Key(mem_no)
NULL
members(mem_no)
bk_code
Foreign
Key(bk_code)
members(bk_code)
reserve_date
date
No
No
pick_date
date
No
No
Status
varchar(60) No
Yes
DESCRIPTION
NAME
DATA
PRIMARY
TYPE
KEY
NULL
user_id
int(10)
Yes
No
username
varchar(20)
No
No
varchar(60)
No
No
tinyint(4)
No
No
77 | P a g e
DESCRIPTION
NAME
rev_no
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
varchar(20)
No
No
amount_charged
varchar(20)
No
No
comment
varchar(20)
No
No
served_by
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.
The table below shows part of the normalization process of the major entities in the system.
78 | P a g e
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
80 | P a g e
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
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 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 (c): Figure showing error message: Username/password combination incorrect
83 | P a g e
84 | P a g e
Fig 5.1 (d): Figure showing librarian welcome screen once they log in.
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.
86 | P a g e
87 | P a g e
88 | P a g e
89 | P a g e
Fig 5.1 (o): Screen shot diagram showing the searched member card details.
91 | P a g e
92 | P a g e
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.
95 | P a g e
96 | P a g e
97 | P a g e
5.2.
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
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.
99 | P a g e
100 | P a g e
101 | P a g e
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.
103 | P a g e
104 | P a g e
CHAPTER FIVE
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 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.
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.
The servers of the institution operating the system have requirements to support and operate PHP
scripting language and Wamp Server.
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 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.
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.3.
Specific Requirements
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.
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.
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
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.
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.
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.
111 | P a g e
APPENDIX
Appendix 1 a. Schedule of Project Activities
112 | P a g e
113 | P a g e
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
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(
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=""
//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
offset4"><p><br/>ABOUT
THE
BOOK:<br/><?php
echo
$row['bk_info'];
120 | P a g e