0% found this document useful (0 votes)
205 views69 pages

Ilovepdf Merged

This document outlines the sections and topics covered in a project on a blood bank mobile application. Section 1 provides an introduction and overview, explaining the objectives to create an app that allows users to view donor blood type and location information and register as donors. Section 2 will cover analyzing the existing system and proposed new system. Section 3 will discuss designing the system modules, diagrams and user interface. Sections 4-6 will cover implementing, testing and evaluating the app, discussing results, and considering advantages and limitations. Section 7 will provide a conclusion and discuss potential future work.

Uploaded by

zyann da2
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
205 views69 pages

Ilovepdf Merged

This document outlines the sections and topics covered in a project on a blood bank mobile application. Section 1 provides an introduction and overview, explaining the objectives to create an app that allows users to view donor blood type and location information and register as donors. Section 2 will cover analyzing the existing system and proposed new system. Section 3 will discuss designing the system modules, diagrams and user interface. Sections 4-6 will cover implementing, testing and evaluating the app, discussing results, and considering advantages and limitations. Section 7 will provide a conclusion and discuss potential future work.

Uploaded by

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

SR.

NO TITLE SIGN
1 INTRODUCTION

1.1 Abstract

1.2 Objective

1.3 Purpose

1.4 scope

1.5 Module explanation

1.6 Usability

2 SYSTEM ANALYSIS

2.1 Existing System

2.1.1 Drawbacks of Existing System

2.2 Proposed System

2.3 Requirement Analysis

2.4 Software Analysis

3 SYSTEM DESIGN

3.1 Module Division

3.2 Class Diagram

3.3 Flow Diagram

3.4 Use Case Diagram

3.5 Object Diagram


3.6 Component Diagram

3.7 User Interface Design

4 IMPLEMENTATION AND
TESTING

4.1 Introduction

4.2 Building Phase

4.3 Mobile Application

4.4 Testing Phase

4.5 System Evalution

4.6 Conclusion

5 REQUIREMENT AND
ANALYSIS

5.1 Agile Development

5.2 Planning and Requirements


Analysis

5.3 Design Phase

5.4 Mobile Application

5.5 Firebase Database

6 RESULTS AND DISCUSSION

6.1 Introduction

6.2 Discussions

6.3 Advantage of Mobile Application

6.4 Limitation of Android


Application
7 CONCLUSION AND FUTURE
WORK

7.1 Conclusion

7.2 Future Work


SEAT NO -2011014

Chapter 1-Introduction
1.1 Abstract
• Blood bank is android application which utilizes the Firebase Realtime Database inorder to
gather & sort out the data of each of the blood benefactors with a quick and efficient seek.
• (A google-services.Json) record should be produced for the android application utilizing the
Firebase Console).
• This venture then goes about as very important job in order to spare the existence of
individuals and which is also likewise to its central point. The undertaking of the android
(The blood bank) framework was created so that the clients see the data about the enrolled
blood contributors, for example, name, address, and some other such close to the home data
alongside their subtle element of the blood groups and the other beneficial data of gives
away/donor.
• This task additionally has one login page where the client’s required to enlist the credentials
and at exactly note at which point can he see the accessibility of require blood & similarly
may likewise then enlist himself to give away the needed blood in an event which he wishes
• With each passing year the need of blood is increasing. Though “Blood Donation Camps”
are playing significant role in
• creating awareness about blood donation, still we face shortage of blood during emergency
situations like natural
• Disasters.

1.2 Objective
• Many times people are willing to donate blood but are not satisfied with the current system
like many people think even if
• they donate blood free of cost to blood bank’s or hospital and further these organizations
will sell their blood at a high cost
• to the needy ones.
• Many people are not aware about when and where “Blood Donation Camps” are conducted.
• The aim is to design a system
• that provides solution to all such type of problems. Accessibility and availability are the
criteria on which an application is
• designed for its success in the IT market. In this system we will make sure that also in the
worst case the blood will be
• made available to the patient. There will be three levels as user, Blood Banks and Donors.
The Donor or blood bank supply and it can be leveled with loval blood bank blood as per requirement.
103-SANDEEP MANDAL
SEAT NO -2011014
1.3 Purpose
• In this proposed system, receiver with an android application requests blood on the cloud
and this request will be sent to
• near blood bank and donors who are registered on cloud. Nearby donors and blood banks
will be traced with the help of
• global positioning system. Hence, Requested receiver will get blood. Also we are using Rest
API services in our proposed
• system.
• The E-Blood Donation App is the one of the best possible concept for the provision of
healthcare services. We investigate
• the requirements in term of communication, storage, processing and development platform
to make it acceptable solution.
• We may provide timely access to blood donors and requester to handle emergency.

• direct call routing will be done by using an android application. Using “Eligible Donor
Finding Algorithm”, the most eligible donors list will be found and the contact numbers will
be given as an input to the system, for
• routing the call to the eligible donors. A blood bank database will be created by collection
of details through Web
• Application designed. When the results are found, they are displayed for hospital to see. The
results contains the basic
• information of the blood banks that have the specific blood group, ordered by the
geographical proximity.

1.4 Scope
• will help to society in emergency situations and will provide users requirement with the help
of android application and
• blood will be easily made available to needy person
• The online blood bank databases available today does not provide direct contact between
donor and recipient. This is a
• major drawback particularly in cases where there is an urgent need of blood. This project
aims to overcome this
• communication barrier by providing a direct call routing technique using Asterisk hardware.
• Blood bank databases are
• generated by collecting information from various sources such as NSS; NGO’s, hospitals,
blood banks and internet. The

103-SANDEEP MANDAL
SEAT NO -2011014
• data collected will be maintained in a central server. This central server will be associated
with a Tollfree number that can
• be used to connect to it. Based on the algorithm the most eligible donor is found out. From
the server the call from the
• required person is routed to the eligible donor's number.
• Human health is new horizons for health that offers healthcare services by utilizing the
mobile devices and communication
• technologies. In health care services, blood donation is a complex process and consumes
time to find some donor who has
• the compatibility of blood group with the patient. They have created an android based
application for blood donation such
• as mHealth. This is a solution to establish a connection between the requester and donor at
anytime and anywhere. The
• objective of this application is to provide the information about the requested blood and
number of available donors
• around those The blood is a lifesaver if there ever emerges any events of the emergency
needs. The errand of the blood bank is to get the blood from the different types of people
caning to donate the blood, to manage blood bundles’ database and to provide the needed
blood in between of the need to the mending donation if there emerges any events of
emergencies

• The issue here isn't the lacking number of the people caning to donate the blood, but finding
any enthusiastic supporter/donor at the advantageous time. We have to make an arrangement
of people who may help each other in between of an emergency.

• The android application in this project prompts the updates of the information for the
supporters/donors where the chief gets the entire information about the blood bank system.
Give away/donor can then be incited into entering a man's purposes of information, like
name, email, phone number, and the blood group.

• At the usual time of any blood need, one can quickly check the red blood blank android
application database or recuperating database planning related or explicit the blood gathering
and the interface with them through android application.

1.5 Module Explanation

• blood bank android application gives away all over information of the blood bank android
application focused on your region. A noteworthy number of people caning to donate the

103-SANDEEP MANDAL
SEAT NO -2011014
blood can be pulled into using this android application. Since about every one now carries
mobile

103-SANDEEP MANDAL
SEAT NO -2011014
• phones with them, to ensure minute region surveillance and correspondent changes. Only an
enrolled individual self, with the capacity to give away the blood, can have the ability to get
to the society

• In this android application we are using the GPS advancements which can be used to be
pursued the course to the blood bank

1.6 Usability

• The customer can get the course to be accomplished using the pin for each region and they
will not be asking physically, thus time can be saved. With uprising of correspondence
nowadays, one needs headways upgrades to all territories, especially for prosperity space.

• This report gives an android application a system which is planned to give away most
information needed for the blood social circle or affair which is reliably asked for an
advancing reason. The system depicts the convenience and the ease to contact with different
suppliers and dejects for different blood social events.

• The android application acquaints on the insightful contraptions with the assurance of the
arrival of a greatest possible no. of the red blood benefactors within the Mumbai and pune.

103-SANDEEP MANDAL
SEAT NO -2011014

Chapter 2

System Analysis
2.1 Existing System
The existing system and some of its drawbacks which force us to plan this whole idea
of developing an online Blood bank management system.
Let us take an example: Suppose there is some patient who needs blood urgently then
how you come to know about this condition, you will not even able to reach the patient.
People will go from one blood bank to another to get the blood which is time-
consuming and sometimes not able to reach at the time.
In some blood banks, sometimes we get the blood but that is not sufficient so we need
for another blood bank for more blood.
If some person wants to donate the blood, he/she needs to come to the bank and need to
fill the form then the first doctor will check his blood group after that he will allow donating.

2.1.1 Drawbacks of Existing System

 This process is so much time-consuming.


 There is a threat that a person who is donating blood may be doing for the money and
donating several times which will cause weakness.
 There is no proper way of getting to know that which blood group is present where
and in how much quantity.
 It might be the case that manager can take a commission as well as extra charges to
arrange the blood for rescue.
So, above this is the whole process of getting blood initially which has been improved
by our system we can make it a little bit more simple and fast process to automate it.
We can automate this process by creating an application that will allow you to use
these things in a fully functional way and the application will include the following
entities (an entity is a real-world object).
2.2 Proposed System

• The whole process of getting blood initially which has been improved by our system
we can make it a little bit more simple and fast process to automate it. We can

103-SANDEEP MANDAL
SEAT NO -2011014
automate this process by creating an application that will allow you to use these things
in a fully functional way and the application will include the following entities (an
entity is a real-world object).

• This Systems design is simply the design of systems. It implies a systematic and
rigorous approach to design – an approach
• demanded by the scale and complexity of many systems problems. The purpose of
system design is to create a technical
• solution that satisfies the functional requirements for the system design is to create a
technical solution that satisfies the
• functional requirements for the system At this point in the project lifecycle there
should be a functional specification,
• containing a complete description of the operational needs of the various
organizational entities that will use the new system.
• The challenge is to translate all of this information into Technical Specification that
accurately describe the design of the system, and that can be used as input to system
construction.
• The functional Specification produced during system requirements analysis is
transformed into a physical architecture. System components and distributed across
the physical architecture, usable interface are designed and prototyped, and technical
specification are created for the application developers, enabling them to build and
test the system.
• Understanding the factors that motivate donors to donate blood will facilitate
improvements in the process of “Blood Donation”.
• Donation incentives are often used attract donors for donating blood. A crosssectional
study was designed to understand donors’ attitudes towards blood donation.
• Many times people are interested in donating blood but are not satisfied with current
system like they donate blood free of cost to the blood banks or hospitals, but still
when one needs blood in emergency situations they have to pay a lot of money for it.

• To motivate people for blood donation and to help patients receive blood in
emergency situations, we have designed a
• application to overcome all the problems which the current offline as well as online systems
face. If in emergency a patient requires blood, using this application we’ll not just be able to
contact Blood Bank and Hospitals but can also seek help from
103-SANDEEP MANDAL
SEAT NO -2011014

2.3 Software Analysis

Android Studio:
Android Studio is the official integrated development environment (IDE) for Android
platform development. It was announced on May 16, 2013 at the Google I/O conference.
Android Studio is freely available under the Apache License 2.0.

Firebase Database
Firebase is a platform developed by Google for creating mobile and web applications. It was
originally an independent company founded in 2011. In 2014, Google acquired the platform[1]
and it is now their flagship offering for app development.
When you connect your app to Firebase, you’re not connecting through normal HTTP. You’re
connecting through a WebSocket. WebSockets are much, much faster than HTTP. You don’t
have to make individual WebSocket calls, because one socket connection is plenty. All of your
data syncs automagically through that single WebSocket as fast as your client’s network can
carry it.
Firebase sends you new data as soon as it’s updated. When your client saves a change to the
data, all connected clients receive the updated data almost instantly.

PHP:
PHP is a general-purpose scripting language that is especially suited to server-side web
development, in which case PHP

103-SANDEEP MANDAL
SEAT NO -2011014
generally, runs on a web server. Any PHP code in a requested file is executed by the PHP
runtime, usually to create dynamic web page content or dynamic images used on websites
or elsewhere. It can also be used for command-line scripting and client-side graphical user
interface (GUI) applications.

JAVA JDK and JRE:


We are using Java Development Kit in order to execute the Java code. The Java Development
Kit (JDK) is an implementation of either one of the Java SE, Java EE or Java ME platforms.
The JDK includes a private JVM and a few other resources to finish the recipe to a Java
Application. The Java Runtime Environment (JRE), also known as Java Runtime, is part of
the Java Development Kit (JDK), a set of programming tools for developing Java
applications. The Java Runtime
Environment provides the minimum requirements for executing a Java application; it consists
of the Java Virtual Machine
(JVM), core classes, and supporting files.

103-SANDEEP MANDAL
SEAT NO -2011014

Chapter 3

System Design
3.1 Module Division
The Project is divided into 3 main modules as follows-
A. USER INTERFACE MODULE:
User will communicate with the system using user
interface module. It will include following sub-modules as follows-
Login:
To login in the system user has first register himself/herself. After successful
Registration user can login into the system. Donors:
From this module user can search donor for blood and can also refer people to become a
donor. Donor can also get access
to information like when he last donated blood or when he will be eligible to donate
blood.
Donor Registration:
In this module, people who are interested in donating blood get registered in my app
and give his overall details related
to him, i.e. he fills in a registration form by giving the total details such as name, address,
city, sex, weight, DOB, blood
group, telephone numbers, e-mail address, etc. He was also given two fields’ username
and password to fill such that he
was a registered donor and he can enter the login form with his username and
password and can modify his details if needed.
Update Profile:
The registered donor only is able to modify his details; no other person can modify his
details as the login form restricts
others from entering the username and password providing high security for the details
given by the donor. After giving

103-SANDEEP MANDAL
SEAT NO -2011014
the username and password it checks for the donor whether he is an existing donor or
not and if the username and
password matches, he can then able to modify his total details.
Donor Search:
The people who are in need of blood can search for getting the details of donors having
the same blood group and within
certain proximity. Not only this, donor’s present in different city can also be searched by
searching with respect to that
particular city. If no match is found for a city or a particular area with the respective
blood group selected then an alert
with ‘SORRY DONORS ARE NOT AVAILABLE FOR THE FOLLOWING BLOOD GROUP AND
AREA’ gets displayed.
Acceptors:
This module helps user to find blood group. When user click on find a blood; system ask
him to enter blood group user
wants to search. After entering the blood group, system will search for the availability of
the blood group and give them
the list of the donors who has the same blood group within certain area.. Clicking on
logout button user can log out from the system. Acceptor can some the following

Search Results:
This module displays the search results of the blood group. It displays the Address and
the contact number based on user
preferences he can direct call to selected contact by using Direct Calling with Call API
which is provided by android.
Life Saving Contacts:
If at all the people in search of a donor doesn’t get any match for their area and group
then they will be provided a
service i.e. he will be given a Contact Person details for their nearby cities who have the
details of many other donors
with him. The people in search can call him and can get the details of the donors and can
be provided services in this
manner. But this life saving contact persons can be available only for a limited number of
cities but not for all.

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

CLASS DIAGRAM

The class diagram here is used to show the different objects in the red blood bank system, their
attributes, their operations & the relationships among them

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

Flow Diagram

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

Use Case Diagram

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

DFD DIAGRAM

Zero Level Data Flow Diagram(0 Level

DFD) Of Blood Bank Management

System:

This is the Zero Level DFD of Blood Bank Management System, where we have eloborated the high
level process of Blood Bank. It’s a basic overview of the whole Blood Bank Management System or
process being analyzed or modeled. It’s designed to be an at-a-glance view of Donor,Order and
Patient showing the system as a single high-level process, with its relationship to external entities of
Blood, Blood Group and Sells. It should be easily understood by a wide audience, including
Blood,Sells and Donor In
zero leve DFD of Blood Bank Management System, we have described the high level

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

DFD DIAGRAM FOR DONOR

High Level Entities and proccess flow of Blood Bank Management System:

• Managing all the Blood

• Managing all the Blood Group

Managing all the Sells

• Managing all the Blood Stock • Managing all the Donor

• A data flow diagram is graphical tool used to describe and analyze movement of data
through a system. These are the central tool and the basis from which the other
components are developed.
• The transformation of data from input to output, through processed, may be described
logically and independently of physical components associated with the system.
• These are known as the logical data flow diagrams. The physical data flow diagrams show
the actual implements and movement of data between people, departments and
workstations.
• A full description of a system actually consists of a set of data flow diagrams. Using two
familiar notations Yourdon, Gane and Sarson notation develops the data flow diagrams.

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

• Each component in a DFD is labeled with a descriptive name. Process is further identified
with a number that will be used.

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

ER-DIAGRAM

Following are the main components and its symbols


in ER Diagrams:

Rectangles: This Entity Relationship Diagram


symbol represents entity types

Ellipses : Symbol represent attributes

Diamonds: This symbol represents relationship types

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

Lines: It links attributes to entity types and entity


types with other relationship types

Primary key: attributes are underlined

Double Ellipses: Represent multi-valued attributes

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

USE CASE DIAGRAM


• In the Unified Modeling Language (UML), a use case diagram can summarize the details of your
system’s users (also known as actors) and their interactions with the system. To build one, you’ll
use a set of specialized symbols and connectors. An effective use case diagram can help your
team discuss and represent:
• Scenarios in which your system or application interacts with people, organizations, or external
systems
• Goals that your system or application helps those entities (known as actors) achieve
• The scope of your system

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

ACTIVITY DIAGRAM

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

Chapter 4

Implementation and Testing

4.1 Code Place Core segments)

-Login Activity

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle; import
android.text.TextUtils; import
android.view.View; import
android.widget.Button; import
android.widget.EditText; import
android.widget.TextView; import
android.widget.Toast;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task; import
com.google.firebase.auth.AuthResult; import
com.google.firebase.auth.FirebaseAuth; import
com.google.firebase.database.DatabaseReference; import
com.google.firebase.database.FirebaseDatabase;

import java.util.HashMap;

public class RegisterActivity extends AppCompatActivity { private


EditText username; private EditText name; private EditText email; private
EditText password; private Button register; private TextView loginUser;

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

private DatabaseReference mRootRef;


private FirebaseAuth mAuth;

ProgressDialog pd;

@Override protected void onCreate(Bundle


savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);

username = findViewById(R.id.username); name =


findViewById(R.id.name); email =
findViewById(R.id.email); password =
findViewById(R.id.password); register =
findViewById(R.id.register); loginUser =
findViewById(R.id.login_user);

mRootRef = FirebaseDatabase.getInstance().getReference();
mAuth = FirebaseAuth.getInstance(); pd
= new ProgressDialog(this);

loginUser.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
startActivity(new Intent(RegisterActivity.this ,
LoginActivity.class));
}
});

register.setOnClickListener(new View.OnClickListener() {
@Override
103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

public void onClick(View v) {


String txtUsername = username.getText().toString();
String txtName = name.getText().toString();
String txtEmail = email.getText().toString();
String txtPassword = password.getText().toString();

if (TextUtils.isEmpty(txtUsername) ||
TextUtils.isEmpty(txtName)
|| TextUtils.isEmpty(txtEmail) ||
TextUtils.isEmpty(txtPassword)){
Toast.makeText(RegisterActivity.this, "Empty credentials!",
Toast.LENGTH_SHORT).show();
} else if (txtPassword.length() < 6){
Toast.makeText(RegisterActivity.this, "Password too short!",
Toast.LENGTH_SHORT).show();
} else { registerUser(txtUsername , txtName , txtEmail ,
txtPassword);

}
}
});
}

