0% found this document useful (0 votes)
16 views89 pages

E-Library JAVA Project Documentation

The document outlines a project report for an e-Library System developed by Aditya Kumar for the MCA program at Patliputra University, focusing on the Mehta Library in Gaya. It includes various sections such as project objectives, software tools used (Java and Oracle), and a detailed project structure including documentation, testing, and future applications. The project aims to automate library operations, enhancing efficiency and user experience.

Uploaded by

AMAN KUMAR
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)
16 views89 pages

E-Library JAVA Project Documentation

The document outlines a project report for an e-Library System developed by Aditya Kumar for the MCA program at Patliputra University, focusing on the Mehta Library in Gaya. It includes various sections such as project objectives, software tools used (Java and Oracle), and a detailed project structure including documentation, testing, and future applications. The project aims to automate library operations, enhancing efficiency and user experience.

Uploaded by

AMAN KUMAR
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

PATLIPUTRA UNIVERSITY PATNA

(BD COLLEGE PATNA)


TITLE:
e- LIBRARY SYSTEM
For
MCA –4th SEMESTER
Submitted In Requirement For Successful Completion of MCA
Submitted By

ADITYA KUMAR
ENROLMENT NO: 2120340170002

PROGRAMME- MCA
GUIDE NAME- MR. ANIL KUMAR MCA FROM IGNOU
FRONT END- JAVA & BACK END- ORACLE

Table of contents

1
A. Documentation enclosures
1. SYNOPSIS APPROVAL LETTER
2. CERTIFICATE OF APPROVAL
3. GUIDE’S CERTIFICATE
4. STUDENTS DECLARATION
5. ACKNOWLEDGMENT
6. CERTIFICATE OF INTERNSHIP
7. GUIDE’S BIO-DATA

B. Synopsis
C. Project documentation

TOPICS Pg. No.


1. TITLE OF PROJECT 9
2. INTRODUCTION TO THE CLIENT 10
3. OBJECTIVE OF THE PROJECT 11
4. SOFTWARE TOOLS 12
5. PRELIMINARY INVESTIGATION 20
6. FEASIBILITY STUDY 21
7. DFD 23
8. ER – DIAGRAM 26
9. GANTT CHART 27
10. DATA STRUCTURE 28
11. PROCESS LOGIC 29
12. OUTPUT OF THE PROJECT 31
13. SCREEN SHOTS & CODE BLOCK 33-79
14. TESTING 80
15. SOFTWARE MAINTENANCE 83
16. COST ESTIMATION 84
17. CONCLUSION 85
18. SCOPE OF FUTURE APPLICATION 86
19. INTRODUCTION TO SOFTWARE CONSULTANCY 87
20. REFERENCE 88

2
CERTIFICATE OF ORIGINALITY

This is to certify that the project report entitled “ e-LIBRARY SYSTEM” With
Special Reference To Mehta Library, Gaya Submitted to Patliputra University
Patna in partial fulfillment of the requirement for the award of the Degree of
MASTER IN COMPUTER APPLICATIONS (MCA), is an original work
carried out by ADITYA KUMAR, Enrolment No. 2120340170002 under the
guidance of Mr. Anil Kumar.

The matter embodied in this project is a genuine work done by the students and
has not been submitted whether to this University or to any other University/ Institute
for the fulfillment of the requirement of any course of study.

---------------------------------- -----------------------------
(ADITYA KUMAR) (MR. ANIL KUMAR)
Enrolment No. 2120340170002 [SOFTWARE ENGINEER]
PROJECT GUIDE

--------------------------------- --------------------------
(External-2) (External-1)

3
GUIDE’S CERTIFICATE

Certified that ADITYA KUMAR, Enrolment No. 2120340170002 , Programme


MCA, Student of Patliputra University Patna has worked on this project under
my supervision and guidance. It is outcome of his extensive study on the subject.
I hereby recommend that project may kindly be accepted for evaluation for
examination. I wish him success in life.

Signature
(ANIL KUMAR)
Project Guide

4
STUDENT’S DECLARATION

I do hereby declare that the software Titled “ e-LIBRARY SYSTEM


” With Special Reference To Mehta Library, Gaya is developed by me
under the guidance of Mr. Anil Kumar. It is an original work and
has not been submitted earlier to this university or any other
institution to the best of my Knowledge.

Student’s Signature

(ADITYA KUMAR)

5
ACKNOWLEDGMENT

I dedicate my project report to the Mehta Library, Gaya for


getting automates the overall organization’s system. It is an
attempt to serve them at my possible extent through my project
work.
When we do anything, we always want to thank all those people
who have left an impression on our lives and inspired us to
greatness.
Before we get into things I would like to add a few heartfelt words
for the people who were part of this report in numerous ways…. In
particular I wish to thank “ Mr. Anil Kumar”, Project Guide for
his unending support and wide vision, bold suggestions under
whose noble guidance this project work was completed. I, hereby,
take an opportunity to thank our respected faculty members of
our college for their great appreciation and wide support.

And finally heartfelt appreciation to my Mother, Father, and


friends who have in one way or other provided assistance in
course of my project work.

ADITYA KUMAR,
Enrolment No. 2120340170002

6
RESUME
Anil kumar
Shyam Path , Chandmari road,
Kankarbagh ,Patna
E_mail. [email protected]
Mob- 9835056038

WORK EXPERIENCES

 Worked as programmer at Mahivar incl. new Delhi since 2004 to 2006


 Worked as a software engineer at Getneed Softech Patna since 2007 to 2012
 Working as software engineer at NiceSoftech Patna since 2013

ACADEMIC QUALIFICATIONS

 Master In Computer Applications (MCA) From IGNOU IN 2003

PROFESSIONAL EXPERIENCES

Well versed to work on following ares

OBJECT ORIENTED TECHNOLOGY


.NET TECHNOLOGY
JAVA ENVIRONMEN

PROJECT PROFILE

Worked & Guide on following Project for IGNOU,NOU & MU since 2010

BCA/MCA PROJECTS
 Hospital Management System
 Cyber Café Automation System
 Billing System for Automobile Agency

7
 Hotel Management System
 Library Management System
 School Management System
 Institute Automation System
 Citizen Card System
 Courier Automation System
 Automated System for Packers & Movers
 Automated System for Tour & Travel Agency

PERSONAL DETAILS

Date of Birth 15-Aug-1978


Language Known English, Hindi
Nationality Indian
Religion Hindu
Marital Status Married

Date: ________________
Place: Patna (ANIL KUMAR

8
The project entitled “ LIBRARY APPLICATION
SYSTEM ” With Special Reference To Mehta Library, Gaya in
partial fulfillment of the requirement for the award of the degree of MASTER IN

COMPUTER APPLICATIONS (MCA).

9
INTRODUCTION TO THE CLIENT
Mehta Library is a name and famed library of city Gaya opened recently in the year 2011-12 by
the Incharge Dr. K.P.Mehta and the expert team of Library. Due to, no authorized and collective
books library, the popularity of this library is growing day by day and number of new
membership holders are increasing. The Library contains 50,000 collections of different category
of books with latest editions.The type of books are political,technical,competitive oriented,
magazines collections, e-book(CD/DVD), medical and engineering oriented, general studies
based books.

So, due to these facilities, the work load is more and hence when I visited the library to suggest
the computerize of total work and facilities, Incharge and staff members are very much eager to
automate the total work.

Consequently, I have taken all modules and requirements from the library.

10
Objectives of the Project
In the context of the requirement for partial fulfillment
of MASTER IN COMPUTER APPLICATIONS (MCA) from PPU, this
project was under taken to justify the knowledge gained in this
three years course and to prove the ability to develop real life
projects in different fields.

After study of the existing applications , the modules that are needed to be handle in the project
are:-

OBJECTIVE OF THIS PROJECT


 Registering new Member Ship
 Recording all details of members who has taken the book .
 Calculating and recording the late fine if the member does not return the
book on time.
 Finding the information that which member has taken which book.
 To view the detail of member who have taken how many books.
 Searching the availability of books.
 Displaying the member information .
 Adding of new books in the record.
 Adding of new user in the project.
 Report of Member Advance Report

11
SOFTWARE TOOLS

12
Project category [ Client/ Server
Architecture ]
RDBMS
Relational database is a new way of thinking about how data
should be structured and stored . The key to this type of database in
understanding the relationship within data , then structuring the
information base to reflect those relationship. In this way an
information base would be built. That could stand the test of time. The
goal of relational database is to build a database in which only the data
changes, not the structure itself. The old way of doing this type if work
is called the traditional approach.
A relational database is a database that is perceived by the user
as the collection of time varying normalized relation of assorted
degrees. In other words, In relational database the no. of rows and
columns and contents may change with time due to modification,
deletion, insertions. Relational operators like union, intersection,
Cartesian product etc. can be used to operate on the database . Since
each relation in the database is independent, there are no relationship
between relations. A relational database is a collection of relations of
two-dimensional tables. A relation does not contain any duplicate
tuples.

Features Of RDBMS :
· Database is represented as a collection of relations. The relational
database eliminated all parent child relationships and instead
represented all data in the database as simple tuple or attributes
table of data values.
· Each table is independent and there is no structure or any
relationship between tables.
· The user interfaces of RDBMS are non-procedural.
Normalization
The logical design of the database, including the tables and the relationships
between them, is the core of an optimized relational database. A good logical
database design can lay the foundation for optimal database and application
performance. A poor logical database can impair the performance of the
entire system.

13
A logical database design involves using formal methods to separate the
data into multiple, related tables. A greater number of narrow tables(with
fewer columns)is characteristics of a database. A few wide tables(with more
columns)is characteristics of an un normalized database.
Some of the benefits of Normalization include:
 Faster sorting and index creation.
 A large number of clustered indexes.
 Narrower and more compact indexes.
 Fewer indexes per table, which improves the performance of
INSERT,UPDATE and DELETE statements.
 Fewer NULL values and less opportunity for inconsistency, which
increase database compactness.
Reasonable normalization often includes few regularly executed
queries that use joins involving more than four tables. Sometimes the
logical database design is already fixed and total redesign is not
feasible. If the database is accessed through stored procedures, this
schema change could take place without affecting applications. It not,
it might be possible to create a view that hides the schema change
applications. There are three main Normal forms, each with increasing
level of normalization:-

First Normal Form(1 NF):- A table is in 1NF if it does not contain


repeating groups.

Second Normal Form(2 NF):- A table is in 2NF when all its non key
attributes are fully dependent on the key attributes.

Third Normal Form(3 NF):- A table is in 3NF if all the non key
attribute of the table are independent of all other non key fields of the
same table.
There are additional normalization levels, such as Boyce codd
Normal form(BCNF), Fourth Normal Form(4NF) and Fifth Normal
Form(5NF).

ORACLE
Oracle is an RDBMS package developed by Oracle
Corporation. It is based on relational supporting client/server
technology and multiple users. It is efficient and world class RDBMS
and is most popular. Most of the web servers in world uses ORACLE as
RDBMS due to its easy integration to Client/Server.

Features Of Oracle:
 Ease of installation and use
 Scalability
 Data warehousing
 System Integration with other server software

14
 Flexibility
 Security
 Robustness

About java: Features JDK 1.7

Platform Independent:

The concept of Write-once-run-anywhere (known as the Platform independent) is one of the


important key feature of java language that makes java as the most powerful language. Not even
a single language is idle to this feature but java is closer to this feature. The programs written on
one platform can run on any platform provided the platform must have the JVM.

Simple:

There are various features that make the java as a simple language. Programs are easy to write
and debug because java does not use the pointers explicitly. It is much harder to write the java
programs that can crash the system but we can not say about the other programming languages.
Java provides the bug free system due to the strong memory management. It also has the
automatic memory allocation and de-allocation system.

Object Oriented:

To be an Object Oriented language, any language must follow at least the four characteristics.

 Inheritance : It is the process of creating the new classes and using the behavior of the
existing classes by extending them just to reuse the existing code and adding the
additional features as needed.
 Encapsulation: It is the mechanism of combining the information and providing the
abstraction.
 Polymorphism: As the name suggest one name multiple form, Polymorphism is the way
of providing the different functionality by the functions having the same name based on
the signatures of the methods.
 Dynamic binding: Sometimes we don't have the knowledge of objects about their specific
types while writing our code. It is the way of providing the maximum functionality to a
program about the specific type at runtime.

As the languages like Objective C, C++ fulfills the above four characteristics yet they are not
fully object oriented languages because they are structured as well as object oriented languages.
But in case of java, it is a fully Object Oriented language because object is at the outer most

15
level of data structure in java. No stand alone methods, constants, and variables are there in java.
Everything in java is object even the primitive data types can also be converted into object by
using the wrapper class.

Robust:

Java has the strong memory allocation and automatic garbage collection mechanism. It provides
the powerful exception handling and type checking mechanism as compare to other
programming languages. Compiler checks the program whether there any error and interpreter
checks any run time error and makes the system secure from crash. All of the above features
makes the java language robust.

Distributed:

The widely used protocols like HTTP and FTP are developed in java. Internet programmers can
call functions on these protocols and can get access the files from any remote machine on the
internet rather than writing codes on their local system.

Portable:

The feature Write-once-run-anywhere makes the java language portable provided that the system
must have interpreter for the JVM. Java also have the standard data size irrespective of operating
system or the processor. These features make the java as a portable language.

Dynamic:
While executing the java program the user can get the required files dynamically from a local
drive or from a computer thousands of miles away from the user just by connecting with the
Internet.

Secure:

Java does not use memory pointers explicitly. All the programs in java are run under an area
known as the sand box. Security manager determines the accessibility options of a class like
reading and writing a file to the local disk. Java uses the public key encryption system to allow
the java applications to transmit over the internet in the secure encrypted form. The byte code
Verifier checks the classes after loading.

16
Performance:

Java uses native code usage, and lightweight process called threads. In the beginning
interpretation of byte code resulted the performance slow but the advance version of JVM uses
the adaptive and just in time compilation technique that improves the performance.

Multithreaded:

Java is also a multithreaded programming language. Multithreading means a single program


having different threads executing independently at the same time. Multiple threads execute
instructions according to the program code in a process or a program. Multithreading works the
similar way as multiple processes run on one computer.
Multithreading programming is a very interesting concept in Java. In multithreaded programs not
even a single thread disturbs the execution of other thread. Threads are obtained from the pool of
available ready to run threads and they run on the system CPUs. This is how Multithreading
works in Java which you will soon come to know in details in later chapters.

Interpreted:

we all know that Java is an interpreted language as well. With an interpreted language such as
Java, programs run directly from the source code.
The interpreter program reads the source code and translates it on the fly into computations.
Thus, Java as an interpreted language depends on an interpreter program.
The versatility of being platform independent makes Java to outshine from other languages.
The source code to be written and distributed is platform independent.
Another advantage of Java as an interpreted language is its error debugging quality. Due to this
any error occurring in the program gets traced. This is how it is different to work with Java.

Architecture Neutral:

The term architectural neutral seems to be weird, but yes Java is an architectural
neutral language as well. The growing popularity of networks makes developers
think distributed. In the world of network it is essential that the applications must
be able to migrate easily to different computer systems. Not only to computer
systems but to a wide variety of hardware

architecture and operating system architectures as well. The Java compiler does
this by generating byte code instructions, to be easily interpreted on any machine
and to be easily translated into native machine code on the fly. The compiler
generates an architecture-neutral object file format to enable a Java application to
execute anywhere on the network and then the compiled code is executed on many
processors, given the presence of the Java runtime system. Hence Java was
17
designed to support applications on network. This feature of Java has thrived the
programming language.

ABOUT : JDK:

The Java Development Kit (JDK) is a Sun Microsystems product aimed at Java developers.
Since the introduction of Java, it has been by far the most widely used Java SDK. On 17
November 2006, Sun announced that it would be released under the GNU General Public
License (GPL), thus making it free software. This happened in large part on 8 May 2007[1] and
the source code was contributed to the OpenJDK.

The primary components of the JDK are a selection of programming tools, including:

 java – The loader for Java applications. This tool is an interpreter and can interpret the
class files generated by the javac compiler. Now a single launcher is used for both
development and deployment. The old deployment launcher, jre, is no longer provided
with Sun JDK.
 javac – The compiler, which converts source code into Java bytecode
 jar – The archiver, which packages related class libraries into a single JAR file. This tool
also helps manage JAR files.
 javadoc – The documentation generator, which automatically generates documentation
from source code comments
 jdb – The debugger
 javap – The class file disassembler
 appletviewer – This tool can be used to run and debug Java applets without a web
browser.
 javah – The C header and stub generator, used to write native methods
 extcheck – This utility can detect JAR-file conflicts.
 apt – The annotation processing tool
 jhat – (Experimental) Java heap analysis tool
 jstack – (Experimental) This utility prints Java stack traces of Java threads.
 jstat – (Experimental) Java Virtual Machine statistics monitoring tool
 jstatd – (Experimental) jstat daemon
 jinfo – (Experimental) This utility gets configuration information from a running Java
process or crash dump.
 jmap – (Experimental) This utility outputs the memory map for Java and can print shared
object memory maps or heap memory details of a given process or core dump.
 idlj – The IDL-to-Java compiler. This utility generates Java bindings from a given IDL
file.
 policy tool – The policy creation and management tool, which can determine policy for a
Java runtime, specifying which permissions are available for code from various sources
 VisualVM – visual tool integrating several command line JDK tools and lightweight
performance and memory profiling capabilities

18
The JDK also comes with a complete Java Runtime Environment, usually called a private
runtime. It consists of a Java Virtual Machine and all of the class libraries that will be present in
the production environment, as well as additional libraries only useful to developers, such as the
internationalization libraries and the IDL libraries.

Also included are a wide selection of example programs demonstrating the use of almost all
portions of the Java API.

Tools/ Platforms to be used


This project is based upon client/server Model in which Java is used as Front End Tools
(Menu) or client side application and Oracle as Back End Tools or Server side application, which
is a hardware platform in which it handles its request and interfaces to a database. Basic purpose
of this project is to use the database with different location for different users. So client /Server
model is best to choose.

Selection of RDBMS :

 Product Selected : ORACLE 10g

Software Requirements :

 Product selected : JAVA, HTML

 O/S Selected(SERVER) : Windows 2010 Server


 O/S Selected(CLIENT) : Windows 7
Hardware Requirements:

19
Processor : Pentium IV OR HIGHER
Hard Disk : 40GB
RAM : 512MB or more
PRINTER : EPSON DMP/ HP Laser Jet

PRELIMINARY INVESTIGATION
The system has studied by me and documented .As the system is totally manual, the activity
takes place in the system as following.

Study of the existing system:

 Registration of Member is done manually.


 Books information is maintained in the manual register.
 Category and type wise books information are maintained on separate register file.
 Searching process is very complex.
 Issue and deposit details are one of the most complex job.
 Receipt is generated manually.
 Staffs data are maintained manually.
 Furniture’s info is maintained manually.
 Purchase of books is maintained manually.

Feasibility Study:
20
An initial investigation culminates in a proposal that determines whether an alternative system is
feasible or not. Proposal summarizing the study of the system is presented to the user for review.
When approved the proposal initiates feasibility study that meets the system performance
requirements and objectives.
To test the feasibility of the Library Management System, the following aspects were
studied in detail so that there should not be any résistance from the personnel of the user
organization. The activities studied are:
1. Main characteristics of the system.
2. Output requirements including response time.
3. Varieties of data and estimated volume.
4. Feasibility study user and system management.
5. Objective and requirements of the system.

The key considerations involved in feasibility analysis are:

1. Technical feasibility.
2. Economic feasibility.
3. Operational feasibility.

Technical feasibility:
The assessment of technical feasibility must be based on an outline design of the system
requirements in terms of volume of data, trends programming procedures and staffs. This can be
qualified in terms of data, trends, frequency of updating, circle of operation etc.
Technical requirements. Technical feasibility centers on the existing system and what
extent it can support the proposed system. Previously this payroll system was running with a
cumbersome manual system. Now as they are well equipped with the hardware as well as
software to run this package, the proposed system is technically feasible.

Economic Feasibility:

21
Economic analysis is the most important for evaluation for activeness of the proposed system. It
determines the cost to be incurred and the benefits and cost saving will be gained by
implementing the proper system. All the problems areas of the existing system have been
detected and special care has been taken to remove them in the proposed system.

Operational feasibility:
Proposed system is beneficial as it can be turned in to salary system that will meet the
operating requirements of the account balance of this Library management system. Two main
points that followed operational feasibility are:
 There is abundant support for the project from the users. The new system is
well linked and used to the extent that the person will not be able to reason
for a change, there may be resistance.
 The current methods are acceptable to the user. If they are not, users may
welcome a change that will bring about a more operational and useful
system.

Software Principles Used

Software principles are the principles on the basis of which we conceive a


computer system. Actually these are not strict as to apply all the principles
to software, rather the principles which are relevant shall be applied. Each
software system specific to a client has to compromise on certain issue due
pressure from client. However each and every software must follow some
minimum requirements as standard to make software development more
easy.I used spiral process model along with Prototyping process model as
our guiding. System was installed at client with functionality to evaluate
and again revaluation all these events were consolidated as one in analysis
part but in reality it was actually in pieces.

22
Data Flow Diagram
 System Design

USER
MEMBER 0

e- LIBRARY SYSTEM
OPERATOR Add/Update
Delete/Search MASTER
DB

INCHARGE

Enquiry for Book status


Requisition for Membership
Issue Book
Deposit Book
Payment
Staff Info
Book Order for purchase

23
Order’s billing
Report generation

Fig: Context Level Diagram

MEMBER 1.0 entry


Enquiry Req. for reg MEMBER FILE

Get
Confirmation

Req. for availability 2.0 book


OPERATOR MEMBER
check Checking availability
availability

BOOK MASTER Book Info ISSUE_DEPOSIT


Issue/dep info

3.0 MEMBER FILE


do Issue_deposit
OPERATOR member info

book details Acknowledgement MEMBER


BOOK INFO

member details BOOK INFO


book info
MEMBER FILE 4.0
Req. for payment member info MEMBER FILE
24
Enter req.
MEMBER Do payment details
OPERATOR
bill. info
PAYMENT FILE
Customer details
STAFF INFO
MEMBER FILE
staffs info
5.0 SALARY FILE
proceed Staff Entry
OPERATOR sal info

confirmation STAFF
SALARY sal details
details

STAFF FILE Fig: 1st level DFD

25
Fig:2nd level DFD

 ER-Diagram
SDept

26
Address
SAddress
Branchcode# BName
Contact Sid#

Reg Date
LIBRARY 1: N STAFF
Has

Sname
ISBN# Title
qty
Head Name 1
BOOK M
Issue/dep

edition type

MId#
Add Mname
1:

M
Paid bill MEMBER

Father Name Contact


M
regDate type
BillNo# BDate

BILLING Amount

Status
Receiver Name

Fig: ER-Diagram

GANTT CHART

27
SRS

ANALYSIS
PROCESSE

DESIGN

CODIGN

TESTING

IMPLEMENTATION
S

5days 10days 10days 60days 5days 5days

TIME

DATA STRUCTURE

28
User Password Table
colu User_Name User_ID Password
mn
Type Varchar2 Varchar2 Varchar2
cons Primary key
train
t
Book_info Table
Book_no Book_Name Book_Group Year
Varchar2 Varchar2 Varchar2 numbe
r
Control Table
Roll_No Book_Number
Varchar2 Varchar2
Issue_deposit Table
Roll_No Book_No Issu_Date Deposit_Date
Varchar2 Varchar2 Date Date

Record Table
Roll_No Book_No Book_Group Issue_Date Deposit_Date
Varcha Varchar2 Varchar2 Date Date
r2
Member_Info Table
Roll_ No Member_Name Address
Varchar2 Varchar2 Varchar2
Staff Table
Sid SName Address JoinDate Ref
Varcha Varchar2 Varchar2 Date Varchar2
r2
Salary Table
Sid Payld Salary Issue_Date Mode
Varcha Varchar2 Varchar2 Date Varchar2
r2

Process Logic
29
 Process Logic (Descriptions about every sub module)

As we know that the proposed project is for An Organization


which is involved in library Management for member. We have to
develop a computerized system so as to maintain the everyday
transaction of the firm. After a deep analysis of the day to day
transactions of the company we have partitioned the whole
system into the seven sub modules:-

There are as following modules with their process logic:-

A. MEMBER MASTER: -In this module user maintains member

Information B. BOOK MASTER:- In this module user maintains

Book’s Info and their quantity

C. ISSUE DEPOSIT MASTER:- In this module Book that is


issued and deposited are maintained.
D. ORDER DETAILS:- In this module the order of books to be
purchased are maintained.
F. FACILITIES AVAILABLE DETAILS:- In this module the all
types of services provided by library to the members are
maintained so that one can get information for related
requests.
G. BILL PAYMENT MODULE:- In this module, payment
details like mode, type, amount given by the members
are entered regarding registration, fine and order line
for purchase bill taken etc.
30
I. STAFF MODULE:- In the module of the system Working
staffs & salaries have been entered as well as their personal
information have been saved.

K. REPORT GENERATION MODULE


In this module various reports like
o Member’s Bill
o Book Purchase Bill
o Salary Report
o Income/Expense Report
Etc. will be generated.

31
OUTPUT OF PROJECT/ REPORT GENERATION

o Member’s Bill
o Book Purchase Bill
o Salary Report
o Income/Expense Report
Etc.

32
SCREEN
SHOTS
&
CODE
BLOCK

33
SCREEN SHOTS

34
35
36
37
38
39
CODING

Html:-
Library.Html:-

<html>
<applet code="Library" width=300 height=300></applet>
<body bgcolor="skyblue">
</body>
</html>

JAVA:-
Authentication_:-

import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Authentication extends JFrame implements ActionListener
{
JLabel l1,l2;
JTextField t1;
JPasswordField t2;
JButton b1;
JPanel p;
GridBagLayout gb;
GridBagConstraints gc;
Authentication()
{
super("Authentication Window");
gb=new GridBagLayout();
gc=new GridBagConstraints();
p=new JPanel();
l1=new JLabel("ID");

40
l2=new JLabel("Password");
t1=new JTextField(10);
t2=new JPasswordField(10);
t1.setText("user");
t2.setText("user123");
b1=new JButton("Login");
getContentPane().add(p);
p.setLayout(gb);
gc.anchor=GridBagConstraints.CENTER;
gc.fill=GridBagConstraints.NONE;
gc.gridx=5;
gc.gridy=5;
gb.setConstraints(l1,gc);
p.add(l1);

gc.gridx=6;
gc.gridy=5;
gb.setConstraints(t1,gc);
p.add(t1);

gc.gridx=5;
gc.gridy=6;
gb.setConstraints(l2,gc);
p.add(l2);

gc.gridx=6;
gc.gridy=6;
gb.setConstraints(t2,gc);
p.add(t2);

gc.gridx=6;
gc.gridy=7;
gb.setConstraints(b1,gc);
p.add(b1);
b1.addActionListener(this);
setSize(200,150);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
41
String strId="";
if(e.getSource()==b1)
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection
con=DriverManager.getConnection("jdbc:odbc:mydata","sa","");
PreparedStatement pstat=con.prepareStatement("select * from users where
uid=? and pwd=?");
pstat.setString(1,t1.getText());
pstat.setString(2,t2.getText());
ResultSet res=pstat.executeQuery();
while(res.next())
{
strId=res.getString(1);
}
if(strId.equals("admin"))
{
AdminOptions opt=new AdminOptions();
}
if(strId.equals("user"))
{
UserOptions opt=new UserOptions();
}
}
catch(Exception ee)
{
System.out.println(ee);
}
}
}
public static void main(String args[])
{
Authentication au=new Authentication();
}
}

