CS Project (1)
CS Project (1)
CERTIFICATE EXAMINATION
AISSCE
SESSION 2021-22
BIRLA SCHOOL, PILANI
Computer Project
On
BOOK SHOP MANAGEMENT SYSTEM
1
ACKNOWLEDGEMENT
2
CERTIFICATE
Teacher’s Signature:
Mr. Dushyant Kumar
Department of Computer
3
TABLE OF CONTENTS [ T O C ]
01 ACKNOWLEDGEMENT 02
03 CERTIFICATE 03
02 INTRODUCTION 05
04 PROPOSED SYSTEM 05
08 SOURCE CODE 13
09 OUTPUT 19
10 TESTING 19
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 graph of the sales of the current month.
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 programming skills helps in
Students will demonstrate ability to conduct a research or applied Computer Science project,
requiring writing and presentation skills which exemplify scholarly style in computer science.
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
One has to use the data management software. Software has been an ascent in
5
atomization various organizations. Many software products working are now in 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
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 button. Moreover, now it’s
an age of computers of and automating such an organization gives the better look.
The systems development life cycle is a project management technique that divides
complex projects into smaller, more easily managed segments or phases. Segmenting projects
allows managers to verify the successful completion of project phases before allocating
6
resources to subsequent phases.
Software development projects typically include initiation, planning, design, development,
testing, implementation, and maintenance phases. However, the phases may be divided
differently depending on the organization involved.
For example, initial project activities might be designated as request, requirements-
definition, and planning phases, or initiation, concept-development, and planning phases. End
users of the system under development should be involved in reviewing the output of each phase
to ensure the system is being built to deliver the needed functionality.
INITIATION PHASE
The Initiation Phase begins when a business sponsor identifies a need or an opportunity.
Careful oversight is required to ensure projects support strategic business objectives and
resources are effectively implemented into an organization's enterprise architecture. The initiation
phase begins when an opportunity to add, improve, or correct a system is identified and formally
requested through the presentation of a business case. The business case should, at a
minimum, describe a proposal’s purpose, identify expected benefits, and explain how the
7
proposed system supports one of the organization’s business strategies. The business case
should also identify alternative solutions and detail as many informational, functional, and
network requirements as possible.
The System Concept Development Phase begins after a business need or opportunity is
validated by the Agency/Organization Program Leadership and the Agency/Organization CIO.
8
PICTORIAL REPRESENTATION OF SDLC:
PLANNING PHASE
The planning phase is the most critical step in completing development, acquisition, and
maintenance projects. Careful planning, particularly in the early stages of a project, is necessary
to coordinate activities and manage project risks effectively. The depth and formality of project
plans should be commensurate with the characteristics and risks of a given project. Project plans
refine the information gathered during the initiation phase by further identifying the specific
activities and resources required to complete a project.
A critical part of a project manager’s job is to coordinate discussions between user, audit,
security, design, development, and network personnel to identify and document as many
functional, security, and network requirements as possible. During this phase, a plan is
developed that documents the approach to be used and includes a discussion of methods, tools,
tasks, resources, project schedules, and user input. Personnel assignments, costs, project
schedule, and target dates are established.
A Project Management Plan is created with components related to acquisition planning,
configuration management planning, quality assurance planning, concept of operations, system
security, verification and validation, and systems engineering management planning.
9
REQUIREMENTS ANALYSIS PHASE
This phase formally defines the detailed functional user requirements using high-level
requirements identified in the Initiation, System Concept, and Planning phases. It also delineates
the requirements in terms of data, system performance, security, and maintainability
requirements for the system. The requirements are defined in this phase to a level of detail
sufficient for systems design to proceed. They need to be measurable, testable, and relate to the
business need or opportunity identified in the Initiation Phase. The requirements that will be used
to determine acceptance of the system are captured in the Test and Evaluation Master Plan.
Further define and refine the functional and data requirements and document them in the
Requirements Document,
Complete business process reengineering of the functions to be supported (i.e., verify
what information drives the business process, what information is generated, who
generates it, where does the information go, and who processes it),
Develop detailed data and process models (system inputs, outputs, and the process.
Develop the test and evaluation requirements that will be used to determine acceptable
system performance.
DESIGN PHASE
The design phase involves converting the informational, functional, and network
requirements identified during the initiation and planning phases into unified design specifications
that developers use to script programs during the development phase. Program designs are c
constructed in various ways. Using a top-down approach, designers first identify and link major
program components and interfaces, then expand design layouts as they identify and link smaller
subsystems and connections. Using a bottom-up approach, designers first identify and link minor
program components and interfaces, then expand design layouts as they identify and link larger
systems and connections. Contemporary design techniques often use prototyping tools that build
mock-up designs of items such as application screens, database layouts, and system
10
architectures. End users, designers, developers, database managers, and network
administrators should review and refine the prototyped designs in an iterative process until they
agree on an acceptable design. Audit, security, and quality assurance personnel should be
involved in the review and approval process. During this phase, the system is designed to satisfy
the functional requirements identified in the previous phase. Since problems in the design phase
could be very expensive to solve in the later stage of the software development, a variety of
elements are considered in the design to mitigate risk. These include:
DEVELOPMENT PHASE
11
been developed using procedural programming techniques. Procedural programming
involves the line-by-line scripting of logical instructions that are combined to form a program.
Effective completion of the previous stages is a key factor in the success of the Development
phase. The Development phase consists of:
Subsystem integration, system, security, and user acceptance testing is conducted during
the integration and test phase. The user, with those responsible for quality assurance,
validates that the functional requirements, as defined in the functional requirements
document, are satisfied by the developed or modified system. OIT Security staff assess
the system security and issue a security certification and accreditation prior to
installation/implementation.
Testing at the development facility by the contractor and possibly supported by end users
Testing as a deployed system with end users working together with contract personnel
Operational testing by the end user alone performing all functions. Requirements are
traced throughout testing, a final Independent Verification & Validation evaluation is
performed and all documentation is reviewed and accepted prior to acceptance of the
system.
IMPLEMENTATION PHASE
This phase is initiated after the system has been tested and accepted by the user. In this
phase, the system is installed to support the intended business functions. System performance is
compared to performance objectives established during the planning phase. Implementation
12
includes user notification, user training, installation of hardware, installation of software onto
production computers, and integration of the system into daily work processes. This phase
continues until the system is operating in production in accordance with the defined user
requirements.
The system operation is ongoing. The system is monitored for continued performance in
accordance with user requirements and needed system modifications are incorporated.
Operations continue as long as the system can be effectively adapted to respond to the
organization’s needs. When modifications or changes are identified, the system may reenter the
planning phase.
SOURCE CODE
================================================================
13
__cur = __db.cursor()
__db.autocommit(True)
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 : ")
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 :
14
__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])
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
15
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() :
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")
====================================================================
16
cur = db.cursor()
cur.execute("create database if not exists book_shop")
cur.execute("use book_shop")
cur.execute("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)")
cur.execute("create table users(username varchar(255) , password
varchar(255) , check (username <> 'ADMIN'))")
cur.execute("create table purchased (Book_no bigint , purchased_on date
, foreign key(Book_no) references stock(Book_No))")
cur.execute("create unique index Book_Index on stock(Book_No)")
cur.execute("insert into users values('admin' , 'admin@123')")
print("Database and Tables created successfully")
c = input("Press any key to continue---->")
cur.close()
db.close()
====================================================================
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")
17
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
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")
18
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
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.
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
20
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.
White box testing, by contrast to black box testing, is when the tester has access to the
internal data structures and algorithms (and the code that implement these)
White box testing methods can also be used to evaluate the completeness of a test suite
that was created with black box testing methods. This allows the software team to examine parts
of a system that are rarely tested and ensures that the most important function points have been
tested.
21
I.OPERATING SYSTEM : WINDOWS 7 AND ABOVE
AMD ATHALON
X. Printer : required
SOFTWARE REQUIREMENTS:
I. Windows OS
II. Python
22
23