0% found this document useful (0 votes)
6 views38 pages

Final Report of Intenship PAKKA 123

The document outlines a monthly report detailing an internship at Abeyaantrix Edusoft, an Edtech company focused on embedded software solutions. It includes a company profile, an overview of the internship domain covering web development and Java programming, project work, experimental results, and conclusions. The report emphasizes the company's mission to support clients with technology and highlights the tools and programming languages used during the internship.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views38 pages

Final Report of Intenship PAKKA 123

The document outlines a monthly report detailing an internship at Abeyaantrix Edusoft, an Edtech company focused on embedded software solutions. It includes a company profile, an overview of the internship domain covering web development and Java programming, project work, experimental results, and conclusions. The report emphasizes the company's mission to support clients with technology and highlights the tools and programming languages used during the internship.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 38

CONTENTS

Sl.No. Chapters Page No.


1 COMPANY PROFILE 02

2 INTERNSHIP DOMAIN 03-25


2.1 Web development
2.2 Introduction to Java
2.3 HTML
2.4 CSS
2.5 Javascript
2.6 SQL
2.7 JDBC
2.8 JDBC with Mysql
2.9 Java Servlets
3 PROJECT WORK 26-31
3.1 Abstract
3.2 Introduction
3.3 Proposed System
3.4 System Design

4 EXPERIMENTAL RESULTS 32-36


4.1 Output Screens
4.2 Future Enhancement
4.3 Conclusion
4.4 Reference
5 CONCLUSION 37
6 REFERENCE 38

1
MONTHLY REPORT

MONTHS DATE PAGE NO

1st MONTH

2. Internship domain 09/09/2024


2.1 Web development to 4-20
2.2 Introduction to Java 15/10/2024
2.3 HTML
2.4 CSS
2.5 Javascript

2nd MONTH

2.6 SQL
2.7 JDBC 16/10/2024
2.8 JDBC with Mysql to 21-26
2.9 Java Servlets 20/11/2024

3rd MONTH

3.Project work
3.1 Abstract
3.2 Introduction 21/11/2024
3.3 Proposed System to 26-36
3.4 System Design 21/12/2024
3.5 Experimental Results
3.6 Output Screens
3.7 Future Enhancement
3.8 Conclusion
3.9 Reference

2
CHAPTER 1
COMPANY PROFILE

ABEYAANTRIX EDUSOFT
Reshaping Engineers!

An Edtech company registered under MSME, STARTUP INDIA, AICTE, VTU

7 YEARS OF EXCELLENCE!

BRAND VISION
Abeyaantrix Edusoft, founded by a group of highly experienced technocrats with a background in both
hardware and software, boasts over two decades of collective expertise. Our founders have successfully
collaborated with diverse corporations, state governments, and multinational entities. With a clear
vision to provide embedded software solutions, product development, and consultancy services,
Abeyaantrix Edusoft aims to empower corporates, engineers, scientists, and students with the latest
technologies in this intelligent era. Our overarching goal is to contribute towards making Indian
companies global leaders in technology.

BRAND MISSION
To support our clients in reaching their time-to-market goals by serving as their reliable technology
allies and consistently delivering on our promises with punctuality and quality.

BRAND PROMISE
Abeyaantrix Edusoft is dedicated to delivering premium services to its clients, ensuring an optimal
blend of quality, cost-efficiency, swift time-to-market, significant value enhancements, and heightened
productivity. Our technical expertise extends to various domains, including Embedded Systems,
Internet of Things, Electrical Simulation, Machine Learning, Digital Signal Processing, Image and
Video Processing, and Web Design.

BRAND VALUE
In the realm of technological innovation, Abeyaantrix Edusoft stands at the forefront. We pride
ourselves on leveraging cutting-edge advancements to propel our operations and services. Our
commitment to staying abreast of the latest technologies underscores our dedication to providing state-
of-the-art solutions to meet the evolving needs of our clients. With a focus on continuous improvement
and adaptation, we embrace emerging technologies to ensure our offerings remain at the pinnacle of the
industry.
3
CHAPTER-2
INTERNSHIP DOMAIN
2.1 Web Development:
A web developer is a professional who specializes in designing, building, and maintaining websites and
web applications. They use various programming languages, tools, and technologies to create functional, user-
friendly, and visually appealing web solutions.

2.2 Introduction to Java:


• Java is a high-level, object-oriented, platform-independent programming language designed for creating
dynamic, secure, and distributed applications. It is used for developing a variety of software, from
applications to games and web applets.
Key Features:

• Object-Oriented: Encourages modular, reusable code.


• Simple & Dynamic: Easy to learn and flexible in handling changes.
• Multithreading Support: Allows simultaneous task execution.
• Platform Independent: Runs on any system with a Java Virtual Machine (JVM).
• Secure & Robust: Offers security features and strong error handling.
• Internet Programming: Suitable for web-based applications.
History:
Java was created by James Gosling in 1991 at Sun Microsystems. Initially named Oak, it was later renamed
Java. The language was designed to be platform-independent and to support networked applications. It was first
released in 1995.
Primary Goals of Java:
1. Object-oriented programming methodology.
2. Cross-platform compatibility.
3. Built-in network support.
4. Secure execution of remote code.
5. Easy-to-use language with good features from other languages.
Java Platform:
The Java platform includes tools for developing and running Java applications:
• JVM (Java Virtual Machine): Executes Java bytecode on any system.
• JDK (Java Development Kit): Includes the compiler and libraries.
• JRE (Java Runtime Environment): Supports execution of Java programs.

Java Virtual Machine (JVM): It is central to the Java platform, executing Java bytecode programs, which are
platform-independent. This bytecode is the same regardless of the underlying hardware or operating system. The
JVM includes a Just-In-Time (JIT) compiler, which converts bytecode into native processor instructions at
runtime, improving performance by caching the compiled code in memory. As a result, Java applications can run
on any platform with a JVM and, after a brief startup time for compilation, perform nearly as fast as native

4
applications. Each operating system has its own JVM, ensuring cross-platform compatibility.
Class libraries: Java provides a comprehensive set of class libraries as part of its platform, offering reusable
functions for common tasks like string parsing, list management, network, and file access. These libraries serve
three main purposes: they simplify programming by offering standard functionality, provide an abstract interface
for platform-dependent tasks (like networking and file handling), and ensure consistency across different
platforms. If a 11 platform lacks certain features, the Java libraries can either emulate them or provide a way to
check their availability, ensuring Java applications run reliably on any system.

Platform independence: Java's automatic memory management, through garbage collection, eliminates the need
for programmers to manually allocate and deallocate memory, reducing the risk of memory leaks and program
instability. When objects are created, Java manages their lifecycle and automatically deletes objects that are no
longer referenced by any part of the program. This prevents issues like memory leaks, which can occur in
languages like C++ if memory is not properly freed. Although Java's garbage collection simplifies memory
management, it can introduce performance overhead, and developers must consider this when designing
applications, especially in environments with large heaps. The absence of pointer arithmetic in Java also ensures
type safety and security, further enhancing reliability.

Performance: Java's performance has improved substantially since the early versions, and performance of JIT
compilers relative to native compilers has in some tests been shown to be quite similar. The performance of the
compilers does not necessarily indicate the performance of the compiled code; only careful testing can reveal the
true performance issues in any system.

Java Runtime Environment (JRE): It is essential software that enables Java applications to run on a computer
or device. It includes the Java Virtual Machine (JVM), libraries, and other components necessary for executing
Java programs. For developers, the Java Development Kit (JDK) is a more comprehensive package that includes
the JRE along with additional tools like the Java compiler, debugger, and documentation generator. A key
advantage of the JRE is its ability to handle exceptions without crashing the system. Through automated
exception handling tools, Java can capture detailed debugging information when errors occur, helping developers
diagnose and fix issues efficiently, even in production environments.

Tools Used

List of tools used during internship

• Netbeans IDE 8.0.2


• WAMP/XAMPP Server Technologies Used
• Core Java
• HTML, CSS
• Java Server Pages(JSP)
• Java Servlets • JDBC with Mysql

2.3 Core Java:


"Core Java" is a term often used to refer to the fundamentals and core features of the Java programming
language. It includes the basic concepts and libraries that are essential for any Java developer to understand.
Syntax: public class Main{ public static void
main(String[] args){
System.out.println(“Hello
World”); }}
The core concepts and features of Java:

5
Identifiers:

• Java identifiers are names given to variables, methods, classes, and other program elements in Java
programming language.
• Java identifiers must start with a letter, a currency character "$", or an underscore "_". The first character
cannot be a digit.
• Java identifiers can contain letters, digits, underscores, and currency characters. The name can be of any
length.
• Java is case-sensitive, which means that "name" and "Name" are two different identifiers.
• Identifiers should not be a Java keyword, which are reserved words in Java that have a specific meaning
and cannot be used as an identifier.
• Examples of valid identifiers in Java are "myVariable", "_count", "MAX_VALUE", "calculateSum",
"MyClass".

Variables:
• Variables are containers for storing data values.
• In Java, there are different types of variables, for example:
String - stores text, such as "Hello". String values are surrounded by double quotes int -
stores integers (whole numbers), without decimals, such as 123 or -123 float - stores floating
point numbers, with decimals, such as 19.99 or 19.99 char - stores single characters, such as 'a'
or 'B'. Char values are surrounded by single quotes boolean - stores values with two states: true
or false.
• All Java variables must be identified with unique names.
• These unique names are called identifiers.
• Identifiers can be short names (like x and y) or more descriptive names (age, sum, totalVolume).
• The general rules for naming variables are:
Names can contain letters, digits, underscores, and dollar signs
Names must begin with a letter Names should start with a lowercase letter and it cannot contain
whitespaces
Names can also begin with $ and _ .
Names are case sensitive ("myVar" and "myvar" are different variables).
Reserved words (like Java keywords, such as int or boolean) cannot be used as names.

Data Types: • Data types are divided into

two groups:

i. Primitive data types - includes byte, short, int, long, float, double, boolean and
char.
ii. Non-primitive data types - such as String, Arrays and Classes. • Primitive
number types are divided into two groups:
i. Integer types stores whole numbers, positive or negative (such as 123 or -456), without
decimals. Valid types are byte, short, int and long. Which type you should use, depends on the
numeric value.
ii. Floating point types represents numbers with a fractional part, containing one or more decimals.
There are two types: float and double.
• Integer Types:

6
i. The byte data type can store whole numbers from -128 to 127. This can be used instead of int or
other integer types to save memory when you are certain that the value will be within -128 and
127.
ii. The short data type can store whole numbers from -32768 to 32767. The int data type can store
whole numbers from -2147483648 to 2147483647. In general, the int data type is the preferred
data type when we create variables with a numeric value.
iii. The long data type can store whole numbers from - 9223372036854775808 to
9223372036854775807. This is used when int is not large enough to store the value. Note that
you should end the value with an "L".
• Floating Point Types:
The float and double data types can store fractional numbers. Note that you should end the value
with an "f" for floats and "d" for doubles.
• A floating point number can also be a scientific number with an "e" to indicate the power of 10.
• Type casting is when you assign a value of one primitive data type to another type.
• In Java, there are two types of casting:
i. Widening Casting (automatically) - converting a smaller type to a larger type size
byte -> short -> char -> int -> long -> float -> double Example:
int myInt = 9;
double myDouble = myInt;
ii. Narrowing Casting (manually) - converting a larger type to a smaller size type
double -> float -> long -> int -> char -> short -> byte Example:
double myDouble = 9.78d;
int myInt = (int) myDouble;

Operators:

• Operators are used to perform operations on variables and values.


• Java divides the operators into the following groups:

i. Arithmetic
operators ii. Assignment operators iii.
Comparison operators iv.
Logical operators v. Bitwise
operators Conditional Statements:

• Java has the following conditional statements:


i. Use if to specify a block of code to be executed, if a specified condition is true.
Syntax:
if (condition) {
// block of code to be executed if the condition is true
}
ii. Use else to specify a block of code to be executed, if the same condition is false.
Syntax:
if (condition) {
// block of code to be executed if the condition is true
} else {
// block of code to be executed if the condition is false
}
7
iii. Use else if to specify a new condition to test, if the first condition is false.
Syntax:
if (condition1) {
// block of code to be executed if condition1 is true
} else if (condition2) {
// block of code to be executed if the condition1 is false and condition2 is true }
else {
// block of code to be executed if the condition1 is false and condition2 is false
}
iv. Use switch to specify many alternative blocks of code to be executed.
Syntax:
switch(expression) {
case x: // code block
break; case y: //
code block
break; default: //
code block }
• The switch expression is evaluated once.
• The value of the expression is compared with the values of each case.
• If there is a match, the associated block of code is executed.
• The break and default keywords are optional.

Loops:

• Loops can execute a block of code as long as a specified condition is reached.


• Loops are handy because they save time, reduce errors, and they make code more readable.

i. While Loop: The while loop loops through a block of code as long as a specified condition is true.
Syntax:
while (condition) {
// code block to be executed
}
ii. Do/While Loop: The do/while loop is a variant of the while loop. This loop will execute the code block
once, before checking if the condition is true, then it will repeat the loop as long as the condition is true.
Syntax:
do {
// code block to be executed
}
while (condition);
iii. For Loop: When you know exactly how many times you want to loop through a block of code, use the for
loop instead of a while loop.
Syntax:
for (statement 1; statement 2; statement 3) {
// code block to be executed
}
Statement 1 is executed (one time) before the execution of the code block.
Statement 2 defines the condition for executing the code block.
Statement 3 is executed (every time) after the code block has been executed.

Arrays:

8
• Arrays are used to store multiple values in a single variable, instead of declaring separate variables for
each value. • To declare an array, define the variable type with square brackets: Example: String[] cars;
• You can access an array element by referring to the index number.
• This statement accesses the value of the first element in cars: Example: String[] cars = {"Volvo",
"BMW", "Ford", "Mazda"};
// Outputs Volvo

Multidimensional Arrays:

• A multidimensional array is an array of arrays.


• Multidimensional arrays are useful when you want to store data as a tabular form, like a table with rows
and columns.
• To create a two-dimensional array, add each array within its own set of curly braces.
Example:
int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
System.out.println(myNumbers[1][2]);
// Outputs = 7

Methods:

• A method is a block of code which only runs when it is called.


• You can pass data, known as parameters, into a method.
• Methods are used to perform certain actions, and they are also known as functions.
• Why use methods? To reuse code: define the code once, and use it many times.
• A method must be declared within a class. It is defined with the name of the method, followed by
parentheses ( ).
Example:
public class Main {
static void myMethod() {
// code to be executed
}}
myMethod() is the name of the method.
static means that the method belongs to the Main class and not an object of the Main class. You will
learn more about objects and how to access methods through objects.
void means that this method does not have a return value.
• To call a method in Java, write the method's name followed by two parentheses () and a semicolon; •
Information can be passed to methods as parameter. Parameters act as variables inside the method.
• Parameters are specified after the method name, inside the parentheses. You can add as many parameters
as you want, just separate them with a comma.
• The following example has a method that takes a String called fname as parameter. When the method is
called, we pass along a first name, which is used inside the method to print the full name: public class
Main {
static void myMethod(String fname) {
System.out.println(fname + " Refsnes");
}

public static void main(String[] args) {


myMethod("Liam");
myMethod("Jenny");
9
myMethod("Anja");
}}

Return Values:

The void keyword, used in the examples above, indicates that the method should not return a value. If you want
the method to return a value, you can use a primitive data type (such as int, char, etc.) instead of void, and use the
return keyword inside the method:

public class Main {

static int myMethod(int x) {

return 5 + x;

public static void main(String[] args) {

System.out.println(myMethod(3));

Java OOP(Object Oriented Programing):

• OOP stands for Object-Oriented Programming.


• Procedural programming is about writing procedures or methods that perform operations on the data,
while object-oriented programming is about creating objects that contain both data and methods.
• Object-oriented programming has several advantages over procedural programming:
a) OOP is faster and easier to execute. OOP provides a clear structure for the programs.
b) OOP helps to keep the Java code DRY "Don't Repeat Yourself", and makes the code easier to
maintain, modify and debug.
c) OOP makes it possible to create full reusable applications with less code and shorter
development time.

Object:

• Any entity that has state and behavior is known as an object.


• For example, a chair, pen, table, keyboard, bike, etc. It can be physical or logical.
• An Object can be defined as an instance of a class.
• An object contains an address and takes up some space in memory.
• Objects can communicate without knowing the details of each other's data or code.
• The only necessary thing is the type of message accepted and the type of response returned by the
objects.
Example: A dog is an object because it has states like color, name, breed, etc. as well as behaviors like
wagging the tail, barking, eating, etc.

Class:

• Collection of objects is called class. It is a logical entity.


10
• A class can also be defined as a blueprint from which you can create an individual object.
• Class doesn't consume any space.
• Inheritance:
When one object acquires all the properties and behaviors of a parent object, it is known as inheritance.
• It provides code reusability.
• It is used to achieve runtime polymorphism.
• Polymorphism:
If one task is performed in different ways, it is known as polymorphism.
For example: to convince the customer differently, to draw something, for example, shape, triangle,
rectangle, etc.
• In Java, we use method overloading and method overriding to achieve polymorphism.
• Another example can be to speak something; for example, a cat speaks meow, dog barks woof, etc.
• Abstraction:
Hiding internal details and showing functionality is known as abstraction. For
example phone call, we don't know the internal processing.
• In Java, we use abstract class and interface to achieve abstraction.
• Encapsulation Binding (or wrapping) code and data together into a single unit are known as
encapsulation.
For example, a capsule, it is wrapped with different medicines.
• A java class is the example of encapsulation. Java bean is the fully encapsulated class because all the
data members are private here.

Inheritance in Java:

• Inheritance in Java is a mechanism in which one object acquires all the properties and behaviors of a
parent object. It is an important part of OOPs (Object Oriented programming system).
• The idea behind inheritance in Java is that you can create new classes that are built upon existing classes.
When you inherit from an existing class, you can reuse methods and fields of the parent class. Moreover,
you can add new methods and fields in your current class also.
• Inheritance represents the IS-A relationship which is also known as a parent- child relationship.
• Class: A class is a group of objects which have common properties. It is a template or blueprint from
which objects are created.
• Sub Class/Child Class: Subclass is a class which inherits the other class. It is also called a derived
class, extended class, or child class.
• Super Class/Parent Class: Superclass is the class from where a subclass inherits the features. It is also
called a base class or a parent class.
• Reusability: As the name specifies, reusability is a mechanism which facilitates you to reuse the fields
and methods of the existing class when you create a new class. You can use the same fields and methods
already defined in the previous class.
Syntax:

class Subclass-name extends Superclass-name


{
//methods and fields
}

Types of Inheritance:

11
i. Single Inheritance ii.
Multiple Inheritance iii.
Multi-Level Inheritance iv.
Hierarchical Inheritance v.
Hybrid Inheritance

Abstraction in Java

• Abstraction is a process of hiding the implementation details and showing only functionality to the
user.
• Another way, it shows only essential things to the user and hides the internal details, for example,
sending SMS where you type the text and send the message. You don't know the internal processing
about the message delivery. Abstraction lets you focus on what the object does instead of how it does
it.
• Ways to achieve Abstraction
There are two ways to achieve abstraction in java
1. Abstract class (0 to 100%)
2. Interface (100%)

Abstract class in Java

• A class which is declared as abstract is known as an abstract class. It can have abstract and non-abstract
methods. It needs to be extended and its method implemented. It cannot be instantiated.
• An abstract class must be declared with an abstract keyword.
• It can have abstract and non-abstract methods.
• It cannot be instantiated.
• It can have constructors and static methods also.
• It can have final methods which will force the subclass not to change the body of the method.
Example:
abstract class Bike{
abstract void run();
}
class Honda4 extends Bike{
void run(){
System.out.println("running safely..");
}
public static void main(String args[]){
Bike obj = new Honda4();
obj.run();
}
}

Interface in Java:

• An interface in Java is a blueprint of a class. It has static constants and abstract methods.
• The interface in Java is a mechanism to achieve abstraction. There can be only abstract methods in the
Java interface, not method body. It is used to achieve abstraction and multiple inheritance in Java.
• In other words, you can say that interfaces can have abstract methods and variables. It cannot have a
method body.
• Java Interface also represents the IS-A relationship.
12
• It cannot be instantiated just like the abstract class.
• Since Java 8, we can have default and static methods in an interface.
• Since Java 9, we can have private methods in an interface.
• There are mainly three reasons to use interface. They are given below. It is used to achieve abstraction.
By interface, we can support the functionality of multiple inheritance. It can be used to achieve loose
coupling.
• An interface is declared by using the interface keyword. It provides total abstraction; means all the
methods in an interface are declared with the empty body, and all the fields are public, static and final by
default. A class that implements an interface must implement all the methods declared in the interface.
Syntax:
Interface<interface_name> {
// declare constant fields
// declare methods that abstract
// by default.
}

Polymorphism:

• Polymorphism means "many forms", and it occurs when we have many classes that are related to each
other by inheritance.
• Like we specified in the previous chapter; Inheritance lets us inherit attributes and methods from another
class. Polymorphism uses those methods to perform different tasks. This allows us to perform a single
action in different ways.
• For example, think of a superclass called Animal that has a method called animalSound(). Subclasses of
Animals could be Pigs, Cats, Dogs, Birds - And they also have their own implementation of an animal
sound (the pig oinks, and the cat meows, etc.):
Example:
class Animal {
public void animalSound() {
System.out.println("The animal makes a sound");
}}
class Pig extends Animal {
public void animalSound() {
System.out.println("The pig says: wee wee");
}}
class Dog extends Animal {
public void animalSound() {
System.out.println("The dog says: bow wow");
}}
Method Overloading:

• If a class has multiple methods having same name but different in parameters, it is known as Method
Overloading.
• If we have to perform only one operation, having same name of the methods increases the readability of
the program.
• Suppose you have to perform addition of the given numbers but there can be any number of arguments, if
you write the method such as a(int,int) for two parameters, and b(int,int,int) for three parameters then it
may be difficult for you as well as other programmers to understand the behavior of the method because
its name differs.

13
• So, we perform method overloading to figure out the program quickly.

Advantage of method overloading

Method overloading increases the readability of the program.

Different ways to overload the method There are two ways to overload the method in java

1. By changing number of arguments

2. By changing the data type

Example:

class Adder{ static int add(int

a,int b){return a+b;} static int add(int a,int

b,int c){return a+b+c;}

class TestOverloading1{

public static void main(String[] args){

System.out.println(Adder.add(11,11));

System.out.println(Adder.add(11,11,11));

}}

Method Overriding:

• If subclass (child class) has the same method as declared in the parent class, it is known as method
overriding in Java.
• In other words, If a subclass provides the specific implementation of the method that has been declared
by one of its parent class, it is known as method overriding.
• Usage of Java Method Overriding
i. Method overriding is used to provide the specific implementation of a method which is already
provided by its superclass.
ii. Method overriding is used for runtime polymorphism Rules for Java Method Overriding
1. The method must have the same name as in the parent class 2.
The method must have the same parameter as in the parent class.
3. There must be an IS-A relationship (inheritance).
Example:
class Vehicle{
void run(){
System.out.println("Vehicle is running");
}}
class Bike extends Vehicle{
public static void main(String
args[]){ Bike obj = new Bike();
obj.run();
}}

14
Encapsulation:

• Encapsulation in Java is a process of wrapping code and data together into a single unit, for example, a
capsule which is mixed of several medicines.
• We can create a fully encapsulated class in Java by making all the data members of the class private.
Now we can use setter and getter methods to set and get the data in it.
• The Java Bean class is the example of a fully encapsulated class. Advantage of Encapsulation in Java
• By providing only a setter or getter method, you can make the class read-only or write-only. In other
words, you can skip the getter or setter methods.
• It provides you the control over the data. Suppose you want to set the value of id which should be greater
than 100 only, you can write the logic inside the setter method. You can write the logic not to store the
negative numbers in the setter methods.
• It is a way to achieve data hiding in Java because other class will not be able to access the data through
the private data members.
• The encapsulate class is easy to test. So, it is better for unit testing.
• The standard IDE's are providing the facility to generate the getters and setters.
• So, it is easy and fast to create an encapsulated class in Java.

Java Package:

• A java package is a group of similar types of classes, interfaces and sub- packages.
• Package in java can be categorized in two form, built-in package and user- defined package.
• There are many built-in packages such as java, lang, awt, javax, swing, net, io, util, sql etc.
• Here, we will have the detailed learning of creating and using user-defined packages.
• Advantage of Java Package:
1) Java package is used to categorize the classes and interfaces so that they can be easily maintained.
2) Java package provides access protection. 3) Java package removes naming collision.
• There are three ways to access the package from outside the package.
1) import package.*;

2) import package.classname;

3) fully qualified name.

Access Modifiers in Java:

• There are two types of modifiers in Java: access modifiers and non-access modifiers.
• The access modifiers in Java specifies the accessibility or scope of a field, method, constructor, or class.
We can change the access level of fields, constructors, methods, and class by applying the access
modifier on it. There are four types of Java access modifiers:
1) Private: The access level of a private modifier is only within the class. It cannot be accessed from outside
the class.
2) Default: The access level of a default modifier is only within the package. It cannot be accessed from
outside the package. If you do not specify any access level, it will be the default.
3) Protected: The access level of a protected modifier is within the package and outside the package through
child class. If you do not make the child class, it cannot be accessed from outside the package. 4. Public:

15
The access level of a public modifier is everywhere. It can be accessed from within the class, outside the
class, within the package and outside the package.
• There are many non-access modifiers, such as static, abstract, synchronized, native, volatile, transient,
etc .

Exception Handling in Java:

• The Exception Handling in Java is one of the powerful mechanism to handle the runtime errors so that
the normal flow of the application can be maintained. What is Exception in Java?
• In Java, an exception is an event that disrupts the normal flow of the program. It is an object which is
thrown at runtime.
• What is Exception Handling?
Exception Handling is a mechanism to handle runtime errors such as ClassNotFoundException,
IOException, SQLException, RemoteException, etc. The core advantage of exception handling is to
maintain the normal flow of the application. An exception normally disrupts the normal flow of the
application; that is why we need to handle exceptions.
• Types of Java Exceptions
There are mainly two types of exceptions: checked and unchecked. An error is considered as the
unchecked exception. However, according to Oracle, there are three types of exceptions namely: 1.
Checked Exception
2. Unchecked Exception
3. Error
• The classes that directly inherit the Throwable class except RuntimeException and Error are known as
checked exceptions. For example, IOException, SQLException, etc. Checked exceptions are checked at
compile-time.
• The classes that inherit the RuntimeException are known as unchecked exceptions. example,
ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException, etc. Unchecked
exceptions are not checked at compile-time, but they are checked at runtime.
• Error is irrecoverable. Some example of errors are OutOfMemoryError, VirtualMachineError,
AssertionError etc.
• Java provides five keywords that are used to handle the exception.
i. The "try" keyword is used to specify a block where we should place an exception code. It means
we can't use try block alone. The try block must be followed by either catch or finally.
ii. The “catch” block is used to handle the exception. It must be preceded by try block which means
we can‟t use catch block alone. iii. The "finally" block is used to execute the necessary code of
the program. It is executed whether an exception is handled or not.
iv. The “throw” keyword is used to throw an exception.
v. The "throws" keyword is used to declare exceptions. It specifies that there may occur an
exception in the method. It doesn't throw an exception. It is always used with method signature.

Example:

public class JavaExceptionExample{

public static void main(String args[]){

try{

16
int data=100/0;

}catch(ArithmeticException e){

System.out.println(e);

System.out.println("rest of the code...");

}}

Multithreading in Java:

• Multithreading in Java is a process of executing multiple threads simultaneously.


• A thread is a lightweight sub-process, the smallest unit of processing.
• Multiprocessing and multithreading, both are used to achieve multitasking.
• However, we use multithreading than multiprocessing because threads use a shared memory area. They
don't allocate separate memory area so saves memory, and context-switching between the threads takes
less time than process. Java Multithreading is mostly used in games, animation, etc.
• Advantages of Java Multithreading
1) It doesn't block the user because threads are independent and you can perform multiple operations at
the same time.
2) You can perform many operations together, so it saves time.
3) Threads are independent, so it doesn't affect other threads if an exception occurs in a single thread.

2.3 HTML:
• HTML is an acronym which stands for Hyper Text Markup Language which is used for creating web
pages and web applications. Let's see what is meant by Hypertext Markup Language, and Web page.
• Hyper Text: HyperText simply means "Text within Text." A text has a link within it, is a hypertext.
Whenever you click on a link which brings you to a new webpage, you have clicked on a hypertext.
HyperText is a way to link two or more web pages (HTML documents) with each other.
• Markup language: A markup language is a computer language that is used to apply layout and formatting
conventions to a text document. Markup language makes text more interactive and dynamic. It can turn
text into images, tables, links, etc.
• Web Page: A web page is a document which is commonly written in HTML and translated by a web
browser. A web page can be identified by entering an URL. A Web page can be of the static or dynamic
type. With the help of HTML only, we can create static web pages.
• Hence, HTML is a markup language which is used for creating attractive web pages with the help of
styling, and which looks in a nice format on a web browser. An HTML document is made of many
HTML tags and each HTML tag contains different content.
• Elements and Tags : HTML uses a variety of elements (e.g., „<p>‟,‟<h1>‟,‟<a>‟) and tags (e.g.,
`<tagname>`) to define different types of content, such as headings, paragraphs, links, images, and lists.
• Document Structure : An HTML document is structured as a tree, with the `<html>` element at the
root. It includes the `<head>` section for metadata (title, links to stylesheets or scripts) and the `<body>`
section for the visible content of the web page.

17
• Attributes : HTML elements often have attributes (e.g., `href`, `src`, `class`) that provide additional
information about the element or modify its behavior.
• Hyperlinks : HTML allows you to create hyperlinks using the `<a>` element, enabling users to navigate
between web pages.
• Forms : HTML provides form elements (e.g., `<form>`, `<input>`, `<button>`) for collecting user input
and sending data to a server.
• Basic Structure: <!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Internship Report</title>

<link rel="stylesheet" href="styles.css"> <!-- Optional CSS -->

</head>

<body>

<!-- Content Goes Here -->

</body>

</html>

• List of HTML tags with their decriptions and use cases:

1. Structural Tags:

Figure.2: Structural Tags

18
2. Text and Formatting Tags:

Figure.3: Text and Formatting Tags

3. Form and Input Tags:

Figure.4: Form and Input Tags

4.Table Tags:

Figure.5: Table Tags

2.4 CSS:
CSS is a stylesheet language used for describing the presentation and layout of web pages. It separates
the content (HTML) from the visual design.
19
1. Selectors and Properties : CSS uses selectors to target HTML elements and apply styling rules.
Properties (e.g., `color`, `font-size`, `margin`) specify how an element should be styled.
2. External and Internal Styles : CSS can be applied externally via linked stylesheets or internally
within an HTML document using the `<style>‟ element.
3. Cascading Style Sheets : CSS rules can cascade, which means that styles defined in different places
(e.g., external stylesheet, internal style block, inline styles) can interact to determine the final
appearance of an element.
4. Layout and Positioning : CSS is crucial for controlling the layout and positioning of elements on a
web page. It includes techniques for creating responsive designs and adapting to different screen sizes.
5. Box Model : Elements in CSS are treated as boxes with content, padding, borders, and margins.
Understanding the box model is essential for layout design.
6. Flexbox and Grid Layout : CSS offers advanced layout tools like Flexbox and CSS Grid, which
simplify the design of complex layouts.
7. Media Queries : Media queries in CSS allow you to apply different styles based on the characteristics
of the user's device, such as screen width and orientation.
8. Transitions and Animations : CSS can be used to create smooth transitions and animations, enhancing
the user experience.
9. accelerate web development by providing pre-designed components and styles.
10. Responsive Web Design : CSS plays a critical role in responsive web design, ensuring that web pages
adapt to various devices and screen sizes.

2.5 Javascript:

• JavaScript (js) is a light-weight object-oriented programming language which is used by several websites
for scripting the webpages.
• It is an interpreted, full-fledged programming language that enables dynamic interactivity on websites
when applied to an HTML document.
• It was introduced in the year 1995 for adding programs to the webpages in the Netscape Navigator
browser. Since then, it has been adopted by all other graphical web browsers. With JavaScript, users can
build modern web applications to interact directly without reloading the page every time. The traditional
website uses js to provide several forms of interactivity and simplicity.
• Although, JavaScript has no connectivity with Java programming language. The name was suggested and
provided in the times when Java was gaining popularity in the market. In addition to web browsers,
databases such as CouchDB and MongoDB uses JavaScript as their scripting and query language.
• Application of JavaScript:

JavaScript is used to create interactive websites. It is mainly used for:

i. Client-side validation, ii.


Dynamic drop-down menus,
iii. Displaying date and time,
iv. Displaying pop-up windows and dialog boxes (like an alert dialog box, confirm dialog box and
prompt dialog box),
v. Displaying clocks etc.
• Key aspects of javascript:
1. Client-Side Scripting: JavaScript is primarily a client-side scripting language, meaning it runs directly
in the web browser of the user. This allows developers to control how web pages behave and respond to
user actions without the need for frequent server requests.

20
2. Dynamic Content: One of the core strengths of JavaScript is its ability to modify the content of a
webpage on the fly. It can be used to manipulate HTML elements, change styles, and update the page
without requiring a full reload.
3. Data Types: JavaScript has several basic data types, including numbers, strings, booleans, arrays,
objects, and functions. Variables are used to store and manipulate these data types during the execution
of a script.
4. Event Handling: JavaScript enables developers to define how the webpage should react to various
events, such as clicks, keypresses, mouse movements, and more. Event handlers can be attached to
specific HTML elements, allowing interaction with the user.
5. DOM Manipulation: The Document Object Model (DOM) represents the structure of an HTML page in
a tree-like format. JavaScript provides methods to access, modify, and create elements within the DOM,
allowing for dynamic updates and interactions.
6. Conditional Statements and Loops: Like most programming languages, JavaScript supports
conditional statements (if, else, switch) and loops (for, while) 16 that allow you to control the flow of the
program and repeat certain actions based on specific conditions.
7. Functions: Functions in JavaScript are blocks of reusable code that can be called to perform a specific
task. They help in organizing code and making it more modular, reducing redundancy. 8. Asynchronous
Programming: JavaScript supports asynchronous programming using mechanisms like callbacks,
promises, and async/await. This enables handling time-consuming tasks such as network requests
without blocking the user interface.
8. Libraries and Frameworks: The JavaScript ecosystem offers numerous libraries and frameworks, such
as React, Angular, and Vue.js, which simplify complex tasks and provide pre-built components for
creating robust web applications.
9. Server-Side Development: While JavaScript initially gained popularity as a client side language, it has
also expanded into server-side development with platforms like Node.js. This allows developers to use
JavaScript for both front-end and back-end development, creating a more unified development
environment.

2.6 SQL:
• SQL is a standard database language used to access and manipulate data in databases. SQL stands for
Structured Query Language. SQL was developed by IBM Computer Scientists in the 1970s. By
executing queries SQL can create, update, delete, and retrieve data in databases like MySQL, Oracle,
PostgreSQL, etc. Overall SQL is a query language that communicates with databases.

Relational database concepts:

• A relational database management system (RDBMS) stores and retrieves data that is represented in
tables. A relational database consists of a collection of tables that store interrelated data.
• This section introduces some of the terms and concepts that are important in talking about relational
databases. Database tables

• In a relational database, all data is held in tables, which are made up of rows and columns.
• Each table has one or more columns, and each column is assigned a specific datatype, such as an integer
number, a sequence of characters (for text), or a date. Each row in the table has a value for each column.
• Table no.1: A typical fragment of a table containing employee information may look as follows:
emp_ID emp_lname Emp_fname Emp_phone

21
10057 Man Iron 1096
10693 America Captain 7821
• The tables of a relational database have some important characteristics:
i. There is no significance to the order of the columns or rows. ii.
Each row contains one and only one value for each column.
iii. Each value for a given column has the same type.

• Table no.2: The following table lists some of the formal and informal relational database terms
describing tables and their contents, together with their equivalent in other nonrelational databases. This
manual uses the informal terms.
Formal relational Informal Equivalent
term relational term nonrelational term
Relation Table File
Attribute Column Field
Tuple Row Record
• When you are designing your database, make sure that each table in the database holds information about
a specific thing, such as employees, products, or customers.
• By designing a database this way, you can set up a structure that eliminates redundancy and
inconsistencies. For example, both the sales and accounts payable departments may look up information
about customers. In a relational database, the information about customers is entered only once, in a table
that both departments can access.
• A relational database is a set of related tables. You use primary and foreign keys to describe relationships
between the information in different tables.
Primary and foreign keys:

• Primary and foreign keys define the relational structure of a database. These keys enable each row in the
database tables to be identified, and define the relationships between the tables. • Tables have a primary
key
• All tables in a relational database should have a primary key. The primary key is a column, or set of
columns, that allows each row in the table to be uniquely identified. No two rows in a table with a
primary key can have the same primary key value.
• If no primary key is assigned, all the columns together become the primary key. It is good practice to
keep your primary key for each table as compact as possible.
Examples:
In a table holding information about employees, the primary key may be an ID number
assigned to each employee.
• In the sample database, the table of sales order items has the following columns:
i. An order number, identifying the order the item is part of
ii. A line number, identifying each item on any order iii.
product ID, identifying the product being ordered iv. A
quantity, showing how many items were ordered v. A ship
date, showing when the order was shipped
• To find the name of a particular employee's department, there is no need to put the name of the
employee's department into the employee table. Instead, the employee table contains a column holding
the department ID of the employee's department. This is called a foreign key to the department table.
22
• A foreign key references a particular row in the table containing the corresponding primary key. In this
example, the employee table (which contains the foreign key in the relationship) is called the foreign
table or referencing table.
• The department table (which contains the referenced primary key) is called the primary table or the
referenced table.

Queries:

• Retrieve data from a database using the SELECT statement. The basic query operations in a relational
system are projection, restriction, and join.
• The SELECT statement implements all of these operations.
• A projection is a subset of the columns in a table. A restriction (also called selection) is a subset of the
rows in a table, based on some conditions. For example, the following SELECT statement retrieves the
names and prices of all products that cost more than $15: SELECT name, unit_price FROM product
WHERE unit_price > 15
• This query uses both a restriction (WHERE unit_price > 15) and a projection (SELECT name,
unit_price)
• A JOIN links the rows in two or more tables by comparing the values in key columns and returning rows
that have matching values.
• For example, you may want to select the item identification numbers and product names for all items for
which more than a dozen has been shipped: SELECT sales_order_items.id, product.name FROM product
KEY JOIN
sales_order_items WHERE
sales_order_items.quantity > 12
• The product table and the sales_order_items table are joined together based on the foreign key
relationships between them.

What is a Database?

• Data is the new fuel of this world but only data is unorganized information, so to organize that data we
make a database. A database is the organized collection of structured data which is usually controlled by
a database management system (DBMS). Databases help us with easily storing, accessing, and
manipulating data held on a computer.

Why to learn SQL?

• SQL helps you to easily get information from data at high efficiency. To manipulate the data in databases
like Create, Read, Edit, and delete we use SQL queries. Users can interact with data stored in relational
database management systems. Anyone who knows the English language can easily write SQL queries.
Some of the key features of SQL are given below:
• Without a lot of coding knowledge we can manage a database with SQL.
• SQL works with database systems from Oracle, IBM, Microsoft, etc.
• Simple and easy to learn.
• SQL is ANSI and ISO standard language for database manipulations.
• SQL retrieves large amounts of data very fast.

Applications of SQL:

• In data-driven industries where managing databases is very important in regular, Here are some
important SQL applications.
23
• To support client/server architecture, software engineers use SQL to establish the connection between
back-end and front-end.
• SQL can also be used in the 3-tier architecture of a client, an application server, and a database.
• SQL is used as a Data Definition Language(DDL) in which we can independently create a database,
define the structure, use it, and discard it when its work is done.
• SQL is used as a Data Manipulation Language(DML) in which we can enter data, modify data, extracting
data.
• SQL is used as a Data Control Language(DCL) it specifies how we can protect our database against
corruption and misuse.

2.7 JDBC:
• JDBC stands for Java Database Connectivity. JDBC is a Java API to connect and execute the query with
the database. It is a part of JavaSE (Java Standard Edition). JDBC API uses JDBC drivers to connect
with the database.
• There are four types of JDBC drivers:
i. JDBC-ODBC Bridge Driver,
ii. Native Driver,
iii. Network Protocol Driver, and iv. Thin Driver
• We have discussed the above four drivers in the next chapter. • We can use JDBC API to access tabular
data stored in any relational database. By the help of JDBC API, we can save, update, delete and fetch
data from the database. It is like Open Database Connectivity (ODBC) provided by Microsoft.

Figure.6: Java Database Connectivity.


• The current version of JDBC is 4.3. It is the stable release since 21st September, 2017. It is based on the
X/Open SQL Call Level Interface. The java.sql package contains classes and interfaces for JDBC API. A
list of popular interfaces of JDBC API are given below:
 Driver interface
 Connection interface
 Statement interface
 PreparedStatement interface
 CallableStatement interface
 ResultSet interface
 ResultSetMetaData interface
 DatabaseMetaData interface

24
 RowSet interface
• A list of popular classes of JDBC API are given below:
 DriverManager class
 Blob class
 Clob class
 Types class

Why Should We Use JDBC

• Before JDBC, ODBC API was the database API to connect and execute the query with the database. But,
ODBC API uses ODBC driver which is written in C language (i.e. platform dependent and unsecured).
That is why Java has defined its own API (JDBC API) that uses JDBC drivers (written in Java language).
• We can use JDBC API to handle database using Java program and can perform the following activities:
• Connect to the database
• Execute queries and update statements to the database
• Retrieve the result received from the database.

2.8 JDBC with MySQL:


JDBC (Java Database Connectivity) is a Java-based API (Application Programming Interface) that allows Java
applications to interact with relational databases, including MySQL. Using JDBC, you can perform various
database operations such as connecting to a database, executing SQL queries, and retrieving or modifying data.
Here's a step-by-step guide on how to use JDBC with MySQL:

Step 1: Set Up Your Development Environment :

• Ensure you have Java installed on your system.


• Download and install MySQL or use an existing MySQL database server.

Step 2: Download MySQL Connector/J :

• Download the MySQL Connector/J JDBC driver from the official MySQL website
(https://dev.mysql.com/downloads/connector/j/).
• Add the JAR file to your Java project's classpath.

Step 3: Import Required Packages .

Step 4: Establish a Database Connection

Step 5: Create and Execute SQL Queries

Step 6: Perform Updates

Step 7: Handle Exceptions and Close Resources

Step 8: Error Handling and Exception Management

• Implement robust error handling and exception management in your application to handle database-
related errors.

That's a basic overview of how to use JDBC with MySQL. You can build upon these concepts to create more
complex database interactions in your Java applications. Remember to handle exceptions, close resources
properly, and ensure secure and efficient database operations in your applications.
25
2.9 Java Servlets:
• Servlet technology is used to create a web application (resides at server side and generates a dynamic
web page).
• Servlet technology is robust and scalable because of java language. Before Servlet, CGI (Common
Gateway Interface) scripting language was common as a server-side programming language. However,
there were many disadvantages to this technology. We have discussed these disadvantages below.
• There are many interfaces and classes in the Servlet API such as Servlet, GenericServlet, HttpServlet,
ServletRequest, ServletResponse, etc.
• Servlet can be described in many ways, depending on the context.
• Servlet is a technology which is used to create a web application.
• Servlet is an API that provides many interfaces and classes including documentation.
• Servlet is an interface that must be implemented for creating any Servlet.
• Servlet is a class that extends the capabilities of the servers and responds to the incoming requests. It can
respond to any requests.
• Servlet is a web component that is deployed on the server to create a dynamic web page.

Figure.7: Servlet technology

26
CHAPTER 3
PROJECT WORK

3.1 ABSTRACT

The Blood Bank Management System (BBMS) is an essential website designed to streamline the
management and coordination of blood donations, storage, and distribution within a blood bank. The
system aims to enhance efficiency, accuracy, and transparency in managing blood inventory, donor
details, patient requirements, and blood transfusion activities. It offers a centralized platform for storing
data on blood donors, recipients, blood types, and donation schedules.

The system includes modules for managing donor registration, blood collection, inventory tracking, and
request handling. It facilitates quick search and retrieval of donor information and helps maintain real-
time data on blood stock levels, ensuring that sufficient supplies are available for emergency and routine
medical procedures. By integrating patient needs with available stock, the system helps in minimizing
wastage, reducing manual errors, and ensuring timely blood transfusions.

In addition to enhancing operational workflow, the Blood Bank Management System also includes
reporting features for administrators to generate statistics and trends, aiding in decision-making and
strategic planning for blood donation campaigns. The system aims to improve the overall management
of blood banks, making it easier to coordinate with hospitals, donors, and recipients, ultimately saving
lives through better resource management.

The BBMS is an invaluable tool for modernizing blood bank operations, ensuring a seamless process
for blood collection, storage, and distribution, and ultimately contributing to better patient care and
healthcare outcomes.

3.2 INTRODUCTION:

The Blood Bank Management System (BBMS) is a web-based application developed to


address the challenges of managing blood bank operations efficiently. In today‟s healthcare
environment, the availability of blood during emergencies is critical. However, many blood banks
rely on manual processes or outdated systems, leading to inefficiencies such as data entry errors,
delayed responses to blood requests, and difficulty in maintaining accurate records of donors and
inventory. This project leverages PHP and MySQL to provide an integrated platform for blood bank
management. The system is designed to streamline the process of blood donation, storage, and
27
distribution, ensuring that blood is readily available when needed. It includes features for donor
registration, blood inventory management, and processing blood requests. A user-friendly interface
allows donors, recipients, and administrators to interact with the system seamlessly.

Problem statement : Blood banks face several operational challenges that hinder their ability
to efficiently manage blood donations, inventory, and distribution. These challenges include
inefficient donor management, lack of real-time communication with hospitals, difficulties in
inventory tracking, and problems with blood compatibility testing. Additionally, there is inadequate
use of technology to streamline processes, leading to blood shortages, wasted resources, and delays
in providing urgent blood supplies. These inefficiencies put lives at risk, especially during medical
emergencies or critical situations requiring immediate blood transfusion.

Existing Systems : The existing Blood Bank Management System is a web-based application
developed using java as the backend technology and likely relies on MySQL for database
management. The system is designed to manage blood donor and recipient information, track blood
inventory, and facilitate blood requests.
Detailed analysis of existing system reveals certain gaps .

 Manual Processes: The system relies on manual effort for donor notifications and request
processing, lacking real-time email/SMS integration.

 Limited Accessibility: It struggles with mobile support, remote access, and integration with external
platforms like hospital systems and mapping services.

 Security Weaknesses: The system lacks encryption, two-factor authentication, and is vulnerable due
to outdated PHP-based architecture.

3.3 PROPOSED SYSTEM:

The proposed system for the Blood Bank Management System aims to overcome the limitations of
traditional and existing systems by leveraging technology to create a comprehensive, automated, and
user-friendly platform. It ensures efficient management of blood donations, inventory, and requests
while facilitating better communication between donors, recipients, and administrators.

28
System Architecture:

The System Architecture defines the overall structure of the Blood Bank Management System, outlining
its components, their interactions, and the flow of data within the system. The proposed architecture
follows a 3-tier architecture model comprising the Presentation Layer, Application Layer, and Data
Layer. This ensures scalability, maintainability, and performance.

Overview of System Components

1.User Interface Components:


 Donor Dashboard: Allows donors to register, update personal information, and track donation
history.
 Recipient Dashboard: Enables request submission, tracking request status, and matching with
available donors.
 Admin Dashboard: Offers comprehensive tools for managing inventory, scheduling donation
events, and generating reports
2.Backend Processing:
 Login Module: Role-based authentication for donors, recipients, and administrators.
 Donor Management Module: Handles donor registration, eligibility checks, and donation history
tracking.
 Recipient Request Module: Manages blood requests, matching with available stock, and
notification alerts
3. Data Base Management :
 Donor Table :Stores donor information including name, age, blood group, contact details, and
donation history.
 Recipient Table:Contains recipient request information, urgency, quantity, and related medical
details.
 Blood Inventory Table: Tracks available blood units by group, type, quantity, location, and
expiry dates.
Technologies Used:
The system leverages open-source technologies to provide a cost-effective and efficient solution:
1. Frontend Technologies :
O HTML5 and CSS3: For creating a structured, visually appealing, and consistent UI.
O JavaScript: For dynamic interactivity and enhanced user experience.
O Bootstrap: Ensures responsiveness and compatibility with various screen sizes and
devices.
2. Backend Technologies:
29
O PHP: Implements business logic and serves as the bridge between the user interface and
the database.
3. Database:
o MySQL: A relational database used for managing structured data securely and
efficiently.
4. Development Environment:
O XAMPP: A cross-platform software package that includes Apache, PHP, and MySQL
for local development and testing.
System Workflow:

1. User Login:
 Users (Donors, Recipients, Admins) log in to the system.
 The system authenticates credentials and redirects users to their respective dashboards.
2. Donor Module:
 Donors register and update personal details
 .Receive notifications about blood donation camps and eligibility updates.
3. Recipient Module
 Recipients submit requests for blood specifying group and quantity.
 The system matches requests with available inventory or nearby donors.

System Requirements:
Hardware Requirements:
• Processor - Intel Pentium-I3 Or Latest.
• Hard Disk - 500 GB Or More
• RAM – 2GB
• System type – Windows XP and above
• Keyboards – Any Standard Keyboard
• Mouse – Any Mouse

SOFTWARE REQUIREEMENTS
• OS - Windows.
• Frontend Tool - Html, CSS,JSP.
• Backend Tool -MySQL Workbench
• Server - Apache-Tomcat 9.0.73
• Language: Java.

3.4 SYSTEM DESIGN

Use Case Diagram: A use case diagram is a graphic depict on of the intercoms among elements of a
system. A use case is a methodology used in system analysis to idenfy, clarify, and organize system
requirements.

30
Fig 3.1: use case diagram

E-R Diagram: An Entity Relationship Diagram is a diagram that represents relationships among
entities in a database. It is commonly known as an ER Diagram.

Fig 3.2: E-R diagram

31
CHAPTER 4
EXPERIMENTAL RESULTS

1. Efficient Management of Blood Bank Data

 Outcome: Centralized database for storing and retrieving donor, recipient, and inventory data.
 Purpose: Ensures accurate, real-time access for seamless collaboration and decision-making.

2. Improved Blood Availability Monitoring

 Outcome: Real-time updates and alerts on blood stock levels.


 Purpose: Prevents shortages or wastage, ensuring critical blood availability during emergencies.

3. Enhanced Search Functionality

 Outcome: Advanced filters to locate donors, recipients, or blood types quickly.


 Purpose: Reduces response time in emergencies for efficient blood matching and distribution.

4. Streamlined Donor and Recipient Records Management

 Outcome: Detailed tracking of donor eligibility and recipient needs.


 Purpose: Minimizes mismatches and ensures safe, accurate transfusions.

5. Easy Blood Donation Scheduling

 Outcome: Online scheduling for donation camps and appointments.


 Purpose: Encourages regular donations with reminders and streamlined booking.

6. Secure and Reliable System

 Outcome: Secure logins with encryption to protect sensitive data.


 Purpose: Ensures data privacy and builds trust among stakeholders.

32
4.1 OUTPUT SCREENS
Main Page: Home page

Home page: New User

Content page: Donors list

33
Donate page: Search Donor

Profile: Account Details :

Request: Users Request

34
4.2 FUTURE ENHANCEMENT

1. AI & Machine Learning Integration

 Blood Donation Predictions: Machine learning can analyze donor history and regional data to identify
the best times and locations for blood drives, improving donor engagement and retention.

2. Blockchain for Data Security & Transparency

 Smart Contracts for Compliance: Blockchain smart contracts can help enforce compliance with
medical and ethical guidelines by automating checks and audits.

3. Mobile and Web App Development

 Web Portal for Hospitals: Hospitals and clinics can access a centralized web portal for real-time
tracking of blood inventory, request processing, and faster communication with the blood bank.

4. Cloud-Based Integration & Data Sharing

 Centralized Data Access: Blood banks can share data securely with hospitals and government
organizations for better monitoring, management, and coordination of blood supplie

4.3 CONCLUSION

The Blood Bank Management System (BBMS) mini project aimed to provide an efficient, automated
way to manage blood donations, storage, and requests. The system serves as an essential tool for
hospitals, blood banks, and healthcare institutions, ensuring that the process of collecting, tracking, and
distributing blood is streamlined and transparent.

This Blood Bank Management System demonstrates the potential of technology to enhance healthcare
services by automating tasks that are traditionally done manually. It not only helps reduce operational
overhead but also contributes to saving lives by ensuring a more reliable blood supply system. While the
project is limited in scope, it serves as a stepping stone for creating more advanced systems with
additional features such as SMS or email notifications for blood requests and donations, online blood
donation scheduling, and integration with other health information systems.

The project‟s future expansion could focus on improving data security, adding analytical tools for better
demand forecasting, and integrating with national or regional blood banks for broader coverage and
coordination.

35
4.4 REFERENCES

1. Reference: Kumar, P., & Gupta, R. (2019). "Improving Blood Bank Operations: A Review."
Healthcare Management Systems Journal, 7(2), 45–56.

2. Reference: Alshibly H., et al. (2020). "Enhancing Blood Bank Efficiency through Automation."
International Journal of Medical Informatics, 12(3), 123–134.

3. Reference: Sharma, N., et al. (2018). "Factors Affecting Blood Donation Rates: Insights for
System Design." Journal of Public Health Research, 15(1), 67–72.

4. Reference: Singh, R., & Kaur, T. (2021). "Automated Blood Bank Management Systems: A
Case Study." Information Systems for Healthcare Journal, 9(4), 89–101.

36
CHAPTER 5
CONCLUSION

The conclusion of your report outlines that the internship on "Full Stack Java" provided
an in-depth understanding and hands-on experience in various aspects of full-stack
development. By working with technologies like Core Java, Java Servlets, JSP, ReactJS,
and database integration with JDBC and MySQL, the project showcased the power and
flexibility of Java for creating robust, scalable, and efficient web applications.

This internship highlighted the practical implementation of theoretical knowledge and


enhanced skills in handling real-world challenges in software development. The
experience offered a comprehensive learning opportunity, contributing significantly to
professional and personal growth.

37
CHAPTER 6
REFERENCE

 https://codepen.io/
 https://www.w3schools.com/html/
 https://openai.com/blog/chatgpt/
 https://stackoverflow.com/
 https://fonts.google.com/knowledge/using_type/using_web_fonts
 https://fontawesome.com/icons
 https://www.geeksforgeeks.org/php-tutorial/
 HTML & CSS: The Complete Reference, Fifth Edition Book by Thomas Powell
 Learning PHP, MySQL, JavaScript, & CSS: A Step by Step Guide to Creating
Dynamic Websites,
 Second Edition Book by Robin Nixon.

38

You might also like