SONANAYWNN
Content
Introduction
Flowchart Design
Database Structure
, Source Code
Output
Requirement
Advantages and disadvantages
Conclusion
. BibliographyINTRODUCTION
This project BOOKSHOP SYSTEM includes some facilities for
the retail 6ooR,shop to maintain records of the books and also
search, display, modification, delete etc the books available.
This software searches the books data which is store in the
record,
The software used for small shops for maintaining their records
related to books selling, printing the reports and cost savings.
Book distributors transaction handling is one of the complex,
process and it required computerized system to maintain overall
transactions in an easier manner. Due to heavy demand of
books in these competitive worlds, data increase so much. Books
shop required up to date information about the customer who
purchased books or about the suppliers from where books are
purchased. The books shop requires large amount of data to
record and to store, which are collected from the Book House.FLOWCHARTI DESIGN
01. BOOKS REPORT GENERATOR
02. ADMINISTRATOR
03. EXIT
1.SEARCH AND PRINT SALE INVOICE
12. SEARCH AND PRINT PURCHASE INVOICE]
3, DISPLAY ALL INVOICE(SALE/PURCHASE
14. SEARCH INVOICE BY DATEOFINVOICE
[5.BACK TO MAIN MENU,
1,BOOK'S MENU
2.BOOKS SALE/PURCHASE.
3.BACK TO MAIN MENU.
01, ADD BOOKS INFORMATION 1,B00KS SOLD OUT
02. MODIFY BOOKS INFORMATION} 2.BOOKS PURCHASED
03. DELETE BOOKS INFORMATION|
1.CREATE BOOKS DETAILS 4.MODIFY TITLE
12.DISPLAY ALL BOOKS DETAILS 2.MODIFY PRICE
3.SEARCH RECORD BY BOOKID 3.MODIFY QUANTITY
|4.SEARCH RECORD BY BOOK TITLE 4. MODIFY ISBN
5. SEARCH RECORD BY PRICE 5. MODIFY PUBLISHER
}6. SEARCH RECORD BY TYPE 6.MODIFY CATEGORY
7.SEARCH RECORD BY PUBLISHERDATABASE STRUCTURE
Table: booksinfo
Columnname | Datatype/size_| Constraints
bookID int(11) Primary Key
title varchar(30)
| price int(11)
qty int(11)
| pubname varchar(30)
BN va 0)
authorname varchar(35)
category varchar(15)
Table: salepurchase
Columnname | Datatype/size | constraints
SPID int(11) Primary key
bookid int(11)
date_SP- date
quantity int(LL
status varchar(15)
no__|int(11)
int(11)‘THE MAIN FUNCTION OF PROGRAM.
seenseeensentennnsennseasenensennseniseeseenseonnaeeeasaeseene®
import platform
import os
def myclear():
if platform, ystem()=="Windows":
prini(os.system("els"))
def intromain():
myclear()
print('***BOOKS******MANAGEMENT****SYSTEM**###*PROJECT##¢##98## #e044¢9e40")
print("*seeeesenenes: Haseennenseaennensasenneennenn )
def intro):
prini("**ereesenemee: 1108899 ]OOKS-MANAGEMENT##¢###9¢#4¢0¢09n4¢enne00")
Print(*==ssseseesssssessnasasscessesessessosscnessssscesssssesssss")
Print("* ¢#eseeasenneeesereessenenes naseeneeens enaeneny
print("PROJECT:")
print("MADE BY i)
myclear()
intromain()
print MAIN MENU: “)
print("0 1, BOOKS REPORT GENERATOR")
print("02, ADMINISTRATOR")
print("03, EXIT")
lif" aan nanan nenen ene nennnaennnaeenmaean")
‘ch=int(input("Please Select Your Option (1-3)"))
return ch
def book_menu():
ch=0
intromain()
print BOOKS INFO MENU:
print("01, ADD BOOKS INFORMATION")
print("02. MODIFY BOOKS INFORMATION")
print("03. DELETE BOOKS INFORMATION")
print("04. BACK TO MAIN")
7.prin
ch=int(input("Please Select Your Option (1-4) "))
return ch
ADMINSTRATOR BOOKS FUNCTION
seenneensmenssentennnsensentennssnsensedenaonnonnesennonnnsennerint
def admin_menul():
ch-0
myclear().
intromain()
print(" BOOKS ADD MENU:
print("I.CREATE BOOKS DETAILS")
print("2,DISPLAY ALL BOOKS DETAILS")
print("3.SEARCH RECORD BY BOOKID")
print("4. SEARCH RECORD BY BOOK TITLE")
print("S,SEARCH RECORD BY PRICE")
print("6.SEARCH RECORD BY TYPE")
print("7,SEARCH RECORD BY PUBLISHER")
print(".BACK TO MAIN MENU")
cheint(input("Please Enter Your Choice (1-8) "))
def BOOKS. menu):
che
myclear(),
intromain()
print ‘ADMIN MENU:
print("1,BOOK'S MENU")
print("2. BOOKS SALE/PURCHASE")
print("3,BACK TO MAIN MENU")
ch=int(input("Please Enter Your Choice (1-3) "))
return ch
MODIFY MENU
sensesensmenseeensensonssnenssonsenenseansnaensenegeaenenin
def modifyBOOKS_menu():
ch=0
myclear()
intromain()
print(" MODIFY MENU:
print("1 MODIFY TITLE")
print(""2. MODIFY PRICE")
print("3.MODIFY QUANTITY")
print("4.MODIFY ISBN")print(’S. MODIFY PUBLISHER")
print("6. MODIFY CATEGORY")
print("7.BACK TO MAIN MENU")
‘ch=int(input("Please Enter Your Choice (1-7)"))
return ch
REPORTS MENU,
Aetseeasesennsesenaensenneeennennsennnss seensesnasessegtn
def SALE_PURCHASEmenu():
ch=0
myck
intromain()
print(" SALE AND PURCHASE MENU:
print("I. BOOKS SOLD OUT")
print("2, BOOKS PURCHASED")
print("3.BACK TO MAIN MENU")
cheint(input("Please Enter Your Choice (1-3) "))
return ch
def booksinvoicereports():
ch=0
myelear()
intromain()
print “===BOOKS ADD MENU:
print("I. SEARCH AND PRINT SALE INVOICE")
*:
—aeneennennnis
print("2,SEARCH AND PRINT PURCHASE INVOICE")
print("3,DISPLAY ALL INVOICE(SALE/PURCHASE)")
print("4,SEARCH INVOICE BY DATEOFINVOICE")
print("S.BACK TO MAIN MENU")
‘ch=int(input("Please Enter Your Choice (1-5) "))
return ch
H-- to generate the autonumbers
det giveno():
count=0
mydb=pymysql.connect(host="localhost”, user="root”, passwd="", database="booksystem")
print(mydb)
mycursor=mydb.cursor()
query=("SELECT COUNT(*) FROM booksinfo")
g=("SELECT MAX(bookid) FROM booksinfo")
mycursor-execute(query)
re=mycursor.fetchone()
tmp=re{0]
print(tmp)iftmp—0:
‘count=int(input("Enter the New Ni
else:
4-(’SELECT MAX(bookid) FROM booksinfo")
mycursor.execute(q)
re=mycursor.fetchone()
count=re{0]
count=count+
mycursor.close()
mydb.close()
return count
‘H=To add new record of books
def write_bookrecord():
‘mydb=pymysql.connect(host="ocalhost", user="root", passwd", database="booksystem")
print(mydb)
C=mydb.cursor()
Query=(INSERT INTO booksinfo VALUES(%s,%s,%8,%8,%8,%8,%68,%8)")
bbno=giveno()
bkid=bno
tname=input("Enter Title of book")
print(input("Enter Price of book"))
pnm=input("Enter Publisher name")
isbneint(input("Enter ISBN number"))
anm=input("Enter Author Name")
catt=input("Enter Category(Fiction/Drama/E ducation/Others)")
data>(bkid,tname,pr0,pnm,isbn,anm,catt)
Coexecute(Query.data)
mydb.commit()
Celose()
ydb.close()
‘except:
mydb,close()
#--Search book no
def booksearchdata
try:
conn=pymysql-connect(host="Iocalhost", user="root", passwd="", database="booksystem")
Cconn.cursor()
Query=("SELECT * FROM booksinfo WHERE bookid=%s")
data=(scid,)
C.execute(Query,data)
re=C fetchone()
ifre:
print("BOOK ID\tTITLE\UPRICE QUANTITY tPUB-NAME\ISBNYAUTHOR CATEGORY")
print(re{0}, "ref 1]"0"co[2}"W" rel 3} "0" re[4] "0" re[5],"te[6],"" (7)input
os.system(els')
Close)
conn.close()
return re
except:
conn.close()
#-—-Modify Tile of book.
def search_mod_Title():
wy:
_myclb=pymysql.connect(host="localhost", user="root", passwd", database="booksystem")
Comydb.cursor()
bbno=int(input("ENTER Book No"))
rel=booksearchdata(bno)
ifrel:
tnm=input("Enter the new Title name to update:")
Query=("UPDATE booksinfo SET title=¥s WHERE bookid=%s")
data=(tnm,bno)
Coexecute(Query,data)
mydb.commit)
print(C.rowcount, "record(s) affected")
Calose()
mydbclose()
‘except:
mydb.close()
t---Modify price of book
def search_mod_price():
uy:
‘mydb=pymysql.connect(host="ocalhost", user="root", passwd", database="booksystem")
Comydb.cursor()
bno=int(input("ENTER Book No"))
rel=booksearchdata(bno)
iffrel: #o— and fo=1:
{tnm=int(input( "Enter the price to update:"))
Query=("UPDATE booksinfo SET price=price+%s WHERE bookid=%s")
data=(tnm,bn0)
Ceexecute(Query.data)
mydb commit)
print(C.rowcount, *record(s) affected")
Ceclose()
mydb.close()
except:
mydb.close()
#-—-Modify Quantity of book
def search_mod_qty0:
uy:mydb=pymysql.connect(host="localhost", user="root", passwd="", database="booksystem")
C=mydb.cursor()
bno=int(input("ENTER Book No")
rel=booksearchdata(bno)
ifrel:
thm=int(input("Enter the new Quantity to update:"))
Query=(["UPDATE booksinfo SET qty=qty+%s WHERE bookid=%%s")
data=(inm,bno)
Cexecute(Query.data)
mydb.commit()
print(C.rowcount, "record(s) affected")
Closet)
mydb.close()
except:
mydb.close()
#---Modify ISBN of book
dof search_mod_ISBNO:
uy:
‘mydb=pymysql.connect(host="ocalhost", user="root", passwd", database="booksystem")
Comydb.cursor()
bno=int(input("ENTER Book No"))
rel=booksearchdata(bno)
ifrel:
tnm=input("Enter the ISBN to update:")
Query=("UPDATE booksinfor SET ISBN="%s WHERE bookid="%s")
data=(tnm,bno)
Ceexecute(Query,data)
mydb commit)
print(C.rowcount, "record(s) affected")
C.close()
mydb.close()
except:
mydb.close()
‘t---Modify Publisher of book
def search_mod_pub():
ty:
:mydb=pymysql.connect(host="localhost", user="root", passwd="", database="booksystem")
C=mydb.cursor()
bno=int(input("ENTER Book No"))
rel=booksearchdata(bno)
ifrel:
tnm=input("Enter the publisher name to update:")
Query=("UPDATE booksinfo SET pubname=s WHERE bookid=%s")
data=(tnm,bno)
Ceexecute(Query, data)mydb.commit)
print(C.rowcount, “record(s) affected")
Celose()
mydb.close()
except:
imydb.close()
H-—-Modify Category of book
def search_mod_cat():
wy:
:myalb=pymysql.connect(host="localhost", user="root", passwd", database="booksystem")
Comydb.cursor()
‘bno=int(input("ENTER Book No"))
rel=booksearchdata(bno)
ifrel:
tnm=input("Enter the Category to update:")
Query=("UPDATE booksinfo SET category=%s WHERE bookid=%s")
data=(tnm,bno)
Ceexecute(Query,data)
mydb.commitd)
print(C.rowcount, "record(s) affected")
Close)
mydb,close()
‘except:
mydb.close()
‘W-mdelete the book record from the table
def deletebooks():
ty:
mydb=pymysql.conneci(host="localhost”, user="root", passwd="", database="booksystem")
C=mydb.cursor()
‘bno=int(input("ENTER Book No"))
rel=booksearchdata(bno)
ifrel:
Query=("DELETE FROM booksinfo WHERE bookid=%s")
data=(bno,)
Ceexecute(Query,data)
mydb.commit()
print(C.roweount, "record(s) affected")
Ceclose()
mydb.close()
‘except:
mydb.close()
Ho-show all books
def showallbook():try:
conn=pymysql.connect(host="localhost”, user="root", passwd="", database="booksystem")
‘C=conn.cursor()
Query=("SELECT * FROM booksinfo")
Hdata-(scid,)
Ceexecute(Query)
te=C.fetchall()
ifrre:
print("BOOKID\tTITLE\PRICE\QUANTITY \PUB-NAME\ISBNYAUTHOR\CATEGORY")
for x in re:
print(x[O],"\U" [1], "\"x[2], "Mt" xf3} Me" xf} 0" x[5],'W" x [6] "0" X17)
imput(nssssssssssesssepess the KeVsssssnencssnsssenesnssesnte”)
os.system(els!)
Celose()
conn.close()
return re
except:
conn.close()
#---search and display book by ID
def showbookID():
try:
conn=pymysql.connect(host="localhost", user="root", passwd=", database="booksystem")
ata(scid,)
Ceexecute(Query.data)
nC,
print("BOOKID\TITLE\PRICEWQUANTITY \PUB-NAME\SBNYAUTHOR\CATEGORY")
print(re[O},"\t" ref 1},"\M",re[2]."\t" re{3],"\e"sre[4],"\t" re 5],"\",re[6],"\t" rel7))
input —-nmrmnpres the hey ee)
os.system(els!)
C.close()
conn.close()
return re
‘except:
conn.close()
search and display book by title
def showttled:
try:
conn=pymysql.connect(host="localhost”, user="root", passwd="", database="booksystem")
‘C=conn.cursor()("Enter the Book TITLE:")
Query=("SELECT * FROM booksinfo WHERE title=%s")
data-(scid,)
Ceexecute(Query.data)
re=C fetchone()
ifre:
print("BOOKID\tTITLE\tPRICE\QUANTITY \tPUB-NAME\tISBN\tAUTHORMCATEGORY")
print(re[O},"\"yrof 1} "\e"re[2],"\yre[3}"" tel} "W"sre[5}"W"sre[6],"\"sre[7)
nput("'s-s-e-s----=-eeeeeepress the Key=s-e-renonennen i)
os.system(‘els')
C.close()
conn.close()
return re
except
conn.close()
#---search and display book by price
def showbyprice():
ty:
conn=pymysql.connect(host="localhost”, user="root", passwd=", database="book system")
Ceconn.cursor()
Jow=int(input("Enter the Price lowest value:"))
hhigh=int(input("Enter the Price Highest value:"))
Query=("SELECT * FROM booksinfo WHERE price BETWEEN %s AND %s ")
data=(low,high)
Coexectite(Query.data)
re=Cfetchall()
print("BOOK ID WTITLE\PRICE\QUANTITY WPUB-NAME\ISBNWAUTHORMCATEGORY")
for rel in re:
print(re{0},"\e" ret 1],"\" rel [2}.".te 13
rel[4],"\",rel[5],"\"te[6}"M"srel[7))
nt
C.close()
conn, close(),
return re
except:
conn.close()
#-—search and display book by type
def showtype():
try:
‘conn=pymysql.conneci(host="localhost”, user="root", passwd="", database="booksystem")
C=conn.cursor()
put("Enter the Book Category(Fiction/Drama/Education/Programming/Others):")
Query=("SELECT * FROM booksinfo WHERE category=%s")data=(scid,)
Coexecute(Query,data)
re=C.fetchall()
ire:
print(" BOOK ID\TITLE\PRICE QUANTITY \PUB-NAME\ISBNWAUTHORMCATEGORY")
for rel in re:
print(rc{0},"\t",rel[1],"\",rel{2}."",re1[3},"",rel[4],"\",rel[S],"\t"re1[6}"M"sre[7))
input("-- press the key--- “e “")
os.system(cls')
C.close()
conn.close()
return re
except
conn.close()
#-—-search and display book by publisher name
def showpub():
ty:
conn=pymysql.conneci(host="localhost", user="root", passwd="", database="booksystem")
‘Ceconn.cursor()
seid=input("Enter the Book publisher name:")
Query=("SELECT * FROM booksinfo WHERE pubname=%s")
data>(seid,)
Coexeoute(Querydata)
re=C.fetchall()
if
print("BOOK ID\TITLE\MPRICEWQUANTITY \tPUB-NAME\ISBNYAUTHOR\CATEGORY")
for rel in re:
print(rel[0],"\t",rel(1},"\t",rel[2],"\e"re MO} col [4) "eros "utr [66007
input press the ke; a)
os.system(els!)
Closet)
conn.close()
return re
except
conn.close()
+#--to generate the autonumbers
def givemeno():
count=0
mydb=pymysql.connect(host="localhost", user="root”, passwa=", database="booksystem")
print(mydb)
mycursor=mydb.cursor()
query=("SELECT COUNT(*) FROM salepurchase")
q-(’SELECT MAX(SPID) FROM salepurchase")mycursor-execute(query)
re=mycursor.fetchone()
tmp=ref0]
print(tmp)
iftmp—=0:
count=1
else:
("SELECT MAX(SPID) FROM salepurchase")
mycursor.execute(q)
re=mycursor.fetchone()
count=re{0]
count=count+
mycursor.close()
mydb.close()
return count
HomeeUpdate the qtys=-=
def changeqty(bno,at.ch):
wy:
mydb=pymysql.conneci(host="localhost”, user="root", passwd=", database="booksystem")
Comydb.cursor()
iffch='S):
Query=("UPDATE booksinfo SET qty=qty-%s WHERE bookid="%s")
elifich="A'):
Query=("UPDATE booksinfo SET qty=qty*%s WHERE bookid=%s")
data=(qt.bno)
Coexectite(Query.data)
mydb.commit()
print(C.rowcount, "record(s affected")
Celose()
mydb.close(),
except:
mydb.close()
Horeeesinvoice to sell the books
def books Sale();
try:
mydb=pymysql.connect(host="localhost”, user="root”, passwd=", database="booksystem")
print(mydb)
f#mycursor=mydb.cursor()
C=mydb.cursor()
netamt=0
Query=("INSERT INTO salepurchase VALUES(%s,%8,%48,%8,%8,%5,%8)")
invono=int(input("Enter the invoice no:"))dosp=input("Enter the date of sale")
while True:
no-givemeno()
invoieeid=no
‘bno=int(input("Enter the book no")
rel=booksearchdata(bno)
ifrel: