Library Managment System
Library Managment System
A Project Report
On
Submitted By
VIVEK VIDYALAYA
JAMSHEDPUR
2
CERTIFICATE
bonafide work done by Deep kumar sinha of class XII ‘Science’ Session
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.
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 ]
02 INTRODUCTION 06
04 PROPOSED SYSTEM 06
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
X. Printer : required
SOFTWARE REQUIREMENTS:
I. Windows OS
II .Python
.
6
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.
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.
2. Apply object oriented programming principles effectively when developing small to medium
sized projects.
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
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
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
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
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.
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 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.
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.
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.
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
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
DEVELOPMENT 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.
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.
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
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
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.
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.
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.
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,”.
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.
What is Python?
Python is a popular programming language. It was created by Guido van Rossum, and
released in 1991.
It is used for:
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.
Flow chart
1.REGISTER
2.LOGIN
3.EXIT
If choice is 1: If choice is
2:
then Elif choice
then is 3:
then
SOURCE CODE
================================================================# PYTHON
PROGRAM FILE : BOOK.py
def view_stock() :
23
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
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
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
====================================================================
27
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
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 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.
33
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'.
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.
(2) http://www.mysql.org/
(3) http://www.python.org/
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