private void registerUser(final String username, final String name, final


String email, String password) {

pd.setMessage("Please Wait!"); pd.show();

mAuth.createUserWithEmailAndPassword(email ,
103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

password).addOnSuccessListener(new OnSuccessListener<AuthResult>()
{

@Override
public void onSuccess(AuthResult authResult) {

HashMap<String , Object> map = new


HashMap<>(); map.put("name" , name);
map.put("email", email); map.put("username" ,
username); map.put("id" ,
mAuth.getCurrentUser().getUid()); map.put("bio" ,
""); map.put("imageurl" , "default");
mRootRef.child("Users").child(mAuth.getCurrentUse
r().getUid()).setValu
e(map).addOnCompleteListener(new
OnCompleteListener<Void>() {

@Override public void onComplete(@NonNull


Task<Void> task) { if (task.isSuccessful()){
pd.dismiss();
Toast.makeText(RegisterActivity.this, "Update the
profile " +
"for better expereince",
Toast.LENGTH_SHORT).show();
Intent intent = new Intent(RegisterActivity.this ,
MainActivity.class);

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK |
Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent); finish();

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

}
}
});

}
}).addOnFailureListener(new OnFailureListener() {
@Override public void onFailure(@NonNull
Exception e) { pd.dismiss();
Toast.makeText(RegisterActivity.this,
e.getMessage(),
Toast.LENGTH_SHORT).show();
}
});

}
}

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

Start Activity import


androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle; import
android.text.TextUtils; import
android.view.View; import
android.widget.Button; import
android.widget.EditText; import
android.widget.TextView; import
android.widget.Toast;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task; import
com.google.firebase.auth.AuthResult; import
com.google.firebase.auth.FirebaseAuth; import
com.google.firebase.database.DatabaseReference; import
com.google.firebase.database.FirebaseDatabase;

import java.util.HashMap;

public class RegisterActivity extends AppCompatActivity { private


EditText username; private EditText name; private EditText email; private
EditText password; private Button register; private TextView loginUser;

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

private DatabaseReference mRootRef;


private FirebaseAuth mAuth;

ProgressDialog pd;

@Override protected void onCreate(Bundle


savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);

username = findViewById(R.id.username); name =


findViewById(R.id.name); email =
findViewById(R.id.email); password =
findViewById(R.id.password); register =
findViewById(R.id.register); loginUser =
findViewById(R.id.login_user);

mRootRef = FirebaseDatabase.getInstance().getReference();
mAuth = FirebaseAuth.getInstance(); pd
= new ProgressDialog(this);

loginUser.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
startActivity(new Intent(RegisterActivity.this ,
LoginActivity.class));
}
});

register.setOnClickListener(new View.OnClickListener() {
@Override
103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

public void onClick(View v) {


String txtUsername = username.getText().toString();
String txtName = name.getText().toString();
String txtEmail = email.getText().toString();
String txtPassword = password.getText().toString();

if (TextUtils.isEmpty(txtUsername) ||
TextUtils.isEmpty(txtName)
|| TextUtils.isEmpty(txtEmail) ||
TextUtils.isEmpty(txtPassword)){
Toast.makeText(RegisterActivity.this, "Empty credentials!",
Toast.LENGTH_SHORT).show();
} else if (txtPassword.length() < 6){
Toast.makeText(RegisterActivity.this, "Password too short!",
Toast.LENGTH_SHORT).show();
} else { registerUser(txtUsername , txtName , txtEmail ,
txtPassword);

}
}
});
}
ProgressDialog pd;
@Override protected void onCreate(Bundle savedInstanceState) {

Super.onCreate(savedInstanceState); setContentView(R.layout.activity_register);

Username = findViewById(R.id.username); name = findViewById(R.id.name); email =


findViewById(R.id.email); password = findViewById(R.id.password); register =
findViewById(R.id.register); loginUser = findViewById(R.id.login_user);

mRootRef = FirebaseDatabase.getInstance().getReference();

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

mAuth = FirebaseAuth.getInstance(); pd = new ProgressDialog(this);

loginUser.setOnClickListener(new View.OnClickListener() {

@Override public void onClick(View v) { startActivity(new Intent(RegisterActivity.this ,

LoginActivity.class));

});

Register.setOnClickListener(new View.OnClickListener() {

@Override

Public void onClick(View v) {

String txtUsername = username.getText().toString();

String txtName = name.getText().toString();

String txtEmail = email.getText().toString();

String txtPassword = password.getText().toString();

If (TextUtils.isEmpty(txtUsername) ||

TextUtils.isEmpty(txtName)

|| TextUtils.isEmpty(txtEmail) || TextUtils.isEmpty(txtPassword)){

Toast.makeText(RegisterActivity.this, “Empty credentials!”,

Toast.LENGTH_SHORT).show();

} else if (txtPassword.length() < 6){

Toast.makeText(RegisterActivity.this, “Password too short!”, Toast.LENGTH_SHORT).show();

} else { registerUser(txtUsername , txtName , txtEmail , txtPassword);

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

private void registerUser(final String username, final String name, final


String email, String password) {

pd.setMessage("Please Wait!"); pd.show();

mAuth.createUserWithEmailAndPassword(email ,
password).addOnSuccessListener(new OnSuccessListener<AuthResult>()
{

@Override
public void onSuccess(AuthResult authResult) {

HashMap<String , Object> map = new


HashMap<>(); map.put("name" , name);
map.put("email", email); map.put("username" ,
username); map.put("id" ,
mAuth.getCurrentUser().getUid()); map.put("bio" ,
""); map.put("imageurl" , "default");
mRootRef.child("Users").child(mAuth.getCurrentUse
r().getUid()).setValu
e(map).addOnCompleteListener(new
OnCompleteListener<Void>() {

@Override public void onComplete(@NonNull


Task<Void> task) { if (task.isSuccessful()){
pd.dismiss();
Toast.makeText(RegisterActivity.this, "Update the
profile " +
"for better expereince",
Toast.LENGTH_SHORT).show();

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

Intent intent = new Intent(RegisterActivity.this ,


MainActivity.class);

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK |
Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent); finish();
}
}
});

}
}).addOnFailureListener(new OnFailureListener() {
@Override public void onFailure(@NonNull
Exception e) { pd.dismiss();
Toast.makeText(RegisterActivity.this,
e.getMessage(),
Toast.LENGTH_SHORT).show();
}
});

}
}

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

Test Cases
A test case is a tool used in the process. Test cases may be prepared for software verification
and software validation to determine if the product was built according to the requirements of
the user. Other methods, such as reviews, may be used early in the life cycle to provide for
software validation.

TESTING PHASE

3.1 LEVELS OF TESTING

The aim of the testing process is to identify all the defects in the website. It is not practical to
test the website with respect to each value that the input request data may assume.
Testing provides a practical way of reducing defects in the website and increasing the user’s
confidence in adeveloped system Testing consists of subjecting the website to a set of test
inputs and observing if the program behaves as expected.

If the program fails to Testing behave as expected then conditions under which failure occurs
are noted for later debugging and correction. The following things are associated with testing:
Failure is a mundestation of an error. But the mere presence of an error may not necessarily
lead to a failure. A test case is the triplet [1, S. O] where I am data input to the system. S is the
state of the state of the system at which the data is input. O is the expected output of the
system A test suite is the set of all test cases with which a given software product is to be tested

3.2 FUCTIONAL TESTING


Here the system is a black box whose behavior is determined by studying its inputs and related outputs.
The key problem is to select the inputs that have a huge probability of being members of a set in may
case; the selection of these test cases is based on the previous studies.

3.3 STRUCTURAL TESTING

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

A great deal can be learnt about the strength and the limitation of the application by examine the
manner in which the system breaks. This type of testing has two limitations. It tests failure behavior of
the system circunstances may arise through an unexpected combination of events where the node
placed on the system exceeds the maximum anticipated

The structure of each module was checked at every step. Some structures were firstly wranticipate

Came to notice at the time of the connectivity.

3.4 UNIT TESTING


In unit testing the entire individual functions and modules were tested independently. By following this
strategy all the error in coding were identified and conected. This method was applied in combination
with the white and black box testing techniques to find the errors in each module.

Unt testing is normally considered an adjunct to the coding step. Unit test case design was started after
source level code had been developed, reviewed, and verified for correct syntax. A review of design
information provides guidance for establishing test cases that were likely to uncover enors in each of the
categories discussed above. Each test case was coupled with a set of expected results.

3.41 TESTING ADMIN LOGIN FORM


This is used for ky n of admistrator of de system In this we enter the username and password if both are
corect administration page will open otherwise if any of data is wrong it will get redirected back to the
login page and again ask for username and password

TEST FOR ADMIN MODULE


USER ACCOUNT ADDITION

In this section the admin can verdty User deus hom student academics ao and then only add stalet detak
to mu ibrary database à contains add and delete butons user cick add buton data will be added to stalent
database and he cicks delete button the student data will be delete

3.5 INTEGRITY TESTING


Integrity pluses the catine mduke uning the botom-up approach and tested them. Integrty testing is a
systematic technique for contracting the program structure while at the same time conducting tests to
uncover errors associated with interfacing The objective was to take unt tested modules and bald a
program structure that has been deuted by design

The testing strategy has a different approaches namely the top-down approach in which

The integration is carried out from the top-level module to the bottom and the bottom-up approach

In which the integration is carried out from the low-level module to the top The modules were tested
using the bottom-up approach by introducing shibs for the toplevel functions. This test was used to
identify the entoes in the interfaces, the errors in passing the parameten between the functions and to
connect them.

103-SANDEEP MANDAL
SEAT NO-2011014. 103-SANDEEP MANDAL

3.5.1 THERE ARE TWO TYPES OF TESTING AVAILABLE

35.1.1 BLACK BOX TESTING

In black box testing the signature of the program is not considered Test cases are decided solely on the
basis of the requirements or specifications of the program or module, and the consideration. For
selection of test choses. In this section, we will present some techniques for generating test cases for
black-box teaing. In black-box testing the tag only knows the inputs that can be ghen to the system and
what output the system can give. In oder words the hass for deciding test cae in factional tag the
requirement or specification of the system module. The km of eing obvious functional or behavioural
testing

35.1.2 WHITE BOX TESTING


In the previous section we discmed testing which is concerned with the finction that the tested program
is proposed to program and does not deal with the internal structure of the program responsible is
actualy implementing the function. These black-bos ang is coccared with functionality rather than
implementation of the program. On the other hand, white-box testing is concerned with testing
implementation of the program. The intent of this testire is not to exercise all the different input or
output conditions although that may be buy products) but to exercise the different programming
structures and data structures used in the program White-box testing is abo called structure testing and
we will use the two seiner changeably to test the structures of structural testing aims to achieve test
cases that force the desired coverage of different structures various criter have been proposed for this.
Like the criteria for functional testing which e frequently imprecise, the criteria for structural testing are
generdy que precise as they are based on program stuchers, which are mad and prece

103-SANDEEP MANDAL
CHAPTER 5
REQUIREMENTS AND ANALYSIS

Non-functional Requirements :-

These requirements that specify the criteria used to judge the operation of the system. They were
Constructed in agreement with functional requirements that define specific behavior and
Functions. They include:
i. Usability – the system interface should be easy to use.
ii. Reliability and availability – the system should be reliable and always available to

Perform. Tasks requested by the user.


iii. Scalability – the system should be able to adopt additional functionalities. Additional
data
Should be easy to incorporate.

iv. Integrity – the system being data oriented, it should ensure that the data analyzed and
Stored is not altered or corrupted.
v. Performance – the system should have an acceptable response time while performing
its

Functions.
vi. Security – The system should allow only authorized users to use its functionalities

The responses received from the respondents were highly valuable and very informative in
making

The decision of whether to the proposed system was feasible. The features of the system were
Refined based on the feedback collected by the researcher.
The findings that were derived from the
Respondents were: Android platform would be the one preferred for the development of the
mobile
Application.

103-SANDEEP MANDAL
The current career guidance method has major challenges that need to be
Addressed.
The proposed system which includes the use of mobile technology would be

Acceptable by majority of the users.


The system uses mobile technology hence it is paramount to know smart phone availability
among
The students. Apart from one student who reported of not having mobile phones, most of them

Owned smart phones. The chart below in Figure 4.6 illustrates mobile phone ownership among
the
Students.
The respondents were asked to indicate the operating system on their mobile phones in order to

Have a solid base on which the operating system should the system be based on. Figure 4.7
shows
Most them have Android phones 93.3% ,6.7% have IOS phone.
3. Technical Feasibility

In this step, we verify whether the proposed systems are technically feasible or not. i.e., all the
technologies required to develop the system are available readily or not. Technical Feasibility
determines whether the organization has the technology and skills necessary to carry out the
project and how this should be obtained. The system can be feasible because of the following
grounds: All necessary technology exists to develop the system. This system is too flexible and it
can be expanded further. This system can give guarantees of accuracy, ease of use, reliability
and the data security. This system can give instant response to inquire. Our project is technically
feasible because, all the technology needed for our project is readily availability

4. Application is:

1. Easy Accessibility: Records can be easily accessed and store and other information
respectively.
2. User Friendly: The Application will be giving a very user friendly approach for all user
3. Efficient and reliable: Maintaining the all secured and database on the server which will
be accessible according the user requirement without any maintenance cost will be a

103-SANDEEP MANDAL
very efficientas compared to storing all the customer data on the spreadsheet or in
physically in the record books.
4. Easy maintenance: “Online Blood Bank System” is design as easy way. So maintenance is
also easy.

103-SANDEEP MANDAL
Software Development Life Cycle Model

WAYTERFALL MODEL

• The waterfall model was selected as the SDLC model due to the following reasons:
• The waterfall model is a breakdown of project activities into linear sequential phases,
where each phase depends on the deliverables of the previous one and corresponds to a
specialization of tasks.[
• The approach is typical for certain areas of engineering design. In software
development,[1]
• it tends to be among the less iterative and flexible approaches, as progress flows in
largely one direction (“downwards” like a waterfall) through the phases of conception,
initiation, analysis, design, construction, testing, deployment and maintenance.

• The waterfall development model originated in the manufacturing and construction


industries[citation needed];

• where the highly structured physical environments meant that design changes became
prohibitively expensive much sooner in the development process.

• When first adopted for software development, there were no recognised alternatives for
knowledge-based creative work.

103-SANDEEP MANDAL
103-SANDEEP MANDAL
• Requirements were very well documented, clear and fixed.
• Technology was adequately understood.
• Simple and easy to understand and use.
• There were no ambiguous requirements.
• Easy to manage due to the rigidity of the model. Each phase has specific deliverables and
a review process.
• Clearly defined stages.
• Well understood milestones.Easy to arrange tasks

Project clarification is the process of selecting a project request for further study. When a
system development or modification request is made, the first systems activity, the preliminary
investigation, begins the activity has three parts: Request clarification, feasibility study and
project appraisal.

103-SANDEEP MANDAL
• Many request from employees and users in organization are not clearly stated. Therefore
before any systems investigation can be considered, the project request must be
examined to determine preciously what the originator wants. This is called Request
clarification. As important outcome of the preliminary investigation is the determination
that the system request in feasible.

Feasibility Study: The feasibility study is performed to determine whether the proposed
system is viable considering the Technical, Operational and Economical factors. After
going through feasibility study we can have a clear-cut view of the system’s benefits and
drawbacks.

103-SANDEEP MANDAL
Chapter 6

Results and Discussion


When you open the app the application will have two option

1) REGISTER BUTTON
2) LOGIN BUTTON

• When user click on register button it will we direct toward the registration page
where user have to fill all the information

103-SANDEEP MANDAL
• Its mandatory to fill required information otherwise application will not be submitted
anduser will unable to register

• Application will show the error (EMPTY CREDENTIALS) as shown in image below

103-SANDEEP MANDAL
103-SANDEEP MANDAL
• If the e-mail address is not formated correctly the application will show the error and

that (Email is badly formatted)

103-SANDEEP MANDAL
• Once the user is registered it have to login will correct email and password

103-SANDEEP MANDAL
103-SANDEEP MANDAL
103-SANDEEP MANDAL
• Once the user is successfully logged in the list of donors will be displayed
• Once the user is registered and logged in successfully the firebase database will
update the user in firebase

103-SANDEEP MANDAL
• Authentication Window

103-SANDEEP MANDAL
Sign-in method is given with help of email and password

103-SANDEEP MANDAL
Chapter 7
Conclusion and Future work
CONCLUSION

• The proposed Blood bank system, which is linked the blood bank with the donors by
sending messages to the donor who registered in the blood bank as a constant donor.
• To inform them of a shortfall in one of the blood groups both by his platoon.
• The application used by the blood smartphone through smartphones.
• It characterized by ease of use in organizing the blood donation.
• Helps Blood Banks to automate blood donor and depository online.
• Encourages blood donors to donate.
• Helps people find blood donors in times of need.
• Users can navigate the current location without GPS system on ANDROID
Platform Users can navigate the current location without GPS system on GSM
platform. Users can tracking the location of another users. Users can maintain
the restriction and monitoring unlisted members. Brid gap between rrent user’s
location and nearest blood bank. The project described here has a lot of benefits.

FUTURE WORK

• The next version of our system can analyze settlement diseases to predict required
blood quantities and types in the near future, for example the average number of
children who suffer from the next year and percentage of each required blood type.
• Moreover, machine learning algorithms will be implemented for sending personalized
notifications for certain donators in the right time. The next version can also classify
and organize requests from hospitals based on the criticality of cases (i.e.. ranking
patients)information gathered from hospitals requests, our system can predict the
required quantities and types of blood types in the near future.
• We plan to add extra features to improve the satisfaction level for donators, patients,
blood banks, hospitals by studying current technologies that aid our implementation.
IoT will be implemented deeply by designing special wearable devices that notify
patients with vital measurements.
• Also it can call donators and inform family members and friends automatically.

103-SANDEEP MANDAL
REFERENCES

Akshay Singh, Sakshi Sharma, Shashwat Singh. (2016). Android Application Development using Android
Studio and PHP Framework. International Journal of Computer Applications, 5-8.

Bhavsar, S. (n.d.). What is Laravel framework? Retrieved June Saturday, 2018, from Quora:
https://www.quora.com/What-is-Laravel-framework

Friesen, J. (2016, August). Android Studio for beginners, Part 1: Installation and setup. Retrieved June
Tuesday, 2018, from JAVAWORLD: https://www.javaworld.com/article/3095406/android/android-studio-
for-beginners-part-1-installation-and-setup.html

Gupta, S. (2017, December). What is Laravel framework? Retrieved from Quora:


https://www.quora.com/What-is-Laravel-framework

Nilsson, J. (2017, August). What is Laravel framework? Retrieved from Quora:


https://www.quora.com/What-is-Laravel-framework

Prof. Snigdha, Varsha Anabhavane, Pratiksha lokhande, Siddhi Kasar, Pranita. (2016). Android Blood Bank.
Nternational Journal of Advanced Research in Computer and Communication Engineering, 5(4), 612-618.

Snigdha, Varsha Anabhavane, Pratiksha lokhande, Siddhi Kasar, Pranita. (2016, April). Android Blood
Bank. International Journal of Advanced Research in Computer and Communication Engineering, 5(4),
612-618. Retrieved June Tuesday, 2018

Vishal V. Parkar, Prashant P. Shinde, Sanket C. Gadade,Prasad M. Shinde. (n.d.). Utilization of Laravel
Framework for Development of Web Based Recruitment Tool. IOSR Journal of Computer Engineering , 36-
41.

What is MySQL Tutorial. (n.d.). Retrieved from SiteGround: https://www.siteground.com/tutorials/php-


mysql/mysql/

Google/firebase

103-SANDEEP MANDAL

You might also like