Final Report of Intenship PAKKA 123
Final Report of Intenship PAKKA 123
1
MONTHLY REPORT
1st MONTH
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!
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.
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
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.
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:
i. Arithmetic
operators ii. Assignment operators iii.
Comparison operators iv.
Logical operators v. Bitwise
operators Conditional Statements:
Loops:
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:
Methods:
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:
return 5 + x;
System.out.println(myMethod(3));
Object:
Class:
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:
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%)
• 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.
Different ways to overload the method There are two ways to overload the method in java
Example:
class TestOverloading1{
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;
• 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 .
• 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:
try{
16
int data=100/0;
}catch(ArithmeticException e){
System.out.println(e);
}}
Multithreading in Java:
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">
<title>Internship Report</title>
</head>
<body>
</body>
</html>
1. Structural Tags:
18
2. Text and Formatting Tags:
4.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:
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.
• 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.
• 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.
24
RowSet interface
• A list of popular classes of JDBC API are given below:
DriverManager class
Blob class
Clob class
Types class
• 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.
• 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.
• 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.
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:
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.
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.
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.
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.
31
CHAPTER 4
EXPERIMENTAL RESULTS
Outcome: Centralized database for storing and retrieving donor, recipient, and inventory data.
Purpose: Ensures accurate, real-time access for seamless collaboration and decision-making.
32
4.1 OUTPUT SCREENS
Main Page: Home page
33
Donate page: Search Donor
34
4.2 FUTURE ENHANCEMENT
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.
Smart Contracts for Compliance: Blockchain smart contracts can help enforce compliance with
medical and ethical guidelines by automating checks and audits.
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.
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.
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