Book Management System Project Report
Book Management System Project Report
Girls Polytechnic
College Address:Almora
College Logo:
BOOKMANAGEMENTSYSTEM
Submittedby:
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.
(Signature of Student)
Bhumika
raveena
Bhawana
Date:-30-07-2022
CERTIFICATE
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)
[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)
#[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):
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')
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)
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)
#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]()])
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):
[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]())
[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:
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]()
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/