AdminOption.java:-
42
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class AdminOptions extends JFrame implements ActionListener
{
JButton b1,b2,b3,b4,b5,b6;
JPanel p;
GridBagLayout gb;
GridBagConstraints gc;
AdminOptions()
{
super("Admin Options");
p=new JPanel();
gb=new GridBagLayout();
gc=new GridBagConstraints();
Font f=new Font("Arial",Font.BOLD+Font.ITALIC,25);
b1=new JButton("Create Member");
b2=new JButton("Stock Entry");
b3=new JButton("Issue Book");
b4=new JButton("Return Book");
b5=new JButton("View DefaulterList");
b6=new JButton("View Stock");
getContentPane().add(p);
p.setLayout(gb);
gc.anchor=GridBagConstraints.CENTER;
gc.fill=GridBagConstraints.NONE;
gc.gridx=5;
gc.gridy=5;
gb.setConstraints(b1,gc);
p.add(b1);

gc.gridx=5;
gc.gridy=6;
gb.setConstraints(b2,gc);
p.add(b2);

gc.gridx=5;
gc.gridy=7;
gb.setConstraints(b3,gc);
43
p.add(b3);

gc.gridx=5;
gc.gridy=8;
gb.setConstraints(b4,gc);
p.add(b4);

gc.gridx=5;
gc.gridy=9;
gb.setConstraints(b5,gc);
p.add(b5);

gc.gridx=5;
gc.gridy=10;
gb.setConstraints(b6,gc);
p.add(b6);
p.setBackground(Color.black);
b1.setBackground(Color.pink);
b2.setBackground(Color.pink);
b3.setBackground(Color.pink);
b4.setBackground(Color.pink);
b5.setBackground(Color.pink);
b6.setBackground(Color.pink);
b1.setFont(f);
b2.setFont(f);
b3.setFont(f);
b4.setFont(f);
b5.setFont(f);
b6.setFont(f);
b1.setForeground(Color.red);
b2.setForeground(Color.red);
b3.setForeground(Color.red);
b4.setForeground(Color.red);
b5.setForeground(Color.red);
b6.setForeground(Color.red);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
44
b6.addActionListener(this);

setSize(200,200);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b1)
{
Member m=new Member();
}
if(e.getSource()==b2)
{
Stock s=new Stock();
}
if(e.getSource()==b3)
{
IssueBook bk=new IssueBook();
}
if(e.getSource()==b4)
{
ReturnBook bk=new ReturnBook();
}
}
public static void main(String args[])
{
AdminOptions ao=new AdminOptions();
}
}

UserOption:-
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class UserOptions extends JFrame implements ActionListener


{
JButton b1,b5,b6;
JPanel p;
GridBagLayout gb;
45
GridBagConstraints gc;
UserOptions()
{
super("User Options");
p=new JPanel();
gb=new GridBagLayout();
gc=new GridBagConstraints();
Font f=new Font("Arial",Font.BOLD+Font.ITALIC,25);
b1=new JButton("Create Member");
//b2=new JButton("Stock Entry");
//b3=new JButton("Issue Book");
//b4=new JButton("Return Book");
b5=new JButton("View DefaulterList");
b6=new JButton("View Stock");
getContentPane().add(p);
p.setLayout(gb);
gc.anchor=GridBagConstraints.CENTER;
gc.fill=GridBagConstraints.NONE;

gc.gridx=5;
gc.gridy=5;
gb.setConstraints(b1,gc);
p.add(b1);
/*
gc.gridx=5;
gc.gridy=6;
gb.setConstraints(b2,gc);
p.add(b2);

gc.gridx=5;
gc.gridy=7;
gb.setConstraints(b3,gc);
p.add(b3);

gc.gridx=5;
gc.gridy=8;
gb.setConstraints(b4,gc);
p.add(b4);
*/
gc.gridx=5;
46
gc.gridy=9;
gb.setConstraints(b5,gc);
p.add(b5);

gc.gridx=5;
gc.gridy=10;
gb.setConstraints(b6,gc);
p.add(b6);
p.setBackground(Color.black);
b1.setBackground(Color.pink);
//b2.setBackground(Color.pink);
//b3.setBackground(Color.pink);
//b4.setBackground(Color.pink);
b5.setBackground(Color.pink);
b6.setBackground(Color.pink);
b1.setFont(f);
//b2.setFont(f);
//b3.setFont(f);
//b4.setFont(f);
b5.setFont(f);
b6.setFont(f);
b1.setForeground(Color.red);
//b2.setForeground(Color.red);
//b3.setForeground(Color.red);
//b4.setForeground(Color.red);
b5.setForeground(Color.red);
b6.setForeground(Color.red);

b1.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);

setSize(200,200);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b1)
{
Member m=new Member();
47
}
}
public static void main(String args[])
{
UserOptions ao=new UserOptions();
}
}

Member.java:-
import javax.swing.*;
import java.awt.*;
import java.sql.*;
import java.awt.event.*;
public class Member extends JFrame implements ActionListener
{
JLabel lblName,lblAdd,lblMid,lblPass,lblEmail,lblMob;
JTextField txtName,txtMid,txtEmail,txtMob;
JTextArea taAdd;
JPasswordField txtPass;
JButton btnSubmit;
GridBagLayout gb;
GridBagConstraints gc;
JPanel p;
Member()
{
super("Enter Member Details");
gb=new GridBagLayout();
gc=new GridBagConstraints();
lblName=new JLabel("Name");
lblAdd=new JLabel("Address");
lblMid=new JLabel("Member ID");
lblPass=new JLabel("Password");
lblEmail=new JLabel("Email ID");
lblMob=new JLabel("Mobile No.");
txtName=new JTextField(10);
txtMid=new JTextField(10);
txtEmail=new JTextField(10);
txtMob=new JTextField(10);
taAdd=new JTextArea(3,20);
txtPass=new JPasswordField(10);
48
btnSubmit=new JButton("Submit");
p=new JPanel();
getContentPane().add(p);
p.setLayout(gb);
gc.anchor=GridBagConstraints.CENTER;
gc.fill=GridBagConstraints.NONE;
gc.gridx=5;
gc.gridy=5;
gb.setConstraints(lblName,gc);
p.add(lblName);

gc.gridx=6;
gc.gridy=5;
gb.setConstraints(txtName,gc);
p.add(txtName);

gc.gridx=5;
gc.gridy=6;
gb.setConstraints(lblAdd,gc);
p.add(lblAdd);

JScrollPane j=new JScrollPane(taAdd);


gc.gridx=6;
gc.gridy=6;
gb.setConstraints(j,gc);
p.add(j);

gc.gridx=5;
gc.gridy=7;
gb.setConstraints(lblMid,gc);
p.add(lblMid);

gc.gridx=6;
gc.gridy=7;
gb.setConstraints(txtMid,gc);
p.add(txtMid);

gc.gridx=5;
gc.gridy=8;
gb.setConstraints(lblPass,gc);
49
p.add(lblPass);

gc.gridx=6;
gc.gridy=8;
gb.setConstraints(txtPass,gc);
p.add(txtPass);

gc.gridx=5;
gc.gridy=9;
gb.setConstraints(lblEmail,gc);
p.add(lblEmail);

gc.gridx=6;
gc.gridy=9;
gb.setConstraints(txtEmail,gc);
p.add(txtEmail);

gc.gridx=5;
gc.gridy=10;
gb.setConstraints(lblMob,gc);
p.add(lblMob);

gc.gridx=6;
gc.gridy=10;
gb.setConstraints(txtMob,gc);
p.add(txtMob);

gc.gridx=6;
gc.gridy=11;
gb.setConstraints(btnSubmit,gc);
p.add(btnSubmit);
btnSubmit.addActionListener(this);
setSize(300,300);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==btnSubmit)
{
try
50
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection
con=DriverManager.getConnection("jdbc:odbc:mydata","sa","");
PreparedStatement pstat=con.prepareStatement("Insert into Member
values(?,?,?,?,?,?)");
pstat.setString(1,txtName.getText());
pstat.setString(2,taAdd.getText());
pstat.setString(3,txtMid.getText());
pstat.setString(4,txtPass.getText());
pstat.setString(5,txtEmail.getText());
pstat.setString(6,txtMob.getText());
pstat.executeUpdate();
JOptionPane.showMessageDialog(null,"Record saved");
}
catch(Exception ee)
{
System.out.println(ee);
}
}
}
//public static void main(String args[])
//{
//Member m=new Member();
//}
}

Stock.java:-
import javax.swing.*;
import java.awt.*;
import java.sql.*;
import java.awt.event.*;

class Stock extends JFrame implements ActionListener


{
JLabel
lblBookCode,lblNameOfBook,lblCategory,lblPublication,lblNo_OfBook,lblCurren
tStatus;

51
JTextField
txtBookCode,txtNameOfBook,txtCategory,txtPublication,txtNo_OfBook,txtCurren
tStatus;

JButton btnSubmit;
GridBagLayout gb;
GridBagConstraints gc;
JPanel p;
Stock()
{
super("Enter Stock Details");
gb=new GridBagLayout();
gc=new GridBagConstraints();
lblBookCode=new JLabel("BookCode");
lblNameOfBook=new JLabel("Name Of Book");
lblCategory=new JLabel("Category");
lblPublication=new JLabel("Publication");
lblNo_OfBook=new JLabel("No Of Books");
lblCurrentStatus=new JLabel("Current Status");
txtBookCode=new JTextField(10);
txtNameOfBook=new JTextField(10);
txtCategory=new JTextField(10);
txtPublication=new JTextField(10);
txtNo_OfBook=new JTextField(10);
txtCurrentStatus=new JTextField(10);
btnSubmit=new JButton("Submit");
p=new JPanel();
getContentPane().add(p);
p.setLayout(gb);
gc.anchor=GridBagConstraints.CENTER;
gc.fill=GridBagConstraints.NONE;
gc.gridx=5;
gc.gridy=5;
gb.setConstraints(lblBookCode,gc);
p.add(lblBookCode);

gc.gridx=6;
gc.gridy=5;
gb.setConstraints(txtBookCode,gc);
52
p.add(txtBookCode);

gc.gridx=5;
gc.gridy=6;
gb.setConstraints(lblCategory,gc);
p.add(lblCategory);

gc.gridx=6;
gc.gridy=6;
gb.setConstraints(txtCategory,gc);
p.add(txtCategory);

gc.gridx=5;
gc.gridy=7;
gb.setConstraints(lblNo_OfBook,gc);
p.add(lblNo_OfBook);

gc.gridx=6;
gc.gridy=7;
gb.setConstraints(txtNo_OfBook,gc);
p.add(txtNo_OfBook);

gc.gridx=5;
gc.gridy=8;
gb.setConstraints(lblPublication,gc);
p.add(lblPublication);

gc.gridx=6;
gc.gridy=8;
gb.setConstraints(txtPublication,gc);
p.add(txtPublication);

gc.gridx=5;
gc.gridy=9;
gb.setConstraints(lblNameOfBook,gc);
p.add(lblNameOfBook);

gc.gridx=6;
gc.gridy=9;

53
gb.setConstraints(txtNameOfBook,gc);
p.add(txtNameOfBook);

gc.gridx=5;
gc.gridy=10;
gb.setConstraints(lblCurrentStatus,gc);
p.add(lblCurrentStatus);

gc.gridx=6;
gc.gridy=10;
gb.setConstraints(txtCurrentStatus,gc);
p.add(txtCurrentStatus);

gc.gridx=6;
gc.gridy=11;
gb.setConstraints(btnSubmit,gc);
p.add(btnSubmit);

btnSubmit.addActionListener(this);

setSize(300,300);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==btnSubmit)
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection
con=DriverManager.getConnection("jdbc:odbc:mydata","sa","");
PreparedStatement pstat=con.prepareStatement("Insert into Stock
values(?,?,?,?,?,?)");
pstat.setString(1,txtBookCode.getText());
pstat.setString(2,txtCategory.getText());
pstat.setInt(3,Integer.parseInt(txtNo_OfBook.getText()));
pstat.setString(4,txtPublication.getText());
pstat.setString(5,txtNameOfBook.getText());
pstat.setString(6,txtCurrentStatus.getText());
54
pstat.executeUpdate();
JOptionPane.showMessageDialog(null,"Record saved");
}
catch(Exception ee)
{
System.out.println(ee);
}
}
}
public static void main(String args[])
{
Stock s=new Stock();
}
}
IssueBook.java:-
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.sql.*;
class IssueBook extends JFrame implements ActionListener
{
JLabel lblBookcode,lblMid,lblIssueDate,lblScheduleReturnDate;
JTextField txtBookcode,txtMid,txtIssueDate,txtScheduleReturnDate;

JButton btnSubmit,btnFind;
GridBagLayout gb;
GridBagConstraints gc;
JPanel p;
IssueBook()
{
super("Enter IssueBook Details");
gb=new GridBagLayout();
gc=new GridBagConstraints();
lblBookcode=new JLabel("Bookcode");
lblMid=new JLabel("Member ID");
lblIssueDate=new JLabel("IssueDate");
lblScheduleReturnDate=new JLabel("ScheduleReturnDate");
txtBookcode=new JTextField(10);
txtMid=new JTextField(10);
55
txtIssueDate=new JTextField(10);
txtScheduleReturnDate=new JTextField(10);

btnFind=new JButton("Find");
btnSubmit=new JButton("Submit");
p=new JPanel();
getContentPane().add(p);
p.setLayout(gb);
gc.anchor=GridBagConstraints.CENTER;
gc.fill=GridBagConstraints.NONE;
gc.gridx=5;
gc.gridy=5;
gb.setConstraints(lblBookcode,gc);
p.add(lblBookcode);

gc.gridx=6;
gc.gridy=5;
gb.setConstraints(txtBookcode,gc);
p.add(txtBookcode);

gc.gridx=5;
gc.gridy=7;
gb.setConstraints(lblMid,gc);
p.add(lblMid);

gc.gridx=6;
gc.gridy=7;
gb.setConstraints(txtMid,gc);
p.add(txtMid);

gc.gridx=5;
gc.gridy=8;
gb.setConstraints(lblIssueDate,gc);
p.add(lblIssueDate);

gc.gridx=6;
gc.gridy=8;
gb.setConstraints(txtIssueDate,gc);
p.add(txtIssueDate);

56
gc.gridx=7;
gc.gridy=8;
gb.setConstraints(btnFind,gc);
p.add(btnFind);

gc.gridx=5;
gc.gridy=9;
gb.setConstraints(lblScheduleReturnDate,gc);
p.add(lblScheduleReturnDate);

gc.gridx=6;
gc.gridy=9;
gb.setConstraints(txtScheduleReturnDate,gc);
p.add(txtScheduleReturnDate);

gc.gridx=6;
gc.gridy=11;
gb.setConstraints(btnSubmit,gc);
p.add(btnSubmit);

btnSubmit.addActionListener(this);
btnFind.addActionListener(this);
setSize(300,300);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==btnFind)
{
String strDt=txtIssueDate.getText();
java.util.Date dt=new java.util.Date(java.util.Date.parse(strDt));
System.out.println(dt);
GregorianCalendar cal=new GregorianCalendar();
cal.setTime(dt);
//String strDtVal=cal.get(Calendar.MONTH)+"/"+cal.get(Calendar.DATE)
+"/"+cal.get(Calendar.YEAR);
//txtScheduleReturnDate.setText(strDtVal);
57
int d=cal.get(Calendar.DATE);
d=d+7;
dt.setDate(d);
cal.setTime(dt);
String strDtVal=cal.get(Calendar.MONTH)+"/"+cal.get(Calendar.DATE)
+"/"+cal.get(Calendar.YEAR);
int m=cal.get(Calendar.MONTH)+1;
dt.setMonth(m);
cal.setTime(dt);
String strDtVal1=cal.get(Calendar.MONTH)+"/"+cal.get(Calendar.DATE)
+"/"+cal.get(Calendar.YEAR);
txtScheduleReturnDate.setText(strDtVal1);
}
if(e.getSource()==btnSubmit)
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection
con=DriverManager.getConnection("jdbc:odbc:mydata","sa","");
PreparedStatement pstat=con.prepareStatement("Insert into
transactions(BookCode,Mid,IssueDate,SchRetDate) values(?,?,?,?)");
pstat.setString(1,txtBookcode.getText());
pstat.setString(2,txtMid.getText());
pstat.setString(3,txtIssueDate.getText());
pstat.setString(4,txtScheduleReturnDate.getText());
pstat.executeUpdate();
JOptionPane.showMessageDialog(null,"Record saved");
}
catch(Exception ee)
{
System.out.println(ee);
}
}
}
public static void main(String args[])
{
IssueBook Im=new IssueBook();
}
}
58
ReturnBook.java:-

import javax.swing.*;
import java.awt.*;
import java.sql.*;
import java.awt.event.*;
import java.util.*;
class ReturnBook extends JFrame implements ActionListener
{
JLabel
lblBookCode,lblMid,lblScheduledReturnDate,lblActulReturnDate,lblFine;
JTextField
txtBookCode,txtMid,txtScheduledReturnDate,txtActulReturnDate,txtFine;

JButton btnSubmit;
JButton btnCalculate;
GridBagLayout gb;
GridBagConstraints gc;
JPanel p;
ReturnBook()
{
super("Enter ReturnBook Details");
gb=new GridBagLayout();
gc=new GridBagConstraints();
lblBookCode=new JLabel("BookCode");

lblMid=new JLabel("Member ID");


lblScheduledReturnDate=new JLabel("ScheduledReturnDate");
lblFine=new JLabel("Fine");
lblActulReturnDate=new JLabel("ActulReturnDate");
txtFine=new JTextField(10);
txtBookCode=new JTextField(10);
txtMid=new JTextField(10);
txtScheduledReturnDate=new JTextField(10);
txtActulReturnDate=new JTextField(10);
btnSubmit=new JButton("Submit");
btnCalculate=new JButton("Calculate");
59
p=new JPanel();
getContentPane().add(p);
p.setLayout(gb);
gc.anchor=GridBagConstraints.CENTER;
gc.fill=GridBagConstraints.NONE;
gc.gridx=5;
gc.gridy=5;
gb.setConstraints(lblBookCode,gc);
p.add(lblBookCode);

gc.gridx=6;
gc.gridy=5;
gb.setConstraints(txtBookCode,gc);
p.add(txtBookCode);

gc.gridx=5;
gc.gridy=7;
gb.setConstraints(lblMid,gc);
p.add(lblMid);

gc.gridx=6;
gc.gridy=7;
gb.setConstraints(txtMid,gc);
p.add(txtMid);

gc.gridx=5;
gc.gridy=8;
gb.setConstraints(lblScheduledReturnDate,gc);
p.add(lblScheduledReturnDate);

gc.gridx=6;
gc.gridy=8;
gb.setConstraints(txtScheduledReturnDate,gc);
p.add(txtScheduledReturnDate);

gc.gridx=5;
gc.gridy=9;

60
gb.setConstraints(lblActulReturnDate,gc);
p.add(lblActulReturnDate);

gc.gridx=6;
gc.gridy=9;
gb.setConstraints(txtActulReturnDate,gc);
p.add(txtActulReturnDate);

gc.gridx=5;
gc.gridy=10;
gb.setConstraints(lblFine,gc);
p.add(lblFine);

gc.gridx=6;
gc.gridy=10;
gb.setConstraints(txtFine,gc);
p.add(txtFine);

gc.gridx=7;
gc.gridy=10;
gb.setConstraints(btnCalculate,gc);
p.add(btnCalculate);

gc.gridx=6;
gc.gridy=11;
gb.setConstraints(btnSubmit,gc);
p.add(btnSubmit);

btnCalculate.addActionListener(this);
btnSubmit.addActionListener(this);
setSize(300,300);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==btnCalculate)
{
String strDt1=txtScheduledReturnDate.getText();
java.util.Date dt1=new java.util.Date(java.util.Date.parse(strDt1));
61
String strDt2=txtActulReturnDate.getText();
java.util.Date dt2=new java.util.Date(java.util.Date.parse(strDt2));
GregorianCalendar cal1=new GregorianCalendar();
GregorianCalendar cal2=new GregorianCalendar();
cal1.setTime(dt1);
cal2.setTime(dt2);
int dd2=cal2.get(Calendar.DATE);
int dd1=cal1.get(Calendar.DATE);
int diff=dd2-dd1;
if(diff>7)
{
int fine=diff*10;
txtFine.setText(String.valueOf(fine));
}
System.out.println(dd2);
System.out.println(dd1);
System.out.println(dd2-dd1);
}
if(e.getSource()==btnSubmit)
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection
con=DriverManager.getConnection("jdbc:odbc:mydata","sa","");
PreparedStatement pstat=con.prepareStatement("update transactions set
ActRetDate=?,fine=? where bookcode=? and mid=? and ActRetDate is null");
pstat.setString(1,txtActulReturnDate.getText());
pstat.setInt(2,Integer.parseInt(txtFine.getText()));
pstat.setString(3,txtBookCode.getText());
pstat.setString(4,txtMid.getText());
pstat.executeUpdate();
JOptionPane.showMessageDialog(null,"Record saved");
}
catch(Exception ee)
{
System.out.println(ee);
}
}
}
62
public static void main(String args[])
{
ReturnBook m=new ReturnBook();
}
}

STUDENT DETAILS FORM

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

/*
* Student.java
*
* */

package schoolmanagementsystem;
import java.sql.*;
import java.io.*;
/**
*
* @author SCHOOL
*/
public class Student extends javax.swing.JInternalFrame {
Connection cn;
ResultSet res;
Statement st;
/** Creates new form Student */
public Student() {
initComponents();
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn=DriverManager.getConnection("jdbc:odbc:pu","school","system");
st=cn.createStatement();

}
catch(Exception e)
{
e.printStackTrace();

63
}
}

/** This method is called from within the constructor to


* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jLabel1 = new javax.swing.JLabel();


jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
jLabel9 = new javax.swing.JLabel();
jLabel10 = new javax.swing.JLabel();
jLabel11 = new javax.swing.JLabel();
jLabel12 = new javax.swing.JLabel();
jLabel13 = new javax.swing.JLabel();
txtroll = new javax.swing.JTextField();
txtname = new javax.swing.JTextField();
txtaddress = new javax.swing.JTextField();
txtparent = new javax.swing.JTextField();
txtsex = new javax.swing.JTextField();
txtdob = new javax.swing.JTextField();
txtage = new javax.swing.JTextField();
txtdoa = new javax.swing.JTextField();
txtreg = new javax.swing.JTextField();
txtstd = new javax.swing.JTextField();
txtsection = new javax.swing.JTextField();
txtcon = new javax.swing.JTextField();
txtcontact = new javax.swing.JTextField();
cmdnew = new javax.swing.JButton();
cmdsave = new javax.swing.JButton();
64
cmdsearch = new javax.swing.JButton();
cmddelete = new javax.swing.JButton();
cmdupdate = new javax.swing.JButton();
cmdclose = new javax.swing.JButton();

setClosable(true);
setIconifiable(true);
setMaximizable(true);
setResizable(true);
setTitle("Student Details");
setDebugGraphicsOptions(javax.swing.DebugGraphics.NONE_OPTION);
setFocusTraversalPolicy(null);
addInternalFrameListener(new javax.swing.event.InternalFrameListener() {
public void internalFrameActivated(javax.swing.event.InternalFrameEvent
evt) {
formInternalFrameActivated(evt);
}
public void internalFrameClosed(javax.swing.event.InternalFrameEvent
evt) {
}
public void internalFrameClosing(javax.swing.event.InternalFrameEvent
evt) {
}
public void
internalFrameDeactivated(javax.swing.event.InternalFrameEvent evt) {
}
public void
internalFrameDeiconified(javax.swing.event.InternalFrameEvent evt) {
}
public void internalFrameIconified(javax.swing.event.InternalFrameEvent
evt) {
}
public void internalFrameOpened(javax.swing.event.InternalFrameEvent
evt) {
}
});

jLabel1.setText("Roll");

jLabel2.setText("Name");
65
jLabel3.setText("Address");

jLabel4.setText("Parent Name");

jLabel5.setText("Sex");

jLabel6.setText("D.O.B.");

jLabel7.setText("Age");

jLabel8.setText("D.O.A.");

jLabel9.setText("Registration Fee");

jLabel10.setText("S.T.D.");

jLabel11.setText("Section");

jLabel12.setText("Convenience Facility");

jLabel13.setText("Contact No.");

txtroll.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(java.awt.event.FocusEvent evt) {
txtrollFocusLost(evt);
}
});
txtroll.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
txtrollKeyPressed(evt);
}
});

txtage.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtageActionPerformed(evt);
}
});

66
txtdoa.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtdoaActionPerformed(evt);
}
});

txtstd.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtstdActionPerformed(evt);
}
});

txtcontact.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtcontactActionPerformed(evt);
}
});

cmdnew.setText("New");
cmdnew.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmdnewActionPerformed(evt);
}
});

cmdsave.setText("Save");
cmdsave.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmdsaveActionPerformed(evt);
}
});

cmdsearch.setText("Search");
cmdsearch.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmdsearchActionPerformed(evt);
}
});

cmddelete.setText("Delete");
67
cmddelete.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmddeleteActionPerformed(evt);
}
});

cmdupdate.setText("Update");
cmdupdate.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmdupdateActionPerformed(evt);
}
});

cmdclose.setText("Close");
cmdclose.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmdcloseActionPerformed(evt);
}
});

javax.swing.GroupLayout layout = new


javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(64, 64, 64)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.TRAILING)
.addComponent(jLabel13)
.addComponent(jLabel12)
.addComponent(jLabel11)
.addComponent(jLabel10)
.addComponent(jLabel9)
.addComponent(jLabel8)
.addComponent(jLabel7)

68
.addComponent(jLabel6)
.addComponent(jLabel5)
.addComponent(jLabel3)
.addComponent(jLabel2)
.addComponent(jLabel1)
.addComponent(jLabel4))
.addGap(45, 45, 45)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING, false)
.addComponent(txtaddress)
.addComponent(txtparent)
.addComponent(txtsex)
.addComponent(txtdob)
.addComponent(txtage)
.addComponent(txtdoa)
.addComponent(txtreg)
.addComponent(txtstd)
.addComponent(txtsection)
.addComponent(txtcon)
.addComponent(txtcontact)
.addComponent(txtroll,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, 201, Short.MAX_VALUE)
.addComponent(txtname,
javax.swing.GroupLayout.Alignment.TRAILING)))
.addGroup(layout.createSequentialGroup()
.addGap(51, 51, 51)
.addComponent(cmdnew)
.addGap(18, 18, 18)
.addComponent(cmdsave)
.addGap(18, 18, 18)
.addComponent(cmdsearch)
.addGap(18, 18, 18)
.addComponent(cmddelete)
.addGap(18, 18, 18)
.addComponent(cmdupdate)
.addGap(18, 18, 18)
.addComponent(cmdclose)))
.addContainerGap(80, Short.MAX_VALUE))
);
69
layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(58, 58, 58)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.BASELINE)
.addComponent(jLabel1)
.addComponent(txtroll,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRE
LATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.BASELINE)
.addComponent(jLabel2)
.addComponent(txtname,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRE
LATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.BASELINE)
.addComponent(jLabel3)
.addComponent(txtaddress,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(11, 11, 11)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.BASELINE)
.addComponent(jLabel4)
.addComponent(txtparent,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRE
LATED)

70
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.BASELINE)
.addComponent(jLabel5)
.addComponent(txtsex,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRE
LATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.BASELINE)
.addComponent(jLabel6)
.addComponent(txtdob,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRE
LATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.BASELINE)
.addComponent(jLabel7)
.addComponent(txtage,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRE
LATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.BASELINE)
.addComponent(jLabel8)
.addComponent(txtdoa,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRE
LATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.BASELINE)
.addComponent(jLabel9)

71
.addComponent(txtreg,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRE
LATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.BASELINE)
.addComponent(jLabel10)
.addComponent(txtstd,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRE
LATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.BASELINE)
.addComponent(jLabel11)
.addComponent(txtsection,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRE
LATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.BASELINE)
.addComponent(jLabel12)
.addComponent(txtcon,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRE
LATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.BASELINE)
.addComponent(jLabel13)
.addComponent(txtcontact,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
72
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELA
TED, 68, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.BASELINE)
.addComponent(cmdnew)
.addComponent(cmdsave)
.addComponent(cmdsearch)
.addComponent(cmddelete)
.addComponent(cmdupdate)
.addComponent(cmdclose))
.addGap(36, 36, 36))
);

pack();
}// </editor-fold>

private void txtageActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
}

private void txtdoaActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
}

private void txtstdActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
}

private void txtcontactActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
}

private void cmdnewActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
txtroll.setText("");
txtname.setText("");
txtaddress.setText("");
txtparent.setText("");
txtsex.setText("");
txtdob.setText("");
73
txtage.setText("");
txtdoa.setText("");
txtreg.setText("");
txtstd.setText("");
txtsection.setText("");
txtcon.setText("");
txtcontact.setText("");
// txtroll.setFocusable(true);
txtroll.requestFocus();
}

private void cmdsaveActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
try
{
st.execute("insert into student values('"+txtroll.getText()+"','"+txtname.getText()
+"','"+txtaddress.getText()+"','"+txtparent.getText()+"','"+txtsex.getText()
+"','"+txtdob.getText()+"','"+txtage.getText()+"','"+txtdoa.getText()
+"','"+txtreg.getText()+"','"+txtstd.getText()+"','"+txtsection.getText()
+"','"+txtcon.getText()+"','"+txtcontact.getText()+"')");

javax.swing.JOptionPane.showMessageDialog(null,"successfully saved");
}
catch(Exception e)
{
javax.swing.JOptionPane.showMessageDialog(null,e.toString());
}
}

private void cmdsearchActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
try
{
res=st.executeQuery("select
name,address,parentname,sex,dob,age,doa,registrationfee,std,section,convenioncef
acility,contactno from student where roll='"+txtroll.getText()+"'");
if(res.next())
{//txtroll.setText(res.getString(0));
txtname.setText(res.getString(1));
txtaddress.setText(res.getString(2));

74
txtparent.setText(res.getString(3));
txtsex.setText(res.getString(4));
txtdob.setText(res.getString(5));
txtage.setText(res.getString(6));
txtdoa.setText(res.getString(7));
txtreg.setText(res.getString(8));
txtstd.setText(res.getString(9));
txtsection.setText(res.getString(10));
txtcon.setText(res.getString(11));
txtcontact.setText(res.getString(12));
}
else
{javax.swing.JOptionPane.showMessageDialog(null,"Invalid.....");
}
}
catch(Exception e)
{
javax.swing.JOptionPane.showMessageDialog(null,e.toString());
}
}

private void cmddeleteActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
try
{
res=st.executeQuery("select * from student where roll='"+txtroll.getText()
+"'");
if(res.next())
{
st.execute("delete from student where roll='"+txtroll.getText()+"'");
javax.swing.JOptionPane.showMessageDialog(null,"Successfully
Deleted...");

}
else
{
javax.swing.JOptionPane.showMessageDialog(null,"Invalid...");
}
}
catch(Exception e)

75
{
javax.swing.JOptionPane.showMessageDialog(null,e.toString());
}
}

private void cmdupdateActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
try
{
res=st.executeQuery("select * from student where roll='"+txtroll.getText()
+"'");
if(res.next())
{
st.execute("update student set name='"+txtname.getText()
+"',address='"+txtaddress.getText()+"',parentName='"+txtparent.getText()
+"',sex='"+txtsex.getText()+"',dob='"+txtdob.getText()+"',age='"+txtage.getText()
+"',doa='"+txtdoa.getText()+"',registrationfee='"+txtreg.getText()
+"',std='"+txtstd.getText()+"',section='"+txtsection.getText()
+"',convenioncefacility='"+txtcon.getText()+"',contactno='"+txtcontact.getText()
+"'where roll='"+txtroll.getText()+"'");

javax.swing.JOptionPane.showMessageDialog(null,"Successfully
Modified...");

}
else
{
javax.swing.JOptionPane.showMessageDialog(null,"Invalid...");
}
}
catch(Exception e)
{
javax.swing.JOptionPane.showMessageDialog(null,e.toString());
}
}

private void cmdcloseActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
this.dispose();
}

76
private void txtrollKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:

private void txtrollFocusLost(java.awt.event.FocusEvent evt) {


// TODO add your handling code here:

private void formInternalFrameActivated(javax.swing.event.InternalFrameEvent


evt) {
// TODO add your handling code here:
txtroll.requestFocus();
}

// Variables declaration - do not modify


private javax.swing.JButton cmdclose;
private javax.swing.JButton cmddelete;
private javax.swing.JButton cmdnew;
private javax.swing.JButton cmdsave;
private javax.swing.JButton cmdsearch;
private javax.swing.JButton cmdupdate;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JTextField txtaddress;
private javax.swing.JTextField txtage;

77
private javax.swing.JTextField txtcon;
private javax.swing.JTextField txtcontact;
private javax.swing.JTextField txtdoa;
private javax.swing.JTextField txtdob;
private javax.swing.JTextField txtname;
private javax.swing.JTextField txtparent;
private javax.swing.JTextField txtreg;
private javax.swing.JTextField txtroll;
private javax.swing.JTextField txtsection;
private javax.swing.JTextField txtsex;
private javax.swing.JTextField txtstd;
// End of variables declaration

SQL Code For BackEnd:-

select * from sysobjects where type='u'


create table Stock
(
BookCode char(10),
Category varchar(30),
NoOfBooks int,
Publication varchar(30),
BookName varchar(30),
CurrStatus varchar(30)
)
select * from stock

78
create table Transactions
(
BookCode char(10),
Mid char(10),
IssueDate datetime,
SchRetDate datetime,
ActRetDate datetime,
Fine int
)
create table member
(
name varchar(20),
address varchar(30),
mid varchar(20),
password varchar(20),
email_id varchar(20),
mobile_no. int
)
create table issuebook
(
bcode varchar(20),
mid varchar(20),
issuedate date,
sreturndate date
)
create table authentication
(
users varchar(20),
pwd password(20)
)

insert into authentication values('user','user123')

insert into authentication values('admin','admin123')

79
Testing
Testing often accounts for more project effort than any other software engineering
activity. If it is conducted hazardly, time is wasted, unnecessary effort is expended and even
worse, errors sneak through undetected . it would therefore seem reasonable to establish a
systematic strategy for testing software.

Test Provision.
System So Developed has been rigorously tested on test data. Following Provisions have
been made for Testing System

1. Alpha Testing
System has been tested at development site by the GetNeed Softech under
following Head:-
(i) Test of Creation of OLEDB.
(ii) Test Connectivity.
(iii) Test User Interface Window and GUI.
(iv) Test images saved into database corresponds to the correct
books & members.
(v) Test Updating data for stability and correctness.
(vi) Test Illegal Access to Database.
(vii) Testing Different Conditions by Creating Test Data.

80
(viii) Test Time taken for updating, Compressing images.
2. Beta Testing
System has been tested at the Mehta Library by Installing a Beta Version and
using under same condition on actual backup of data. System is tested on the
above pattern for following things:-
(ix) Test of Creation of OLEDB.
(x) Test Connectivity.
(xi) Test User Interface Window and GUI.
(xii) Test images saved into database corresponds to the correct
books & members.
(xiii) Test Updating data for stability and correctness.
(xiv) Test Illegal Access to Database.
(xv) Testing Different Conditions by Creating Test Data.
(xvi) Test Time taken for updating,Compressing images.

Testing strategies

During the project planning the plan for test to conduct should also be prepared. The listing
strategies include two activities:-

Verification
Verification means checking whether the system has been constructed according to the
specification or not while validation means performing activities to bring system closer to
specification.

System testing
During system testing the system is used experimentally to ensure that the software does
not fail i.e it will run according to its specification and the way the users expected. The system
developed in this project was also tested for any faults in it. The system will test with simple test
data. After obtaining the satisfactory results the data from the existing system was transferred to
this system and tested. The system was found to be good in all areas.

Test case designing

For verifying any system the test case are designed which depends on the functionality of the
product:- these are two types of case designing which focuses on different parts of system.
1. White box testing- It is conducted to exercise each statement used in the function ie
the internal operations are tested.
2. Black box testing- It is conducted to verify overall performance functioning and
behavior of the system from outside.

81
Type of testing-

Unit Test- an individual program must compile and test data correctly and bond with other
programs in order to run satisfactorily. module interfaces were tested to ensure that the
information properly flows into and out of the program units. Logical errors were corrected
from each of the modules involved in the system. All the software functions were checked to
be operational. Checked whether all the inputs are properly storing in the database without
any change in the data. Checked if the the reports are are correctly produced.

Integration Test- all constituent program should work properly for the success of a
system as a whole. Programs are invariably related to one another and interact in a total
system .in this testing different units are integrated together to perform testing. There are
two approaches of integration testing:

 Top to bottom approach


 Bottom to top approach

User- Acceptance Test- It in values running the system with live data by the actual user.
This report illustrates the system’s tolerance, performance range, error rate and accuracy. During
the process certain features were misinterpreted by the users that were further corrected by
enhancing the system by adding a few more dialog box so that the users could interact in a better
way.

System test- It is done to find out those imperfections that included forced system failure and
validation of total system. In this, tests are conducted to verify system performance based on
some external factors. For example security test, recovery test, stress test etc.

Validation check
Validations are the necessary checks performed to make the program more reliable, efficient and
strong. When the user pass the values then the values would be checked to fall within the range.
If values are incorrect or any data type error then an appropriate message would flash. A
validation builds a relationship between program and data types. Since validation does not
accept the wrong entries so the program becomes more effective.
In this project the validations are performed through the following fields-

o Primary key
o Foreign key
o Limit value

Though there are numerous validations to be put to make the proposed software more effective
and accurate and have greater control to the end-user over the software. Validations will be
according to that. Some of the validations that must be put are as follows-
 Since the software is of the library automating system, therefore the entries of student’s
data, book’s entry, deposit, issue must be verified.

82
 The variables must be created keeping in mind the need for creating it. For example if
longer storage space is required to store a value with fractions, currency , strings etc then
variables will be on that line.
 As I have discussed that the software is on transaction processing the important thing to
be kept in mind is in inputting the dates.
 The validations must be done in order to know those who are trying to logon and use this
software illegally.

MAINTENANCE

Software maintenance is a set of software engineering activities

that occur after software has been delivered to the customer and put into operation. A primary

goal of software engineering is to improve the ease with which changes can be made. The

software maintenance can be defined by four activities:

 Corrective Maintenance

 Adaptive Maintenance

 Perceptive Maintenance or Enhancement

 Preventive Maintenance or Reengineering

83
The software documentation is very important job regarding maintenance, because it is a big

problem for the user to make any change in working version of software without consent of the

developer.

In out context as we developed and designed the core software for a website having the

maximum possibility of change we have kept the copy of documentation on the site .As well as

are always ready to edit it when any major change is being done at the design and coding part.

Cost estimation
Software cost estimation is the process of predicting the effort required to develop a
software system. Accurate software cost estimate are critical to both developers and
customers. The cost of the project depends upon the time consumed by the software
developer to develop the system. Software cost and effort estimation will never been
exact science. Too many variables, Human, Technical, environment, and political can
affect the ultimate cost of software and effort applied to develop it. However, software
project estimation can be transformed from a black art to a series of systematic steps that
provide estimates with acceptable risk.

To achieve reliable cost and effort estimates, a number of options arise :

(1) Delay estimation until late in the project (obviously, we can achieve 100% accurate
estimates after the project is complete).
(2) Base estimates on similar projects that have already been completed.
(3) Use relatively simple decomposition techniques to generate project cost and effort
estimates.
(4) Use one or more Staffirical models for software cost and effort estimation. Unfortunately
the first option ,however attractive ,not practical. Cost estimates must be provided “up
front”.

84
The second option can work reasonable well, if the current
project is quite similar to past effort and other influences are equivalent. Unfortunately, past
experience has not always been a good indicator of future results.

The remaining options are viable approaches to software project


estimation. Ideally, the techniques noted for each option should be applied in tandem;
each used as a cross-check for the other.

Limitation

 System works in all platforms and its compatible environments.


 Advanced techniques are not used to check the authorization.

Conclusion
This project is designed to meet the requirements of Mehta Library .This software is
outcome of the job that we have designed for automating the Library’s functionalities, it
has been developed by keeping in mind the specifications of the system and the
organization needs. We have tried our level best to fulfill the requirements of the
organization and satisfy them. For designing the system we have used simple data flow
diagrams for explaining the procedure of the automated system. We have used visual
basic as the front- end for making the application more convenient and easy to use.
Oracle is used as the back- end for creating database and storing data in a more precise
way. This report briefly describes the systematic approach adopted to develop the system
by efficiently using the latest facilities.
The existing pattern involves paper intensive work, which becomes cumbersome to
handle. Therefore to improve working ability and reduced time taken to perform
activities, it was decided to computerized system. The main aim behind designing the
system was to-
 Facilitate easy and fast access to the information.
 Generate various types of reports on different criteria.
 Provide authorized areas to the system.
 Provide secure and reliable storage of data.

85
Overall the project teaches us the essential skill like-

 Using system analysis and design techniques like data flow diagram in designing
the system
 Understanding the database handling and query processing.

Scope For Future Application


Limitations of the system:
 System works in all platforms and its compatible environments.
 It can work either on desktop environment or client/server architecture.
 User cannot do any changes without the permission of Admin.
Future Enhancements:
It is not possible to develop a system that makes all the requirements of the user. User
requirements keep changing as the system is being used. Some of the future
enhancements that can be done to this system are:
 Since a new item has been launched time to time, so it can be easily
included in the existing application without affecting the entire module.
 The proposed system database is an RDBMS and any changes could be
86
easily incorporated into the information system in future when
management decides to computerize its other process of new requirement.
 New fields can be added without affecting the system performance.
 The system is built on RDBMS technology, therefore all especial ties of an
RDBMS system and future scope can also be defined from here.
 Any library that has similar requirements can adopt this application after
doing slight modifications

Introduction to the Software Consultancy

GETNEED SOLUTION is a private limited software development


company headed by AMIT KUMAR. The purpose of the
establishment of company is to provide smooth technology
aspects in IT sectors by developing software with emerging
technological factors .GNS is leading the work of data processing
and software development by developing and processing
voluminous data for different Agencies like Railway Recruitment
board, housing board, colleges, insurance sectors, Counteral
stores, cyber cafes etc all involving voluminous data requiring
sharp edge technology and expertise. The organization has a well
established software section exploring the new technology and
Staffloying them for their client to gain the benefit of emerging
technologies. The new trends like OMR, scanning application
forms, animation and printing photographs on certificates, OCR
technology, bio- metric technology etc are Staffloyed to enhance
the data processing tasks, the organization is also working in the
87
field of internet related services. The web site development web
security, e- commerce, accounting is also explored and running
successfully.
The said project entitled ”CLAS” has been developed under this
software consultancy.

Address:
GETNEED SOLUTION
PC COLONY
KANKARBAGH, PATNA-20
PH-+91-9199789525/9852309693

REFERENCES

Bibliography:
1. Super Bible Visual Basic 6.0 from Tec media Publication.

2. Database Programming Through Visual Basic 6, Tec

media Publication.

3. Mastering Visual Basic 6, By Evangelos Petroutsos.

88
4. Software Engineering, By Roger S.Pressman

5. SQL/PL-SQL By Ivon Byross

89

You might also like