0% found this document useful (0 votes)
21 views16 pages

Book Store Management System

Uploaded by

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

Book Store Management System

Uploaded by

pranwit2007
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

SEVEN HILLS RESIDENTIAL SCHOOL

COMPUTER SCIENCE INVESTIGATORY PROJECT


(2024-25)

Book Store
Management System

MADE BY:
CERTIFICATE

CLASS: XII YEAR: 2024-2025

THIS IS TO CERTIFY THAT INVESTIGATORY PROJECT IS SUCCESSFULLY


COMPLETED BY _________________ OF CLASS _____ AND ROLL
NO.__________________ FOR THE ACADEMIC YEAR 2020-2021 IN THE
SCHOOL COMPUTER LAB

EXTERNAL EXAMINER INTERNAL EXAMINER


SIGNATURE SIGNATURE

Principal Signature:

DATE: / / 2025 DEPARTMENT OF COMPUTER SCIENCE


ACKNOWLEDGEMENT

I __________________OF CLASS______ ROLLNO._________WOULD


LIKE TO EXPRESS MY SINCERE GRATITUDE TO MY COMPUTER SCIENCE
TEACHER MR. SUBINGYA KUMAR NAYAK, PGT COMPUTER SCIENCE,
FOR HER VITAL SUPPORT, GUIDANCE AND ENCOURAGEMENT—
WITHOUT WHICH THIS PROJECT WOULD NOT HAVE COME FORTH.

I WOULD ALSO LIKE TO EXPRESS MY GRATITUDE TO MY SCHOOL SHRS


FOR LETTING ME USE THE SCHOOL LABORATORY
INDEX

 BRIEF OVERVIEW OF PROJECT

 SOFTWARE AND HARDWARE REQUIREMENTS

 ADVANTAGES OF PROJECT

 SOURCE CODE IN PYTHON

 OUTPUT SCREEN
Brief Overview OF Project
This is a Python program that creates a simple bookstore management system. The program
allows users to sign up or login, add books to the store, delete books from the store, search for
books by various criteria, view staff details, record sales, and view the total income after the
latest reset. The program uses MySQL as its database management system.

When the program is run, it first creates a connection to the MySQL server running on the local
machine, using the root user and the password “admin”. It then creates a database called “store”
(if it doesn’t already exist) and uses it. It creates a table called “signup” with columns for
“username” and “password”. This table is used to store user account information.

The program then enters a loop that presents the user with a choice between signing up and
logging in. If the user chooses to sign up, they are prompted to enter a username and password,
which are then stored in the “signup” table. If the user chooses to log in, they are prompted to
enter a username. If the username is found in the “signup” table, the program prompts the user
to enter their password. If the password is correct, the user is presented with a menu of options
for managing the bookstore.

The options for managing the bookstore are:

1. Add Books: The user is prompted to enter information about a new book (name, genre,
quantity, author, publication, and price). If the book is already in the store, the quantity is
increased. Otherwise, the book is added to the “Available_Books” table.
2. Delete Books: The user is shown a list of available books and prompted to enter
information about a book to delete (name, quantity, customer name, phone number, and
price). If the requested quantity of the book is available, a record of the sale is added to the
“Sell_rec” table and the quantity of the book is decreased. Otherwise, an error message is
displayed.
3. Search Books: The user is prompted to choose a search criterion (name, genre, or author)
and enter a search term. The program searches the “Available_Books” table for books
matching the search criterion and term and displays the results.
4. Staff Details: The user is shown a list of staff details (name, gender, age, phone number,
and address) stored in the “Staff_details” table.
5. Sell Record: The user is shown a list of records of book sales stored in the “Sell_rec” table.
6. Available Books: The user is shown a list of available books stored in the “Available_Books”
table.
7. Total Income after the Latest Reset: The user is shown the total income from book sales
since the last reset.
8. Exit: The program exits.

Overall, this program provides a basic framework for managing a small bookstore. However, it
has several limitations and potential issues. For example, the program does not include any error
handling or input validation, which could lead to incorrect or invalid data being stored in the
database. Additionally, the program does not include any authentication or authorization
mechanisms, so anyone with access to the program can perform any action on the database.
Software AND Hardware
Requirements
#SOFTWARE SPECIFICATION

Operating System: Windows 10/8/7

Platform : Python IDLE 3.7/3.8

Database : MySQL

Languages : Python

#HARDWARE SPECIFICATION

Processor : Dual core or above

Hard Disk : 40 GB

RAM : 1024 MB
#SOURCE CODE IN PYTHON
#https://cbsepython.in
import mysql.connector
mydb=mysql.connector.connect (host="localhost", user="root",
password="admin")

#CREATING DATABASE AND TABLE


