2. Bookstore Management System
2. Bookstore Management System
S. No. Topic
1 Certificate
2 Acknowledgement
4 Content
5 Introduction
6 Source Code
7 Database Table
8 Output
8.1 Admin
8.2 Buyer
9 Reference
HARDWARE AND SOFTWARE
REQUIREMENT
#Software Specifications:
Operating System: - Windows 10 or Up
Platform: - Python IDLE 3.12 64 bit
Database: - MySQL
Language: - Python
#Hardware Specifications:
Processor: - Intel i5 12th Generation
Hard Disk: - 512 GB
RAM: - 8 GB RAM
INTRODUCTION
The traditional bookstores that once stood as cultural hubs are now undergoing a
metamorphosis in the face of technological advancements. The need for an efficient and
seamless Book Store Management System becomes increasingly evident. This project
aims not just to streamline the operations of bookstores but to usher them into a new
era of digital competence and customer satisfaction.
1. Changes in Bookstores:
Bookstores are no longer just physical spaces; they are evolving into multi- dimensional
entities that seamlessly blend the tangible and intangible aspects of literary experiences.
The Book Store Management System project emerges as a beacon guiding bookstores
through this transformative journey. It acknowledges the evolving landscape of
literature consumption while preserving the essence of the traditional bookstore
experience.
2. Need of Project:
In the digital age, where information travels at the speed of light, bookstores must adapt
or risk becoming relics of the past. he Book Store Management System project
recognizes the need for innovation in the management and operation of bookstores. It
seeks to address the challenges faced by bookstore owners, managers, and customers
alike.
The Book Store Management System will facilitate online sales, e-book integration, and
customer engagement through digital channels, ensuring that bookstores remain
relevant and accessible in an increasingly virtual world.
Efficient inventory management lies at the heart of a successful bookstore. The project
will implement a sophisticated inventory system that tracks stock levels in real-time,
automatically updating the database with each sale or restock. This not only minimizes
the risk of stockouts or overstocking but also provides valuable insights into popular
genres, authors, and trends.
The project aims to integrate an e-commerce platform seamlessly with the existing
bookstore infrastructure, allowing customers to browse, purchase, and receive their
favorite books with the click of a button.
3.3Analysis:
4.2Operational Efficiency:
The project's emphasis on automation reduces the burden on bookstore staff, allowing
them to focus on providing exceptional service rather than getting bogged down by
administrative tasks. This not only increases productivity but also contributes to a more
positive and engaging work environment.
The reporting and analytics tools embedded in the system empower bookstore owners
to make informed decisions based on real-time data. Whether it's adjusting inventory
levels, optimizing pricing strategies, the system provides the insights needed to stay
ahead in a competitive market.
5.1Resistance to Change:
The transition from traditional manual processes to a digital management system may
be met with resistance from bookstore staff accustomed to established routines.
Effective training programs, clear communication of benefits, and ongoing support are
essential in overcoming this resistance and fostering a positive attitude towards the new
system.
5.2Cost Of Implementation:
While the long-term benefits of the Book Store Management System are substantial,
there is an initial cost associated with its implementation. Bookstore owners must
carefully weigh these costs against the anticipated benefits to make informed decisions
about the system's implementation.
Python
Source
code
import mysql.connector
DB=mysql.connector.connect(host="localhost",
user="root", password="ashish", database="book_store")
C=DB.cursor()
#ADMIN FUNCTIONS
def ADD():
book=str(input("Enter Book Name: "))
genre=str(input("Genre:"))
quantity=int(input("Enter quantity:"))
author=str(input("Enter author name:"))
publication=str(input("Enter publication house:"))
price=int(input("Enter the price:"))
C.execute("INSERT INTO available_books values('{}','{}',{},'{}','{}',
{})".format(book,genre,quantity,author, publication,price))
DB.commit() print("""++++++++++++++++++++
+SUCCESSFULLY
ADDED++++++++++++++++++++++++""")
n=int(input("""Want To Continue: Yes: 1 NO: 2 OPTION: """ ))
if n==1:
ADD()
if n==2:
Staff()
def NewStaff():
fname=str(input("Enter Fullname:"))
gender=str(input("Gender(M/F/O):"))
age=int(input("Age:"))
phno=int(input("Staff phone no.:"))
add=str(input("Address:"))
C.execute(("INSERT INTO staff_details values('{}','{}',{},
{},'{}')".format(fname,gender,age,phno,add)))
DB.commit()
print("""+++++++++++++++++++++++++++++
+STAFF IS SUCCESSFULLY ADDED+
+++++++++++++++++++++++++++++""")
n=int(input("""Want To Continue: Yes: 1 NO: 2 OPTION: """ ))
if n==1:
NewStaff()
if n==2:
Staff()
def RemoveStaff():
n=(input("Staff Name to Remove: "))
C.execute("DELETE FROM staff_details WHERE Name=('{}')
".format(n))
DB.commit()
print("Above Employee is promoted to Customer")
n=int(input("""Want To Continue:Yes: 1 NO: 2 OPTION: """ ))
if n==1:
RemoveStaff()
if n==2:
Staff()
def StaffDetailfS():
spl_statement= "Select * from staff_details"
C.execute(spl_statement)
output =C.fetchall()
for x in output:
print("************************************")
print("Name of Employ:", x[0])
print("Gender of Employ:", x[1])
print("Age of Employ:", x[2])
print("Phone No of Employ", x[3])
print("Address of Employ:", x[4])
print("************************************")
n=int(input("""Want To Continue: Yes: 1 NO: 2 OPTION: """ ))
if n==1:
StaffDetail()
if n==2:
Staff()
def SellRec():
C.execute("select * from sell_rec")
for u in C:
print("*******************************************")
print("Buyer Name: ",u[0])
print("Buyer Mobile Number: ",u[1])
print("Book Purchased: ",u[2])
print("Quantity Brought: ",u[3])
print("Price of Book: ",u[4])
print("********************************************")
n=int(input("""Want To Continue: Yes: 1 NO: 2 OPTION: """ ))
if n==1:
SellRec()
if n==2:
Staff()
def DelRec():
bb=input("Are you sure(Y/N):").upper()
if bb=="Y":
C.execute("delete from sell_rec") DB.commit()
n=int(input("""Want To Continue: Yes: 1 NO: 2 OPTION: """ ))
if n==1:
DelRec()
if n==2:
Staff()
def TotalIncome():
C.execute("select sum(price) from sell_rec")
for x in C:
print("Total Sell Till Date",x)
n=int(input("""Want To Continue: Yes: 1 NO: 2 OPTION: """ ))
if n==1:
TotalIncome()
if n==2:
Staff()
def AvailablefS():
C.execute("select * from available_books order by bookname")
for v in C:
print("**************************************")
print("Book Name: ",v[0])
print("Book Genre: ",v[1])
print("Book Available: ",v[2])
print("Book Author: ",v[3])
print("Publication House: ",v[4])
print("Book Price: ", v[5])
print("*****************************************")
n=int(input("Want To Continue: Yes: 1 NO: 2 OPTION: " ))
if n==1:
AvailablefS()
if n==2:
Staff()
#**************BUYER FUNCTION*****************
def AvailablefU():
C.execute("select * from available_books order by bookname")
for v in C:
print("****************************************")
print("Book Name: ",v[0])
print("Book Genre: ",v[1])
print("Book Available: ",v[2])
print("Book Author: ",v[3])
print("Publication House: ",v[4])
print("Book Price: ", v[5])
print("*****************************************")
n=int(input("Want To Continue: Yes: 1 NO: 2 OPTION: " ))
if n==1:
AvailablefU()
if n==2:
Buyer()
def StaffDetailfU():
spl_statement= "Select * from staff_details"
C.execute(spl_statement)
output =C.fetchall()
for x in output:
print("************************************")
print("Name of Employ:", x[0])
print("Gender of Employ:", x[1])
print("Age of Employ:", x[2])
print("Phone No of Employ", x[3])
print("Address of Employ:", x[4])
print("************************************")
n=int(input("Want To Continue:Yes: 1 NO: 2 OPTION: " ))
if n==1:
StaffDetailfU()
if n==2:
Buyer()
def Purchase():
print("AVAILABLE BOOKS...")
C.execute("select * from available_Books ")
for i in C:
print("***************************************")
print("Book Name: ",i[0])
print("Book Genre: ",i[1])
print("Book Available: ",i[2])
print("Book Author: ",i[3])
print("Publication House: ",i[4])
print("Book Price: ", i[5])
print("****************************************")
cusname=str(input("Enter customer name:"))
phno=int(input("Enter phone number:"))
book=str(input("Enter Book Name:"))
price=int(input("Enter the price:"))
n=int(input("Enter quantity:"))
C.execute("select quantity from available_books where
bookname='"+book+"'")
k=C.fetchone()
if max(k)<n:
print(n,"Books are not available!!!!")
else:
C.execute("select bookname from available_books
where bookname='"+book+"'")
log=C.fetchone()
if log is not None:
C.execute("insert into Sell_rec values
('"+cusname+"','"+str(phno)+"','"+book+"','"+str(n)
+"','"+str(price)+"')")
C.execute("update Available_Books set
quantity=quantity-'"+str(n)+"' where
BookName='"+book+"'")
DB.commit()
print("""++++++++++++++++++++++++ BOOK HAS
BEEN SOLD+++++++++++++""")
else:
print("BOOK IS NOT AVAILABLE!!!!!!!")
n=int(input("""Want To Continue: Yes: 1 NO: 2
OPTION: """ ))
if n==1:
Purchase()
if n==2:
Buyer()
def UsingName():
o=input("Enter Book to search:")
C.execute("select bookname from available_books where
bookname ='"+o+"'")
t=C.fetchone()
if t != None:
print("""++++++++++++++++++++++BOOK IS IN STOCK++++
++++++++++++++++++""")
else:
print("BOOK IS NOT IN STOCK!!!!!!!")
n=int(input("Want To Continue: Yes: 1 NO: 2 OPTION: " ))
if n==1:
UsingName()
if n==2:
Buyer()
def UsingGenre():
g=input("Enter genre to search:")
C.execute("select genre from available_books where genre=
'"+g+"'")
poll=C.fetchall()
if poll is not None:
print("""++++++++++++++++++++++BOOK IS IN STOCK++++
++++++++++++++++++""")
C.execute("select * from available_books where
genre='"+g+"'")
for y in C:
print("******************************")
print("Book Name: ",y[0])
print("Book Genre: ",y[1])
print("Quantity Available: ",y[2])
print("Book Author", y[3])
print("Book Publication: ",y[4])
print("Book Price: ", y[5])
print("***********************************")
else:
print("BOOKS OF SUCH GENRE ARE NOT AVAILABLE!")
n=int(input("""Want To Continue: Yes: 1 NO: 2 OPTION: """ ))
if n==1:
UsingGenre()
if n==2:
Buyer()
def UsingAuthor():
o=input("Enter Book's Author to search:")
C.execute("select bookname from available_books where
Author ='"+o+"'")
t=C.fetchone()
if t != None:
print("""++++++++++++++++++++BOOK IS IN STOCK++++++
++++++++++++++++""")
else:
print("BOOK IS NOT IN STOCK!!!!!!!")
n=int(input("Want To Continue: Yes: 1 NO: 2 OPTION: " ))
if n==1:
UsingGenre()
if n==2:
Buyer()
def Staff():
print(""" 1:Add Books 2.Staff Details 3.Sell Record 4.Total
Income after the Latest Reset 5.See Available Book 6.Exit""")
n=int(input("Enter Your Choice: "))
#To Add Books into the database
if n==1:
ADD()
#REMOVE STAFF
if ch==2:
RemoveStaff()
#Break
if n==6:
return
def Buyer():
#USER Choices
print("""1.Purchase Books 2.Search Books 3.Available Books
4.Staff Details 5. Exit""")
r=int(input("Enter Your Choice: "))
#MAIN PROGRAM
print("**********Welcome To Book Store**********")
while 1:
a=int(input("""Enter as Employee: 1 Enter as User: 2 Exit : 3
Enter : """ ))
if a==1:
Staff()
if a==2:
print('''''****************BOOK SHOP**********
Signup login''')
s=int(input("Enter Your Choice: "))
#Sign-Up
if s==1:
user_name=input("USERNAME(ex: abcd1234): ")
password=input("PASSWORD: ")
C.execute(‘insert into signup values
('+user_name+’,’+password+')’)
DB.commit()
print("Sign Up Completed")
#Log in
else:
user2= input("Enter Your Username: ")
C.execute("select username from Signup where
username='"+user2+"'")
b=C.fetchone()
b1=input("Enter Your Password: ")
C.execute("select password from signup where
password='"+b1+"'")
a2=C.fetchone()
if a2 is not None:
print("******************Login Success**************")
Buyer()
if a==3:
break
Database Table
1.Table Signup with all entries.
2.Add Books:
3.Staff Details:
3.2Removal Of Staff:
4.Selling History
5.Viewing Available Books as Admin
6.Exiting Admin Menu
********Buyer********
2.Sign Up
3.Login
4.Purchasing a Book:
5.Searching
Books:
5.1: Using Name:
5.2Using Author:
5.3Using Genre:
References
1. WWW.SCRIBD.COM
2. WWW.WIKIPEDIA.COM
3. WWW.GOOGLE.COM
4. CLASS 12 NCERT BOOK BY SUMITA ARORA