0% found this document useful (0 votes)
4 views

Library Managment System

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Library Managment System

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 35

1

A Project Report

On

LIBRARY MANAGEMENT SYSTEM


For

AISSCE 2023 Examination

[As a part of the Computer Science Course (083)]

Submitted By

Name:DEEP KUMAR SINHA


Board Roll No:

Under the Guidance of:

RAJ KUMAR (PGT Computer Science)

VIVEK VIDYALAYA
JAMSHEDPUR
2

CERTIFICATE

This is to certify that the Project entitled Library Management System is a

bonafide work done by Deep kumar sinha of class XII ‘Science’ Session

2022-23 in partial fulfillment of CBSE AISSCE Examination 2023 and has

been carried out under my direct supervision and guidance. This report or

a similar report on the topic has not been submitted for any other

examination and does not form a part of any other course undergone by

the candidate.

Signature of Student Signature of Teacher/Guide

Board Roll No: Designation: PGT(Comp Sc.)

Place: Jamshedpur
Date:
3

ACKNOWLEDGMENT

I undertook this Project work, as the part of my XII- Computer Science course. I had
tried to apply my best of knowledge and experience, gained during the study and class
work experience. However, developing software system is generally a quite complex
and time-consuming process. It requires a systematic study, insight vision and
professional approach during the design and development. Moreover, the developer
always feels the need, the help and good wishes of the people near you, who have
considerable experience and idea.

I would like to extend my sincere thanks and gratitude to my teacher Raj Kumar Sir. I
am very much thankful to our Principal Mr. Awadhesh Singh Sir for giving valuable
time and moral support to develop this software.

I would like to take the opportunity to extend my sincere thanks and gratitude to my
father Mr. Amit Kumar and my mother Mrs.Veena Sinha for being a source of
inspiration and providing time and freedom to develop this software project.

I also feel indebted to my friends Anand Raj and Aryan Kumar for the valuable
suggestions during the project work.

Deep Kumar
Sinha
Class XII (Science)
4

TABLE OF CONTENTS [ T O C ]

SERIAL DESCRIPTION PAGE NO

01 HARDWARE AND SOFTWARE REQUIREMENTS 05

02 INTRODUCTION 06

03 OBJECTIVES OF THE PROJECT 06

04 PROPOSED SYSTEM 06

05 SYSTEM DEVELOPMENT LIFE CYCLE (SDLC) 07

06 PHASES OF SYSTEM DEVELOPMENT LIFE CYCLE 08

07 WHAT IS DATABASE 15

08 FLOWCHART 17

09 SOURCE CODE 22

10 OUTPUT 30

11 TESTS 31

12 INSTALLATION PROCEDURE 33

13 REFRENCES 34

14 BIBLIOGRAPHY 35
5

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

.
6

PROJECT ON LIBRARY MANAGEMENT SYSTEM

INTRODUCTION

This project is all about a software for library. 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 ofcourse 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.

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
7

without malfunctioning and greater efficiency so to replace the unending heaps of flies with a much

sophisticated hard disk of the comp


computer.

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

various organisations.
ations. Many software products working are now in markets, which have helped in

making the organizations work easier and efficiently. Data manage


management
ment 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.

SYSTEM DEVELOPMENT LIFE CYCLE (SDLC)

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
8

managers to verify the successful completion of project phases before allocating 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.

PHASES OF SYSTEM DEVELOPMENT LIFE CYCLE

INITIATION PHASE

The Initiation Phase begins when a business sponsor identifies a need or an opportunity.

The purpose of the Initiation Phase is to:

Identify and validate an opportunity to improve business accomplishments of the organization


or a deficiency related to a business need.
Identify significant assumptions and constraints on solutions to that need.
Recommend the exploration of alternative concepts and methods to satisfy the need including
questioning the need for technology, i.e., will a change in the business process offer a
solution?
Assure executive business and executive technical sponsorship. The Sponsor designates a
Project Manager and the business need is documented in a Concept Proposal. The Concept
Proposal includes information about the business process andthe relationship to the
Agency/Organization.
Infrastructure and the Strategic Plan. A successful Concept Proposal results in a Project
Management Charter which outlines the authority of the project manager to begin
the project.

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 proposed system
9

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.

SYSTEM CONCEPT DEVELOPMENT PHASE

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.

The purpose of the System Concept Development Phase is to:

Determine the feasibility and appropriateness of the alternatives.


Identify system interfaces.
Identify basic functional and data requirements to satisfy the business need.
Establish system boundaries; identify goals, objectives, critical success factors, and
performance measures.
Evaluate costs and benefits of alternative approaches to satisfy the basic functional
requirements
Assess project risks
Identify and initiate risk mitigation actions, andDevelop high-level technical architecture,
process models, data models, and a concept of operations. This phase explores potential
technical solutions within the context of the business need.
It may include several trade-off decisions such as the decision to use COTS software
products as opposed to developing custom software or reusing software components, or the
decision to use an incremental delivery versus a complete, onetime deployment.
Construction of executable prototypes is encouraged to evaluate technology to support the
business process. The System Boundary Document serves as an important reference
document to support the Information Technology Project Request (ITPR) process.
The ITPR must be approved by the State CIO before the project can move forward.
10

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 off a project manager’ sjob 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 devel
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 cr
created
eated 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.

REQUIREMENTS ANALYSIS PHASE

This phase formally defines the detailed functional user requirements using high
high-level
requirements identified in the Initiation, System Concept, and Planning phases. It also delineates the
11

requirements in terms of data, system performance, security, and maintainability


requirements for the system. The requirements are defined in this phase to alevel 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 MasterPlan.

The purposes of this phase are to:

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 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 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:
12

Identifying potential risks and defining mitigating design features.


Performing a security risk assessment.
Developing a conversion plan to migrate current data to the new system.
Determining the operating environment.
Defining major subsystems and their inputs and outputs.
Allocating processes to resources.
Preparing detailed logic specifications for each software module. The result is a draft System
Design Document which captures the preliminary design for the system.
Everything requiring user input or approval is documented and reviewed by the user. Once
these documents have been approved by the Agency CIO and Business Sponsor, the final
System Design Document is created to serve as the Critical/Detailed Design for the system.
This document receives a rigorous review by Agency technical and functional representatives
to ensure that it satisfies the business requirements. Concurrent with the development of the
system design, the Agency Project Manager begins development of the Implementation Plan,
Operations and Maintenance Manual, and the Training Plan.

DEVELOPMENT PHASE

The development phase involves converting design specifications into executable


programs. Effective development standards include requirements that programmers and other
project participants discuss design specifications before programming begins. The procedures
help ensure programmers clearly understand program designs and functional requirements.
Programmers use various techniques to develop computer programs. The large transaction
oriented programs associated with financial institutions have traditionally 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:

Translating the detailed requirements and design into system components.


Testing individual elements (units) for usability.
Preparing for integration and testing of the IT system.
13

INTEGRATION AND TEST PHASE

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.

Multiple levels of testing are performed, including:

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
function. System performance is compared to performance objectives established during the
planning phase. Implementation 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.

OPERATIONS AND MAINTENANCE PHASE

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 re-enter the planning phase.
14

The purpose of this phase is to:

Operate, maintain, and enhance the system.


Certify that the system can process sensitive information.
Conduct periodic assessments of the system to ensure the functional requirements continue to
be satisfied.
Determine when the system needs to be modernized, replaced, or retired.

What is Database?
Introduction and Concepts:
A database is a collection of information related to a particular subject or purpose, such as
tracking customer orders or maintaining a music collection. Using any RDBMS application
software like MS SQL Server, MySQL, Oracle, Sybase etc, you can manage all your information
from a single database file. Within the file, divide your data into separate storage containers
called tables. You may and retrieve the data using queries.

A table is a collection of data about a specific topic, such as products or suppliers. Using a
separate table for each topic means you can store that data only once, which makes your
database more efficient and reduces data-entry errors. Table organises data into columns (called
fields) and rows (called records).

A Primary key is one or more fields whose value or values uniquely identify each record in a
table. In a relationship, a primary key is used to refer to specific record in one table from
another table. A primary key is called foreign key when it is referred to from another table.

To find and retrieve just the data that meets conditions you specify, including data from multiple
tables, create a query. A query can also update or delete multiple records at the same time, and
perform built-in or custom calculations on your data.
15

Role of RDBMS Application Program:

A computer database works as a electronic filing system, which has a large number of ways of
cross-referencing, and this allows the user many different ways in which to re-organize and
retrieve data. A database can handle business inventory, accounting and filing and use the

information in its files to prepare summaries, estimates and other reports. The management of
data in a database system is done by means of a general-purpose software package called a
Database Management System (DBMS). Some commercially available DBMS are MS SQL
Server, MS ACCESS, INGRES, ORACLE, and Sybase. A database management system,
therefore, is a combination of hardware and software that can be used to set up and monitor a
database, and can manage the updating and retrieval of database that has been stored in it. Most
of the database management systems have the following capabilities:
 Creating of a table, addition, deletion, modification of records.

 Retrieving data collectively or selectively.

 The data stored can be sorted or indexed at the user's discretion and direction.

 Various reports can be produced from the system. These may be either standardized
report or that may be specifically generated according to specific user definition.

 Mathematical functions can be performed and the data stored in the database can be
manipulated with these functions to perform the desired calculations.

 To maintain data integrity and database use.

The DBMS interprets and processes users' requests to retrieve information from a database. In
most cases, a query request will have to penetrate several layers of software in the DBMS and
operating system before the physical database can be accessed. The DBMS responds to a query
by invoking the appropriate subprograms, each of which performs its special function to
interpret the query, or to locate the desired data in the database and present it in the desired
order.

3.2 What is My SQL?


The management of data in a database system is done by means of a general-purpose
software package called a Database Management System (DBMS). Some commercially
available RDBMS are MS SQL Server, MS ACCESS, INGRES, ORACLE, and Sybase.
16

MySQL, the most popular Open Source SQL database management system, is developed,
distributed, and supported by Oracle Corporation. MySQL is named after co-founder Monty
Widenius's daughter, My. The name of the MySQL Dolphin (our logo) is “Sakila,”.

 MySQL is a database management system.


A database is a structured collection of data. It may be anything from a simple shopping
list to a picture gallery or the vast amounts of information in a corporate network. To
add, access, and process data stored in a computer database, you need a database
management system such as MySQL Server. Since computers are very good at handling
large amounts of data, database management systems play a central role in computing,
as standalone utilities, or as parts of other applications.

 MySQL is based on SQL.


A relational database stores data in separate tables rather than putting all the data in one
big storeroom. This adds speed and flexibility. The SQL part of “MySQL” stands for
“Structured Query Language.” SQL is the most common standardized language used to
access databases and is defined by the ANSI/ISO SQL Standard. The SQL standard has
been evolving since 1986 and several versions exist. In this manual, “SQL-92” refers to
the standard released in 1992, “SQL:1999” refers to the standard released in 1999, and
“SQL:2003” refers to the current version of the standard.

 MySQL software is Open Source.


Open Source means that it is possible for anyone to use and modify the software.
Anybody can download the MySQL software from the Internet and use it without
paying anything. If you wish, you may study the source code and change it to suit your
needs. The MySQL software uses the GPL (GNU General Public License),

 The MySQL Database Server is very fast, reliable, and easy to use.
If that is what you are looking for, you should give it a try. MySQL Server also has a
practical set of features developed in close cooperation with our users. You can find a
performance comparison of MySQL Server with other database managers on our
benchmark page. MySQL Server was originally developed to handle large databases
much faster than existing solutions and has been successfully used in highly demanding
production environments for several years. Although under constant development,
MySQL Server today offers a rich and useful set of functions. Its connectivity, speed,
and security make MySQL Server highly suited for accessing databases on the Internet.

 MySQL Server works in client/server or embedded systems.


The MySQL Database Software is a client/server system that consists of a multi-
threaded SQL server that supports different backends, several different client programs
17

and libraries, administrative tools, and a wide range of application programming


interfaces (APIs).

The Main Features of MySQL

 Written in C and C++.


 Works on many different platforms.
 Uses multi-layered server design with independent modules.
 Provides transactional and non-transactional storage
engines.
 Designed to make it relatively easy to add other storage engines. This
is useful if you want to provide an SQL interface for an in-house
database.

 Uses a very fast thread-based memory allocation system.


 Executes very fast joins using an optimized nested-loop join.
 Implements SQL functions using a highly optimized class
library that should be as fast as possible. Usually there is no
memory allocation at all after query initialization.
 Password security by encryption of all password traffic when
you connect to a server.
 Support for large databases. We use MySQL Server with
databases that contain 50 million records. We also know of
users who use MySQL Server with 200,000 tables and about
5,000,000,000 rows.
 MySQL client programs can be written in many languages. A
client library written in C is available for clients written in C
or C++, or for any language that provides C bindings.
 APIs for C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, and Tcl
are available, enabling MySQL clients to be written in many
languages.
18

 The Connector/ODBC (MyODBC) interface provides MySQL


support for client programs that use ODBC (Open Database
Connectivity) connections.
 The Connector/J interface provides MySQL support for Java
client programs that use JDBC connections. Clients can be
run on Windows or UNIX. Connector/J source is available.

What is Python?
Python is a popular programming language. It was created by Guido van Rossum, and
released in 1991.

It is used for:

 web development (server-side),


 software development,
 mathematics,
 System scripting.

What can Python do?


 Python can be used on a server to create web applications.
 Python can be used alongside software to create workflows.
 Python can connect to database systems. It can also read and modify files.
 Python can be used to handle big data and perform complex mathematics.
 Python can be used for rapid prototyping, or for production-ready software
development.

Why Python?
 Python works on different platforms (Windows, Mac, Linux, Raspberry Pi, etc).
 Python has a simple syntax similar to the English language.
 Python has syntax that allows developers to write programs with fewer lines than
