Library Management System Ip Project
Library Management System Ip Project
[Session 2023-24]
_______________ _______________
Principal Sign
_______________
Acknowledgement
2 Project Analysis 2
3 System Requirements 2
5 Project Description 4
6 Functionalities of a system 5
8 Output: 13-16
9 Bibliography 17
0
System Development Life Cycle
1
Project Analysis
System Requirements
Processor: P-IV and Above
RAM: 1GB
Windows: 7 and above
Python Version: 3.6 and above
MySQL Version: 5.6 and above
2
Functions and Modules
Modules:
Import mysql.connector:
By importing this package, we are able to establish the
connection between SQL and Python.
Functions:
3
Project Description
(Database Architecture)
LIBRARY
Book
Member
Issue Returns
4
Functionalities of the system
You can perform the following actions in our program:
Book Details:
1. Add New Book
2. Edit Book Details
3. Delete a Book
4. Search A Book
Member Details:
1. Add A New Member
2. Edit A Member
3. Delete A Member
4. Search A Member
Transactions:
1. Issue a book
2. Return a book
Reports:
1. Book Details
2. Member Details
3. Issue Details
4. Return Details
5. Best Reading Book (chart)
5
Source Code
MySQL
Create database library;
Use library;
Create table book(
BookID int primary key,
BookName varchar(100),
Author varchar(30),
Edditon char(10),
Copies int,
Rem_Copies int);
6
Python
import mysql.connector as sqlt
import pandas as pd
from tabulate import tabulate
import matplotlib.pyplot as plt
#Book
def book_input():
try:
bookid = input("Enter Book id: ")
bookName = input("Enter Book Name: ")
author = input("Enter Author Name: ")
eddition = float(input("Enter Eddition: "))
copies = int(input("Enter No of Copies: "))
qry = "insert into book value({},'{}','{}','{}',{},{});".format(bookid,bookName,author,eddition,copies,copies)
cursor.execute(qry)
con.commit()
print("added successfully")
except:
print("Sorry, Something Went Wrong!!")
def book_edit():
try:
x=int(input("Enter Book ID: "))
qry= "select* from book where bookid = {};".format(x)
cursor.execute(qry)
r=cursor.fetchone()
if r:
y=float(input("Enter New Eddition: "))
qry = "select * from book where bookid= {};".format(y,x)
cursor.execute(qry)
print("Edited sussessfully.")
else:
print("Book ID Doesn't exists.")
except:
print("Sorry, Something Went Wrong!!")
def book_delete():
try:
x=int(input("Enter Book ID: "))
qry= "select * from book where bookid = {};".format(x)
cursor.execute(qry)
r=cursor.fetchone()
if r:
qry = "delete from book where bookid= {};".format(x)
cursor.execute(qry)
con.commit()
print("Deleted sussessfully.")
else:
7
print("Book ID Doesn't exists.")
except:
print("Sorry, Something Went Wrong!!")
def book_search():
try:
x=int(input("Enter Book ID: "))
qry= "select* from book where bookid = {};".format(x)
cursor.execute(qry)
r=cursor.fetchone()
if r:
df=pd.read_sql(qry,con)
print(tabulate(df, headers = 'keys' , tablefmt = 'psql', showindex =True))
else:
print("Book ID Doesn't exists.")
except:
print("Sorry, Something Went Wrong!!")
#Member
def member_input():
try:
memberid = input("Enter Member ID: ")
MemName = input("Enter Name: ")
Email = input("Enter Email: ")
Phone = float(input("Enter Phone No.: "))
qry = "insert into member value({},'{}','{}','{}');".format(memberid, MemName, Email, Phone)
cursor.execute(qry)
con.commit()
print("added successfully")
except:
print("Sorry, Something Went Wrong!!")
def member_edit():
try:
x=int(input("Enter Member ID: "))
qry= "select* from member where memberid = {};".format(x)
cursor.execute(qry)
r=cursor.fetchone()
if r:
y=input("Enter New Email: ")
qry = "update member set Email ='{}' where memberid= {};".format(y,x)
cursor.execute(qry)
print("Edited sussessfully.")
else:
print("Member ID Doesn't exists.")
except:
print("Sorry, Something Went Wrong!!")
def member_delete():
try:
8
x=int(input("Enter Member ID: "))
qry= "select* from member where memberid = {};".format(x)
cursor.execute(qry)
r=cursor.fetchone()
if r:
qry = "delete from member where memberid= {};".format(x)
cursor.execute(qry)
print("Deleted sussessfully.")
else:
print("Book ID Doesn't exists.")
except:
print("Sorry, Something Went Wrong!!")
def member_search():
try:
x=int(input("Enter Member ID: "))
qry= "select* from member where memberid = {};".format(x)
cursor.execute(qry)
r=cursor.fetchone()
if r:
df=pd.read_sql(qry,con)
print(tabulate(df, headers = 'keys' , tablefmt = 'psql',showindex =False))
else:
print("Member ID Doesn't exists.")
except:
print("Sorry, Something Went Wrong!!")
#Transactions
def book_issue():
try:
q = "select max(issueid) from issue;"
cursor.execute(q)
r = cursor.fetchone()[0]
if r:
issueid = r+1
else:
issueid = 1
x=int(input("Enter Member ID: "))
q1 = "select * from member where memberid = {};".format(x)
cursor.execute(q1)
r=cursor.fetchone()
if r:
y = int(input("Enter Book ID: "))
q2 = "select bookid, rem_copies from book where bookid = {};".format(y)
cursor.execute(q2)
r=cursor.fetchone()
if r:
if r[1] > 0:
issuedate = input("Enter Issue Date(YYYY-MM-DD): ")
copies = int(input("Enter Number of Copies: "))
remcopies = r[1] - copies
q3 = "insert into issue values({},'{}',{},{},{})".format(issueid, issuedate, x,y,copies)
9
cursor.execute(q3)
q4 = "update book set rem_copies = {} where bookid = {};".format(remcopies,y)
cursor.execute(q4)
con.commit()
print("Book Issued Successfully...")
else:
print("Book is Not Available :( ")
else:
print("Wrong Book ID!")
else:
print("Wrong Member ID!")
except:
print("Sorry, Something Went Wrong!!")
def book_return():
try:
q = "select max(returnid) from returns;"
cursor.execute(q)
r = cursor.fetchone()[0]
if r:
returnid = r+1
else:
returnid = 1
x=int(input("Enter Your Member ID: "))
q1 = "select * from member where memberid = {};".format(x)
cursor.execute(q1)
r=cursor.fetchone()
if r:
y = int(input("Enter Your Book ID: "))
q2 = "select bookid, rem_copies from book where bookid = {};".format(y)
cursor.execute(q2)
r=cursor.fetchone()
if r:
else:
print("Wrong Book ID!")
else:
print("Wrong Member ID!")
except:
print("Sorry, Something Went Wrong!!")
10
#Report
def book_output():
df = pd.read_sql("select * from book",con)
print(tabulate(df, headers = 'keys', tablefmt = 'psql', showindex= False))
def member_output():
df= pd.read_sql("select * from member",con)
print(tabulate(df, headers = 'keys' , tablefmt = 'psql', showindex = False))
def issue_output():
df = pd.read_sql("select * from issue",con)
print(tabulate(df, headers = 'keys', tablefmt = 'psql', showindex= False))
def return_output():
df = pd.read_sql("select * from returns",con)
print(tabulate(df, headers = 'keys', tablefmt = 'psql', showindex= False))
def col_chart():
q = "select bookid, count(copies) as totalcopies from issue group by bookid;"
df = pd.read_sql(q,con)
print(df)
plt.bar(df.bookid, df.totalcopies)
plt.xlabel("BookID")
plt.ylabel("Copies Issued")
plt.title("Best Reading Book")
plt.xticks(df.bookid)
plt.show()
while(True):
print("="*80)
print("\t\t\t-------LIBRARY MANAGEMENT SYSTEM-------\n")
print("="*80)
print("\t\t\t\tEnter Your Choice\n\t\t\t\t(1).Book Datails\n\t\t\t\t(2).Member
Datails\n\t\t\t\t(3).Transactions\n\t\t\t\t(4).Report\n\t\t\t\t(5).Exit")
choice = int(input())
if choice == 1:
while(True):
print("\t\t\t\tBᴏᴏᴋ Dᴇᴛᴀɪʟꜱ:\n\t\t\t\t(1).Add Book Details\n\t\t\t\t(2).Edit Book Datails\n\t\t\t\t(3).Delete
A book\n\t\t\t\t(4).Search A Book\n\t\t\t\t(5).Exit")
ch = int(input())
if ch == 1:
book_input()
elif ch == 2:
book_edit()
elif ch == 3:
book_delete()
elif ch == 4:
book_search()
elif ch == 5:
break
elif choice == 2:
11
while(True):
print("\t\t\t\tMᴇᴍʙᴇʀ Dᴀᴛᴀɪʟꜱ:\n\t\t\t\t(1).Add member Datails\n\t\t\t\t(2).Edit Member
Details\n\t\t\t\t(3).Delete A Member\n\t\t\t\t(4).Search A Member\n\t\t\t\t(5).Back to main menue")
ch = int(input())
if ch == 1:
member_input()
elif ch == 2:
member_edit()
elif ch == 3:
member_delete()
elif ch == 4:
member_search()
elif ch==5:
break
elif choice == 3:
while(True):
print("\t\t\t\tTʀᴀɴꜱᴀᴄᴛɪᴏɴꜱ:\n\t\t\t\t(1).Issue Book\n\t\t\t\t(2).Return Book\n\t\t\t\t(3).Back to main
menue")
ch = int(input())
if ch == 1:
book_issue()
elif ch == 2:
book_return()
elif ch == 3:
break
elif choice == 4:
while(True):
print("\t\t\t\tRᴇᴘᴏʀᴛ:\n\t\t\t\t(1).Book Details\n\t\t\t\t(2).Member Details\n\t\t\t\t(3).Issue
Details\n\t\t\t\t(4).Return Details\n\t\t\t\t(5).Best Reading Book (bar chart)\n\t\t\t\t(6).Back to main menue")
ch = int(input())
if ch == 1:
book_output()
elif ch == 2:
member_output()
elif ch == 3:
issue_output()
elif ch == 4:
return_output()
elif ch == 5:
col_chart()
elif ch == 6:
break
elif choice == 5:
break
12
Output
BOOK DETAILS
Adding details of a book
13
MEMBER DETAILS
14
TRANSACTIONS
Issuing a book
Returning a book
15
REPORT
Book Details (table)
16
Bibliography
17