Book Stall Management
Book Stall Management
PROJECT REPORT ON
Conducted by
Central Board of Secondary Education
ROLL NO :
NAME :
CLASS : XII A
1
SAINIK SCHOOL GOPALGANJ
CERTIFICATE
This is to certify that Cadet __________________ Roll No: ____________
MANAGEMENT SYSTEM in the subject Computer Science (083) laid down in the
(Manish Kumar)
PGT Comp Sci
Teacher IC
Examiner:
Signature:
Name: _______________
2
TABLE OF CONTENTS [ T O C ]
01 ACKNOWLEDGEMENT
02 INTRODUCTION
04 PROPOSED SYSTEM
06 SOURCE CODE
07 OUTPUT
08 TESTING
10 BIBLIOGRAPHY
3
ACKNOWLEDGEMENT
Apart from the efforts of me, the success of any project depends largely on
the encouragement and guidelines of many others. I take this opportunity to express
my gratitude to the people who have been instrumental in the successful completion
of this project.
I express deep sense of gratitude to almighty God for giving me strength for
the successful completion of the project.
The guidance and support received from all the members who contributed
and who are contributing to this project, was vital for the success of the project. I am
grateful for their constant support and help.
4
INTRODUCTION
This project is all about a software for Book Stalls. It helps the Book Stall
Owner to have a full-fledged control over his/her stall. It adds a new stock, updates
an existing stock and of course prints a receipt to the customer. Besides it displays a
The objective of this project is to let the students apply the programming
knowledge into a real- world situation/problem and exposed the students how
5
PROPOSED SYSTEM
Today one cannot afford to rely on the fallible human beings of be really
wants to stand against today’s merciless competition where not to wise saying “to
err is human” no longer valid, it’s outdated to rationalize your mistake. So, to keep
pace with time, to bring about the best result without malfunctioning and greater
efficiency so to replace the unending heaps of flies with a much sophisticated hard
One has to use the data management software. Software has been an ascent
markets, which have helped in making the organizations work easier and efficiently.
Data management initially had to maintain a lot of ledgers and a lot of paper work
has to be done but now software product on this organization has made their work
faster and easier. Now only this software has to be loaded on the computer and work
can be done.
This prevents a lot of time and money. The work becomes fully automated
and any information regarding the organization can be obtained by clicking the
6
SYSTEM DEVELOPMENT LIFE CYCLE (SDLC)
SDLC Activities
Communication
This is the first step where the user initiates the request for a desired software
product. He contacts the service provider and tries to negotiate the terms. He
submits his request to the service providing organization in writing.
Requirement Gathering
7
This step onwards the software development team works to carry on the project.
The team holds discussions with various stakeholders from problem domain and
tries to bring out as much information as possible on their requirements. The
requirements are contemplated and segregated into user requirements, system
requirements and functional requirements. The requirements are collected using a
number of practices as given -
Feasibility Study
After requirement gathering, the team comes up with a rough plan of software
process. At this step the team analyzes if a software can be made to fulfill all
requirements of the user and if there is any possibility of software being no more
useful. It is found out, if the project is financially, practically and technologically
feasible for the organization to take up. There are many algorithms available, which
help the developers to conclude the feasibility of a software project.
System Analysis
At this step the developers decide a roadmap of their plan and try to bring up the
best software model suitable for the project. System analysis includes
Understanding of software product limitations, learning system related problems or
changes to be done in existing systems beforehand, identifying and addressing the
impact of project on organization and personnel etc. The project team analyzes the
scope of the project and plans the schedule and resources accordingly.
Software Design
Next step is to bring down whole knowledge of requirements and analysis on the
desk and design the software product. The inputs from users and information
gathered in requirement gathering phase are the inputs of this step. The output of
this step comes in the form of two designs; logical design and physical design.
Engineers produce meta-data and data dictionaries, logical diagrams, data-flow
diagrams and in some cases pseudo codes.
Coding
Testing
8
testing is done while coding by the developers and thorough testing is conducted by
testing experts at various levels of code such as module testing, program testing,
product testing, in-house testing and testing the product at user’s end. Early
discovery of errors and their remedy is the key to reliable software.
Integration
Software may need to be integrated with the libraries, databases and other
program(s). This stage of SDLC is involved in the integration of software with outer
world entities.
Implementation
This means installing the software on user machines. At times, software needs
post-installation configurations at user end. Software is tested for portability and
adaptability and integration related issues are solved during implementation.
This phase confirms the software operation in terms of more efficiency and less
errors. If required, the users are trained on, or aided with the documentation on how
to operate the software and how to keep the software operational. The software is
maintained timely by updating the code according to the changes taking place in
user end environment or technology. This phase may face challenges from hidden
bugs and real-world unidentified problems.
Disposition
As time elapses, the software may decline on the performance front. It may go
completely obsolete or may need intense upgradation. Hence a pressing need to
eliminate a major portion of the system arises. This phase includes archiving data
and required software components, closing down the system, planning disposition
activity and terminating system at appropriate end-of-system time.
9
SOURCE CODE
================================================================
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)
else : bno = int(input("Enter book number : "))
bname = input("Enter the Book\'s Name : ")
10
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.date.today()))
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.date.today()))
__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.date.today())
filename = mktemp('.txt')
open(filename , 'w').write(q)
startfile(filename , 'print')
__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])
11
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 L1.pop(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.date.today().year , month = __dt.date.today().month ,
date = last_month(__dt.date.today().month ,
__dt.date.today().year)))
data = __cur.fetchall()
L1 , L2 = [] , []
for row in data :
L1.append(row[0])
L2.append(row[1])
plt.bar(L1 , L2)
plt.xlabel('Books')
plt.ylabel('Sales')
plt.title('Sales')
plt.show()
def login():
user = input("Enter the username : ")
pwd = input("Enter the password : ")
__cur.execute("Select * from users where (username = '{}'
and password = '{}')".format(user , pwd))
if __cur.rowcount : return True
def update_stock() :
12
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")
==============================================================
======
==============================================================
======
13
# PYTHON MODULE : main
import Book
c = 'y'
while c.lower() == '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 :
Book.clrscreen()
Book.add_user()
elif choice4 == 2 :
Book.clrscreen()
if Book.login() :
Book.clrscreen
C = 'y'
while C.lower() == 'y' :
Book.clrscreen()
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 :
Book.clrscreen()
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 :
Book.clrscreen()
Book.add_stock()
elif choice2 == 2 :
Book.clrscreen()
Book.view_stock()
elif choice2 == 3 :
Book.clrscreen()
Book.update_stock()
elif choice2 == 4 :
print("Good Bye")
break
14
else : print("INVALID CHOICE")
elif choice == 2 :
Book.clrscreen()
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 :
Book.clrscreen()
Book.sell_book()
elif choice3 == 2 :
Book.clrscreen()
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")
==============================================================
======
OUTPUT
15
TESTING
TESTING METHODS
Software testing methods are traditionally divided into black box testing and
white box testing. These two approaches are used to describe the point of view that
a test engineer takes when designing test cases.
16
BLACK BOX TESTING
Black box testing treats the software as a "black box," without any knowledge
of internal implementation. Black box testing methods include: equivalence
partitioning, boundary value analysis, all-pairs testing, fuzz testing, model-based
testing, traceability matrix, exploratory testing and specification-based testing.
SPECIFICATION-BASED TESTING
The black box tester has no "bonds" with the code, and a tester's perception
is very simple: a code must have bugs. Using the principle, "Ask and you shall
receive," black box testers find bugs where programmers don't. But, on the other
hand, black box testing has been said to be "like a walk in a dark labyrinth without a
flashlight," because the tester doesn't know how the software being tested was
actually constructed.
That's why there are situations when (1) a black box tester writes many test
cases to check something that can be tested by only one test case, and/or (2) some
parts of the back end are not tested at all. Therefore, black box testing has the
advantage of "an unaffiliated opinion," on the one hand, and the disadvantage of
"blind exploring," on the other.
17
HARDWARE AND SOFTWARE REQUIREMENTS
X. Printer : required
SOFTWARE REQUIREMENTS:
I. Windows OS
II. Python
18
BIBLIOGRAPHY
***
19