Final Project
Final Project
Submitted
to
Anurag Gupta
May 2024
Declaration
I, here by declare that the dissertation titled “Library Management System” submitted
here in has been carried out by me in the Bachelor of computer application
of Galgotias University, Uttar Pradesh. The work is original and has not been submitted earlier
as a whole or in part for the award of any degree at this or any other Institution / University.
exist in and to the above work and any revised or expanded derivatives works based on the I also here
by assign to Galgotias University, Uttar Pradesh all rights under copyright that may work as mentioned.
Other work copied from references, manuals etc. are disclaimed.
Name of student:
INDEX
INDEX
1. **Title Page**
- Project Title
- Authors
- Submission Details
2. **Declaration**
3. **Introduction**
- Overview of the System
- Need for the System
4. **Objectives**
- Main Objectives
- Specific Goals
7. **Project Category**
- Description of the Project Category
- Programming Language and Database Connectivity Used
11. **Implementation**
- Code Snippets
- Functionality Description
12. **Testing**
- Testing Strategies
- Test Cases
13. **Conclusion**
- Summary of Work Done
- Future Enhancements
14. **References**
15. **Appendices**
- Additional Diagrams
- SQL Queries
- User Manuals
INTRODUCTION
INTRODUCTION
The "Library Management System" has been developed to override the problems
prevailing in the practicing manual system. This software is supported to eliminate
and, in some cases, reduce the hardships faced by this existing system. Moreover, this
system is designed for the particular need of the company to carry out operations in
a smooth and effective manner.
The application is reduced as much as possible to avoid errors while entering the data.
It also provides error message while entering invalid data. No formal knowledge is
needed for the user to use this system. Thus, by this all it proves it is user-friendly.
Library Management System, as described above, can lead to error free, secure,
reliable and fast management system. It can assist the user to concentrate on their other
activities rather to concentrate on the record keeping. Thus, it will help organization
in better utilization of resources.
Every organization, whether big or small, has challenges to overcome and managing
the information of Books, Student, Librarian, Address, Member. Every Library
Management System has different Student needs; therefore, we design exclusive
employee management systems that are adapted to your managerial requirements.
This is designed to assist in strategic planning, and will help you ensure that your
organization is equipped with the right level of information and details for your future
goals. Also, for those busy executive who are always on the go, our systems come
with remote access features, which will allow you to manage your workforce anytime,
at all times.
The Application includes:
Student Information
Book Information
Issuing Books
Borrowing Books
The main objective of the Project on Library Management System is to manage the
details of Student, Books, Issues, Librarian, Member. It manages all the information
about Student, Address of Member as well as Student. The project is totally built at
administrative end and thus only the administrator is guaranteed the access. The purpose
of the project is to build a web-based application program to reduce the manual work for
managing the Student, Books, Address, Issues. It tracks all the details about the Issues,
Librarian, Member, etc.
4. The system saves time for both the user and the librarian. With just a click the
user can search for the books available in the library. The librarian can answer
queries with ease regarding the availability of books.
7. The library management system software makes the library a smart one by
organizing the books systematically by author, title and subject. This enables users
to search for books quickly and effortlessly.
9. In this digital age a web-based library management system would be ideal for
students who can access the library’s database on their smartphones.
10. The main objective of the Project of Library Management System is to manage
the details of users as well as books.
11. It also manages all the information about Student, Address of Member as well as
Student.
PRELIMINARY
SYSTEM
ANALYSIS
Preliminary Investigation:
Feasibility study of a system means whether the system is practically possible to build
or not. It also evaluates the benefits of the new system. A feasibility study is an analysis
of how a successfully a project can be completed, according factors that affect is such
as Economical, behavioral, Technical and Operational. Project Manager use feasibility
studies to determine potential positive and negative outcomes of the project before
investing a consideration of amount of time and money into it.
The software that has to be developed is analyze in details and the system which is to be
developed in technically, operationally and economically feasible or not is taken care of.
The feasibility study means not to solve the problems completely but also to
acquire the scope and work ability of the problem by giving various solutions to give
problem and picking up one of the best solutions.
Technical Feasibility:
Technical Feasibility one of the studies that must be conducted after a project has been
identified. Technical Feasibility means to solve the problems related to hardware and
software. It refers to the technical resources needed to develop the new application. The
analyst must find out whether current technologies are sufficient for proposed system. In
“Library Management System” web-based application is developed in Microsoft Visual
Studio Code, which can be easily run on any system with the required configuration.
Behavioral Feasibility:
It is natural observation that people are resistant to change and computers have know
to facilitate change. When the user system has been developed or when a step is taken
to convert a manual system to the computerized system, it is a significant factor to know
the reaction of the user staff as they are once who will judge the working of the
new system. It is checked as to what percentage of staff members are against the change
and one who support it.
Operational Feasibility:
Operational feasibility ascertains how well the implementation of a project fits in with
the current organizational structure. The solutions to a current problem must come as
close as possible to a perfect fit with the organizational structure and be able to be
applied to solve other arising problems. The opportunities that come along the way
during the solution implementation must be able to be harnessed for even easier
implementation.
17
PROJECT CATEGORY
Project Category
A category of project is web-based application named “Library Management System”.
Main Window are designed by using Python language. MySQL are used for the
database connection with python.
Python:-
Python is an interpreted, object-oriented, high-level programming language with
dynamic semantics. Its high-level built in data structures, combined with dynamic
typing and dynamic binding, make it very attractive for Rapid Application
Development, as well as for use as a scripting or glue language to connect existing
components together. Python's simple, easy to learn syntax emphasizes readability
and therefore reduces the cost of program maintenance. Python supports modules
and packages, which encourages program modularity and code reuse. The Python
interpreter and the extensive standard library are available in source or binary form
without charge for all major platforms, and can be freely distributed.
The Python installers for the Windows platform usually include the entire
standard library and often also include many additional components. For Unix-like
operating systems Python is normally provided as a collection of packages, so it may
be necessary to use the packaging tools provided with the operating system to obtain
some or all of the optional components.
Guido van Rossum began working on Python in the late 1980s as a successor to the
ABC programming language and first released it in 1991 as Python 0.9.0. Python 2.0
was released in 2000 and introduced new features such as list comprehension, cycle-
detecting garbage collection, reference counting, and Unicode support. Python 3.0,
released in 2008, was a major revision that is not completely backward-compatible
with earlier versions. Python 2 was discontinued with version 2.7.18 in 2020.
Python consistently ranks as one of the most popular programming languages.
MySQL
MySQL is integral to many of the most popular software stacks for building and
maintaining everything from customer-facing web applications to powerful, data-
driven B2B services. Its open-source nature, stability, and rich feature set, paired with
ongoing development and support from Oracle, have meant that internet-critical
organizations such as Facebook, Twitter, Wikipedia, and YouTube all employ
MySQL backends.
SOFTWARE
AND
HARDWARE
REQUIREMENT
SPECIFICATION
Hardware
Hardware is a term that refers to all the physical parts that make up a computer.
The internal hardware devices that make up the computer. Various devices which
are essentials to form a hardware is called as components.
Following are the hardware specifications that is required to develop this project is
as follows:
1. Computer components like Monitor, Keyboard, Mouse, CPU, Keyboard.
2. Minimum 1 GB ram for smooth working of application.
3. 250 GB Hard Disk or More. CD ROM Drive.
Software
Computer software, or simply software, is a collection of data or computer
instructions that tell the computer how to work. This is in contrast to physical
hardware, from which the system is build and actually performs the work.
Operating System
Windows12
Detailed System Analysis
Data Flow Diagram
LIBRARY
USER MANAGEMENT REPORTS
SYSTEM
DATABASE
Entity Relationship Diagram
#PRN_No
#Author_Name
BOOKS
#Book_Name
#Book_Code
ISSUES #Return_Date
#Book_ID
#Date_Over_Due
#Member_ID
#Late_Return_Fine
#Issue_Date
MEMBER
First_Name
Member_Type
Mobile Last_Name
Address_1 Member_ID
Address_2
2. Creating Table:
-- Create the USERS table
CREATE TABLE USERS (
user_id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL,
membership_date DATE NOT NULL
);
Output:
SYSTEM DESIGN
Home Page
1) Main Home screen:
# Connecting to Database
connector = sqlite3.connect('library.db')
cursor = connector.cursor()
connector.execute(
'CREATE TABLE IF NOT EXISTS Library (BK_NAME TEXT, BK_ID TEXT PRIMARY KEY NOT NULL,
AUTHOR_NAME TEXT, BK_STATUS TEXT, CARD_ID TEXT)'
)
# Functions
def issuer_card():
Cid = sd.askstring('Issuer Card ID', 'What is the Issuer\'s Card ID?\t\t\t')
if not Cid:
mb.showerror('Issuer ID cannot be zero!', 'Can\'t keep Issuer ID empty, it must have a value')
else:
return Cid
def display_records():
global connector, cursor
global tree
tree.delete(*tree.get_children())
def clear_fields():
global bk_status, bk_id, bk_name, author_name, card_id
bk_status.set('Available')
for i in ['bk_id', 'bk_name', 'author_name', 'card_id']:
exec(f"{i}.set('')")
bk_id_entry.config(state='normal')
try:
tree.selection_remove(tree.selection()[0])
except:
pass
def clear_and_display():
clear_fields()
display_records()
def add_record():
global connector
global bk_name, bk_id, author_name, bk_status
if bk_status.get() == 'Issued':
card_id.set(issuer_card())
else:
card_id.set('N/A')
if surety:
try:
connector.execute(
'INSERT INTO Library (BK_NAME, BK_ID, AUTHOR_NAME, BK_STATUS,
CARD_ID) VALUES (?, ?, ?, ?, ?)',
(bk_name.get(), bk_id.get(), author_name.get(), bk_status.get(), card_id.get()))
connector.commit()
clear_and_display()
mb.showinfo('Record added', 'The new record was successfully added to your database')
except sqlite3.IntegrityError:
mb.showerror('Book ID already in use!',
'The Book ID you are trying to enter is already in the database, please alter that
book\'s record or check any discrepancies on your side')
def view_record():
global bk_name, bk_id, bk_status, author_name, card_id
global tree
if not tree.focus():
mb.showerror('Select a row!', 'To view a record, you must select it in the table. Please do so before
continuing.')
return
current_item_selected = tree.focus()
values_in_selected_item = tree.item(current_item_selected)
selection = values_in_selected_item['values']
def update_record():
def update():
global bk_status, bk_name, bk_id, author_name, card_id
global connector, tree
if bk_status.get() == 'Issued':
card_id.set(issuer_card())
else:
card_id.set('N/A')
clear_and_display()
edit.destroy()
bk_id_entry.config(state='normal')
clear.config(state='normal')
view_record()
bk_id_entry.config(state='disable')
clear.config(state='disable')
def remove_record():
if not tree.selection():
mb.showerror('Error!', 'Please select an item from the database')
return
current_item = tree.focus()
values = tree.item(current_item)
selection = values["values"]
tree.delete(current_item)
clear_and_display()
def delete_inventory():
if mb.askyesno('Are you sure?', 'Are you sure you want to delete the entire inventory?\n\nThis command
cannot be reversed'):
tree.delete(*tree.get_children())
def change_availability():
global card_id, tree, connector
if not tree.selection():
mb.showerror('Error!', 'Please select a book from the database')
return
current_item = tree.focus()
values = tree.item(current_item)
BK_id = values['values'][1]
BK_status = values["values"][3]
if BK_status == 'Issued':
surety = mb.askyesno('Is return confirmed?', 'Has the book been returned to you?')
if surety:
cursor.execute('UPDATE Library SET bk_status=?, card_id=? WHERE bk_id=?',
('Available', 'N/A', BK_id))
connector.commit()
else: mb.showinfo(
'Cannot be returned', 'The book status cannot be set to Available unless it has been returned')
else:
cursor.execute('UPDATE Library SET bk_status=?, card_id=? where bk_id=?', ('Issued',
issuer_card(), BK_id))
connector.commit()
clear_and_display()
# Variables
lf_bg = 'LightSkyBlue' # Left Frame Background Color
rtf_bg = 'DeepSkyBlue' # Right Top Frame Background Color
rbf_bg = 'DodgerBlue' # Right Bottom Frame Background Color
btn_hlb_bg = 'SteelBlue' # Background color for Head Labels and Buttons
lbl_font = ('Georgia', 13) # Font for all labels
entry_font = ('Times New Roman', 12) # Font for all Entry widgets
btn_font = ('Gill Sans MT', 13)
Label(root, text='LIBRARY MANAGEMENT SYSTEM', font=("Noto Sans CJK TC", 15, 'bold'), bg=btn_hlb_bg,
fg='White').pack(side=TOP, fill=X)
# StringVars
bk_status = StringVar()
bk_name = StringVar()
bk_id = StringVar()
author_name = StringVar()
card_id = StringVar()
# Frames
left_frame = Frame(root, bg=lf_bg)
left_frame.place(x=0, y=30, relwidth=0.3, relheight=0.96)
RB_frame = Frame(root)
RB_frame.place(relx=0.3, rely=0.24, relheight=0.785, relwidth=0.7)
# Left Frame
Label(left_frame, text='Book Name', bg=lf_bg, font=lbl_font).place(x=98, y=25)
Entry(left_frame, width=25, font=entry_font, text=bk_name).place(x=45, y=55)
tree = ttk.Treeview(RB_frame, selectmode=BROWSE, columns=('Book Name', 'Book ID', 'Author', 'Status', 'Issuer
Card ID'))
tree.config(xscrollcommand=XScrollbar.set, yscrollcommand=YScrollbar.set)
clear_and_display()
We will also provide more images in GUI related to our web-based application
in future. We will try to find out more about this topic and add in future. We will
try to make this application more attractive so that visitor cannot get bored while
using it.
We will also provide more images in GUI related to our web-based application in
future. We will try to find out more about this topic and add in future. We will try
to make this application more attractive so that visitor cannot get bored while
using it. We will provide login id to each and every user so that he can access our
website from anywhere through log in id and password. In future we add some
major facilities like Reservation of Book.
CONCLUSION
CONCLUSION :
Library Management System allows the user to store the book details and the
customer details. This software package allows storing the details of all the data
related to library. The system is strong enough to withstand regressive yearly
operations under conditions where the database is maintained and cleared over a
certain time of span. The implementation of the system in the organization will
considerably reduce data entry, time and also provide readily calculated reports.
BIBLIOGRAPHY
&
REFERENCES
BIBLIOGRAPHY & REFERENCES :
Websites References:
https://www.tutorialspoint.com/index.htm
https://www.javatpoint.com
https://www.w3schools.com
https://html.com
Books References: