0% found this document useful (0 votes)
678 views59 pages

Web-Based Platform For Pet Adoption

Pet Adoption Website Description
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
678 views59 pages

Web-Based Platform For Pet Adoption

Pet Adoption Website Description
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 59

Leen: Web-based Platform for Pet Adoption

Abstract:
Abstract—This paper concerns pet adoption by building a web-based
platform that supports the idea of using technology for the pet adoption
process in Saudi Arabia, the eastern province in specific. The difficulty of the
adoption process and putting pets up for adoption is a real problem in our
society. In this regard, we put forward the idea of “Leen” to provide easy and
quick services for this process and make it accessible to all interested
people. Our platform offers many services such as adoption, pet care,
donation, Etc. However, the main point in the “Leen” platform is that all
services provided are free with no fees. A “Leen” platform user can offer a
pet for adoption to find a home with another user from “Leen”. Also, a user
can look for pet care clinics at their nearest location in the region.
Furthermore, a user can directly donate to trusted adoption associations in
Saudi Arabia. “Leen” platform was built to provide the mentioned services
and more. Eventually, having the platform within reach of users will provide
all the services faster and easier than usual.

.
Introduction:
Due to the remarkable awareness in our society towards dealing with and
caring for pets, along with the spread of the “pet adoption” concept in recent
years. From this point, we got inspired and came up with our idea to build a
web-based platform for all people interested in this field. Our platform aims
to act as a midpoint between people who want to offer their pets adoption
and those willing to adopt. Therefore, the adoption process will be easier and
faster. Besides, providing enjoyment for people who love pets to
communicate with others who have the same interests to share their
knowledge and personal experiences. All the provided services will be for
free. Promoting the principle of free pet adoption without any fees has a
positive long-term impact on society. Based on a survey conducted by
researchers at the University of Florida in 2011 on (1,928) pet adopters,
which aimed to study the impact of free adoptions on society. As a result of
the study, it was found that adoptions which do not require any fees are
successful and promoting free adoption may raise the adoption rate without
compromising the animal’s life quality, as most users reported they still keep
pets they adopted, which were 93% dogs, and 95% cats [1].
Existing System:

The document you've provided outlines the "Leen" web-based platform for
pet adoption. Here's a summary of the existing system, its disadvantages

1. Traditional Pet Adoption Process: Pet adoption currently happens


either through shelters or by purchasing pets via social media
platforms.
2. Social Media Pet Adoption: Pets are often bought and sold on social
media platforms.

Disadvantages of the Existing System:

1. Misleading Knowledge: People often think buying pets on social


media is more convenient than adopting, due to the lack of trusted
platforms for adoption.
2. Privacy Concerns: Users are exposed to potential fraud from fake
sellers on social media, leading to increased cases of fraud and
deception.
3. Focus on Profits: Many social media platforms treat pets as a
commodity, focusing solely on financial gain rather than animal
welfare.
Proposed System:

1. Reliable Pet Adoption Platform: Leen provides a trusted third-party


platform for users looking to adopt pets.
2. Free Services: Unlike other platforms, Leen offers all services for free,
including adoption, finding veterinary clinics, and donations to animal
associations.
3. User Experience Focus: The platform simplifies user interaction by
offering direct communication between users while ensuring privacy is
protected.
4. Unique Features: Leen integrates instant messaging, discussion
forums, and the ability to find local veterinary clinics, which aren't
available on all similar platforms.

Advantages of the Proposed System:

1. Free and Accessible: The platform promotes free adoption services,


making it easier for people to adopt pets without incurring fees.
2. User Privacy Protection: Unlike social media, Leen provides a secure
environment that protects user data and prevents fraud.
3. Comprehensive Services: Beyond adoption, the platform connects
users to veterinary clinics, enables direct donations to trusted shelters,
and offers a discussion forum to share experiences and tips.
4. Ease of Use: With a simple user interface and advanced features like
instant messaging, the adoption process becomes faster and more
convenient

.
Literature Survey:

In the literature reviews below, there have been some studies by researchers
proposing implementing technology with pets. This section will discuss how
our website technology differs from other authors’ related technology
regarding similarities and dissimilarities in pet adoption. A. Effect of Visitor
Perspective on Adoption Decisions at One Animal Shelter One of the methods
in adopting a pet is a walk-in shelter to look for an animal. According to a
study conducted at one urban animal shelter, adopters can interact with the
animal and see if the animal is friendly, energetic, affectionate, and see
physical characteristics and looks. In addition, the adopter can also know if
the animal is not interactive, friendly, energetic; therefore, it helps the
adopter pick an animal according to these characteristics while visiting a
shelter. The researcher of this article found that many visitors did not leave
with a pet; moreover, some visitors had an intention to adopt a pet but
ended up not adopting one. This article categorizes visitors into two
categories; the first is just visitors who are not interested in adopting a pet;
according to the shelter staff, these visitors waste their time, energy, and
resources. The second category is the browser, and they are people who visit
the shelter for months and weeks intending to adopt a pet in the future. The
writers of this article suggest the shelter work on educating all visitors about
animal care and welfare. Moreover, educating those who are not prepared
for a new pet [3]. B. How social media helps shelter animals out of the
Shadow Ariel wrote an article about how social media helps animals to be
adopted. Social networking sites motivate people to adopt animals. For
example, putting a picture of an animal for adoption on a social networking
site such as Facebook, Twitter, and Instagram, and sharing it with friends or
liking the picture and republishing it helps in animal adoption. Nevertheless,
in social media, not all animals get their share of people’s likes [4]. C. A
Review of Techniques for Image Classification to Enhance Online Animal
Adoption Speed According to Pradeepa, animals can be adopted faster using
the internet and technology. In addition, developing a computerized
application that uses the sheltered animal picture gives it a score to help
predict how fast the animal will be adopted; thus, this will help guide the
shelter’s animal adoption speed process when posting a picture of the
animal. However, the adoption speed cannot be controlled; some animals
are not adopted due to having blurry pictures or not being wanted by anyone
for adoption; thus, shelters will be overcrowded with animals [5]. D. The
Impact of Adopting a Pet in the Perception of Physical and Emotional
Wellbeing One of the most common reasons people give for possessing pets
is the fact that they provide unconditional companionship and a sense of
care and protection. However, this study looked at the impact of pets in a
therapeutic context and primarily focused on the benefits of keeping pets. It
has been found that owning dogs increases their owners’ physical activity
and become less likely to have diseases such as obesity. On the other hand,
it shows that people who have a pet are more prone to allergies and asthma.
Furthermore, the study found that the humanization of pets was key to the
emotional impact that adopters perceive, and those who tend to humanize
their pets develop an empathetic relationship with them [6]. E. Attitudes and
Perceptions Regarding Pet Adoption This paper discussed the current trends
in pet overpopulation and compared findings regarding purchasing from for-
profit sources versus adoption from shelters. A survey was sent to registered
dog owners in Albany and Rensselaer counties. The findings illustrate that
people who are looking for a specific breed and have misperceptions of
purebred dogs’ costs tend to go to pet stores and breeders primarily to
purchase dogs. As a result, they believe it cannot be satisfied by adopting a
shelter dog. However, this study contains two problems. First, responses
biases. Second, the lack of comprehensiveness of the study results due to it
reflects the respondents’ attitudes in specific regions and does not represent
an entire country. In addition, consider this may not reflect the future actual
behavior with respect to adoption from shelters [7]. F. COVID-19 Pandemic
and Public Interest in Pet Adoption This study aims to define if the global
interest in pet adoption increases after the pandemic declaration and if the
effect has been sustainable. Moreover, the data were collected between
2015 and 2020. Eventually, the study concluded that in the early phases of
the pandemic, the global interest in pet adoptions has surged. However, it
was not sustainable. Following the COVID-19 pandemic, pets may face
separation anxiety when their owners return back to work [8]. G. Exploring
User Information Needs in Online Pet Adoption Profiles This study
demonstrated how important to understand adopters’ needs to provide
information about pets through analyzing user needs to determine the kinds
of information required when searching for a new pet, specifically a dog or
cat. Furthermore, Study participants rated several physical and behavioral
characteristics based on their significance level. In general, the study shows
cat adopters have an interest in cats’ personalities and behavior. On the
other hand, dog adopters are interested in dogs’ physical characteristics [9].
H. Shelter Operations: Pet-Friendly Shelters The study focused on the idea
that pet-friendly shelters are most frequently organized by either local
animal control offices or county/state animal response teams. The main idea
is about sheltering operations involve endangered people who own pets, but
most emergency shelters don’t accept pets due to health and safety
regulations. If there is no opportunity to bring their pets with them to safety,
some pet owners will refuse to vacate or will delay vacating. Pet-friendly
sheltering is one of the most concerted methods of providing emergency
accommodations for pet owners and their pets. Furthermore, it is a public
human emergency shelter that is located within the same area. Eventually,
the presence of pet-friendly shelters can increase the likelihood that
endangered pet owners will evacuate to safety with their animals during an
emergency [10]. I. As animal shelters fill up, new technology helps reunite
lost pets with owners Sammie wrote about how technology helped pet
owners find their animals in shelters with the help of the Petco Love website
service; Petco Love lost that use of face recognition technology. This
technology helps pet owners search for their lost pets by uploading a picture
of the pet on the website and looking for a match or the shelter, or anyone
who found a pet can upload an image. However, not all animals are lost;
some of them were abended by their owners, in addition, no one will look for
them [11]. J. Pets and the Net: Helping Animals in Need This article discusses
how the internet can help adopt a pet with a particular condition, a specific
color uncommon for someone to adopt, or any pet. By using the internet,
shelters and pet owners can help animals in need and build awareness
through social media. Some shelters use an emotional method like posting
as if they were the animal, and this animal is desperate looking for a home
and loving family. However, some shelters might have a low profile; thus,
this article’s author provided suggestions like using well-timed hashtags, pet-
based influence marketing, Etc. [12].

MODULES:

1 Based on the document, the Leen: Web-based Platform for Pet


Adoption has several modules that support the pet adoption process. Here’s
a breakdown of the key modules:
1. User Management Module:

 Login/Signup: Allows users to register and log into the platform by


verifying user credentials.
 Profile Management: Users can update their profile information,
including personal details and pet adoption preferences.

2. Pet Rehoming and Adoption Module:

 Place Rehome Ad: Users who want to give up their pets for adoption
can post ads with relevant details (e.g., pet type, age, breed).
 Browsing Categories: Users can browse different categories of pets
available for adoption, filtered by various criteria such as breed, age,
or location.
 Ad Display: Once a pet ad is selected, the details are displayed for the
potential adopter.
 Submit Adoption Request: Allows users to submit an adoption
request for a specific pet. The request is saved in the database,
awaiting approval or rejection by the pet owner.
 View Requests: Users can view the status of their adoption requests
and get updates.

3. Communication Module:

 Instant Messaging: Users can communicate directly with other users


via the platform’s messaging system to ask questions or negotiate the
adoption process.
 Notifications: The admin can send notifications to users regarding
updates on their requests or new services.

4. Veterinary Clinic Locator Module:

 Search Clinics: This module allows users to search for veterinary


clinics by location to find nearby healthcare services for pets.

5. Donation and Shelter Association Module:

 Donation Services: The platform integrates with trusted donation


services where users can contribute to animal shelters or associations
that support pet adoption.

6. Admin Control Module:

 User Management: Admins can manage user accounts, including


activating or deactivating them and updating user data.
 Request Management: Admins can oversee and manage all adoption
requests submitted by users.
 Clinic Information Management: Admins can manage and update
the information about veterinary clinics listed on the platform.
 Notifications Management: Admins can send notifications to users
regarding platform updates or new features.

7. Discussion Forum Module:

 Community Discussions: This module enables users to participate in


discussion forums where they can share advice, experiences, and tips
related to pet care and adoption.

8. Search and Filter Module:

 Advanced Search: Users can search for pets based on multiple filters
like breed, age, location, and more, ensuring a more precise and
efficient pet search.

These modules form the backbone of the platform, ensuring a seamless and
secure pet adoption

Software Development Life Cycle


Software Development Life Cycle, SDLC for short, is a well-defined,
structured sequence of stages in software engineering to develop the
intended software product.
Software Development Paradigm:
The software development paradigm helps developer to select a strategy to
develop the software. A software development paradigm has its own set of
tools, methods and procedures, which are expressed clearly and defines
software development life cycle. A software development paradigms or
process models are defined as follows:
Spiral Model
Spiral model is a combination of both, iterative model and one of the SDLC
model. It can be seen as if you choose one SDLC model and combine it with
cyclic process (iterative model).

This model considers risk, which often goes un-noticed by most other
models. The model starts with determining objectives and constraints of the
software at the start of one iteration. Next phase is of prototyping the
software. This includes risk analysis. Then one standard SDLC model is used
to build the software. In the fourth phase of the plan of next iteration is
prepared.
SDLC Implementation
SDLC provides a series of steps to be followed to design and develop a
software product efficiently. SDLC framework includes the following steps:

Requirement Gathering
This step onwards the software development team works to carry on the
project. The team holds discussions with various stakeholders from problem
domain and tries to bring out as much information as possible on their
requirements. The requirements are contemplated and segregated into user
requirements, system requirements and functional requirements. The
requirements are collected using a number of practices as given -
 studying the existing or obsolete system and software,
 conducting interviews of users and developers,
 referring to the database or
 Collecting answers from the questionnaires.

Feasibility Study
After requirement gathering, the team comes up with a rough plan of
software process. At this step the team analyzes if a software can be made
to fulfill all requirements of the user and if there is any possibility of software
being no more useful. It is found out, if the project is financially, practically
and technologically feasible for the organization to take up. There are many
algorithms available, which help the developers to conclude the feasibility of
a software project.
Types of Feasibility Study:
The feasibility study mainly concentrates on bellow five mentioned areas.
Among this Economic Feasibility Study is most important part of the
feasibility analysis and Legal Feasibility Study is less considered feasibility
analysis.
Technical Feasibility:
In Technical Feasibility current resources both hardware software along with
required technology are analyzed/assessed to develop project. This technical
feasibility study gives report whether there exists correct required resources
and technologies which will be used for project development. Along with this,
feasibility study also analyzes technical skills and capabilities of technical
team, existing technology can be used or not, maintenance and up-gradation
is easy or not for chosen technology etc.

Operational Feasibility:
In Operational Feasibility degree of providing service to requirements is
analyzed along with how much easy product will be to operate and
maintenance after deployment. Along with this other operational scope are
determining usability of product, determining suggested solution by software
development team is acceptable or not etc.

Economic Feasibility:
In Economic Feasibility study cost and benefit of the project is analyzed.
Means under this feasibility study a detail analysis is carried out what will be
cost of the project for development which includes all required cost for final
development like hardware and software resource required, design and
development cost and operational cost and so on. After that it is analyzed
whether project will be beneficial in terms of finance for organization or not.

Legal Feasibility:
In Legal Feasibility study project is analyzed in legality point of view. This
includes analyzing barriers of legal implementation of project, data
protection acts or social media laws, project certificate, license, copyright
etc. Overall it can be said that Legal Feasibility Study is study to know if
proposed project conforms legal and ethical requirements.

Schedule Feasibility:
In Schedule Feasibility Study mainly timelines/deadlines is analyzed for
proposed project which includes how many times teams will take to
complete final project which has a great impact on the organization as
purpose of project may fail if it can’t be completed on time.

System Analysis
At this step the developers decide a roadmap of their plan and try to bring
up the best software model suitable for the project. System analysis includes
Understanding of software product limitations, learning system related
problems or changes to be done in existing systems beforehand, identifying
and addressing the impact of project on organization and personnel etc. The
project team analyzes the scope of the project and plans the schedule and
resources accordingly.

Requirements analysis:
It is very critical process that enables the success of a system or software
project to be assessed. Requirements are generally split into two types:
Functional and Non-functional requirements.

Functional Requirements:
• User Registration.
• Pet Listings.
• Pet Profiles.
• Adoption.
• Mating Services.
• Breed Selection.
Admin Registration

Non-Functional Requirements:
• Portability
• Maintainability
• Reliability
• Flexibility

 .

Software and Hardware Requirements:


Software and Hardware Requirements

Hardware Requirements

Processor : I3.
Ram : 4GB.
Hard Disk : 500 GB.

Software Requirements:

Database Server : Mysql


Database Client : Sql yog
Server : Apache Tomcat
Platform : Java
Technology : Servlets, JSP, JDBC
Client Side Technologies : Html, CSS, Java Script
Uml Design/E-R Modeling Tools : star uml
Software Design
Next step is to bring down whole knowledge of requirements and analysis on
the desk and design the software product. The inputs from users and
information gathered in requirement gathering phase are the inputs of this
step. The output of this step comes in the form of two designs; logical design
and physical design. Engineers produce meta-data and data dictionaries,
logical diagrams, data-flow diagrams and in some cases pseudo codes.

Architectural Design:

MVC stands for Model View and Controller. It is a design pattern that
separates the business logic, presentation logic and data.

MVC Structure has the following three parts:

Controller acts as an interface between View and Model. Controller intercepts


all the incoming requests.

Model represents the state of the application i.e. data. It can also have
business logic.

View represents the presentation i.e. UI (User Interface).

Advantage of MVC Architecture

1. Navigation Control is centralized

2. Easy to maintain the large application


SYSTEM ARCHITECTURE:
TECHNICALARCHITECTURE:

UML Design:

Unified Modeling Language (UML) is a general-purpose modeling language.


The main aim of UML is to define a standard way to visualize the way a
system has been designed. It is quite similar to blueprints used in other fields
of engineering.
UML is not a programming language; it is rather a visual language. We use
UML diagrams to portray the behavior and structure of a system, UML helps
software engineers, businessmen and system architects with modeling,
design and analysis. The Object Management Group (OMG) adopted Unified
Modeling Language as a standard in 1997. It’s been managed by OMG ever
since. International Organization for Standardization (ISO) published UML as
an approved standard in 2005. UML has been revised over the years and is
reviewed periodically.

Do we really need UML?

 Complex applications need collaboration and planning from multiple


teams and hence require a clear and concise way to communicate
amongst them.
 Businessmen do not understand code. So UML becomes essential to
communicate with non-programmer’s essential requirements,
functionalities and processes of the system.
 A lot of time is saved down the line when teams are able to visualize
processes, user interactions and static structure of the system.
 UML is linked with object-oriented design and analysis. UML makes the
use of elements and forms associations between them to form
diagrams. Diagrams in UML can be broadly classified as:

The Primary goals in the design of the UML are as follows:


 Provide users a ready-to-use, expressive visual modeling Language so
that they can develop and exchange meaningful models.
 Provide extendibility and specialization mechanisms to extend the core
concepts.
 Be independent of particular programming languages and
development process.
 Provide a formal basis for understanding the modeling language.
 Encourage the growth of OO tools market.
 Support higher level development concepts such as collaborations,
frameworks, patterns and components.
 Integrate best practices.

Types of UML Diagrams:

Structural Diagrams:

Capture static aspects or structure of a system. Structural Diagrams


include: Component Diagrams, Object Diagrams, Class Diagrams and
Deployment Diagrams.

Behavior Diagrams:

Capture dynamic aspects or behavior of the system. Behavior


diagrams include: Use Case Diagrams, State Diagrams, Activity
Diagrams and Interaction Diagrams.

The image below shows the hierarchy of diagrams according to UML


USE CASE DIAGRAM:
A use case diagram in the Unified Modeling Language (UML) is a type of
behavioral diagram defined by and created from a Use-case analysis. Its
purpose is to present a graphical overview of the functionality provided by a
system in terms of actors, their goals (represented as use cases), and any
dependencies between those use cases. The main purpose of a use case
diagram is to show what system functions are performed for which actor.
Roles of the actors in the system can be depicted.

CLASS DIAGRAM:

In software engineering, a class diagram in the Unified Modeling Language


(UML) is a type of static structure diagram that describes the structure of a
system by showing the system's classes, their attributes, operations (or
methods), and the relationships among the classes. It explains which class
contains information.

SEQUENCE DIAGRAM:
A sequence diagram in Unified Modeling Language (UML) is a kind of
interaction diagram that shows how processes operate with one another and
in what order. It is a construct of a Message Sequence Chart. Sequence
diagrams are sometimes called event diagrams, event scenarios, and timing
diagrams.

ACTIVITY DIAGRAM:
Activity diagrams are graphical representations of workflows of stepwise
activities and actions with support for choice, iteration and concurrency. In
the Unified Modeling Language, activity diagrams can be used to describe
the business and operational step-by-step workflows of components in a
system. An activity diagram shows the overall flow of control.

Deployment diagram

There may be more steps involved, depending on what specific requirements


you have, but below are some of the main steps:
A deployment diagram in the Unified Modelling Language models
the physical deployment of artic rafts on nodes. To describe a
web site, for example, a deployment diagram would show what
hardware components ("nodes") exist (e.g., a web server, an
application server, and a database server), what software
components ("artifacts") run on each node (e.g., web application,
database), and how the different pieces are connected (e.g. JDBC,
REST, RMI). The nodes appear as boxes, and the artifacts
allocated to each node appear as rectangles within the boxes.
Nodes may have sub nodes, which appear as nested boxes. A
single node in a deployment diagram may conceptually represent
multiple physical nodes, such as a cluster of database servers.
Device nodes are physically computing resources with processing
memory and services to execute software, such as typical
computer or mobile phones. An execution environment node
(EEN) is a software computing resource that runs within an outer
node and which itself provides a service to host and execute
other executable software elements.

Deployment diagrams are used to visualize the topology of the


physical components of a system, where the software
components are deployed.

Deployment diagrams are used to describe the static deployment


view of a system. Deployment diagrams consist of nodes and
their relationships.

The term Deployment itself describes the purpose of the


diagram. Deployment diagrams are used for describing the
hardware components, where software components are
deployed. Component diagrams and deployment diagrams are
closely related.
Component diagrams are used to describe the components and
deployment diagrams shows how they are deployed in hardware.

UML is mainly designed to focus on the software artifacts of a


system. However, these two diagrams are special diagrams used
to focus on software and hardware components.

Most of the UML diagrams are used to handle logical components


but deployment diagrams are made to focus on the hardware
topology of a system. Deployment diagrams are used by the
system engineers.

The purpose of deployment diagrams can be described as −


 Visualize the hardware topology of a system.
 Describe the hardware components used to deploy software
components.
 Describe the runtime processing nodes.

Entity-Relationship Diagrams:
Data models are tools used in analysis to
describe the data requirements and assumptions in the system
from a top-down perspective. They also set the stage for the
design of databases later on in the SDLC.

There are three basic elements in ER models:

 Entities are the "things" about which we seek information.


 Attributes are the data we collect about the entities.
 Relationships provide the structure needed to draw
information from multiple entities.
Developing an ERD:

Developing an ERD requires an understanding of


the system and its components. Its components are:

 Rectangles: These are used for representing entity sets.


 Ellipses: These are used for representing attributes.
 Diamonds: These are used for representing relationship sets.
 Lines: These are used for linking attributes to entity sets and
entity sets to relationship sets.

Start an ERD:

 Define Entities:
These are usually nouns used in descriptions of
the system, in the discussion of business rules, or in
documentation.

 Define Relationships:
These are usually verbs used in descriptions of the
system or in discussion of the business rules (entity _ entity).

 Add attributes to the relations:


These are determined by the queries, and may
also suggest new entities, e.g. grade; or they may suggest the
need for keys or identifiers.

 Add cardinality to the relations:


Many-to-Many must be resolved to two one-to-
many with an additional entity. Automatically happens.

Sometimes involves introduction of a link entity


(which will be all

Foreign key) this flexibility allows us to consider a variety of


questions. Represent that information with symbols.

ERD brings out issues:

 Many-to-Many
 Ambiguities
 Entities and their relationships
 What data needs to be stored
 The Degree of a relationship

ER-modeling is a data modeling method used in software


engineering to produce a conceptual data model of an
information system. Diagrams created using this ER-modeling
method are called Entity-Relationship Diagrams or ER diagrams or
ERDs.

Purpose of ERD
 The database analyst gains a better understanding of the
data to be contained in the database through the step of
constructing the ERD.
 The ERD serves as a documentation tool.
 Finally, the ERD is used to connect the logical structure of
the database to users. In particular, the ERD effectively
communicates the logic of the database to users.

Database Tables:
Technologies and Tools

Software may need to be integrated with the libraries, databases


and other program(s). This stage of SDLC is involved in the
integration of software with outer world entities.

Implementation this means installing the software on user


machines. At times, software needs post-installation
configurations at user end. Software is tested for portability and
adaptability and integration related issues are solved during
implementation

Technologies

Technologies

Java Technologies for Web Application Development

Web applications are by nature distributed applications, meaning


that they are programs that run on more than one computer and
communicate through a network or server. Specifically, web
applications are accessed with a web browser and are popular
because of the ease of using the browser as a user client. For the
enterprise, the ability to update and maintain web applications
without deploying and installing software on potentially thousands
of client computers is a key reason for their popularity. Web
applications are used for web mail, online retail sales, discussion
boards, weblogs, online banking, and more. One web application
can be accessed and used by millions of people.

Like desktop applications, web applications are made up of many


parts and often contain mini programs, some of which have user
interfaces, and some of which do not require a graphical user
interface (GUI) at all. In addition, web applications frequently
require an additional markup or scripting language, such as HTML,
CSS, or JavaScript programming language. Also, many
applications use only the Java programming language, which is
ideal because of its versatility.

A web application can be as simple as a page that shows the


current date and time or as complex as a set of pages on which
you can look up and book the most convenient flight, hotels, and
car rentals for your next vacation.

The Java technologies you'll use to create web applications are a


part of the Java EE platform, in addition to many of the Java
Platform, Standard Edition (Java SE) classes and packages. In
order for many of these technologies to work on a server, the
server must have a container, or web server, installed that
recognizes and runs the classes you create. For development and
testing of these technologies, you can use the tools detailed in
this article, but when you deploy, make sure that the server has
Java server software installed to run Java technology-based web
applications. If you don't have access to this information, ask the
server administrator.

Java Technologies to Use in Web Applications

There are too many Java technologies to list in one article, so this
article will describe only the ones most frequently used. The
number of technologies listed here can appear overwhelming.
Keep in mind that you will not need to use them all. In fact, a web
application often consists of nothing more than one page created
with the JavaServer Pages (JSP) technology. Sometimes you will
combine three or more such technologies. No matter how many
you end up using, it's good to know what is available to you and
how you can use each one in a web application.
Java Servlet API

The Java Servlet API lets you define HTTP-specific classes. A


servlet class extends the capabilities of servers that host
applications that are accessed by way of a request-response
programming model. Although servlets can respond to any type
of request, they are commonly used to extend the applications
hosted by web servers. For instance, you might use a servlet to
get the text input from an online form and print it back to the
screen in an HTML page and format, or you might use a different
servlet to write the data to a file or database instead. A servlet
runs on the server side -- without an application GUI or HTML user
interface (UI) of its own. Java Servlet extensions make many web
applications possible.

The javax.servlet and javax.servlet.http packages provide the


classes and interfaces to define servlets. HTML servlet classes
extend the javax.servlet.http.HttpServlet abstract class, which
provides a framework for handling HTTP protocol.

JavaServer Pages Technology

JavaServer Pages (JSP) technology provides a simplified, fast way


to create dynamic web content. JSP technology enables rapid
development of web-based applications that are server- and
platform-independent. JSP technology lets you add snippets of
servlet code directly into a text-based document. Typically, a JSP
page is a text-based document that contains two types of text:
Static data, which can be expressed in any text-based format,
such as HTML, Wireless Markup Language (WML), or XML

JSP technology elements, which determine how the page


constructs dynamic content

The packages involved in creating JSP pages are javax.el,


javax.servlet.jsp, javax.servlet.jsp.el, and javax.servlet.jsp.tagext,
though you will rarely have to import these directly. A JSP page
can be as simple as a bit of HTML with one snippet of JSP code
and the .jsp extension of the page name.

For instance, you can create a web site of JSP technology pages
that use one snippet of code to include the header.html file, which
contains the site navigation. This way, when you change a link to
a button in the navigation, you make the change in only one file,
and that file loads into all the pages on the site that have this
code snippet:

<%@ include file="header.html" %>

That line of code works very much like a server-side include, if


you are familiar with those. Because this web page is now a JSP
page, you could also go on to add more Java technology code to
create dynamic web content, such as polls, forms, ways to enter
or retrieve data from a database, and so forth.

JavaServer Pages Standard Tag Library

The JavaServer Pages Standard Tag Library (JSTL) encapsulates


core functionality common to many JSP technology-based
applications. Instead of mixing tags from numerous vendors in
your applications, you employ a single standard set of tags. This
standardization allows you to deploy your applications on any JSP
container that supports JSTL and makes it more likely that the
implementation of the tags is optimized.

JSTL has iterator and conditional tags for handling flow control,
tags for manipulating XML documents, internationalization tags,
tags for accessing databases using SQL, and tags for commonly
used functions.

The packages you can access for using JSTL are


javax.servlet.jsp.jstl.core , javax.servlet.jsp.jstl.fmt ,
javax.servlet.jsp.jstl.sql , and javax.servlet.jsp.jstl.tlv .
Java Message Service API

Messaging is a method of communication between software


components or applications. A messaging system is a peer-to-
peer facility. In other words, a messaging client can send
messages to and receive messages from any other client. Each
client connects to a messaging agent that provides facilities for
creating, sending, receiving, and reading messages. By combining
Java technology with enterprise messaging, the Java Message
Service (JMS) API provides a powerful tool for solving enterprise
computing problems.

Enterprise messaging provides a reliable, flexible service for the


exchange of business data throughout an enterprise. The JMS API
adds to this a common API and provider framework that enables
the development of portable message-based applications in the
Java programming language. An example of how JMS might be
used is an application that keeps track of inventory for an auto
manufacturer.The inventory component can send a message to
the factory component when the inventory level for a product
goes below a certain level, so the factory can make more cars.
The factory component can send a message to the parts
components so that the factory can assemble the parts it
needs.The parts components in turn can send messages to their
own inventory and order components to update their inventories
and to order new parts from suppliers and so forth.
The JMS API improves programmer productivity by defining a
common set of messaging concepts and programming strategies
that all JMS technology-compliant messaging systems will
support.

JavaMail API and the JavaBeans Activation Framework

Web applications can use the JavaMail API to send email


notifications. The API has two parts: an application-level interface
that the application components use to send email and a service
provider interface. Service providers implement particular email
protocols, such as SMTP. Several service providers are included
with the JavaMail API package, and others are available
separately. The Java EE platform includes the JavaMail extension
with a service provider that allows application components to
send email.

In conjunction with the JavaMail extension, you might use the


JavaBeans Activation Framework (JAF) API. This API provides
standard services to determine the type of an arbitrary piece of
data, encapsulate access to it, discover the operations available
on it, and create the appropriate component based on JavaBeans
component architecture (JavaBeans component) to perform those
operations.
JDBC API

The JDBC API allows you invoke database SQL commands from
Java programming language methods. You can use the JDBC API
in a servlet, JSP technology page, or an enterprise bean when you
need to access the database.

The JDBC API has two parts: an application-level interface that


application components use to access a database and a service
provider interface to attach a JDBC driver to the Java EE platform.

client makes a direct call to the application server, usually


through a servlet or JSP page, and that data is then sent to the
database management system (DBMS) server. And how a driver
translates JDBC calls into the middleware vendor's protocol.

Java Persistence API

The Java Persistence API is a Java technology standards-based


solution for persistence. Persistence uses an object-relational
mapping approach to bridge the gap between an object-oriented
model and a relational database. Java technology persistence
consists of three areas:

The Java Persistence API

The query language


Object-relational mapping metadata

Read the Java Persistence API FAQ.

UI Technologies

There are many web languages available; however we’re just


going to look at three of them. They are HTML, CSS and JavaScript
and they are considered to be the backbone of the web. When it
comes to web development there is front-end web development
and back end-web development. These three languages are for
front-end web development and are responsible for what you can
see and do on a website. They are referred to as client side
languages as they run in the browser (Google Chrome, Firefox
etc.) of your computer. The browser translates these languages
and the result of this translation is the visual web page.

It’s important to note HTML and CSS are not considered to be


programming languages. HTML is a markup language and CSS is
a styling language. JavaScript, however, is a programming
language. Hence, they are all web languages, but they perform
different jobs.

For those that are new to web design the easiest way to
understand this relationship is to look at an analogy that will
break it down into bite-size chunks. One way to look at front-end
web development is to see these three languages interact with
one another the same way a human body interacts with its
surroundings.

Development Tools

Integrated development environments (IDEs) can speed the


process of developing and testing web applications. It's no
wonder that developers move to an IDE, but which one is right for
you? Which features do you need? Sun Microsystems supports
three IDEs for the Java platform: Eclipse IDE.

Eclipse IDE:

Integrated development environments (IDEs) can help developers


with writing code and using class libraries and frameworks. They
increase developers’ productivity by combining common activities
of writing software into a single application: editing source code,
building executables, and debugging. The choice of an editor or
IDE depends on several factors, including the project’s nature, the
developer’s skills and experience, the process used by the
development team, and personal preferences.

This is how an IDE can facilitate the development process:

 allows setting breakpoints;


 automatically validates syntax;
 offers a robust debugger;
 provides you readymade code template;
 robust Java editor;
 supports code refactoring;
 Supports syntax coloring.

Key Eclipse IDE Features


 Almost everything is a plug-in. Different types of plug-ins like
static analysis, checking of code style, checking of a version
of a system are all available in Eclipse Marketplace.
 By adding plug-ins to the IDE, developers can expand the
functionality of the IDE.
 Supports multiple source knowledge tools such as grading,
folding and hyperlinks navigation, macro definition browser,
code editing with syntax highlighting.
 Provides a visual code debugging tool.
 Has a great user interface with a drag and drop UI design
feature.
 Supports project development and administered framework
for different toolchains, classic make framework, and source
navigation.
 By using JavaDoc, developers can automatically create
documentation for classes.
 Several features contribute to the popularity of the Eclipse
IDE.
Apache Tomcat Server:

Apache Tomcat, also known as Tomcat Server, proves to be a


popular choice for web developers building and maintaining
dynamic websites and applications based on the Java software
platform. It’s reportedly called Tomcat because the founder saw it
as an animal that could take care of and fend for itself. Similarly,
Apache Tomcat is contributed to by developers all over the world,
so it takes care of itself in that way.

Apache Tomcat (called "Tomcat" for short) is an open-source


implementation of the Java Servlet, JavaServer Pages, and Java
Expression Language and WebSocket technologies. Tomcat
provides a "pure Java" HTTP web server environment in which
Java code can run.

Apache Tomcat server: Apache Tomcat is a web container. It


allows the users to run Servlet and JAVA Server Pages that are
based on the web-applications. It can be used as the HTTP server.
The performance of the Tomcat server is not as good as the
designated web server. It can be used as separate product with
its own internal Web-server. It can also be used as mutually with
the others Web-servers which include Apache, Microsoft Internet
Information Server, and Microsoft Personal Web-server.
Tomcat is developed and maintained by an open community of
developers under the auspices of the Apache Software
Foundation, released under the Apache License 2.0 license.

MySQL Database Server:

What is a Database?

A database is a separate application that stores a collection of


data. Each database has one or more distinct APIs for creating,
accessing, managing, searching and replicating the data it holds.

Other kinds of data stores can also be used, such as files on the
file system or large hash tables in memory but data fetching and
writing would not be so fast and easy with those type of systems.

Nowadays, we use relational database management systems


(RDBMS) to store and manage huge volume of data. This is called
relational database because all the data is stored into different
tables and relations are established using primary keys or other
keys known as Foreign Keys.

 A Relational DataBase Management System (RDBMS) is a


software that −
 Enables you to implement a database with tables, columns
and indexes.
 Guarantees the Referential Integrity between rows of various
tables.
 Updates the indexes automatically.
 Interprets an SQL query and combines information from
various tables.

RDBMS Terminology

Before we proceed to explain the MySQL database system, let us


revise a few definitions related to the database.

 Database − A database is a collection of tables, with related


data.
 Table − A table is a matrix with data. A table in a database
looks like a simple spreadsheet.
 Column − One column (data element) contains data of one
and the same kind, for example the column postcode.
 Row − A row (= tuple, entry or record) is a group of related
data, for example the data of one subscription.
 Redundancy − Storing data twice, redundantly to make the
system faster.
 Primary Key − A primary key is unique. A key value can not
occur twice in one table. With a key, you can only find one
row.
 Foreign Key − A foreign key is the linking pin between two
tables.
 Compound Key − A compound key (composite key) is a key
that consists of multiple columns, because one column is not
sufficiently unique.
 Index − an index in a database resembles an index at the
back of a book.
 Referential Integrity − Referential Integrity makes sure that
a foreign key value always points to an existing row.

MySQL Database
MySQL is a fast, easy-to-use RDBMS being used for many small
and big businesses. MySQL is developed, marketed and supported
by MySQL AB, which is a Swedish company. MySQL is becoming
so popular because of many good reasons −

 MySQL is released under an open-source license. So you


have nothing to pay to use it.
 MySQL is a very powerful program in its own right. It handles
a large subset of the functionality of the most expensive and
powerful database packages.
 MySQL uses a standard form of the well-known SQL data
language.
 MySQL works on many operating systems and with many
languages including PHP, PERL, C, C++, JAVA, etc.
 MySQL works very quickly and works well even with large
data sets.
 MySQL is very friendly to PHP, the most appreciated
language for web development.
 MySQL supports large databases, up to 50 million rows or
more in a table. The default file size limit for a table is 4GB,
but you can increase this (if your operating system can
handle it) to a theoretical limit of 8 million terabytes (TB).
 MySQL is customizable. The open-source GPL license allows
programmers to modify the MySQL software to fit their own
specific environments.
SQLyog Database GUI Client:

MySQL manager and admin tool.

SQLyog is the most powerful manager, admin and GUI tool for
MySQL, combining the features of MySQL Query Browser,
Administrator, phpMyAdmin and other MySQL Front Ends and
MySQL GUI tools in a single intuitive interface. SQLyog is a fast,
easy to use and compact graphical tool for managing your MySQL
databases. SQLyog was developed for all who use MySQL as their
preferred RDBMS. Whether you enjoy the control of handwritten
SQL or prefer to work in a visual environment, SQLyog makes it
easy for you to get started and provides you with tools to
enhance your MySQL experience.

Testing

An estimate says that 50% of whole software development


process should be tested. Errors may ruin the software from
critical level to its own removal. Software testing is done while
coding by the developers and thorough testing is conducted by
testing experts at various levels of code such as module testing,
program testing, product testing, in-house testing and testing the
product at user’s end. Early discovery of errors and their remedy
is the key to reliable software.

Unit testing
Unit testing involves the design of test cases that validate that
the internal program logic is functioning properly, and that
program inputs produce valid outputs. All decision branches and
internal code flow should be validated. It is the testing of
individual software units of the application .it is done after the
completion of an individual unit before integration. This is a
structural testing, that relies on knowledge of its construction and
is invasive. Unit tests perform basic tests at component level and
test a specific business process, application, and/or system
configuration. Unit tests ensure that each unique path of a
business process performs accurately to the documented
specifications and contains clearly defined inputs and expected
results.

JUnit:

JUnit is an open source Unit Testing Framework for JAVA. It is


useful for Java Developers to write and run repeatable tests. Erich
Gamma and Kent Beck initially develop it. It is an instance of
xUnit architecture. As the name implies, it is used for Unit Testing
of a small chunk of code.

Developers who are following test-driven methodology must write


and execute unit test first before any code.

Once you are done with code, you should execute all tests, and it
should pass. Every time any code is added, you need to re-
execute all test cases and makes sure nothing is broken.
Sample Code:
Screen Shots
Conclusion:

To conclude, this paper presents the work performed in developing a web-


based platform that supports the idea of using technology for a pet adoption
process in Eastern province in Saudi Arabia specifically. In addition, the
platform was designed to provide easy and quick services for pet adoption
and to have it accessible to all interested people, services like discussion
forums, instant chatting, pet delivery, and nearby veterinary clinics.
Furthermore, there are several recommendations, which might provide some
enhancements to our platform in the future, for example expanding to be
used in all Saudi Arabia regions, developing an application, and adding a
section focusing on providing educational courses related to pets for whom
interested in this field.
References:

[1] “Free pet adoptions study results,” Maddie's Fund, Nov-2012. [Online].
Available: https://www.maddiesfund.org/free-pet-adoptions-
studyresults.html.
[2] “ ‘Adopt, don’t shop’ number one motto for Saudi pet shelters”, Arab
News, 2022. [Online]. Available:
https://www.arabnews.com/node/2032371/saudi-arabia.
[3] A. Southland, S. Dowling-Guyer, and E. McCobb, “Effect of visitor
perspective on adoption decisions at one animal shelter,” Journal of Applied
Animal Welfare Science, vol. 22, no. 1, pp. 1–12, Mar. 2018.

[4] A. Bogle, “How social media helps bring shelter animals out of the
shadows,” Mashable, 10-Aug-2016. [Online]. Available:
https://mashable.com/article/social-media-shelter-animals.
[5] P. Jeyaraj and A. Aponso, “A review of techniques for image classification
to enhance online animal adoption speed,” Proceedings of the 2020 12th
International Conference on Computer and Automation Engineering, Feb.
2020.
[6] M. L. Taborda, M. Lemos, and J. J. Orejuela, “The Impact of Adopting a Pet
in the Perception of Physical and Emotional Wellbeing,” ResearchGate, vol.
10, no. 2, pp. 53–74, Jun. 2019.
[7] J. M. Frank and P. C. Frank, “Attitudes and Perceptions Regarding Pet
Adoption.” faunalytics.org, 2008. [8] J. Ho, S. Hussain, and O. Sparagano,
“Did the COVID-19 pandemic spark a public interest in pet adoption?,”
Frontiers in Veterinary Science, vol. 8, May 2021.
[9] Z. M. Becerra, S. Parmar, K. May, and R. E. Stuck, “Exploring user
information needs in online pet adoption profiles,” Proceedings of the Human
Factors and Ergonomics Society Annual Meeting, vol. 64, no. 1, pp. 1308–
1312.
[10] “Shelter Operations: Pet-Friendly Shelters.” SAMHSA, US, 2021.
[11] S. Purcell, “As animal shelters fill up, new technology helps reunite lost
pets with owners,” reporter newspapers & Atlanta Intown, 08-Jul-2021.
[12] D. Hughes, “Pets and the net: Helping animals in need: Blog: Online
Digital Marketing courses,” Digital Marketing Institute, 18-Feb-2020. [Online].
Available: https://digitalmarketinginstitute.com/blog/pets-andthe-net-helping-
animals-in-need
[13] “Urgent Need for Pet Adoption - Find Dogs & Cats & More | Petfinder”,
Petfinder. [Online]. Available: https://www.petfinder.com/.
[14] “Adopt a dog or cat today! Search for local pets in need of a home -
AdoptaPet.com”, Adoptapet.com. [Online]. Available:
https://www.adoptapet.com/.
[15] “The Shelter Pet Project”, The Shelter Pet Project. [Online]. Available:
https://theshelterpetproject.org/.
[16] “Petango.com Online Pet Adoption & More. Welcome a homeless pet
into your home today.”, Petango.com. [Online]. Available:
https://www.petango.com/.

You might also like