0% found this document useful (0 votes)
11 views49 pages

Book Management System Project Report

The document is a minor project report for a Book Management System developed by students of Govt. Girls Polytechnic, Almora, under the guidance of Mr. Kamlesh Pandey. It outlines the project's objectives, requirements, and functionalities, including features for book purchasing, availability checking, and profit/loss tracking. The report includes sections such as declaration, acknowledgment, introduction, problem statement, current status, and source code for the application.

Uploaded by

khannfalak1432
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views49 pages

Book Management System Project Report

The document is a minor project report for a Book Management System developed by students of Govt. Girls Polytechnic, Almora, under the guidance of Mr. Kamlesh Pandey. It outlines the project's objectives, requirements, and functionalities, including features for book purchasing, availability checking, and profit/loss tracking. The report includes sections such as declaration, acknowledgment, introduction, problem statement, current status, and source code for the application.

Uploaded by

khannfalak1432
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

College Name:Govt.

Girls Polytechnic
College Address:Almora
College Logo:

Python Application Programming

MINOR PROJECT REPORT


(ProjectTermSEP-OCT,2021)

A mini project report on

BOOKMANAGEMENTSYSTEM

Submittedby:

NAME OF STUDENT: Bhumika Satyawali


RegistrationNumber:2057

NAME OF STUDENT : Raveena Mahara


RegistrationNumber:2046

NAME OF STUDENT :Bhawana Kanyal


RegistrationNumber:2059

UndertheGuidanceof
(Kamlesh Pandey, ESTC-ACEL Haldwani)
DECLARATION

I hereby declare that the Mini project work entitled “BOOK MANAGEMENT SYSTEM” is an
authenticrecord of our own work carried out in Polytechnic Diploma in Computer Science fromGirls
Polytechnic Almora,undertheguidanceofMr. Kamlesh PandeyduringSeptemberToOctober 2021. All the
information furnished in this mini project report is based on our own intensive workand is genuine.

NAME OF STUDENT : Bhumika Satyawali


RegistrationNumber:2057

NAME OF STUDENT :Raveena Mahara


RegistrationNumber:2046

NAME OF STUDENT :Bhawana Kanyal


RegistrationNumber:2050

(Signature of Student)
Bhumika
raveena
Bhawana

Date:-30-07-2022
CERTIFICATE

 Thisistocertifythatthedeclarationstatementmadebythestudentiscorrecttothebestofmyknowledge and belief.


 He/She have completed this Mini Project under my guidance and supervision. The present work is
theresult of his/heroriginal investigation, effort and study. The Mini Project is fit for the submission and
partial fulfillment of theconditionsfortheawardofPolytechnicinComputerSciencefromGirls Polytechnic
Almora.
ACKNOWLEDGEMENT

I take this opportunity to present my votes of thanks to all those guidepost who really acted as
lighteningpillars to enlighten my way throughout this project that has led to successful and satisfactory
completion ofthisstudy.

I am really grateful to Mr. Kamlesh Pandey for providing me with an opportunity to undertake this
projectand providing me with all the facilities. I am highly thankful to sir for his active support, valuable
time andadvice, whole-hearted guidance, sincere cooperation and pains-taking involvement during the study
and incompleting the assignmentofpreparingthesaidprojectwithin the timestipulated.

Lastly, I am thankful to all those, particularly the various friends , who have been instrumental in
creatingproper, healthy and conductive environment and including new and fresh innovative ideas for me
during theproject, without their help, it would have been extremely difficult for me to prepare the project in
a timebound framework.
INDEX

Declaration....................................................................................................................iCertifi
cate......................................................................................................................iiAcknowled
gement..............................................................................................................iii
1. Introduction of the Project…………………………………………………………
[Link]............................................................................................................2
3. RequirementsofProject…………………………………………………………….
4. CurrentStatusofthe project………………………………………………………...
5. LimitationsoftheProject(Ifany).........................................................................................7

6. Bibliography.....................................................................................................................8

7. Code........................................................................................................................9
INTRODUCTION

Thisisaprogramtomanageabookshop. Aimofthisprojectmaketheworkofuserandmanagementeasier
bykeeping recordofdifferent [Link] wecandoa lotofthingslike:-

1. Anypersoncaneasilysearchanybookthathe/shewantstoissueorpurchase.
3. WecanknowthePriceofanybookthroughthisprogram.
4. WecanalsoseetheAvailabilityofallthebooks.
5. Wecanalsoknowthedetailsofaparticularbookbythisprogram.
6. Alsowecanseeprofit/lossofanydaybyenteringthedateforwhichthebookweissuedonthedate we
wanttoReturn.
PROBLEMSTATEMENT

Write a program to manage a book shop. Use file handling to store all data of a book permanently in
..thememory. Alsoinclude features like :-

1. Topurchaseabook

2. Tochecktheavailabilityofabook

3. Tocheckthedetailsofabook

4. Tocheckprofitorlossofanyday

5. wecanalsosearchanybookinthemanagementsystem.
REQUIREMENTS

1) SOFTWAREREQUIREMENTS:

A) Python:3.5.2compilerorgreaterversion.

B) Technology:pythonprogramming.
2) COMPONENETS:one printout hardcopyofreport andoneincludessoftcopyofreport,runningprojectfolder
CURRENTSTATUSOFPROJECT

Currentlythisprojectcandoalotofthingslike:-

1. Storingdataofanybookpermanentlyinthemanagementsystem.
2. Anypersoncaneasilysearchanybookthathe/shewantstopurchase.
3. Wecanknowthecompletedetailsofanybookthroughthisprogram.
4. Wecanalsoseetherecordofaparticularbookbythis
program.5.
[Link]/lossofanybookwhilereturningbyenteringthedateofreturn.

Iamcurrentlyworkingonafunctionwithwhichadmincancheckprofit/lossofanybookindividually
permonth and anyyear.
SOURCECODE(PYTHONPROGRAMMING)

Design View & Coding

#Student Registration Window=50


#Book Registration=176
#BookIssueWindw=379
#Book Retrurn Window=520
from tkinter import *
from tkinter import ttk

#from PIL import ImageTk, Image


from tkcalendar import *
from tkcalendar import DateEntry
from [Link] import format_date, parse_date, get_day_names, get_month_names
from [Link] import * # Additional Import
from datetime import datetime,
timedelta from [Link]
import showinfo from tkinter import
messagebox
global
issuewindow
import backend

window=Tk(className=" Library Management System")


#[Link]('zoomed')
[Link]('1250x700+150+50')

[Link](False,False)
[Link](bg='SlateBlue')
#[Link](r'itplogo_TIP_icon.ico')
# C = Canvas(window, bg="blue", height=250, width=300)
# filename = [Link](file = "[Link]")
# background_label = Label(window, image=filename)
# background_label.place(x=0, y=0, relwidth=1, relheight=1)

# Add image file


#bg = [Link](file =
"[Link]") #
# # Show image using label
#label1 = Label( window, image = bg)
#[Link](x = 0, y = 0, relwidth=1, relheight=1)

#[Link]('-fullscreen', True)

style = [Link]()
[Link]('[Link]', font =
('calibri', 10, 'bold', 'underline'),
foreground = 'red')
#style.theme_use('default')
[Link]("Treeview",
background="#D3D3D3",
foreground="#000000",
rowheight=40,
fieldbackground="SlateBlue")
[Link]('Treeview', background=[('selected', 'DarkSlateBlue')])

#STUDENT REGISTRATION

