INFORMATION PRACTICES
“LIBRARY MANAGEMENT”
[Link] TOPIC
1 Introduction
2 Working of the system
3 Proposed System
4 Module Description
5 Implementation
6 Source Code
7 Output
8 Installation procedure
9 Hardware and software
requirements
10 Bibliography
1
Introduction:
What is a Library Management System ?
A Library Management System is a software application used by
libraries to manage their resources efficiently. It helps librarians
organize, catalogue, and circulate books, journals, media, and
other materials available in the library. Let's take a look at an
example of a library system to understand how it works.
How a Library management system works:
In a library system like Koha, librarians can perform various
tasks such as adding new books to the catalogue, updating
existing records, checking items in and out, and managing user
2
accounts. Library users can search for materials using the
OPAC, place holds on items, and view their borrowing history.
The system helps librarians keep track of the library's collection,
monitor circulation activities, and provide better services to
patrons. By automating routine tasks and centralizing library
operations, a library system like Koha improves efficiency and
enhances the overall user experience.
Features of a Library Management System:
An example of a popular library system is Koha. Koha is an open-
source integrated library system that provides various features
to help libraries streamline their operations.
Some key features of Koha include:
● Cataloguing: Allows librarians to create and manage
bibliographic records for library materials.
● Circulation: Facilitates the process of checking materials
3
in and out, managing holds, and handling renewals.
● OPAC (Online Public Access Catalogue): Provides library
users with an online portal to search for materials, place
holds, and manage their accounts.
● Acquisitions: Manages the process of acquiring new
materials for the library's collection.
● Reporting: Generates reports on library usage, circulation
statistics, and other important data.
Benefits of Using a Library Management System:
Implementing a library system like Koha offers several benefits
to libraries and their users:
● Efficiency: Streamlines library operations and reduces
manual tasks.
● Accessibility: Provides users with easy access to library
resources through the online catalogue.
● Accuracy: Helps maintain accurate records of library
materials and user accounts.
● Analytics: Enables librarians to gather data on library
4
usage and make informed decisions.
In conclusion, a library system like Koha plays a crucial role in
modern libraries by digitizing and automating key processes. It
enhances the overall management of library resources and
improves the experience for both librarians and patrons.
What is the main purpose of a library management system?
What is a Library Management System? | Key Features ...
The main objectives of a library management system are to
streamline library operations through automation, improve
efficiency for both staff and users, and enhance the
management of resources.
How library management helps in this generations:
Library management systems help in this generation by
automating administrative tasks, increasing efficiency, and
improving user access to resources 24/7. They streamline
processes like cataloging and book circulation, reduce errors
and costs, and provide users with online portals to search,
reserve, and manage their accounts from anywhere. This allows
librarians to focus on more valuable tasks and enables a
modern, data-driven approach to library services.
5
For the library staff and operations:
● Increased efficiency: Automates repetitive tasks like
cataloging, stock checking, and tracking books, which
eliminates manual errors and saves time.
● Cost-effectiveness: Reduces operational costs by
minimizing the need for extensive manual labor and
improving inventory management.
● Improved resource management: Provides accurate data
to track the availability of books, identify missing items,
and manage the acquisition of new materials more
effectively.
● Better reporting: Generates reports on user activity, book
usage, and trends, which helps in making data-driven
decisions to improve library services.
● Enhanced security: Includes features like user
authentication and data protection to keep library records.
6
Core functions:
● Cataloging: Manages the library's collection by creating a
digital record for each item, often using an ISBN as a
unique identifier.
● Circulation: Handles the borrowing and returning of
materials, including tracking due dates and managing user
accounts.
● Member management: Keeps track of user information,
such as contact details and their borrowing history.
● Inventory and stock checks: Makes it easier to perform
regular stock taking to verify the library's physical holdings.
● Reporting and analytics: Provides data on library usage,
such as which books are popular or how many items are
overdue, which helps in strategic planning.
7
Which database is used in the Library Management System?
MySQL
For libraries and bookstores, a well-tailored database is
essential to categorize, index, and swiftly retrieve vast amounts
of data, ensuring efficient operations. MySQL is an open-source
database management system which facilitates efficient
data manipulation
Library Database Management System:
A library database management system is software designed to
manage and organize a library's operations, such as tracking
books, member accounts, and circulation, by using a structured
database. It automates tasks like cataloging, lending, and
returns, while providing interfaces for both patrons and staff.
These systems, also called Integrated Library Systems (ILS), are
essential for efficiently handling vast amounts of information in
a library.
Key functions:
● Cataloging and inventory: Manages the library's collection,
including adding, removing, and indexing materials like
books and journals.
● Circulation management: Tracks the borrowing, returning,
8
and renewing of books by members.
● Member management: Maintains a database of library
users and their borrowing history.
● Acquisitions: Handles the ordering, receiving, and
payment of new materials.
● Patron interface: Provides an Online Public Access Catalog
(OPAC) for patrons to search the library's collection, view
their accounts, and find books.
● Reporting: Generates reports on library usage, overdue
books, fines, and other operational data.
How it works:
● Database and software: An ILS is built on a relational
database, which stores all library data in a structured,
organized format. This database is accessed and managed
by specialized software applications.
● Modular design: Functionality is often divided into
modules, such as circulation, cataloging, and acquisitions,
which are integrated into a single system.
● Data management: The system ensures data integrity,
consistency, and security by centrally controlling data
access and reducing redundancy.
9
● Automation: The software automates many manual tasks,
which saves time and effort for both librarians and
patrons.
● Database design: Designing the system involves creating
an Entity-Relationship Diagram (ERD) to visualize the data
and its relationships, followed by normalization to reduce
data redundancy and improve efficiency.
Disadvantages of a library management system:
Include high costs for implementation and maintenance,
potential performance issues, and security vulnerabilities.
Additional drawbacks involve technical challenges like
data migration, the need for staff training, internet
dependency for online systems, and limited scalability for
large datasets.
Cost and resources:
● High implementation and maintenance costs: Initial
setup, hardware, software, and ongoing support can be
expensive.
● Staff training: Continuous and costly training is required
to ensure staff can operate the system effectively.
Infrastructure requirements: Online systems need high-
10
speed internet, and any system requires adequate
hardware, which can be a barrier, especially for open-
source options.
Technical and operational challenges
● Performance issues: Large datasets or complex queries
can lead to slow performance, especially without proper
optimization.
● Data migration issues: Moving data from an old system
can result in data loss, duplication, or errors.
● Limited scalability: The system may struggle to handle a
significant increase in users or data volume without a
redesign.
● Internet dependency: Web-based or online systems may
be inaccessible in are in areas with poor or no internet
connectivity.
AI In Library Management System:
An AI-powered library management system uses artificial
intelligence to automate and optimize library operations,
offering features like intelligent search, personalized
recommendations, and automated cataloging. This system
streamlines processes for both users and librarians, from
11
browsing and borrowing to managing resources and analyzing
usage patterns. Key benefits include enhanced user experience
through tailored suggestions, improved efficiency with
automated tasks, and better data-driven decision-making
for library staff.
Key features:
AI-driven search and recommendation:
● Intelligent search: Enables users to find resources using
natural language queries, keywords, authors, or subject
12
relevance, going beyond simple keyword matching.
● Personalized recommendations: Analyzes user reading
history and behavior to suggest relevant books and
reading lists, creating a more engaging experience.
Automated workflows:
● Automated cataloging: Uses AI to automatically classify
and tag resources, creating improved metadata and
reducing manual data entry for librarians.
● Librarian assistance: Provides tools to help librarians with
tasks like summarizing research papers, transcribing
audio/video, and proofreading documents.
Enhanced user and administrative tools:
● User module: Allows for online browsing, borrowing,
managing wishlists, and receiving automated
notifications.
● Admin module: Streamlines book inventory control,
user registration, and generates analytical reports on
user activity and trends.
● Data analysis and security: Usage analysis: Analyzes
13
circulation data and usage patterns to help librarians
anticipate needs and optimize resource allocation.
● Security: Uses AI to encrypt user data, track behavior
to detect anomalies, and help maintain compliance
with privacy rules.
14
Conclusion:
● Increased efficiency: Automates routine tasks like book
tracking and fines, reducing the time and effort required by
librarians.
● Improved user experience: Provides users with faster and
more convenient access to the library's collection through
online catalogs and user-specific features like online book
requests.
● Accurate record-keeping: Creates a centralized and
secure database that maintains accurate records of books,
members, and transactions, minimizing human error.
● Enhanced data management: Enables librarians to
generate detailed reports, analyze usage patterns, and
make data-informed decisions for better library
management.
● Accessibility and reach: Extends the library's reach
beyond physical walls, especially with digital components,
allowing for remote access to resources.
15
SOURCE CODE:
Note:
• Display the options and ask the user to enter the choice.
• Show an in-progress message.
• Create appropriate response.
• Allow the user to continue or quit the software.
Program:
import csv
from datetime import datetime
import os
# ---------- CONFIG ----------
FILENAME = "[Link]" # simple file name for CSV
storage
FIELDS =
["book_id","book_name","author","status","issued_to","issue_
date"]
# Create CSV file with headers if not exists
16
if not [Link](FILENAME):
with open(FILENAME, "w", newline="") as f:
writer = [Link](f, fieldnames=FIELDS)
[Link]()
print(f"{FILENAME} created successfully!")
def read_rows():
with open(FILENAME, "r", newline="") as f:
return list([Link](f))
def write_rows(rows):
with open(FILENAME, "w", newline="") as f:
writer = [Link](f, fieldnames=FIELDS)
[Link]()
[Link](rows)
17
def add_book():
rows = read_rows()
book_id = input("Enter Book ID: ")
# check duplicate
for r in rows:
if r["book_id"] == book_id:
print("This Book ID already exists.")
return
name = input("Enter Book Name: ")
author = input("Enter Author Name: ")
[Link]({"book_id":book_id, "book_name":name,
"author":author, "status":"Available", "issued_to":"",
"issue_date":""})
write_rows(rows)
print("Book added successfully!")
print("In progress... Please wait...")
print("=========================================
==================")
18
def issue_book():
rows = read_rows()
book_id = input("Enter Book ID to Issue: ")
for r in rows:
if r["book_id"] == book_id:
if r["status"] == "Available":
student = input("Enter Student Name: ")
r["status"] = "Issued"
r["issued_to"] = student
r["issue_date"] = [Link]().strftime("%Y-%m-
%d")
write_rows(rows)
print("Book issued successfully!")
print("=========================================
==================")
return
else:
print("Book is already issued.")
19
return
print("Book not found.")
def return_book():
rows = read_rows()
book_id = input("Enter Book ID to Return: ")
for r in rows:
if r["book_id"] == book_id:
if r["status"] == "Issued":
r["status"] = "Available"
r["issued_to"] = ""
r["issue_date"] = ""
write_rows(rows)
print("Book returned successfully!")
print("=========================================
==================")
return
20
else:
print("Book is not issued.")
return
print("Book not found.")
def show_records():
print("Library Book Records:")
rows = read_rows()
for r in rows:
print(r)
print("=========================================
==================")
while True:
print("=========================================
==================")
21
print("WELCOME TO LIBRARY MANAGEMENT SYSTEM")
print("=========================================
==================")
print("1. Add Book")
print("2. Issue Book")
print("3. Return Book")
print("4. View All Records")
print("5. Exit")
print("=========================================
==================")
ch = input("Enter your choice: ")
print("=========================================
==================")
if ch == '1':
add_book()
22
elif ch == '2':
issue_book()
elif ch == '3':
return_book()
elif ch == '4':
show_records()
elif ch == '5':
print("Exiting the Software...")
print("Thank you for using our Library Management
System!")
print("=========================================
==================")
break
else:
print("Invalid choice! Please try again.")
1:
23
books = []
while True:
print("\n1 Add Book\n2 View Books\n3 Exit")
ch = input("Choice: ")
if ch == '1':
title = input("Title: ")
author = input("Author: ")
[Link]([title, author])
print("Book Added!")
elif ch == '2':
for b in books:
print("Title:", b[0], "| Author:", b[1])
if not books:
print("No books yet.")
else:
break
2:
library = []
24
while True:
print("\n1 Add Book\n2 Search Book\n3 View All\n4
Exit")
c = input("Choice: ")
if c == '1':
b = input("Book Name: ")
a = input("Author: ")
[Link]([b, a])
elif c == '2':
key = input("Enter book name: ").lower()
found = False
for b in library:
if key in b[0].lower():
print("Found:", b[0], "-", b[1])
found = True
if not found:
print("Not Found.")
25
elif c == '3':
for i in library:
print(i[0], "-", i[1])
else:
break
---
3:
def add_book():
b = input("Book: ")
a = input("Author: ")
with open("[Link]","a") as f:
[Link](b + "," + a + "\n")
def view():
26
with open("[Link]","r") as f:
for i in f:
b, a = [Link]().split(",")
print("Book:", b, "| Author:", a)
while True:
print("\n1 Add 2 View 3 Exit")
c = input("Choice: ")
if c=='1': add_book()
elif c=='2': view()
else: break
---
4:
books = ["Maths", "Science", "English"]
issued = []
while True:
print("\n1 Issue Book\n2 Return Book\n3 View
Issued\n4 Exit")
ch = input("Choice: ")
27
if ch == '1':
b = input("Enter book: ")
if b in books:
[Link](b)
[Link](b)
print("Issued!")
else:
print("Book not available.")
elif ch == '2':
b = input("Enter book to return: ")
if b in issued:
[Link](b)
[Link](b)
print("Returned!")
else:
print("Not in issued list.")
28
elif ch == '3':
print("Issued Books:", issued)
else:
break
---
5:
lib = {}
while True:
print("\n1 Add Book\n2 View\n3 Exit")
ch = input("Choice: ")
if ch=='1':
id = input("ID: ")
name = input("Book Name: ")
lib[id] = name
elif ch=='2':
for i in lib:
print(i, ":", lib[i])
29
else:
break
---
6:
books = []
while True:
print("\n1 Add Book\n2 Count by Author\n3 Exit")
c=input("Choice: ")
if c=='1':
name=input("Book: ")
author=input("Author: ")
[Link]([name, author])
elif c=='2':
a=input("Author: ")
total = sum(1 for b in books if b[1]==a)
print("Books by", a, ":", total)
else:
break
---
30
7:
library = []
while True:
print("\n1 Add\n2 Delete\n3 View\n4 Exit")
ch = input("Choice: ")
if ch=='1':
[Link](input("Book Name: "))
elif ch=='2':
b=input("Book to delete: ")
if b in library:
[Link](b)
print("Deleted!")
else:
print("Not found.")
elif ch=='3':
print(library)
else:
break
31
---
8:
lib = {}
while True:
print("\n1 Add Book\n2 Borrow\n3 View\n4 Exit")
c=input("Choice: ")
if c=='1':
b=input("Book: ")
q=int(input("Quantity: "))
lib[b]=q
elif c=='2':
b=input("Borrow which book: ")
if b in lib and lib[b] > 0:
lib[b] -= 1
print("Borrowed!")
else:
print("Not available.")
elif c=='3':
32
for i in lib:
print(i, ":", lib[i])
else:
break
9:
book = input("Book Name: ")
days = int(input("Days late: "))
if days <= 5:
fine = days * 2
elif days <= 10:
fine = 5*2 + (days-5)*5
else:
fine = 5*2 + 5*5 + (days-10)*10
print("Book:", book)
print("Fine:", fine)
---
10:
library = []
def add_book():
33
b = input("Book: ")
a = input("Author: ")
[Link]({"book":b, "author":a})
def show():
for i in library:
print(i["book"], "-", i["author"])
while True:
print("\n1 Add\n2 Show\n3 Exit")
ch = input("Choice: ")
if ch=='1': add_book()
elif ch=='2': show()
else: break
---
1:
CREATE DATABASE librarydb;
USE librarydb;
CREATE TABLE books(
book_id INT PRIMARY KEY,
title VARCHAR(50),
34
author VARCHAR(50)
);
---
2:
INSERT INTO books VALUES
(1, 'Maths', 'R.D Sharma'),
(2, 'Science Concepts', 'HC Verma'),
(3, 'English Stories', 'John Smith');
---
3:
SELECT * FROM books;
---
4:
SELECT * FROM book
WHERE title LIKE '%Math%';
---
5:
UPDATE books
SET author = 'New Author'
WHERE book_id = 2;
35
---
6:
DELETE FROM books
WHERE book_id = 3;
---
7:
SELECT author, COUNT(*)
FROM books
GROUP BY author;
---
8:
CREATE TABLE issue(
issue_id INT PRIMARY KEY,
book_id INT,
student_name VARCHAR(50),
issue_date DATE
);
---
9:
36
INSERT INTO issue VALUES
(101, 1, 'Amit Kumar', '2024-05-10');
---
10:
(Still Class-12 level, because Class 12 includes Joins)
SELECT issue.issue_id, [Link], issue.student_name,
issue.issue_date
FROM issue
INNER JOIN books
ON issue.book_id = books.book_id;
---
OUTPUT:
SAMPLE INTERACTION:
===============================================
============
WELCOME TO LIBRARY MANAGEMENT SYSTEM
===============================================
============
1. Add Book
37
2. Issue Book
3. Return Book
4. View All Records
5. Exit
===============================================
============
Enter your choice: 1
Enter Book ID: 101
Enter Book Name: Python Basics
Enter Author Name: John
Book added successfully!
In progress... Please wait...
======================
INSTALLATION PROCEDURE:
Install Python 3 software from the official website
[Link].
Save the program file with the name [Link] in a suitable
folder on your computer.
Open the Command Prompt and run the program by typing
python [Link].
38
The system will automatically create a file named
[Link] to store all library records.
The CSV file can be opened using Microsoft Excel to view the
stored book details.
HARDWARE AND SOFTWARE REQUIREMENTS:
HARDWARE REQUIREMENTS:
I. Operating System: Windows 7 or above
II. Processor: Intel Pentium (any version) or AMD Athlon
(dual core)
III. RAM: 512 MB or above (1 GB recommended)
IV. Hard Disk: Minimum 40 GB SATA Hard Disk or above
V. Monitor: 14" or 15" color display
VI. Keyboard and Mouse: Standard
SOFTWARE REQUIREMENTS:
I. Operating System: Windows 7, 8, 10, or 11
II. Programming Language: Python 3.x
III. Text Editor / IDE: IDLE (comes with Python), VS Code, or
PyCharm
IV. Database: CSV File (Comma-Separated Values) used for
storing data
39
V. Additional Software: Microsoft Excel – to open and view
stored CSV files
BIBLIOGRAPHY:
• Computer Science with Python by Sumita Arora
• Official Python Website: [Link]
• Tutorials and Documentation from https://
[Link]
• W3Schools: [Link]
40