mycursor=mydb.cursor()
mycursor.execute("create database if not exists store")
mycursor.execute("use store")
mycursor.execute("create table if not exists signup(username
varchar(20),password varchar(20))")

while True:
print("""1:Signup
2:Login""")

ch=int(input("SIGNUP/LOGIN(1,2):"))

#SIGNUP
if ch==1:

username=input("USERNAME:")
pw=input("PASSWORD:")

mycursor.execute("insert into signup


values('"+username+"','"+pw+"')")
mydb.commit()

#LOGIN
elif ch==2:

username=input("USERNAME:")

mycursor.execute("select username from signup where


username='"+username+"'")
pot=mycursor.fetchone()

if pot is not None:


print("VALID USERNAME!!!!!!")

pw=input("PASSWORD:")

mycursor.execute("select password from signup where


password='"+pw+"'")
a=mycursor.fetchone()

if a is not None:
print("""+++++++++++++++++++++++
+++LOGIN SUCCESSFULL+++
+++++++++++++++++++++++""")
print("""===============================================================
=======
++++++++++++++++++++++++++ MY BOOK STORE
+++++++++++++++++++++++++
========================================================================
==""")

mycursor.execute("create table if not exists


Available_Books(BookName varchar(30) primary key,Genre
varchar(20),Quantity int(3),Author varchar(20),Publication
varchar(30),Price int(4))")
mycursor.execute("create table if not exists
Sell_rec(CustomerName varchar(20),PhoneNumber char(10) unique key,
BookName varchar(30),Quantity int(100),Price int(4),foreign key
(BookName) references Available_Books(BookName))")
mycursor.execute("create table if not exists
Staff_details(Name varchar(30), Gender varchar(10),Age int(3),
PhoneNumber char(10) unique key , Address varchar(40))")
mydb.commit()

while(True):
print("""1:Add Books
2:Delete Books
3:Search Books
4:Staff Details
5:Sell Record
6:Available Books
7:Total Income after the Latest Reset
8:Exit""")

a=int(input("Enter your choice:"))

#ADD BOOKS
if a==1:

print("All information prompted are mandatory to


be filled")

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:"))

mycursor.execute("select * from Available_Books


where bookname='"+book+"'")
row=mycursor.fetchone()

if row is not None:


mycursor.execute("update Available_Books set
quantity=quantity+'"+str(quantity)+"' where bookname='"+book+"'")
mydb.commit()
print("""++++++++++++++++++++++
++SUCCESSFULLY ADDED++
++++++++++++++++++++++""")

else:
mycursor.execute("insert into
Available_Books(bookname,genre,quantity,author,publication,price)
values('"+book+"','"+genre+"','"+str(quantity)+"','"+author+"','"+public
ation+"','"+str(price)+"')")
mydb.commit()

print("""++++++++++++++++++++++
++SUCCESSFULLY ADDED++
++++++++++++++++++++++""")

#DELETE BOOKS
elif a==2:

print("AVAILABLE BOOKS...")

mycursor.execute("select * from Available_Books


")
for x in mycursor:
print(x)

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:"))

mycursor.execute("select quantity from


available_books where bookname='"+book+"'")
lk=mycursor.fetchone()

if max(lk)<n:
print(n,"Books are not available!!!!")

else:
mycursor.execute("select bookname from
available_books where bookname='"+book+"'")
log=mycursor.fetchone()

if log is not None:


mycursor.execute("insert into Sell_rec
values('"+cusname+"','"+str(phno)+"','"+book+"','"+str(n)+"','"+str(pric
e)+"')")
mycursor.execute("update Available_Books
set quantity=quantity-'"+str(n)+"' where BookName='"+book+"'")
mydb.commit()

print("""++++++++++++++++++++++
++BOOK HAS BEEN SOLD++
++++++++++++++++++++++""")
else:
print("BOOK IS NOT AVAILABLE!!!!!!!")

#SEARCH BOOKS ON THE BASIS OF GIVEN OPTIONS


elif a==3:

print("""1:Search by name
2:Search by genre
3:Search by author""")

l=int(input("Search by?:"))

#BY BOOKNAME
if l==1:
o=input("Enter Book to search:")

mycursor.execute("select bookname from


available_books where bookname='"+o+"'")
tree=mycursor.fetchone()

if tree!=None:
print("""++++++++++++++++++++
++BOOK IS IN STOCK++
++++++++++++++++++++""")

else:
print("BOOK IS NOT IN STOCK!!!!!!!")

#BY GENRE
elif l==2:
g=input("Enter genre to search:")

mycursor.execute("select genre from


available_books where genre='"+g+"'")
poll=mycursor.fetchall()

if poll is not None:


print("""++++++++++++++++++++
++BOOK IS IN STOCK++
++++++++++++++++++++""")

mycursor.execute("select * from
available_books where genre='"+g+"'")

for y in mycursor:
print(y)

else:
print("BOOKS OF SUCH GENRE ARE NOT
AVAILABLE!!!!!!!!!")

#BY AUTHOR NAME


elif l==3:
au=input("Enter author to search:")
mycursor.execute("select author from
available_books where author='"+au+"'")
home=mycursor.fetchall()

if home is not None:


print("""++++++++++++++++++++
++BOOK IS IN STOCK++
++++++++++++++++++++""")

mycursor.execute("select * from
available_books where author='"+au+"'")

for z in mycursor:
print(z)

else:
print("BOOKS OF THIS AUTHOR ARE NOT
AVAILABLE!!!!!!!")
mydb.commit()

#STAFF DETAILS
elif a==4:
print("1:New staff entry")
print("2:Remove staff")
print("3:Existing staff details")

ch=int(input("Enter your choice:"))

#NEW STAFF ENTRY


if ch==1:
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:"))

mycursor.execute("insert into
Staff_details(name,gender,age,phonenumber,address)
values('"+fname+"','"+gender+"','"+str(age)+"','"+str(phno)+"','"+add+"'
)")
print("""+++++++++++++++++++++++++++++
+STAFF IS SUCCESSFULLY ADDED+
+++++++++++++++++++++++++++++""")
mydb.commit()

#REMOVE STAFF
elif ch==2:
nm=str(input("Enter staff name to remove:"))
mycursor.execute("select name from
staff_details where name='"+nm+"'")
toy=mycursor.fetchone()

if toy is not None:


mycursor.execute("delete from
staff_details where name='"+nm+"'")
print("""+++++++++++++++++++++++++++++++++
++STAFF IS SUCCESSFULLY REMOVED++
+++++++++++++++++++++++++++++++++""")
mydb.commit()

else:
print("STAFF DOESNOT EXIST!!!!!!")

#EXISTING STAFF DETAILS


elif ch==3:
mycursor.execute("select * from
Staff_details")
run=mycursor.fetchone()
for t in mycursor:
print(t)
if run is not None:
print("EXISTING STAFF DETAILS...")
for t in mycursor:
print(t)

else:
print("NO STAFF EXISTS!!!!!!!")
mydb.commit()

#SELL HISTORY
elif a==5:
print("1:Sell history details")
print("2:Reset Sell history")

ty=int(input("Enter your choice:"))

if ty==1:
mycursor.execute("select * from sell_rec")
for u in mycursor:
print(u)

if ty==2:
bb=input("Are you sure(Y/N):")

if bb=="Y":
mycursor.execute("delete from sell_rec")
mydb.commit()

elif bb=="N":
pass

#AVAILABLE BOOKS
elif a==6:
mycursor.execute("select * from available_books
order by bookname")
for v in mycursor:
print(v)

#TOTAL INCOME AFTER LATEST UPDATE


elif a==7:
mycursor.execute("select sum(price) from
sell_rec")
for x in mycursor:
print(x)
#EXIT
elif a==8:
break

#LOGIN ELSE PART


else:
print("""++++++++++++++++++++++
++INCORRECT PASSWORD++
++++++++++++++++++++++""")

else:
print("""++++++++++++++++++++
++INVALID USERNAME++
++++++++++++++++++++""")

else:
break
#OUTPUT SCREEN
= RESTART: C:\Users\Compaq\BOOKSTORE MANAGEMENT.py

1:Signup

2:Login

SIGNUP/LOGIN(1,2):1

USERNAME:"jitendra"

PASSWORD:"12345"

1:Signup

2:Login

SIGNUP/LOGIN(1,2):2

USERNAME:"jitendra"

VALID USERNAME!!!!!!

PASSWORD:"12345"

+++++++++++++++++++++++

+++LOGIN SUCCESSFULL+++

+++++++++++++++++++++++

======================================================================

++++++++++++++++++++++++++ MY BOOK STORE +++++++++++++++++++++++++

==========================================================================

1:Add Books

2:Delete Books
3:Search Books

4:Staff Details

5:Sell Record

6:Available Books

7:Total Income after the Latest Reset

8:Exit

Enter your choice:1

All information prompted are mandatory to be filled

Enter Book Name:"Computer Science with Python"

Genre:"Programming"

Enter quantity:10

Enter author name:"cbsepython"

Enter publication house:"cbsepython.in"

Enter the price:320

++++++++++++++++++++++

++SUCCESSFULLY ADDED++

++++++++++++++++++++++

1:Add Books

2:Delete Books

3:Search Books

4:Staff Details
5:Sell Record

6:Available Books

7:Total Income after the Latest Reset

8:Exit

Enter your choice:

#LIMITATIONS
 Need to add questions first before playing quiz
 No permanent score board

You might also like