RYAN INTERNATIONAL SCHOOL
SANPADA
A PROJECT REPORT ON
BOOKSTORE MANAGEMENT
SUBMITTED BY:
IVAN BHARGAVA
MOHAK GUPTA
AKSHAT AMBASTHA
CLASS: XII E
ROLL NO: 16, 21, 39
Page Number- 1
CERTIFICATE
This is to certify that Mohak Gupta, a student of class XII-E,
Ryan International School, Sanpada has successfully
completed the course work of Computer Science under the
guidance of Mrs. Gargy Dam during the year 2021-22 in
partial fulfillment of Computer Science Practical examination
of the Central Board of Secondary Education. I certify this
Project up to my expectation & as per guidelines issued by
CBSE, NEW DELHI.
Signature of Internal Examiner:
Signature of External Examiner:
Principal’s Signature:
School Stamp:
Page Number- 2
ACKNOWLEDGMENT
It is with pleasure that I acknowledge my sincere gratitude
to our teacher, Gargy Dam who taught and undertook the
responsibility of teaching the subject computer science. I
have greatly benefited from her classes.
I am especially indebted to our Principal Mrs. Muriel
Fernandez who has always been a source of encouragement
and support and without whose inspiration this project would
not have been a successful I would like to place on record
heartfelt thanks to her.
Finally, I would like to express my sincere appreciation for all
the other students in my batch, their friendship & the fine
times that we all shared together.
Page Number- 3
HARDWARE AND SOFTWARE REQUIREMENTS
HARDWARE AND SOFTWARE REQUIREMENTS
[Link] SYSTEM : WINDOWS 7 AND ABOVE
II. PROCESSOR : PENTIUM(ANY) OR AMD
ATHALON(3800+- 4200+ DUAL CORE)
III. MOTHERBOARD : 1.845 OR 915,995 FOR PENTIUM 0R MSI
K9MM-V VIA K8M800+8237R PLUS CHIPSET
FOR AMD ATHALON
IV. RAM : 512MB+
V. Hard disk : SATA 40 GB OR ABOVE
VI. CD/DVD r/w multi drive combo: (If back up required)
VII. FLOPPY DRIVE 1.44 MB : (If Backup required)
VIII. MONITOR 14.1 or 15 -17 inch
IX. Keyboard and mouse
SOFTWARE REQUIREMENTS:
I. Windows OS
II. Python
Page Number- 4
SOURCE CODE
================================================================
# PYTHON MODULE : [Link]
import pymysql as cntr , datetime as __dt , [Link] as plt
from random import shuffle
from tempfile import mktemp
from os import system , startfile
__db = [Link](host = 'localhost' , user = 'root' , passwd =
'manager' , database = 'book_shop')
__cur = __db.cursor()
__db.autocommit(True)
#Function to check is it leap year
is_leapyear = lambda year : year % 4 == 0
#Function to get last date of month
def last_month(month , year):
if month in (1,3,5,7,8,10,12) : return 31
elif month == 2 and is_leapyear(year) : return 29
elif month == 2 : return 28
else : return 30
clrscreen = lambda : system("cls")
def view_stock() :
__cur.execute("select Book_No , Book_Name , Available_Stock from
stock")
data = __cur.fetchall()
print("Book Number\tBook Name\tStock")
for row in data : print(row[0] , '\t\t' , row[1] , '\t' , row[2])
def add_stock() :
print('Add Stock'.center(89 , '='))
bno = unique_book_no()
if bno :
print("Book Number : " , bno)
Page Number- 5
else : bno = int(input("Enter book number : "))
bname = input("Enter the Book\'s Name : ")
auth = input("Enter the Author of the Book : ")
publ = input("Enter the Publisher of the Book : ")
cost = eval(input("Enter the Cost per Book : "))
stock = int(input("Enter the Quantity purchased : "))
__cur.execute("insert into stock values ({} , '{}' , '{}' , '{}' ,
{} , {} , {} , '{}')".format(bno , bname , auth , publ , cost , stock ,
0, __dt.[Link]()))
print("Inserted Sucessfully !!!")
def add_user() :
user = input("Enter the user name : ")
passwd = input("Enter a Password : ")
passwd2 = input("Enter Password to confirm : ")
if passwd == passwd2 :
__cur.execute("insert into users values('{}' ,
'{}')".format(user , passwd))
print("Created Successfully!!!")
elif passwd != passwd2 : print("You've entered different passwords")
def sell_book() :
print('Purchase')
cname = input("Enter the Customer Name : ")
phno = int(input("Enter the phone number : "))
bno = int(input("Enter book number : "))
bname = input("Enter the name of the book : ")
cost = eval(input("Enter the cost of the book : "))
__cur.execute("insert into purchased values({} , '{}')".format(bno ,
__dt.[Link]()))
__cur.execute("update stock set qty_purchased = qty_purchased + 1
where Book_No = {}".format(bno))
__cur.execute("update stock set Available_Stock = Available_Stock -
1 where Book_No = {}".format(bno))
print("Bought Successfully")
q = '''Book Shop\nName : {}\nPhone No : {}\nBook Number : {}\nBook
Name : {}\nCost : {}\nDate Of Purchase : {}'''.format(cname , phno , bno
, bname , cost , __dt.[Link]())
filename = mktemp('.txt')
open(filename , 'w').write(q)
startfile(filename , 'print')
Page Number- 6
__cur.execute('select Book_Name , Book_No , Author from stock where
Available_Stock = 0')
if __cur.rowcount == 1 :
print("STOCK OF ")
print("Book Name : " , __cur.fetchall()[0][0])
print("Book Number : " , __cur.fetchall()[0][1])
print("Author : " , __cur.fetchall()[0][2])
print("EXHAUSTED")
__cur.execute('delete from stock where Available_Stock = 0')
def unique_book_no () :
__cur.execute("select max(Book_No) from stock")
data = __cur.fetchall()
if bool(data[0][0]) :
L1 = [x for x in range((data[0][0] + 1) , (data[0][0] + 10000))]
shuffle(L1)
return [Link](0)
else : return False
def view_sales () :
print('Overall Sales This Month')
__cur.execute("select distinct(s.Book_Name) , s.qty_purchased from
stock s , purchased p where s.Book_No = p.Book_No and p.purchased_on
between '{year}-{month}-01' and '{year}-{month}-{date}'".format(year =
__dt.[Link]().year , month = __dt.[Link]().month , date =
last_month(__dt.[Link]().month , __dt.[Link]().year)))
data = __cur.fetchall()
L1 , L2 = [] , []
for row in data :
[Link](row[0])
[Link](row[1])
[Link](L1 , L2)
[Link]('Books')
[Link]('Sales')
[Link]('Sales')
[Link]()
def login():
user = input("Enter the username : ")
pwd = input("Enter the password : ")
Page Number- 7
__cur.execute("Select * from users where (username = '{}' and
password = '{}')".format(user , pwd))
if __cur.rowcount : return True
def update_stock() :
bno = int(input("Enter the book number : "))
__cur.execute("select Book_Name , Available_Stock from stock where
Book_No = {}".format(bno))
data = __cur.fetchall()
print("Book Name : " , data[0][0])
print("Available Stock : " , data[0][1])
stock = int(input("Enter the new stock purchased : "))
__cur.execute("update stock set Available_Stock = Available_Stock +
{}".format(stock))
print("Updated Successfully")
====================================================================
# PYTHON MODULE : Tables_in_mysql
import pymysql as cntr
db = [Link](host = 'localhost' , user = 'root' , passwd =
'manager')
[Link](True)
cur = [Link]()
[Link]("create database if not exists book_shop")
[Link]("use book_shop")
[Link]("create table stock\
(Book_No bigint primary key,\
Book_Name varchar(255),\
Author varchar(255),\
Publisher varchar(255),\
Cost_per_Book float,\
Available_Stock bigint,\
qty_purchased bigint,\
purchased_on date)")
[Link]("create table users(username varchar(255) , password
varchar(255) , check (username <> 'ADMIN'))")
[Link]("create table purchased (Book_no bigint , purchased_on date
, foreign key(Book_no) references stock(Book_No))")
[Link]("create unique index Book_Index on stock(Book_No)")
[Link]("insert into users values('admin' , 'admin@123')")
print("Database and Tables created successfully")
c = input("Press any key to continue---->")
Page Number- 8
[Link]()
[Link]()
====================================================================
# PYTHON MODULE : main
import Book
c = 'y'
while [Link]() == 'y' :
print("Book Shop Management".center(89 , '='))
print('1. Register')
print('2. Login')
print('3. Exit')
choice4 = int(input("Enter the serial number of your choice : "))
if choice4 == 1 :
[Link]()
Book.add_user()
elif choice4 == 2 :
[Link]()
if [Link]() :
[Link]
C = 'y'
while [Link]() == 'y' :
[Link]()
print("Book Shop Management".center(89 , '='))
print("1. Book Stock")
print("2. Book Selling")
print("3. Exit")
choice = int(input("Enter the serial number of your
choice : "))
if choice == 1 :
[Link]()
print("Book Book".center(89 , '='))
print("1. Add a new Stock")
print("2. View all Stock")
print("3. Update an existing Stock")
print("4. Exit")
choice2 = int(input("Enter the choice : "))
if choice2 == 1 :
[Link]()
Book.add_stock()
elif choice2 == 2 :
Page Number- 9
[Link]()
Book.view_stock()
elif choice2 == 3 :
[Link]()
Book.update_stock()
elif choice2 == 4 :
print("Good Bye")
break
else : print("INVALID CHOICE")
elif choice == 2 :
[Link]()
print('Book Selling'.center(89 , '='))
print('1. Sell a book')
print('2. View Sales this month')
print("3. Exit")
choice3 = int(input("Enter your choice : "))
if choice3 == 1 :
[Link]()
Book.sell_book()
elif choice3 == 2 :
[Link]()
Book.view_sales()
elif choice3 == 3 :
print("Good Bye")
break
else : print("INVALID CHOICE")
elif choice == 3 :
print("Good Bye")
break
else : print("INVALID CHOICE")
C = input("Do you want to continue (y/[n]) : ")
else : print("Good Bye")
else :
print("Either your username or password is incorrect")
elif choice4 == 3 :
print("Good Bye")
break
else : print("INVALID CHOICE")
c = input("Do you want to return to main menu (y/[n]) : ")
else : print("Good Bye")
====================================================================
Page Number- 10
OUTPUT
Page Number- 11
BIBLIOGRAPHY
1. Computer science With Python - Class XI By : Sumita Arora
2. [Link]
3. NCERT class 12 Computer Science
Page Number- 12