############################################################################
def stydentregistration():
srwindow=Toplevel(window)
#[Link]("Stude")
#[Link]("zoomed")
[Link]('-fullscreen',True)
[Link](bg="SlateBlue")
#[Link]('itplogo_TIP_icon.ico')
def clearallstudentdata():
[Link](0,END)
[Link](0,END)
[Link](0,END)
[Link](0,END)
[Link](0,END)
topframe=Frame(srwindow)
[Link](row=0,padx=550,pady=10)
label=Label(topframe,text="Student Registration",font=('bold',40),bg='SlateBlue')
[Link](row=0,column=0)
frame=Frame(srwindow,bd=2,bg='DarkSlateBlue',relief=SOLID)
[Link](row=1,padx=10,pady=100)
label1=Label(frame,text="Student ID: ",font=('bold',12))
[Link](row=0,column=0)
label2=Label(frame,text="Student Name:
",font=('bold',12))
[Link](row=0,column=2)
label3=Label(frame,text="Course: ",font=('bold',12))
[Link](row=1,column=0)
label4=Label(frame,text="Status: ",font=('bold',12))
[Link](row=1,column=2)
label5=Label(frame,text="Mobile: ",font=('bold',12))
[Link](row=2,column=0)
#TextBoxes
textid_value=StringVar()
textid=Entry(frame,textvariable=textid_value,font=('bold',12),width=20)
[Link](row=0,column=1,padx=10,pady=5)
textname_value=StringVar()
textname=Entry(frame,textvariable=textname_value,font=('bold',12),width=20)
[Link](row=0,column=3,padx=10,pady=5)
ddl_value=StringVar()
ddl=[Link](frame,textvariable=ddl_value,font=('bold',12),width=18)
ddl['values']=('Select','ADCAP','DCAP','CCA','BIT','DEO','Tally ERP')
[Link](0)
[Link](row=1,column=1,padx=10,pady=5)
ddl1_value=StringVar()
ddl1=[Link](frame,textvariable=ddl1_value,font=('bold',12),width=18)
ddl1['values']=('Select','Active','Alumini')
[Link](1)
[Link](row=1,column=3,padx=10,pady=5)
textmob_value=StringVar()
textmob=Entry(frame,textvariable=textmob_value,font=('bold',12),width=20)
[Link](row=2,column=1,padx=10,pady=5)
#TreeView
tvs=[Link](frame,columns=('id','name','course','mobile'))
#Column
[Link]('#0',anchor=CENTER,stretch=NO,minwidth=0,width=0)
[Link]('id',anchor=CENTER,stretch=YES)
[Link]('name',anchor=CENTER,stretch=YES)
[Link]('course',anchor=CENTER,stretch=YES)
[Link]('mobile',anchor=CENTER,stretch=YES)
#heading
[Link]('#0',text='',)
[Link]('id',text='Student ID')
[Link]('name',text='Name')
[Link]('course',text='Course')
[Link]('mobile',text='Mobile')
[Link](row=3,columnspan=4,rowspan=9)
sb=Scrollbar(frame)
[Link](row=3,column=4,rowspan=9,padx=10,ipady=70)

def show_active_student(event):
for item in tvs.get_children():
[Link](item)
for row in backend.show_student():
[Link]('',END,values=row)
def show_allactive_students():
for item in tvs.get_children():
[Link](item)
for row in backend.show_student():
[Link]('',END,values=row)
def get_student_index(event):
[Link](0,END)
[Link](0,END)
[Link](0,END)
[Link](0,END)
[Link](0,END)
index=[Link]()
value=[Link](index,'value')
[Link](END,value[0])
[Link](END,value[1])
[Link](END,value[2])
[Link](END,value[3])
[Link](END,value[4])
[Link]('<Enter>',show_active_student)
[Link]('<<TreeviewSelect>>',get_student_index)
#Button

btnframe=Frame(frame,bg='SlateBlue',bd=2,relief=SOLID)
[Link](row=3,column=5,rowspan=11,padx=5,pady=0)
#Function to insert Database

def insert_student():

backend.insert_studentdata(textid_value.get(),textname_value.get(),ddl_value.get(),textmob_v
[Link](),ddl1_value.get())
[Link]('Sucess!',"Data Inserted Sucessfully",parent=srwindow)

btn1=Button(btnframe,text='Insert',command=lambda:[insert_student(),show_allactive_student
s(),clearallstudentdata()],width=20,height=2,cursor="hand2",
activebackground='DarkSlateBlue',activeforeground='white',relief=GROOVE)
[Link](row=0,column=0,pady=5)
def update_students():

backend.update_student(textname_value.get(),ddl_value.get(),textmob_value.get(),ddl1_value.
get(),textid_value.get())
clearallstudentdata()

btn2=Button(btnframe,text='Update'
,command=lambda:[update_students(),show_allactive_students()],width=20,height=2,cursor="h
and2", activebackground='DarkSlateBlue',activeforeground='white',relief=GROOVE)
[Link](row=1,column=0,pady=5)

btn3=Button(btnframe,text='Delete',command=lambda:[backend.delete_student(textid_value.ge
t()),show_allactive_students(),clearallstudentdata()],width=20,height=2,cursor="hand2",
activebackground='DarkSlateBlue',activeforeground='white',relief=GROOVE)
[Link](row=2,column=0,pady=5)

btn4=Button(btnframe,text='Library',command=lambda:[newbook(),[Link](),issuewin
[Link](),[Link]()],width=20,height=2,cursor="hand2",
activebackground='DarkSlateBlue',activeforeground='white',relief=GROOVE)
[Link](row=3,column=0,pady=5)
btn5=Button(btnframe,text='Book Issue',command=lambda:
[bookissue(),[Link]()],width=20,height=2,cursor="hand2",
activebackground='DarkSlateBlue',activeforeground='white',relief=GROOVE)
[Link](row=4,column=0,pady=5)
btn6=Button(btnframe,text='Book Return',command=lambda:
[bookreturn(),[Link]()],width=20,height=2,cursor="hand2 ",
activebackground='DarkSlateBlue',activeforeground='white',relief=GROOVE)
[Link](row=5,column=0,pady=5)
btn7=Button(btnframe,text='Exit',width=20,height=2,cursor="hand2",
activebackground='DarkSlateBlue',activeforeground='white',relief=GROOVE,command=lambda:s
[Link]())
[Link](row=6,column=0,pady=5)
#New Book
###############################################################################
####
def newbook():
newbookwindow=Toplevel(window)
[Link](bg="SlateBlue")
#[Link]("zoomed")
[Link]('-fullscreen',True)
# def get_row_index(event):
# global selected_tupple
# #index=[Link]()[0]
# #selected_tupple=list1.get_children(index)
# index=[Link]-get()
# [Link](0,END)
# [Link](END,selected_tupple[0])

def selected_record(event):

#clear Entry Boxes


[Link](0,END)
[Link](0,END)
[Link](0,END)
[Link](0,END)
[Link](0,END)
#Grab Record Number
selected=[Link]()
#Grab Record Value
values=[Link](selected,'values')
temp_label.config(text=values)
#temp_label.config(text=values[0])
[Link](0,values[0])
[Link](0,values[1])
[Link](0,values[2])
[Link](0,values[3])
[Link](END,values[4])

topframe =
Frame(newbookwindow,bg='SlateBlue',bd=5,width=180,height=20)
[Link](row=0)
lbltop=Label(topframe,text="Book Detail(ITP
Library)",width=54,font=('bold',30),bg='SlateBlue')
[Link](row=0,column=3)

frame = Frame(newbookwindow,bg='DarkSlateBlue',relief=SOLID,bd=2,width=300,height=300)
[Link](row=1,column=0,padx=10,pady=100)
#[Link]()

def enter(event):
#[Link](0,END)
for item in list1.get_children():
[Link](item)
for row in [Link]():
[Link]('',END,values=row)

[Link]('<Enter>', enter)

lblid=Label(frame,text="Book ID",font=('bold',12))
[Link](row=0,column=0,padx=10, pady=10)
lblname=Label(frame,text="Book Name",font=('bold',12))
[Link](row=0,column=2,padx=10, pady=10)
lblcat=Label(frame,text="Book Category",font=('bold',12))
[Link](row=0,column=4,padx=10, pady=10)
lblauth=Label(frame,text="Author",font=('bold',12))
[Link](row=1,column=0,padx=10, pady=10)
lblprice=Label(frame,text="Book Price",font=('bold',12))
[Link](row=1,column=2,padx=10, pady=10)
temp_label=Label(frame,text="",width=144,bg='DarkSlateBlue')
temp_label.grid(row=12,column=0,columnspan=4)
eid_value=StringVar()
eid=Entry(frame,font=('bold',12),textvariable=eid_value)
[Link](row=0,column=1)
ename_value=StringVar()
ename=Entry(frame,font=('bold',12),textvariable=ename_value)

[Link](row=0,column=3)
eauth_value=StringVar()
eauth=Entry(frame,font=('bold',12),textvariable=eauth_value)
[Link](row=1,column=1)
eprice_value=StringVar()
eprice=Entry(frame,font=('bold',12),textvariable=eprice_value)
[Link](row=1,column=3)
ddl_value=StringVar()
ddl=[Link](frame)
[Link](row=0,column=5)
ddl['values']=('Select','Language','Account & Tally','Business
Management','DTP','English','Motivational','Fundamental & Basic','Database Related','General
Knowledge','Other Programming','Mathematics & Economics','MS Office','Operating
System','Others','O & A Level' )
[Link](0)
list1=[Link](frame,columns=('BookId','BookName',
'BookCategory','Author','price','status'))
# Set the heading (Attribute Names)
[Link]('#0',text="")
[Link]('BookId',text='Book ID')
[Link]('BookName',text='Book Name')
[Link]('BookCategory',text='CATEGORY')
[Link]('Author',text='AUTHOR')
[Link]('price',text='PRICE')
[Link]('status',text='Status')
#[Link]('status',text='Status')

# Specify attributes of the columns (We want to stretch it!)


[Link]('#0',anchor=CENTER, stretch=NO, minwidth=0, width=0)
[Link]('BookId',anchor=CENTER, stretch=YES, minwidth=0, width=200)
[Link]('BookName',anchor=CENTER, stretch=YES, minwidth=0, width=200)
[Link]('BookCategory',anchor=CENTER, stretch=YES, minwidth=0, width=200)
[Link]('Author',anchor=CENTER, stretch=YES, minwidth=0, width=200)
[Link]('price',anchor=CENTER, stretch=YES, minwidth=0, width=200)
[Link]('status',anchor=CENTER, stretch=YES, minwidth=0, width=200)
#list1.tag_configure('oddrow',background="white")
#list1.tag_configure('evenrow',background='lightblue')
[Link](row=2,column=0,columnspan=4,rowspan=12)

sb=Scrollbar(frame)
[Link](row=3,column=4,rowspan=7,ipady=80)
[Link](yscrollcommand=[Link])

[Link](command=[Link])
[Link]("<<TreeviewSelect>>",selected_record)
def showall():
#[Link](0,END)
for item in list1.get_children():
[Link](item)
for row in [Link]():
[Link]('',END,values=row)

bview=Button(frame,width=20,text='View',command=showall)

[Link](row=2,column=5)

def insert_data():

[Link](eid_value.get(),ename_value.get(),ddl_value.get(),eauth_value.get(),eprice_valu
[Link](),'AV')
showall()
clearall()
def quit():
[Link]()
def
update_table():

[Link](ename_value.get(),[Link](),eauth_value.get(),eprice_value.get(),eid_value.get(
))
showall()
clearall()
def search_data():
for item in list1.get_children():
[Link](item)
for rows in [Link](eid_value.get(),ename_value.get(),[Link](),eauth_value.get()):
[Link]('',END,values=rows)
clearall()
def clearall():
[Link](0,END)
[Link](0,END)
[Link](0,END)
[Link](0,END)
[Link](0,END)
def delete_data():
[Link](eid_value.get())
showall()
clearall()
binsert=Button(frame,width=20,text='Insert',command=insert_data)
[Link](row=3,column=5)
bsearch=Button(frame,width=20,text='Search',command=search_data)
[Link](row=4,column=5)
bupdate=Button(frame,width=20,text='Update', command=update_table)
[Link](row=5,column=5)
bclear=Button(frame,width=20,text='Clear All',command=clearall)
[Link](row=6,column=5)
bdelete=Button(frame,width=20,text='Delete',command=delete_data)
[Link](row=7,column=5)
bclose=Button(frame,width=20,text='Close',command=lambda:[Link]())
[Link](row=8,column=5)
bbookissue=Button(frame,width=20,text='Book Issue',command=lambda:bookissue())
[Link](row=9,column=5)
bbookreturn=Button(frame,width=20,text='Book Return',command=lambda:bookreturn())
[Link](row=10,column=5)

menubar = Menu(newbookwindow)

# Adding File Menu and commands qaq


Library = Menu(menubar, tearoff = 0)
menubar.add_command(label="Student Registration",command=stydentregistration)
menubar.add_cascade(label ='Library', menu = Library)
Library.add_command(label ='New Book', command = None)

Library.add_separator()
Library.add_command(label ='Exit', command = [Link])
Issue = Menu(menubar, tearoff = 0)
menubar.add_cascade(label ='Issue', menu = Issue)
Issue.add_command(label ='Book Issue', command =lambda:[ bookissue()])
Return = Menu(menubar, tearoff = 0)
menubar.add_cascade(label ='Return', menu = Return)
Return.add_command(label ='Book Return', command = lambda:[bookreturn()])
menubar.add_command(label="Show Return
Record",command=lambda:[showreturnedrecord()])
help_ = Menu(menubar, tearoff = 0)
menubar.add_cascade(label ='Help', menu = help_)
help_.add_command(label ='Get Help to Manage ITP Library ', command = None)

menubar.add_command(label='Change User Password',command=lambda:


[changepassword()])
menubar.add_command(label='Show Return Record',command=lambda:
[showreturnedrecord()])
menubar.add_command(label="Exit", command=[Link])
#select_button=Button(frame,text="Select Record", command=selected_record)
#select_button.grid(row=9,column=5)
#Display Menu
[Link](menu = menubar)

#BookIssueWindw
############################################################################
def bookissue():
issuewindow=Toplevel(window)
#[Link]('1550x800+0+5')
#[Link]('zoomed')
[Link]('-fullscreen',True)
[Link]("Book Issue")
[Link](bg='SlateBlue')
#[Link]("itplogo_TIP_icon.ico")
topframe_issue=Frame(issuewindow,relief=SOLID,bg='SlateBlue')
topframe_issue.grid(padx=500,pady=10)
lbltop=Label(topframe_issue,text="Book Issue(ITP Library)",font=('bold',30),bg='SlateBlue')
[Link](row=0,column=0)

frame_issue=Frame(issuewindow,bg='DarkSlateBlue',bd=2,relief=SOLID,width=300,height=300)
frame_issue.grid(row=1,column=0,padx=100,pady=100)
lable1=Label(frame_issue,text="Enter Student ID:")
[Link](row=0,column=0,padx=10,pady=10)
lable2=Label(frame_issue,text="Student Name:")
[Link](row=1,column=0,padx=10,pady=10)
lblbookid=Label(frame_issue,text='Enter Book ID:')
[Link](row=0,column=2,padx=10,pady=10)
lblbookname=Label(frame_issue,text='Book Name:')
[Link](row=1,column=2,padx=10,pady=10)
lblissuedate=Label(frame_issue,text='Issue Date:')
[Link](row=2,column=0,padx=10,pady=10)
lblreturndate=Label(frame_issue,text='Return Date:')
[Link](row=2,column=2,padx=10,pady=10)
lblinfo=Label(frame_issue,fg='Red')
[Link](row=3,column=3)
def bindstuname(event):
for row in [Link](e1_value.get()):
[Link](0,END)
[Link](END,row)
e1_value=StringVar()
e1=Entry(frame_issue,font=('bold',12),textvariable=e1_value)
[Link]('<KeyRelease>',bindstuname)
[Link](row=0,column=1,padx=10,pady=10)
e2_value=StringVar()
e2=Entry(frame_issue,font=('bold',12),textvariable=e2_value)
[Link](row=0,column=3,padx=10,pady=10)
e3_value=StringVar()

def OnEntryClick(event):
[Link](0,END)
for bname in backend.get_bookname(e2_value.get(),'AV'):
[Link](END,bname)

if not [Link]():
[Link](text="Book Already Issued or not available")

else:
[Link](text="Available")

#def getbookname():

def add_day(event):

[Link](0,END)
[Link](END,(cal.get_date() + timedelta(days=7)).strftime('%d/%m/%Y'))

e3=Entry(frame_issue,font=('bold',12),textvariable=e3_value)
[Link](row=1,column=1,padx=10,pady=10)
[Link]("<KeyRelease>", OnEntryClick)
e4_value=StringVar()
e4=Entry(frame_issue,font=('bold',12),textvariable=e4_value)
[Link](row=1,column=3,padx=10,pady=10)

e5_value=StringVar()
#e5=Entry(frame_issue,font=('bold',12),textvariable=e5_value,text="")
cal=DateEntry(frame_issue,date_pattern='dd/mm/yyyy', width=30,
background='darkblue',foreground='white', borderwidth=2,textvariable=e5_value)
[Link](row=2,column=1,padx=10,pady=10)
[Link]("<<DateEntrySelected>>",add_day)
e6_value=StringVar()
e6_value=StringVar()
cal1 = DateEntry(frame_issue,date_pattern='dd/mm/yyyy', width=30,
background='darkblue',foreground='white',
borderwidth=2,textvariable=e6_value,cursor='hand1')
[Link](row=2,column=3,padx=10,pady=10)
def updateBookstatus():
[Link](e2_value.get())
def insert_book_issue():

backend.bookissue_insert(e1_value.get(),e2_value.get(),e3_value.get(),e4_value.get(),e5_value.
get(),e6_value.get())
updateBookstatus()
showall()
show_issuebooks()

[Link]('Sucess!',"Book Issued
Sucessfully",parent=issuewindow) def close_issue():
[Link]()
tv=[Link](frame_issue,columns=('SID','BID','SNAME','BNAME','ISSUE','RETURN'))
[Link]('#0',anchor=CENTER,stretch=NO,minwidth=0,width=0)
[Link]('SID',anchor=CENTER,stretch=YES,minwidth=0,width=200)
[Link]('BID',anchor=CENTER,stretch=YES,minwidth=0,width=200)
[Link]('SNAME',anchor=CENTER,stretch=YES,minwidth=0,width=200)
[Link]('BNAME',anchor=CENTER,stretch=YES,minwidth=0,width=200)
[Link]('ISSUE',anchor=CENTER,stretch=YES,minwidth=0,width=200)
[Link]('RETURN',anchor=CENTER,stretch=YES,minwidth=0,width=200)
[Link]('#0',text='')
[Link]('SID',text='STUDENT ID')
[Link]('BID',text='BOOK ID')
[Link]('SNAME',text='STUDENT NAME')
[Link]('BNAME',text='BOOK NAME')
[Link]('ISSUE',text='ISSUE DATE')
[Link]('RETURN',text='RETURN DATE')
[Link](row=4,column=0,rowspan=5,columnspan=4,padx=10,pady=10)
sbr=Scrollbar(frame_issue)
[Link](row=4,column=4,rowspan=5,ipady=100)
[Link](yscrollcommand=[Link])
[Link](command=[Link])
def show_issuebook(event):
for data in backend.show_bookissue():
[Link]('',END,value=data)
frame_issue.bind('<Enter>',show_issuebook)
def show_issuebooks():
for data in backend.show_bookissue():
[Link]('',END,value=data)

menubar = Menu(window)
menubar.add_command(label="Student
Registration",command=lambda:[stydentregistration(),[Link]()])

# Adding File Menu and commands qaq


Library = Menu(menubar, tearoff = 0)
menubar.add_cascade(label ='Library', menu = Library)
Library.add_command(label ='New Book', command = newbook)
Library.add_separator()
Library.add_command(label ='Exit', command = close_issue)
Issue = Menu(menubar, tearoff = 0)
menubar.add_cascade(label ='Issue', menu = Issue)
Issue.add_command(label ='Book Issue', command =
bookissue) Return = Menu(menubar, tearoff = 0)
menubar.add_cascade(label ='Return', menu = Return)
Return.add_command(label ='Book Return', command=lambda:[bookreturn()])
menubar.add_command(label='Change User Password',command=lambda:changepassword())
help_ = Menu(menubar, tearoff = 0)
menubar.add_cascade(label ='Help', menu = help_)
help_.add_command(label ='Get Help to Manage ITP Library ', command = None)
menubar.add_command(label='Show Return Record',command=showreturnedrecord)
menubar.add_command(label="Exit",command=[Link])
[Link](menu = menubar)
btn=Button(frame_issue, text='Issue', command=insert_book_issue,width=20, bg='#0052cc',
fg='#ffffff',font=('bold',15),cursor='hand1').grid(row=3,column=2)
#Book Retrurn
Window def
bookreturn():
returnwindow=Toplevel(window)
#[Link]('1550x800+0+5')
#[Link]('zoomed')
[Link]('-fullscreen',True)
[Link](bg='SlateBlue')
[Link](" Book Return:ITP Library")
#[Link]("itplogo_TIP_icon.ico")

topframe=Frame(returnwindow,relief=SOLID,bg='SlateBlue')
[Link](padx=500,pady=10)
lbltop=Label(topframe,text="Book Return(ITP
Library)",font=('bold',30),bg='SlateBlue') [Link](row=0,column=0)
frame1=Frame(returnwindow,bg="DarkSlateBlue",relief=SOLID,bd=2,height=200,width=500)
[Link](row=1,column=0,padx=5,pady=100)
#
def finecalculation(event):

a = [Link](txtardate_value.get(), "%d/%m/%Y")
b = [Link](txtrdate_value.get(), "%d/%m/%Y")

if a>b :

delta=a-b

nf=[Link]*10
[Link](0,END)
[Link](END,nf)
else:

nf=0
[Link](0,END)
[Link](END,nf)
#
lblids=Label(frame1,text="Search Book By Id",bg='DarkSlateBlue',font=('bold',15))
[Link](row=0,column=0)
bid_value=StringVar()
bid=Entry(frame1,width=30,font=('bold',15),fg='darkblue',textvariable=bid_value)
[Link](row=0,column=1)
lblbname=Label(returnwindow,text="")
lblsid=Label(returnwindow,text="")
lblsname=Label(returnwindow,text="")
lblsdate=Label(frame1,text='Issue Date',bg='DarkSlateBlue',font=('bold',15))
[Link](row=2,column=5)
txtsdate_value=StringVar()
txtsdate=Entry(frame1,textvariable=txtsdate_value,font=('bold',12),fg='darkblue')
[Link](row=3,column=5)
#
lblrdate=Label(frame1,text='Due Date',bg='DarkSlateBlue',font=('bold',15))
[Link](row=4,column=5)
txtrdate_value=StringVar()
txtrdate=Entry(frame1,textvariable=txtrdate_value,font=('bold',12),fg='darkblue')
[Link](row=5,column=5)
#
lblardate=Label(frame1,text='Return Date(Actual)',bg='DarkSlateBlue',font=('bold',15))
[Link](row=6,column=5)
txtardate_value=StringVar()
txtardate=DateEntry(frame1,textvariable=txtardate_value,fg='darkblue',date_pattern='dd/mm/
yyyy',width=28)
[Link](row=7,column=5)
[Link]("<<DateEntrySelected>>",finecalculation)
#

lblfine=Label(frame1,text='Calculated Fine',bg='DarkSlateBlue',font=('bold',15))
[Link](row=8,column=5)
txtfine_value=StringVar()
txtfine=Entry(frame1,textvariable=txtfine_value,font=('bold',12),fg='darkblue')
[Link](row=9,column=5)
#
def fbookreturn():

[Link]([Link]('text'),bid_value.get(),[Link]('text'),[Link]('text'),
txtsdate_value.get(),txtrdate_value.get(),txtfine_value.get(),txtardate_value.get())
backend.delete_book_from_issue(bid_value.get())
[Link](bid_value.get())

[Link]('Sucess!',"Book Return

Sucessfully",parent=returnwindow)

btnreturn=Button(frame1,text='Book Return',command=lambda:
[fbookreturn(),show_Books_afterreturn(),showall()],font=('bold',15), width=15)
[Link](row=10,column=5,pady=10)
#

btnexit=Button(frame1,text='Exit',command=lambda:[Link](),font=('bold',15),wi
dth=15)
[Link](row=11,column=5,pady=10)

#
def selectbook(event):

[Link](0,END)
[Link](0,END)
[Link](0,END)
[Link](0,END)
[Link](0,END)

#
selectedrow=[Link]()
values=[Link](selectedrow,'values')

[Link](text=values[0])
[Link](text=values[3])
[Link](text=values[2])

[Link](END,values[1])
[Link](END,values[4])
[Link](END,values[5])
#

tvr=[Link](frame1,columns=('studentid','bookid','studentname','bookname','sdate','rdate')
,height=10)
[Link]("#0",minwidth=0,width=0,anchor=CENTER,stretch=NO)
[Link]('studentid',anchor=CENTER,stretch=YES)
[Link]('bookid',anchor=CENTER,stretch=YES)
[Link]('studentname',anchor=CENTER,stretch=YES)

[Link]('bookname',anchor=CENTER,stretch=YES)
[Link]('sdate',anchor=CENTER,stretch=YES)
[Link]('rdate',anchor=CENTER,stretch=YES)
#heading
[Link]('#0',text="")
[Link]('studentid',text="Student ID")
[Link]('bookid',text="Book ID")
[Link]('studentname',text="Student Name")

[Link]('bookname',text="Book Name")
[Link]('sdate',text="Issue Date")
[Link]('rdate',text="Return Date")
[Link](row=2,column=0,columnspan=4,rowspan=10)
sb=Scrollbar(frame1)
[Link](row=2,rowspan=10,column=4,ipady=40,padx=10)
[Link](yscrollcommand=[Link])
[Link]('<<TreeviewSelect>>',selectbook)
[Link](command=[Link])
#Methods

def show_Books(event):

for item in tvr.get_children():


[Link](item)
for row in backend.show_bookissue():
[Link]('',END,value=row)
def show_Books_afterreturn():

for item in tvr.get_children():


[Link](item)
for row in backend.show_bookissue():
[Link]('',END,value=row)
[Link]('<Enter>',show_Books)
def show_serched_book(event):
for item in tvr.get_children():
[Link](item)
for row in backend.get_bookforreturn(bid_value.get()):
[Link]('',END,value=row)

[Link]('<KeyRelease>',show_serched_book)

menubar=Menu(returnwindow)
[Link](menu=menubar)
menubar.add_command(label="Student Registration",command=lambda:
[stydentregistration(),[Link]()]) filemenu=Menu(menubar)
issuemenu=Menu(menubar)
returmenu=Menu(menubar)
menubar.add_cascade(label="New Book",menu=filemenu)
menubar.add_cascade(label="Book Issue",menu=issuemenu)
menubar.add_cascade(label="Book Return",menu=returmenu)
######
filemenu.add_command(label="Add New Book",command=newbook)
filemenu.add_command(label="Exit",command=lambda:[Link]())
issuemenu.add_command(label="Book Issue",command=lambda:[bookissue()])
returmenu.add_command(label="Book Retrurn",command=returnwindow)
menubar.add_command(label='Change User Password',command=lambda:changepassword())
menubar.add_command(label='Show Return Record',command=showreturnedrecord)
menubar.add_command(label="Exit", command=lambda:[Link]())

#Show Book Return Information


def showreturnedrecord():
allreturnwindow=Toplevel(window)
[Link]("zoomed")
[Link](bg="SlateBlue")
menubar=Menu(allreturnwindow)
library=Menu(menubar)
issue=Menu(menubar)
returnbook=Menu(menubar)
menubar.add_cascade(label="Library",menu=library)
menubar.add_cascade(label="Issue",menu=issue)
menubar.add_cascade(label="Return",menu=returnbook)
menubar.add_command(label="Student
Registration",command=lambda:stydentregistration())
library.add_command(label="New Book",command=newbook)
library.add_separator()
library.add_command(label="Exit",command=lambda:[Link]())
issue.add_command(label="Book Issue",command=bookissue)
returnbook.add_command(label="Book Return",command=bookreturn)
menubar.add_command(label='Change User Password',command=lambda:changepassword())
menubar.add_command(label="help",command='')
menubar.add_command(label='Show Return Record',command=showreturnedrecord)
menubar.add_command(label="Exit",command=[Link])

[Link](menu=menubar)
def showreturnrecord(event):
for item in tvarr.get_children():
[Link](item)
for row in [Link]():
[Link]('',END,value=row)

frmtop=Frame(allreturnwindow)
[Link](row=0,padx=500,pady=10)
lbltop=Label(frmtop,text="Return Book
Record",bg='SlateBlue',fg='white',font=('bold',40)) [Link](row=0,column=0)
frame=Frame(allreturnwindow,bg='DarkSlateBlue',relief=SOLID,bd=2)

[Link](row=1,column=0,padx=10)

tvarr=[Link](frame,columns=('sid','bid','bookname','sname','issuedate','ardate'),height=10
)
[Link]('#0',stretch=NO,minwidth=0,width=0)
[Link]('sid',anchor=CENTER,stretch=YES)
[Link]('bid',anchor=CENTER,stretch=YES)
[Link]('bookname',anchor=CENTER,stretch=YES)
[Link]('sname',anchor=CENTER,stretch=YES)
[Link]('issuedate',anchor=CENTER,stretch=YES)
[Link]('ardate',anchor=CENTER,stretch=YES)
#Add heading
[Link]('#0',text='')
[Link]('sid',text='Student ID')
[Link]('bid',text='Book ID')
[Link]('bookname',text='Book Name')
[Link]('sname',text='Student Name')
[Link]('issuedate',text='Issue Date')
[Link]('ardate',text='Return Date')
[Link](row=0,column=0,padx=10,pady=50,columnspan=4,rowspan=10)
sb=Scrollbar(frame)
[Link](row=0,column=4,rowspan=10,ipady=80)
[Link](yscrollcommand=[Link])
[Link](command=[Link])
#[Link]('<<TreeviewSelect>>',showreturnrecord)
[Link]('<Enter>',showreturnrecord)

###############################################################################
#####################################################
#Changepassword
def changepassword():

changepasswordwindow=Toplevel(window)
[Link]('zoomed')
[Link](bg='SlateBlue')
#[Link]('itplogo_TIP_icon.ico')
menubar=Menu(changepasswordwindow)
library=Menu(menubar)
issue=Menu(menubar)
breturn=Menu(menubar)
menubar.add_command(label='Student Registration',command=stydentregistration)
menubar.add_cascade(label='Library',menu=library)
menubar.add_cascade(label='Book Issue',menu=issue)
menubar.add_cascade(label='Return',menu=breturn)
library.add_command(label='Book Registration',command=newbook)
library.add_separator()
library.add_command(label='Exit',command=lambda:[Link]())
issue.add_command(label='Book Issue',command=bookissue)
breturn.add_command(label='Book Return',command=bookreturn)
menubar.add_command(label='Show Return Record',command=showreturnedrecord)
menubar.add_command(label='Change User Password',command=lambda:changepassword())
menubar.add_command(label='Help',command='')
menubar.add_command(label='Show Return Record',command=showreturnedrecord)
menubar.add_command(label='Exit',command=lambda:[Link]())
[Link](menu=menubar)
topframe=Frame(changepasswordwindow)
[Link](padx=500,pady=10)
toplabel=Label(topframe,bg='SlateBlue',text='Change User
Password',font=('bold',30),fg='White')
[Link](row=0,column=0)

frame=Frame(changepasswordwindow,bg='DarkSlateBlue',bd=2,relief=SOLID)
[Link](padx=500,pady=100)
label=Label(frame,text='Login ID',font=('bold',20),width=20)
[Link](row=0,column=0,pady=15,padx=5)
label1=Label(frame,text='OLD PASSWORD',font=('bold',20),width=20)
[Link](row=1,column=0,padx=5)
label=Label(frame,text='NEW PASSWORD',font=('bold',20),width=20)
[Link](row=2,column=0,padx=5)
txt1_value=StringVar()
txt1=Entry(frame,textvariable=txt1_value,font=('bold',20),width=20)
[Link](row=0,column=1,padx=5,pady=15)
txt2_value=StringVar()
txt2=Entry(frame,textvariable=txt2_value,show='#',font=('bold',20),width=20)
[Link](row=1,column=1,padx=5,pady=5)
txt3_value=StringVar()
txt3=Entry(frame,textvariable=txt3_value,show='#',font=('bold',20),width=20)
[Link](row=2,column=1,padx=5,pady=5)
def changeuserpassword():
result=[Link](txt1_value.get(),txt2_value.get())
if not result:
[Link]('Error!',"Somthing wrong!",parent=changepasswordwindow)
else:
[Link](txt3_value.get(),txt1_value.get(),txt2_value.get())
[Link]('Sucess!',"Password Change
Sucessfully!",parent=changepasswordwindow)

btn=Button(frame,text='Change
Password!',command=lambda:changeuserpassword(),cursor='Hand2',width=20)
[Link](row=3,column=0,padx=100,columnspan=2,pady=15)
###############################################################################
##########################################################
frame=Frame(window,bd=2,relief=SOLID,bg="White")
[Link](row=0,column=0,padx=290,pady=180)

#img = [Link]([Link]("[Link]"))

#label=Label(frame,image=img,border=0)
#[Link](row=0,column=0)
lblname=Label(frame,text="LOGIN HERE! \n ADMIN LOGIN
AREA",font=("impact",25,"bold"),background="White",fg="NavyBlue")
[Link](row=0,column=1)

labelid=Label(frame,text="User Name",font=('bold',15),fg="DarkSlateBlue",bg="White")
[Link](row=1,column=0,padx=20,pady=10)
labelpass=Label(frame,text="Password",font=('bold',15),fg="DarkSlateBlue",bg="White")
[Link](row=2,column=0,padx=20,pady=10)
txtid_value=StringVar()
txtid=Entry(frame,textvariable=txtid_value,font=('bold',20),fg="DarkSlateBlue",bg="Silver",borde
r=0)
[Link](row=1,column=1,padx=15)
txtpass_value=StringVar()
txtpass=Entry(frame,textvariable=txtpass_value,font=('bold',20),fg="DarkSlateBlue",show='*',bg
="Silver",border=0)
[Link](row=2,column=1,padx=15)
def user_login(event=None):
result= backend.get_userlogin(txtid_value.get(),txtpass_value.get())
if not result:

showinfo(title='Wrong user info',message="You are not Registered User")


[Link](0,END)
[Link](0,END)
else:
newbook()
[Link](0,END)
[Link](0,END)

button=Button(frame,text="Login",command=lambda:
[user_login()],cursor="hand2",font=('bold',15),width=15)
[Link](row=3,column=1,pady=10)
[Link]('<Return>',user_login)

[Link]()
Database File:

import sqlite3
def connection():
conn=[Link]("[Link]")
mycurssor=[Link]()
[Link]("create table if not exists book(id integer primary key,Bookname
Text,Bookcategory text, Author text,prce REAL,status text)")
[Link]("create table if not exists book_issue(S_id integer primary key
,B_id integer,sname text,Bookname Text,issue_date text,return_date text)")
[Link]("create table if not exists book_return(S_id integer ,B_id integer,Bookname
Text,sname text,issue_date text,return_date text,fine integer)")
[Link]("create table if not exists student_registration(S_id integer primary key
,name text,course Text,mobile numeric,status text)")
[Link]("CREATE TABLE if not exists login_table(userid text primary key,password
text)")
[Link]("insert or ignore into login_table values('ADMIN','PASSWORD')")

[Link]()
[Link]()
def insert(bookid,name,category,author,price,status):
conn=[Link]("[Link]")
mycursor=[Link]()
[Link]("insert into book values(?,?,?,?,?,?)",
(bookid,name,category,author,price,status)) [Link]()
[Link]()
def update(name,category,author,price,bookid):
conn=[Link]("[Link]")
mycursor=[Link]()
[Link]("update book set Bookname=?,Bookcategory=?,Author=?,prce=? where id=?",
(name,category,author,price,bookid))
[Link]()
[Link]()
def search(bookid="",name="",category="",author=""):
conn=[Link]('[Link]')
mycursor=[Link]()
[Link]("select * from book where id=? OR Bookname=? OR BookCategory=? OR
Author=?",(bookid,name,category,author))
row=[Link]()
return row
[Link]()
def delete(id):
conn=[Link]('[Link]')
mycursor=[Link]()
[Link]("delete from book where id=? ",(id,))
[Link]()
[Link]()
def show():
conn=[Link]('[Link]')
mycursor=[Link]()
[Link]("select * from book where status='AV' order by id desc")
rows=[Link]()
return rows
[Link]()
def show_bookissue():
conn=[Link]('[Link]')
mycursor=[Link]()
[Link]("select * from book_issue")
rows=[Link]()
return rows
[Link]()

#Book issued
def bindstuname(id):
conn=[Link]("[Link]")
mycursor=[Link]()
[Link]("select name from student_registration where s_id=?",(id,))
row=[Link]()
return row
[Link]()
def bookissue_insert(sid,bid,sname,Bookname,issuedate,returndate):
conn=[Link]("[Link]")
mycursor=[Link]()
[Link]("insert into book_issue
values(?,?,?,?,?,?)",(sid,bid,sname,Bookname,issuedate,returndate))

[Link]()
[Link]()

def updatestatus(bid):
conn=[Link]("[Link]")
mycursor=[Link]()
[Link]("update book set status='issued' where id=?",(bid,) )
[Link]()
[Link]()
def get_bookname(bid,status):
conn=[Link]("[Link]")
mycursor=[Link]()
[Link]("select BookName from book where id=? and status=?",(bid,status))
bn=[Link]()
return bn
[Link]()
def get_bookforreturn(bid):
conn=[Link]("[Link]")
mycursor=[Link]()
[Link]("select * from book_issue where b_id=?",(bid,))
bn=[Link]()
return bn
[Link]()
##Defination For Book RETURN
def bookreturn(sid,bid,bname,sname,isdate,redate,fine,ardate):
conn=[Link]('[Link]')
mycursor=[Link]()
[Link]("INSERT into book_return
values(?,?,?,?,?,?,?,?)",(sid,bid,bname,sname,isdate,redate,fine,ardate))
[Link]()
[Link]()

def bookreturnrecord():
conn=[Link]('[Link]')
mycursor=[Link]()
[Link]("select * from book_return order by ardate desc ")
row=[Link]()
return row
[Link]()
def delete_book_from_issue(bid):
conn=[Link]('[Link]')
mycursor=[Link]()
[Link]("delete from book_issue where b_id=?",(bid,) )
[Link]()
[Link]()
def updatestatusafterreturn(bid):
conn=[Link]("[Link]")
mycursor=[Link]()
[Link]("update book set status='AV' where id=?",(bid,) )
[Link]()
[Link]()

#Student Registration Tables

def insert_studentdata(id,name,course,mobile,status):
conn=[Link]('[Link]')
mycursor=[Link]()
[Link]("INSERT INTO student_registration
values(?,?,?,?,?)",(id,name,course,mobile,status))
[Link]()
[Link]()
def show_student():
conn=[Link]('[Link]')
mycursor=[Link]()
[Link]("select * from student_registration where status='Active' order by s_id asc")
row=[Link]()
return row
[Link]()

def update_student(name,course,mobile,status,id):
conn=[Link]('[Link]')
mycursor=[Link]()
[Link]('update student_registration set name=?,course=?,mobile=? ,status=?
where s_id=?',(name,course,mobile,status,id))
[Link]()
[Link]()
#show_student()
def
delete_student(id):
conn=[Link]('[Link]')
mycursor=[Link]()
[Link]('delete from student_registration where s_id=?',(id,))
[Link]()
[Link]()

def get_userlogin(userid,userpass):
conn=[Link]("[Link]")
mycursor=[Link]()
[Link]("select * from login_table where userid=? and password=?",(userid,userpass))
row=[Link]()
return row
[Link]()

def getuserdata(id,passwords):
conn=[Link]('[Link]')
mycursor=[Link]()
[Link]("select * from login_table where userid=? and password=?",(id,passwords))
row=[Link]()
return row
[Link]()
def changepassword(passwords,id,password1):
conn=[Link]('[Link]')
mycursor=[Link]()
[Link]('update login_table set password=? where userid=? and password=?',
(passwords,id,password1))
[Link]()
[Link]()
connection()

Design View
Login Area
Book Detail
Book Issue
Book Return
BOOK RETURN RECORD
Change Password
BIBLOGRAPHY

1. [Link]

2. [Link]

3. [Link]/python-programming

4. [Link]

5. [Link]

6. [Link] [Link]/python/

You might also like