0% found this document useful (0 votes)
13 views19 pages

Book Stall Management

The document is a project report for a Book Stall Management System submitted by a student at Sainik School Gopalganj for the All India Senior Secondary Certificate Examination 2024-25. It outlines the project's objectives, proposed system, and the Software Development Life Cycle (SDLC) involved in creating the software, along with source code examples. The report also includes acknowledgments, testing procedures, and hardware/software requirements.

Uploaded by

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

Book Stall Management

The document is a project report for a Book Stall Management System submitted by a student at Sainik School Gopalganj for the All India Senior Secondary Certificate Examination 2024-25. It outlines the project's objectives, proposed system, and the Software Development Life Cycle (SDLC) involved in creating the software, along with source code examples. The report also includes acknowledgments, testing procedures, and hardware/software requirements.

Uploaded by

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

SAINIK SCHOOL GOPALGANJ

ACADEMIC YEAR: 2024-25

PROJECT REPORT ON

BOOKSTALL MANAGEMENT SYSTEM

Submitted for the fulfilment of


All India Senior Secondary Certificate Examination 2024-25

Conducted by
Central Board of Secondary Education

ROLL NO :

NAME :

CLASS : XII A

SUBJECT : COMPUTER SCIENCE

SUB CODE : 083

PROJECT GUIDE: Mr MANISH KUMAR

PGT (CS), SAINIK SCHOOL GOPALGANJ

1
SAINIK SCHOOL GOPALGANJ

CERTIFICATE
This is to certify that Cadet __________________ Roll No: ____________

has successfully completed the project Work entitled BOOK STALL

MANAGEMENT SYSTEM in the subject Computer Science (083) laid down in the

regulations of CBSE for the purpose of Practical Examination in Class XII to

be held in Sainik School Gopalganj on______________.

(Manish Kumar)
PGT Comp Sci
Teacher IC

Examiner:

Signature:

Name: _______________

2
TABLE OF CONTENTS [ T O C ]

SER DESCRIPTION PAGE NO

01 ACKNOWLEDGEMENT

02 INTRODUCTION

03 OBJECTIVES OF THE PROJECT

04 PROPOSED SYSTEM

05 SYSTEM DEVELOPMENT LIFE CYCLE

06 SOURCE CODE

07 OUTPUT

08 TESTING

09 HARDWARE AND SOFTWARE REQUIREMENTS

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.

I express my heartfelt gratitude to my parents for constant encouragement


while carrying out this project.

I gratefully acknowledge the contribution of the individuals who contributed in


bringing this project up to this level, who continues to look after me despite my flaws,

I express my deep sense of gratitude to the luminary The Principal, Sainik


School Gopalganj who has been continuously motivating and extending their helping
hand to us.

I am overwhelmed to express my thanks to The Vice Principal for providing


me an infrastructure and moral support while carrying out this project in the school.

My sincere thanks to Mr Manish Kumar, Teacher In-charge, A guide,


Mentor all the above a friend, who critically reviewed my project and helped in
solving each and every problem, occurred during implementation 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

graph of the sales of the current month.

OBJECTIVES OF THE PROJECT

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 developing a good software.

1. Write programs utilizing modern software tools.

2. Apply object oriented programming principles effectively when developing

small to medium sized projects.

3. Write effective procedural code to solve small to medium sized problems.

4. Students will demonstrate a breadth of knowledge in computer science, as

exemplified in the areas of systems, theory and software development.

5. 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.

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

disk of the computer.

One has to use the data management software. Software has been an ascent

in atomization various organisations. 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 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

button. Moreover, now it’s an age of computers of and automating such an

organization gives the better look.

6
SYSTEM DEVELOPMENT LIFE CYCLE (SDLC)

Software Development Life Cycle, SDLC for short, is a well-defined, structured


sequence of stages in software engineering to develop the intended software
product.

SDLC Activities

SDLC provides a series of steps to be followed to design and develop a software


product efficiently. SDLC framework includes the following steps:

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 -

 studying the existing or obsolete system and software,


 conducting interviews of users and developers,
 referring to the database or
 collecting answers from the questionnaires.

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

This step is also known as programming phase. The implementation of software


design starts in terms of writing program code in the suitable programming
language and developing error-free executable programs efficiently.

Testing

An estimate says that 50% of whole software development process should be


tested. Errors may ruin the software from critical level to its own removal. Software

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.

Operation and Maintenance

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

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

# PYTHON MODULE : BOOK.py

import pymysql as cntr , datetime as __dt , matplotlib.pyplot


as plt
from random import shuffle
from tempfile import mktemp
from os import system , startfile

__db = cntr.connect(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)
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")

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

# PYTHON MODULE : Tables_in_mysql

import pymysql as cntr

db = cntr.connect(host = 'localhost' , user = 'root' , passwd


= 'manager')
db.autocommit(True)
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()

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

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

Software Testing is an empirical investigation conducted to provide


stakeholders with information about the quality of the product or service under test[1]
, with respect to the context in which it is intended to operate. Software Testing also
provides an objective, independent view of the software to allow the business to
appreciate and understand the risks at implementation of the software. Test
techniques include, but are not limited to, the process of executing a program or
application with the intent of finding software bugs.
It can also be stated as the process of validating and verifying that a software
program/application/product meets the business and technical requirements that
guided its design and development, so that it works as expected and can be
implemented with the same characteristics. Software Testing, depending on the
testing method employed, can be implemented at any time in the development
process, however the most test effort is employed after the requirements have been
defined and coding process has been completed.

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

Specification-based testing aims to test the functionality of software according


to the applicable requirements.[16] Thus, the tester inputs data into, and only sees
the output from, the test object. This level of testing usually requires thorough test
cases to be provided to the tester, who then can simply verify that for a given input,
the output value (or behaviour), either "is" or "is not" the same as the expected value
specified in the test case. Specification-based testing is necessary, but it is
insufficient to guard against certain risks

ADVANTAGES AND DISADVANTAGES

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

I.OPERATING 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. Key board and mouse

X. Printer : required

SOFTWARE REQUIREMENTS:

I. Windows OS
II. Python

18
BIBLIOGRAPHY

1. Computer science With Python - Class XII By : Sumita Arora


2. Website: https://www.youtube.com

***

19

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy