Vous êtes sur la page 1sur 55

Blood Donation



Emergency situations, such as accidents, create an immediate and critical need for
specific blood types. In addition, advances in medicine have also increased the need of blood
for various treatments and surgeries. In short, blood is a saver of all existing lives. So in such
emergency cases, it is difficult for hospital staff to collect blood in case of shortage of blood
without having appropriate resources. Our system solves this problem. This project is to build
a web-based, online blood donation management system. This system provides an online
platform for quick access to the required donor. Hence the life at threat can be saved by this
optimization technique.

The Blood Donation management system is to create an e-Information about the

donor who wants to donate blood. Through this application any person who is interested in
donating the blood can register himself. Moreover if any general consumer wants to make
request blood online he can also take the help of this site. Admin is the main authority
who can do addition, deletion, and modification if required.

1.1. Project Description

1.2. Problem Definition


2.1. Functional Requirements 2

2.2. Non Functional Requirements 3

2.3. Hardware Requirements 4

2.4. Software Requirements


3.1. Existing system

3.2. Proposed System

3.3. Modularity

3.4. UML Diagrams 10


4.1.Software Design Levels 15

4.2.Working of Our Website 16

4.3.Scenario of The Proposed Method 17


5.1.Entities 18

5.2.Entities With Attributes 18

5.3.Data Dictionary 19








1.1.Project Description

This project is aimed to develop an online Blood Donation Information. The entire project
has been developed keeping in view of the distributed client server computing technology, in
The project has been planned to be having the view of distributed architecture, with
centralized storage of the database. The application for the storage of the data has been
planned, using the constructs of Oracle and all the user interfaces have been designed using
the java and JSP (Java Server Pages) technologies.

The database connectivity is planned using the Oracle database connectivity. The
standards of security and data protective mechanism have been given a big choice for proper

The application takes care of different modules and their associated reports, which are
produced as per the applicable strategies and standards that are put forwarded by the
administrative staff.

This is an online application which allows you to access the information about Blood
donor, readily scalable and adaptable to meet the complex need of blood recipient and Blood
Banks Who are Key Facilitator for the Healthcare Sector.

1.2.Problem Definition:
Entering the details about the blood groups, members, phone number, addresses etc.
And tracking the database is complicated when the details are maintained manually. This
makes the maintenance of schedule erroneous.






The system must be developed to suit the particular needs of a user-friendly

This means that the system must accommodate a clearly understandable user interface
as well as clear online help documentation at any stage of the user interaction with the
A fast response time in obtaining and providing information to the system may also
prove to be a significant advantage. In addition to these requirements, the system should also
embrace the following requirements:-






2.3.Hardware Requirements:

Pentium(R) Dual-Core CPU 3.00GHZ

RAM 2GB and Above
HDD 20 GB Hard Disk Space and Above

2.4.Software Requirements:
Text editor
Apache Tomcat 9.0.x software
Java SE Development Kit 8
Java Standard Edition Runtime Environment
Oracle Database Express Edition 11g
Web browsers
i. Internet Explorer 8 or newer
ii. Mozilla Firefox
iii. Google chrome


3.1.Existing System:

Manual systems put pressure on people to be correct in all details of their work at all
times, the problem being that people arent perfect, however much each of us wishes we
were. With manual systems the level of service is dependent on individuals and this puts a
requirement on management to run training continuously for staff to keep them motivated
and to ensure they are following the correct procedures. It can be all too easy to accidentally
switch details and end up with inconsistency in data entry or in hand written orders. This has
the effect of not only causing problems with customer service but also making information
unable be used for reporting or finding trends with data discovery. Reporting and checking
that data is robust can be timely and expensive. This is often an area where significant
money can be saved by automation.

It takes more effort and physical space to keep track of paper documents, to find
information and to keep details secure. When mistakes are made or changes or corrections
are needed, often a manual transaction must be completely redone rather than just updated.
With manual or partially automated systems information often has to be written down and
copied or entered more than once. Systemisation can reduce the amount of duplication of
data entry.

Another impact of manual systems is on Customer service. Customer queries can be

difficult to respond to as information is stored in different places and may even require that
you find the right person before being able to respond. This is no good if they are out to
lunch or only work part time.

Inconsistency in data entry, room for errors.

Large ongoing staff training cost.
System is dependent on good individuals.

Reduction in sharing information and customer services.

Time consuming and costly to produce reports.
Lack of security.
Duplication of data entry.

Which raises the question if systemisation has such benefits, why arent all
organisations running fully integrated systems. There is always the obvious balance of cost
vs benefit, as an organisation grows and adds people and functions the benefits of systems
increases. Often when an organisation is growing its the time that they need to put in a new
system, however this is also the time that there is significant pressure on existing resources
and its the hardest time to make a change.

These is another factor to be considered before automating your organisation and this is
that good processes must already be in place. Putting in a system in most cases wont
successfully apply a process where one hasnt existed before. The most effective way to get
benefit from a new system is where a good manual operations exist and your new system
automate these.

Limitations of the Manual system:

It is time consuming
It leads to error prone results
It consumes lot of manpower to better results
It lacks data security
Retrieval of data takes lot of time
Percentage of accuracy is less
Updating records takes lot of time
Accessing records also take time.

3.2.Proposed System:

An efficient blood bank management system should be developed, with the aim of
ensuring that every patient has access to an adequate quantity of safe blood. The management
system should solve the issue of demand and wastage and lead to self-sufficiency in blood
requirement. This should encourage new donors and retain old donors to donate blood.
This system is used to maintain whole information about blood donation management.


Modularization is a technique to divide a software system into multiple discrete and

independent modules, which are expected to be capable of carrying out task(s) independently.
These modules may work as basic constructs for the entire software. Designers tend to design
modules such that they can be executed and/or compiled separately and independently.

Modular design unintentionally follows the rules of divide and conquer problem-
solving strategy this is because there are many other benefits attached with the modular
design of a software.

Advantage of modularization:

Smaller components are easier to maintain

Program can be divided based on functional aspects
Desired level of abstraction can be brought in the program
Components with high cohesion can be re-used again
Concurrent execution can be made possible
Desired from security aspect

In this project there are mainly 3 modules.


Admin: In this module the Administrator has the privileges to add all the Blood Groups,
Blood Type. He can search about all the information about the Donor.

This module focuses on the both donors & acceptors. Each member in a donor is
given a user name and password, which identifies him uniquely. The options given to
administrator in the interface are - Change Password, Maintain donor details, Update donor

Admin can

Maintain donor details

Update donor details
Delete donor details
Change password

Donor: Donor is that person who is interested in donating their blood so they can register
themselves through this website. If any requirement comes then they will be contacted and
they can donate their blood. Along with it they can search for a particular blood group if

Each member in a Donor module is given a user id and password, which

identifies him uniquely. The member is given a login form. He enters the login details user id
and password.

The options given to Donor are:

Change password
Find a Blood donor of a specific blood group.
Edit Profile
Frequently Asked Questions about Blood donation.

Acceptor: In this module any general user who is not registered as a Donor can also make
request for blood if needed. Donor can also make a request for blood if needed. He can visit

all the static pages and can get information about the various issues related with blood
donation. In this you can search for donors.

The options given to Acceptors are:

Register as a blood Donor. (If not yet registered)

Find a Blood donor for a specific blood group.
Frequently Asked Questions about Blood donation.


1. User friendliness is provided in the application with various controls.

2. The system makes the overall project management much easier and flexible.
3. There is no risk of data mismanagement at any level while the project development is
under process.
4. It provides high level of security with different level of authentication.

System Database: Stores all the details about the donor information. There will be an
option for updating the personal information by the users. This is for tracking and managing

3.4.UML Diagrams

Use Case Diagram:

The unified modeling language allows the software engineer to express an analysis model
using the modeling notation that is governed by a set of syntactic semantic and pragmatic

A UML system is represented using five different views that describe the system from
distinctly different perspective. Each view is defined by a set of diagram, which is as

User Model View

This view represents the system from the users perspective.

The analysis representation describes a usage scenario from the end-users

Structural model view

In this model the data and functionality are arrived from inside the system.

This model view models the static structures.

Behavioral model view

It represents the dynamic of behavioral as parts of the system, depicting the

interactions of collection between various structural elements described in the user model
and structural model view.

Implementation Model View


In this the structural and behavioral as parts of the system are represented as
they are to be built.

Environmental Model View

In this the structural and behavioral aspects of the environment in which the
system is to be implemented are represented.

UML is specifically constructed through two different domains they are

UML Analysis modeling, which focuses on the user model and structural model views
of the system.

UML design modeling, which focuses on the behavioral modeling, implementation

modeling and environmental model views.

Use case Diagrams represent the functionality of the system from a users point of
view. Use cases are used during requirements elicitation and analysis to represent the
functionality of the system. Use cases focus on the behavior of the system from external point
of view.
Actors are external entities that interact with the system. Examples of actors include
users like administrator, bank customer etc., or another system like central database.

Use case Model



Use case 1

Use case 2


Use case n

Blood Donation management system

Home Page

3.4.1.Use Cases Of Blood Donation Management System

Login Page

Use case For Admin Module

Donor Home Page

Donor Account Details

Search donor

About us

FAQ page


Use case For Donor Module

Blood Donation management system

Home Page

Login Page

Donor Home Page

Donor Account Detail

Search Donor

Donor About us

FAQ page

Use case For Acceptor Module

Blood Donation Agent Interface

Home Page

Search Donor

Registration page

About us


FAQ page


Software design is a process to transform user requirements into some suitable form,
which helps the programmer in software coding and implementation.

For assessing user requirements, an SRS (Software Requirement Specification)

document is created whereas for coding and implementation, there is a need of more specific
and detailed requirements in software terms. The output of this process can directly be used
into implementation in programming languages.

Software design is the first step in SDLC (Software Design Life Cycle), which moves
the concentration from problem domain to solution domain. It tries to specify how to fulfill
the requirements mentioned in SRS.

4.1.Software Design Levels

Software design yields three levels of results:


Architectural Design - The architectural design is the highest abstract version of the
system. It identifies the software as a system with many components interacting with
each other. At this level, the designers get the idea of proposed solution domain.
High-level Design- The high-level design breaks the single entity-multiple
component concept of architectural design into less-abstracted view of sub-systems
and modules and depicts their interaction with each other. High-level design focuses
on how the system along with all of its components can be implemented in forms of
modules. It recognizes modular structure of each sub-system and their relation and
interaction among each other.
Detailed Design- Detailed design deals with the implementation part of what is seen
as a system and its sub-systems in the previous two designs. It is more detailed
towards modules and their implementations. It defines logical structure of each
module and their interfaces to communicate with other modules.

4.2.Working of Our Website


4.3.Scenario of The Proposed Method



Through this application any person who is interested in donating the blood can
register himself by entering the details.

Acceptor can find a donor by searching in this website and can contact him through
the results displayed in this site, to request blood.

Admin is the main authority who can do addition, deletion, and

modification if required.


5.1. Entities:


5.2. Entities with attributes:



5.3.Data Dictionary


Sno Column name Data type Constraint reference

1 username Varchar2(16) Primary Key
2 pass Varchar2(20) Allow Null


Sno Columnname Datatype Constraint Reference

1 Dname Varchar2(25) Allow Null
2 age number Allow Null
3 dgrp Varchar2(5) Allow Null
4 gender Char(10) Allow Null
5 address Varchar2(100) Allow Null
6 phoneno Char(10) Allow Null
7 email Char(40) Allow Null
8 username Varchar2(16) Primary key Usereg(username)
Foreign key
9 availability Varchar2(12) Allow Null


Apache Tomcat 9 (9.0.0.M9)

Apache Tomcat, often referred to as Tomcat, is an open-source web server developed

by the Apache Software Foundation (ASF). Tomcat implements several Java EE
specifications including Java Servlet, JavaServer Pages (JSP), Java EL, and WebSocket, and
provides a "pure Java" HTTP web server environment in which Java code can run.

Tomcat is developed and maintained by an open community of developers under the

auspices of the Apache Software Foundation, released under the Apache License 2.0 license,
and is open-source software.


Servlets are the Java platform technology of choice for extending and enhancing Web
servers. Servlets provide a component-based, platform-independent method for building
Web-based applications, without the performance limitations of CGI programs. Servlets have
access to the entire family of Java APIs, including the JDBC API to access enterprise
databases. Servlets can also access a library of HTTP-specific calls and receive all the
benefits of the mature Java language, including portability, performance, reusability, and
crash protection.

What are Servlets?

Java Servlets are programs that run on a Web or Application server and act as a middle
layer between a request coming from a Web browser or other HTTP client and databases or
applications on the HTTP server.

Using Servlets, you can collect input from users through web page forms, present records
from a database or another source, and create web pages dynamically.

Java Servlets often serve the same purpose as programs implemented using the Common
Gateway Interface (CGI). But Servlets offer several advantages in comparison with the CGI.

Performance is significantly better.

Servlets execute within the address space of a Web server. It is not necessary to create
a separate process to handle each client request.

Servlets are platform-independent because they are written in Java.

Java security manager on the server enforces a set of restrictions to protect the
resources on a server machine. So servlets are trusted.

The full functionality of the Java class libraries is available to a servlet. It can
communicate with applets, databases, or other software via the sockets and RMI
mechanisms that you have seen already.

Servlet can be described in many ways, depending on the context.

Servlet is a technology i.e. used to create web application.


Servlet is an API that provides many interfaces and classes including documentations.
Servlet is an interface that must be implemented for creating any servlet.
Servlet is a class that extend the capabilities of the servers and respond to the
incoming request. It can respond to any type of requests.
Servlet is a web component that is deployed on the server to create dynamic web

Servlets Architecture:

Following diagram shows the position of Servlets in a Web Application.

Servlets Tasks:

Servlets perform the following major tasks:


Read the explicit data sent by the clients (browsers). This includes an HTML form on
a Web page or it could also come from an applet or a custom HTTP client program.
Read the implicit HTTP request data sent by the clients (browsers). This includes
cookies, media types and compression schemes the browser understands, and so forth.

Process the data and generate the results. This process may require talking to a
database, executing an RMI or CORBA call, invoking a Web service, or computing
the response directly.

Send the explicit data (i.e., the document) to the clients (browsers). This document
can be sent in a variety of formats, including text (HTML or XML), binary (GIF
images), Excel, etc.

Send the implicit HTTP response to the clients (browsers). This includes telling the
browsers or other clients what type of document is being returned (e.g., HTML),
setting cookies and caching parameters, and other such tasks.

Servlets Packages:

Java Servlets are Java classes run by a web server that has an interpreter that supports
the Java Servlet specification.

Servlets can be created using the javax.servlet and javax.servlet.http packages, which
are a standard part of the Java's enterprise edition, an expanded version of the Java class
library that supports large-scale development projects.

These classes implement the Java Servlet and JSP specifications. At the time of
writing this tutorial, the versions are Java Servlet 2.5 and JSP 2.1.

Java servlets have been created and compiled just like any other Java class. After you
install the servlet packages and add them to your computer's classpath, you can compile
servlets with the JDK's Java compiler or any other current compiler.

What is web application?

A web application is an application accessible from the web. A web application is

composed of web components like Servlet, JSP, Filter etc. and other components such as
HTML. The web components typically execute in Web Server and respond to HTTP request.

Advantage of Servlet

There are many advantages of servlet over CGI. The web container creates threads for
handling the multiple requests to the servlet. Threads have a lot of benefits over the Processes
such as they share a common memory area, lightweight, cost of communication between the
threads are low. The basic benefits of servlet are as follows:

1. Better performance: because it creates a thread for each request not process.
2. Portability: because it uses java language.
3. Robust: Servlets are managed by JVM so we don't need to worry about memory leak,
garbage collection etc.
4. Secure: because it uses java language.

Java Server Pages (JSP)

JSP technology enables Web developers and designers to rapidly develop and easily
maintain, information-rich, dynamic Web pages that leverage existing business systems.
As part of the Java technology family, JSP technology enables rapid development of
Web-based applications that are platform independent. JSP technology separates the user
interface from content generation, enabling designers to change the overall page layout
without altering the underlying dynamic content.

What is Java Server Pages?


Java Server Pages (JSP) is a technology for developing web pages that support
dynamic content which helps developers insert java code in HTML pages by making use of
special JSP tags, most of which start with <% and end with %>.

A Java Server Pages component is a type of Java servlet that is designed to fulfill the
role of a user interface for a Java web application. Web developers write JSPs as text files that
combine HTML or XHTML code, XML elements, and embedded JSP actions and commands.

Using JSP, you can collect input from users through web page forms, present records
from a database or another source, and create web pages dynamically.

JSP tags can be used for a variety of purposes, such as retrieving information from a
database or registering user preferences, accessing JavaBeans components, passing control
between pages and sharing information between requests, pages etc.

Why use JSP?

Java Server Pages often serve the same purpose as programs implemented using the
Common Gateway Interface (CGI). But JSP offer several advantages in comparison with the

Performance is significantly better because JSP allows embedding Dynamic Elements

in HTML Pages itself instead of having a separate CGI files.
JSP are always compiled before it's processed by the server unlike CGI/Perl which
requires the server to load an interpreter and the target script each time the page is

Java Server Pages are built on top of the Java Servlets API, so like Servlets, JSP also
has access to all the powerful Enterprise Java APIs, including JDBC, JNDI, EJB,
JAXP etc.

JSP pages can be used in combination with servlets that handle the business logic, the
model supported by Java servlet template engines.

Finally, JSP is an integral part of Java EE, a complete platform for enterprise class
applications. This means that JSP can play a part in the simplest applications to the most
complex and demanding.

Advantages of JSP:

Following is the list of other advantages of using JSP over other technologies:

Active Server Pages (ASP): The advantages of JSP are twofold. First, the dynamic
part is written in Java, not Visual Basic or other MS specific language, so it is more
powerful and easier to use. Second, it is portable to other operating systems and non-
Microsoft Web servers.
Pure Servlets: It is more convenient to write (and to modify!) regular HTML than to
have plenty of println statements that generate the HTML.

Server-Side Includes (SSI): SSI is really only intended for simple inclusions, not for
"real" programs that use form data, make database connections, and the like.

JavaScript: JavaScript can generate HTML dynamically on the client but can hardly
interact with the web server to perform complex tasks like database access and image
processing etc.

Static HTML: Regular HTML, of course, cannot contain dynamic information.

JSP technology is used to create web application just like Servlet technology. It can be
thought of as an extension to servlet because it provides more functionality than servlet such
as expression language, jstl etc.

A JSP page consists of HTML tags and JSP tags. The JSP pages are easier to maintain
than servlet because we can separate designing and development. It provides some additional
features such as Expression Language, Custom Tag etc.

Advantage of JSP over Servlet

There are many advantages of JSP over servlet. They are as follows:

1) Extension to Servlet

JSP technology is the extension to servlet technology. We can use all the features of
servlet in JSP. In addition to, we can use implicit objects, predefined tags, expression
language and Custom tags in JSP that makes JSP development easy.

2) Easy to maintain

JSP can be easily managed because we can easily separate our business logic with
presentation logic. In servlet technology, we mix our business logic with the presentation

3) Fast Development: No need to recompile and redeploy

If JSP page is modified, we don't need to recompile and redeploy the project. The
servlet code needs to be updated and recompiled if we have to change the look and feel of the

4) Less code than Servlet

In JSP, we can use a lot of tags such as action tags, jstl, custom tags etc. that reduces
the code. Moreover, we can use EL, implicit objects etc.


JSP pages use several delimiters for scripting functions. The most basic is <% ... %>,
which encloses a JSP scriptlet. A scriptlet is a fragment of Java code that is run when the user
requests the page. Other common delimiters include <%= ... %> for expressions, where the
scriptlet and delimiters are replaced with the result of evaluating the expression, and
directives, denoted with <%@ ... %>.

Java code is not required to be complete or self-contained within a single scriptlet

block. It can straddle markup content, provided that the page as a whole is syntactically
correct. For example, any Java if/for/while blocks opened in one scriptlet must be correctly
closed in a later scriptlet for the page to successfully compile.

Content which falls inside a split block of Java code (spanning multiple scriptlets) is
subject to that code. Content inside an if block will only appear in the output when the if
condition evaluates to true. Likewise, content inside a loop construct may appear multiple
times in the output, depending upon how many times the loop body runs.


A JavaServer Pages compiler is a program that parses JSPs, and transforms them into
executable Java Servlets. A program of this type is usually embedded into the application
server and run automatically the first time a JSP is accessed, but pages may also be
precompiled for better performance, or compiled as a part of the build process to test for

Some JSP containers support configuring how often the container checks JSP file
timestamps to see whether the page has changed. Typically, this timestamp would be set to a
short interval (perhaps seconds) during software development, and a longer interval (perhaps
minutes, or even never) for a deployed Web application.

JSP Scriptlet tag (Scripting elements)

In JSP, java code can be written inside the JSP page using the scriptlet tag.

JSP Scripting elements

The scripting elements provides the ability to insert java code inside the JSP. There are
three types of scripting elements:

scriptlet tag
expression tag
declaration tag

JSP scriptlet tag

A scriptlet tag is used to execute java source code in JSP. Syntax is as follows:

Syntax of JSP scriptlet tag

<% java source code %>

JSP expression tag

The code placed within JSP expression tag is written to the output stream of the
response. So you need not write out.print() to write data. It is mainly used to print the values
of variable or method.

Syntax of JSP expression tag

<%= statement %>

JSP Declaration Tag

The JSP declaration tag is used to declare fields and methods.The code written inside
the jsp declaration tag is placed outside the service() method of auto generated servlet.

So it doesn't get memory at each request.


Syntax of JSP declaration tag

The syntax of the declaration tag is as follows:

<%! field or method declaration %>

Hyper Text Mark-up Language

HTML is a predominant mark-up language for the creation of web pages. It provides a
means to describe the structure of text-based information in a document by denoting certain
text as headings, paragraphs, lists and to supplement that text with interactive forms,
embedded images, and other objects.

Cascading Style Sheets (CSS) is a style sheet language used for describing the
presentation of a document written in a markup language. Although most often used to set the
visual style of web pages and user interfaces written in HTML.

JavaScript is a high-level, dynamic and interpreted programming language. It has been

standardized in the ECMAScript language specification. Alongside HTML and CSS, it is one
of the three core technologies of World Wide Web content production; the majority of
websites employ it and it is supported by all modern Web browsers without plug-ins.

Oracle Database Oracle Database (commonly referred to as Oracle RDBMS or simply as

Oracle) is an object-relational database management system produced and marketed by
Oracle Corporation.

Oracle Database 11g Express Edition (Oracle Database XE) is an entry-level, small-
footprint database based on the Oracle Database 11g Release 2 code base. It's free to develop,
deploy, and distribute; fast to download; and simple to administer.

Example to connect to the Oracle database


For connecting java application with the oracle database, you need to follow 5 steps to
perform database connectivity. In this example we are using Oracle11g as the database. So we
need to know following information for the oracle database:

Driver class: The driver class for the oracle database is

Connection URL: The connection URL for the oracle10G database is
jdbc:oracle:thin:@localhost:1521:xe where JDBC is the API, oracle is the database,
thin is the driver, localhost is the server name on which oracle is running, we may also
use IP address, 1521 is the port number and XE is the Oracle service name. You may
get all these information from the tnsnames.ora file.
Username: The default username for the oracle database is system.
Password: Password is given by the user at the time of installing the oracle database.

//step1 load the driver class Class.forName("oracle.jdbc.driver.OracleDriver");

//step2 create the connection object

Connection con=DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:xe","syst


JDBC driver name: oracle.jdbc.driver.OracleDriver
URL format: jdbc:oracle:thin:@hostname:port Number:databaseName

A database management, or DBMS, gives the user access to their data and helps them
transform the data into information. Such database management systems include dBase,
paradox, IMS and SQL Server. These systems allow users to create, update and extract
information from their database.

A database is a structured collection of data. Data refers to the characteristics of

people, things and events. Oracle stores each data item in its own fields. In Oracle, the fields
relating to a particular person, thing or event are bundled together to form a single complete

unit of data, called a record (it can also be referred to as raw or an occurrence). Each record
is made up of a number of fields. No two fields in a record can have the same field name.

During an Oracle Server Database design project, the analysis of your business
needs identifies all the fields or attributes of interest. If your business needs change over
time, you define any additional fields or change the definition of existing fields.

Oracle stores records relating to each other in a table. Different tables are created for
the various groups of information. Related tables are grouped together to form a database.

Primary Key
Every table in database has a field or a combination of fields that uniquely identifies
each record in the table. The Unique identifier is called the Primary Key, or simply the Key.
The primary key provides the means to distinguish one record from all other in a table. It
allows the user and the database system to identify, locate and refer to one particular record in
the database.

Relational Database
Sometimes all the information of interest to a business operation can be stored in one
table. Oracle makes it very easy to link the data in multiple tables. Matching an employee to
the department in which they work is one example. This is what makes Oracle a relational
database management system, or RDBMS. It stores data in two or more tables and enables
you to define relationships between the tables and enables you to define relationships
between the tables.

Foreign Key
When a field is one table matches the primary key of another field is referred to as a
foreign key. A foreign key is a field or a group of fields in one table whose values match
those of the primary key of another table.






Software testing is a critical element of software quality assurance and represents the
ultimate review of specification, design and coding. In fact, testing is the one step in the
software engineering process that could be viewed as destructive rather than constructive.

A strategy for software testing integrates software test case design methods into a
well-planned series of steps that result in the successful construction of software. Testing is
the set of activities that can be planned in advance and conducted systematically. The
underlying motivation of program testing is to affirm software quality with methods that can
economically and effectively apply to both strategic to both large and small-scale systems.

Strategic Approach to Software Testing

The software engineering process can be viewed as a spiral. Initially system
engineering defines the role of software and leads to software requirement analysis where the
information domain, functions, behavior, performance, constraints and validation criteria for
software are established. Moving inward along the spiral, we come to design and finally to
coding. To develop computer software we spiral in along streamlines that decrease the level
of abstraction on each turn.



Component Testing

Integration Testing

User Testing TESTING

Manual Testing:

Manual testing is the process of manually testing software for defects. It requires a
tester to play the role of an end user and use most of all features of the application to ensure
correct behavior. To ensure completeness of testing, the tester often follows a written test plan
that leads them through a set of important test cases.


A key step in the process is, testing the software for correct behaviour prior to release
to end users.

For small scale engineering efforts (including prototypes), exploratory testing may be
sufficient. With this informal approach, the tester does not follow any rigorous testing
procedure, but rather explores the user interface of the application using as many of its
features as possible, using information gained in prior tests to intuitively derive additional
tests. The success of exploratory manual testing relies heavily on the domain expertise of the
tester, because a lack of knowledge will lead to incompleteness in testing. One of the key
advantages of an informal approach is to gain an intuitive insight to how it feels to use the

Large scale engineering projects that rely on manual software testing follow a more
rigorous methodology in order to maximize the number of defects that can be found. A
systematic approach focuses on predetermined test cases and generally involves the following

1. Choose a high level test plan where a general methodology is chosen, and resources
such as people, computers, and software licenses are identified and acquired.
2. Write detailed test cases, identifying clear and concise steps to be taken by the tester,
with expected outcomes.
3. Assign the test cases to testers, who manually follow the steps and record the results.

4. Author a test report, detailing the findings of the testers. The report is used by
managers to determine whether the software can be released, and if not, it is used by
engineers to identify and correct the problems.

Testing can be through black-, white- or grey-box testing. In white-box testing the tester
is concerned with the execution of the statements through the source code.

This type of testing ensures that

All independent paths have been exercised at least once
All logical decisions have been exercised on their true and false sides
All loops are executed at their boundaries and within their operational bounds
All internal data structures have been exercised to assure their validity.
To follow the concept of white box testing we have tested each form .we have created
independently to verify that Data flow is correct, All conditions are exercised to check their
validity, All loops are executed on their boundaries.

In black-box testing the software is run to check for the defects and is less concerned
with how the processing of the input is done.

Black-box testers do not have access to the source code. Grey-box testing is
concerned with running the software while having an understanding of the source code and

Static and dynamic testing approach may also be used. Dynamic testing involves
running the software. Static testing includes verifying requirements, syntax of code and any
other activities that do not include actually running the code of the program.

Testing can be further divided into functional and non-functional testing. In functional
testing the tester would check the calculations, any link on the page, or any other field which
on given input, output may be expected. Non-functional testing includes testing performance,
compatibility and fitness of the system under test, its security and usability among other


There are several stages. They are:

Unit Testing
This initial stage in testing normally carried out by the developer who wrote the code
and sometimes by a peer using the white box testing technique.
Integration Testing
This stage is carried out in two modes, as a complete package or as an increment to
the earlier package. Most of the time black box testing technique is used. However,
sometimes a combination of Black and White box testing is also used in this stage.
System Testing
In this stage the software is tested from all possible dimensions for all intended
purposes and platforms. In this stage Black box testing technique is normally used.
User Acceptance Testing
This testing stage carried out in order to get customer sign-off of finished product. A
'pass' in this stage also ensures that the customer has accepted the software and is
ready for their use.
Release or Deployment Testing
Onsite team will go to customer site to install the system in customer configured
environment and will check for the following points:
1. Whether SetUp.exe is running or not.
2. There are easy screens during installation
3. How much space is occupied by system on HDD
4. Is the system completely uninstalled when opted to uninstall from the system.

Each unit has been separately tested manually by the development team itself and all the
input have been validated.


Home page

About Us Page

Donor registration form


Click go back link and select another user name

Login page displays after registering

Welcome Page

Successfully updated your profile

Edit password page


If invalid password is entered

On successfully changing password

Search for a donor


Donor details

If no donor of that blood group exist

It has been a great pleasure for me to work on this exciting and challenging project.
This project proved good for me as it provided practical knowledge of not only programming
in jsp and java servlets web based application and to some extent databases, but also about all
handling procedure related with Online Blood Donation Management. It also provides
knowledge about the latest technology used in developing web enabled application and client
server technology that will be great demand in future. This will provide better opportunities
and guidance in future in developing projects independently.


The project is identified by the merits of the system offered to the user. The merits of this
project are as follows: -

Its a web-enabled project.


This project offers user to enter the data through simple and interactive forms. This is
very helpful for the client to enter the desired information through so much simplicity.
The user is mainly more concerned about the validity of the data, whatever he is entering.
There are checks on every stages of any new creation, data entry or updation so that the
user cannot enter the invalid data, which can create problems at later date.
Sometimes the user finds in the later stages of using project that he needs to update some
of the information that he entered earlier. There are options for him by which he can
update the records. Moreover there is restriction for him that he cannot change the
primary data field. This keeps the validity of the data to longer extent.
User is provided the option of monitoring the records he entered earlier.
From every part of the project the user is provided with the links through framing so that
he can go from one option of the project to other as per the requirement. This is bound to
be simple and very friendly as per the user is concerned. That is, we can say that the
project is user friendly which is one of the primary concerns of any good project.
Data storage and retrieval will become faster and easier to maintain because data is stored
in a systematic manner and in a single database.
Decision making process would be greatly enhanced because of faster processing of
information since data collection from information available on computer takes much less
time than manual system.
Easier and faster data transfer through latest technology associated with the computer and
Through these features it will increase the efficiency, accuracy and transparency,


The size of the database increases day-by-day, increasing the load on the database back
up and data maintenance activity.
Training for simple computer operations is necessary for the users working on the system.