some other programming languages.
 Python runs on an interpreter system, meaning that code can be executed as
soon as it is written. This means that prototyping can be very quick.
 Python can be treated in a procedural way, an object-orientated way or a
functional way.
19

Good to know
 The most recent major version of Python is Python 3, which we shall be using in
this tutorial. However, Python 2, although not being updated with anything other
than security updates, is still quite popular.
 In this tutorial Python will be written in a text editor. It is possible to write
Python in an Integrated Development Environment, such as Thorny, Pycharm,
Netbeans or Eclipse which are particularly useful when managing larger
collections of Python files.

Python Syntax compared to other programming


languages
 Python was designed for readability, and has some similarities to the English
language with influence from mathematics.
 Python uses new lines to complete a command, as opposed to other
programming languages which often use semicolons or parentheses.
 Python relies on indentation, using whitespace, to define scope; such as the
scope of loops, functions and classes. Other programming languages often use
curly-brackets for this purpose.
20

Flow chart

Open the win explorer and open the file


courier service system in the location;
C:\Users\Cadet\Desktop\balan\library
management system

If run the file courier service system.py

The program runs and you can

LIBRARY MANAGEMENT SYSTEM

At first ,we have to create a account


to use batman courier service
system

And if the user already has an


account he has to login LIBRARY
MANAGEMENT SYSTEM

The py file imports another file


B _courier _menu from the
location :
C:\Users\Cadet\Desktop\balan

The imported file LOGIN


ACCESS with which you can
use the LIBRARY
21

First it displays you four


options

1.REGISTER

2.LOGIN

3.EXIT

If choice is 1: If choice is
2:
then Elif choice
then is 3:

then

Display the LOGIN Execute QUIT()


It is for the new visitors where procedure of the
they can register their new LIBRARY
account
22

SOURCE CODE

================================================================# PYTHON
PROGRAM FILE : 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() :
23

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

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
def view_sales () :
print('Overall Sales This Month')
25

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

======================================================================
26

# 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()

====================================================================
27

# 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()
28

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")
elif choice4 == 3 :
29

print("Good Bye")
break
else :

print("INVALID CHOICE")
c = input("Do you want to return to main menu (y/[n]) : ")
else :
print("Good Bye")

====================================================================
30

OUTPUT
31

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.

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
32

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.

WHITE BOX TESTING

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)

Types of white box testing:-


The following types of white box testing exist:
api testing - Testing of the application using Public and Private APIs.
Code coverage - creating tests to satisfy some criteria of code coverage.
For example, the test designer can create tests to cause all statements in the program to be
executed at least once.
fault injection methods.
mutation testing methods.
static testing - White box testing includes all static testing.

CODE COMPLETENESS EVALUATION

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

Two common forms of code coverage are:


Function Coverage: Which reports on functions executed and
Statement Coverage: Which reports on the number of lines executed to complete the
test.
They both return coverage metric, measured as a percentage
INSTALLATION PROCEDURE:
Book Stall Management :-
-------------------------------------
Pre-Requisites :-
------------------------
1. You have to have the following softwares for the successful running of this software; which
are
I) Python (Only for the First time), it is downloadable from 'www.python.org'.
II) MySQL (Only for the First time), it is downloadable from 'www.mysql.org'.
Installation :-
-------------------
1. There will be two folders namely 'Python Files' and 'EXE files'.

2. The folder 'Python Files' will contain the source code of the software in python
language. If you are running the software by the 3rd step mentioned below you have to
pre install the following modules :-

I) mysql.connector
II) matplotlib.
3. Open the files in any python editors and run it to start and work on the software.
4. The folder 'EXE files' will contain two files namely 'main.exe' and
'Tables_in_mysql.exe'.
5. First run the 'Tables_in_mysql.exe' to create the tables in MySQL.
6. Then run the file 'main.exe' to start and work on the software.
CAUTION :-
=========

If you are running the software through running the python files or by running the .exe
files ; first run the file named 'Tables_in_mysql'.

The .exe file will take a lot of time; so be PATIENT.


34

REFERENCES

In order to work on this project titled –Library Management System, the following books
are referred by me during the various phases of development of the project.

(1) The Complete Reference Python

(2) http://www.mysql.org/

(3) http://www.python.org/

(4) On-line Help of Python ®

(5) Computer science for class XII

-by Sumita Arora

(6) Various Websites of Discussion Forum and software development activities.

Other than the above-mentioned books, the suggestions and supervision of my teacher
and my class experience also helped me to develop this software project.
35

BIBLIOGRAPHY

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


2. A Project Report On LIBRARY MANAGEMENT SYSTEM(LMS)
By : DEEP KUMAR SINHA
3. Website: https://www.youtube.com

You might also like