Ijraset Journal For Research in Applied Science and Engineering Technology
Authors: E. Susmitha, A. Mahendra
DOI Link: https://doi.org/10.22214/ijraset.2022.46152
Certificate: View Certificate
This paper providing an Android App, which makes easier for traveler to travel to their destination. The need for security and safety is of high demand today. Especially for women, It is required to provide an assurance they are being protected. This app provides this need and assurance. It makes use of Firebase phone authentication which helps us to get authenticated with minimum effort. It privies a Location update service that allows the guardians know about the where about of the ward. It also contains a chat box in which we can dynamically update our location by sending messages to our guardians. Finally this security app is a nice watcher of our loved ones and ensures of their security and safety.
I. INTRODUCTION
A. Purpose
The purpose of the project is to make available an android application to the users who want security (especially for women) by updating their locations and alert messages to respective given mobile numbers.
B. Document Conventions
The app/application/client system refers to security(The android application).
C. Intended Audience and Reading Suggestions
The document is intended to be read by developers, testers, and our advisers.In the rest of this document we will describe an overall description of our product, the system features, and any requirement.
D. Project Scope
Analyze, design, develop and test the android mobile application of security.
1. Requirement Analysis: The project needs several requirements to be gathered before processing to develop the Dark knight. One among them includes gathering images and source codes about the Firebase functions like adding, deleting, replacing, image storing, authentication . The other codes are tab layout, recycler view, menus, layout inflaters, Frame Layouts etc ... It was noted more than 50% of the Android devices are using the version of Kit-Kat or more . The functionality requirements of the application is simple and straightforward where as the technical details involved research on the available android technologies. User interface is most important for any android application and android has multiple facilities for drawing user interface for applications. Few study materials in android to code with the concepts like libraries view and animations were also gathered so as to smooth the application development process. These gathered information helped to provide a clear direction of deciding the software requirements and hardware requirements.
2. Android: Android is a Linux-based operating system designed primarily for touchscreen mobile devices such as smartphones and tablet computers.Initially developed by Android, Inc., which Google backed financially and later bought in 2005. Android is open source and Google releases the code under the Apache License. This open source code and permissive licensing allows the software to be freely modified and distributed by device manufacturers, wireless carriers and enthusiast developers. Additionally, Android has a large community of developers writing applications ("apps") that extend the functionality of devices, written primarily in a customized version of the Java programming language. Android software development is the process by which new applications are created for the Android operating system. Applications are usually developed in the Java programming language using the Android Software Development Kit. ADT ( Android Development Tools) is the software used to develop android apps. It basically encases Eclipse IDE,which is a multi-language Integrated development environment (IDE) comprising a base workspace and an extensible plug-in system for customizing the environment . The latest version comes with ADT plugin preinstalled and bundled to the IDE.Application programming interface (API) specifies how some software components should interact with each other.
Application is developed by using the Google based Technologies i.e; Android Studio and Firebase Cloud. Implementing the Application in the Android Studio and connecting to the Firebase Cloud. We are using Sql database for the connection.
3. Firebase: Firebase is a Backend-as-a-Service BaaS-that started as a YC11 startup and grew up into a next generation app-development platform on Google Cloud Platform. Firebase frees developers to focus on crafting fantastic user experiences. You don’t need to manage servers. You don’t need to write APIs. Firebase is your server, your API and your datastore. All this Features are managed by Google.
It provides the following features :
a. Realtime Database
b. Authentication
c. File Storing
d. Hosting.
4. Google Maps API
With the Maps SDK for Android, you can add maps based on Google Maps data to your application. The API automatically handles access to Google Maps servers, data downloading, map display, and response to map gestures. You can also use API calls to add markers, polygons, and overlays to a basic map, and to change the user's view of a particular map area. These objects provide additional information for map locations, and allow user interaction with the map. Your application needs an API key to access the Google Maps servers. The type of key you need is an API key with restriction for Android apps. The key is free. You can use it with any of your applications that call the Maps SDK for Android, and it supports an unlimited number of users.The API allows you to add these graphics to a map: • Icons anchored to specific positions on the map (Markers). • Sets of line segments (Polylines). • Enclosed segments (Polygons). • Bitmap graphics anchored to specific positions on the map (Ground Overlays). • Sets of images which are displayed on top of the base map tiles (Tile Overlays).
The rest of this paper is organized as follows. Section II describes the existing system, disadvantages. Section III Proposed systems, advantages are given in section section IV Methodology, section V conclusions are finally drawn in along with future reference.
II. LITERATURE SURVEY
In existing system, The Diksha application was taken as reference, but not included any facilities of the application. We taken the idea and just implemented it in the new and more advanced way.
III. PROPOSED MODEL
In proposed system, Here providing an Android App, which makes easier especially for women, It is required to provide an assurance they are being protected. This app provides this need and assurance. It makes use of Firebase phone authentication which helps us to get authenticated with minimum effort. It privies a Location update service that allows the guardians know about the where about of the ward. It also contains a chatbox in which we can dynamically update our location by sending messages to our guardians. Finally this security app is a nice watcher of our loved ones and ensures of their security and safety.
A. Activites
The app contains the following 5 Activities.The Activities are
The 4 Options are 1. Home 2. Activity 3. History 4. Profile
a. Home: On clicking the Option Home it displays the Home Fragment . Home Fragment contains a search bar,present location, search, google map, floating action button. The search bar performs functionality an entering the test or area details and clicking on search option it checks for the vacancies from your present location to the destination and marks the vacancies with google pointers.
The google map will show the current location of user and the vacancies. The current location option gets the user to his location. The Floating Action button contains 2 options .They are Add position and Delete position.The Add positon adds the vacancies if user goes to one place to some other place and their is space in his vehicle then he adds the vacancies option. The Delete option will delete the previous vacancy marks of the user.
b. Activity: The option activity contains 2 fragments based on the user connected with others or not.If user is not connected with others then the option activity show activity fragment . It contains a edittext to send a request to others and if any request is gotten by user it is shown in card view whether the user can accept or decline. If user accepts the request then the new fragment activity_connected is coming into action. The activity_connected contains the connected user information a chatting fragment and present location of both users fragment.
c. Histoy: In this History option we will show the users travelling details with others in the form of recyclerview representing the layout as cardview.
d. Profile: In this Profile Option we will show the user details this fragment contains a edit profile option and a logout option. The edit profile option makes a way to update the profile and logout option makes the user to logout of the application.
IV. METHODOLOGY
A. Android
Android is a Linux based operating system designed especially for touch screen mobile devices and smart phones and tablet computers .This project is Initially developed by An- droid, Inc., which Google backed financially later . Android was unveiled in 2007 along with the open handset alliance: an association of hardware, software, and telecommunication companies devoted to Advancing open standards for mobile devices. Android is a platform for software development kit (SDK) an application framework and key applications. Android is an open source. Most parts of the Android application code is released by the Google under apache license. This open source code and permissive license make users allow to modify the software and is distributed by the device manufactures, and also allows to build new versions of android. One of those modified versions called Cyanogen mod. The first commercially available phone to run android was HTC dream.
B. Introduction To Java
1. API: API is the acronym for Application Programming Interface, which is a software intermediary that allows two applications to talk to each other. Each time you use an app like Facebook, send an instant message, or check the weather on your phone, you’re using an API. Application programming interface (API) specifies how some software components should interact with each other. In practice in most of the cases an API is a library that usually includes specification for routines, data structures, object classes, and variables. An API specification can take many forms, including an International Standard such as POSIX, vendor documentation such as the Microsoft Windows API, the libraries of a programming language, e.g., Standard Template Library in C++ or Java API.
2. JSON: JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. Square space uses JSON to store and organize site content created with the CMS. The two primary parts that make up JSON are keys and values. Together they make a key/value pair.
Types of Values
Boolean: True or false.
Object: An associative array of key/value pairs.
String: Several plain text characters which usually form a word.
Arrays
Almost every blog has categories and tags. In this example we've added a categories key, but the value might look unfamiliar. Since each post in a blog can have more than one category, an array of multiple strings is returned.
Objects
An object is indicated by curly brackets. Everything inside of the curly brackets is part of the object. We already learned a value can be an object. So that means "foo" and the corresponding object are a key/value pair.
C. JAVA Programming
Java is a popular general-purpose programming language and computing platform. It is fast, reliable, and secure. According to Oracle, the company that owns Java, Java runs on 3 billion devices worldwide. Considering the number of Java developers, devices running Java, and companies adapting it, it's safe to say that Java will be around for many years to come.
D. Features of Java Programming Language
1. Java is Platform Independent: Java was built with the philosophy of "write once, run anywhere" (WORA). The Java code (pure Java code and libraries) you write on one platform (operating system) will run on other platforms with no modification. To run Java, an abstract machine called Java Virtual Machine (JVM) is used. The JVM executes the Java byte code. Then, the CPU executes the JVM. Since all JVMs works exactly the same, the same code works on other operating systems as well, making Java platform-independent.
2. An object-oriented Language: There are different styles of programming. Object-oriented approach is one of the popular programming styles. In object-oriented programming, a complex problem is divided into smaller sets by creating objects. This makes your code reusable, has design benefits, and makes code easier to maintain. Many programming languages including Java, Python, and C++ has object-oriented features. If you are serious about programming, you should definitely learn object-oriented style of programming.
3. Java is Fast: The earlier versions of Java were criticized for being slow. However, things are completely different now. The new JVMs are significantly faster. And, the CPU that executes JVM are also getting more and more powerful. Now, Java is one of the fastest programming languages. Well optimized Java code is nearly as fast as lower level languages like C/C++, and much faster than Python, PHP etc.
4. Java is Secure: The Java platform provides various features for security of Java applications. Some of the high-level features that Java handles are:
a. Provides secure platform for developing and running applications
b. Automatic memory management, reduces memory corruption and vulnerabilities
c. Provides secure communication by protecting the integrity and privacy of data transmitted
5. Large Standard Library: One of the reasons why Java is widely used is because of the availability of huge standard library. The Java environment has hundreds of classes and methods under different packages to help software developers like us. For example, java.lang - for advanced features of strings, arrays etc. java.util - for data structures, regular expressions, date and time functions etc. Aq.io - for file i/o, exception handling etc.
E. Applications of Java
Java technology is everywhere, powering 3 billion devices worldwide. It's more than likely that you have used Java one way or the other. Here are some of the applications of Java.
F. System Architecture
2. Verification Page: This page can useful to verification of user uniquely using mobile number that generates from Firebase database. And it can automatically read the OTP to login
3. Location Services Page: This page can useful to start and stop the services of location updating. If we start the service, the location services will send a message of present location of ward for every time interval in chat box to everyone who installed our application.
4. Personal Information Page: This page contains only two field that we input our name and changing the profile pic. In profile pic changing page there will be select of pic from different locaion in our mobile. After we enter our name if we submit, so database can save our name to our mobile number.
5. Chat box Page: In chat box page we can send messages to everyone who can install our application. And we if start service, then the location of ward can be messaged from location services in chat box to everyone automatically.
6. Code
package com.example.darkknight;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Handler;
import com.google.android.material.textfield.TextInputEditText;
import com.google.android.material.textfield.TextInputLayout;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.ProgressBar;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.FirebaseDatabase;
public class MainActivity extends AppCompatActivity {
private TextInputLayout editTextLayout;
private TextInputEditText editText;
private Button buttonContinue;
private ProgressBar progressBar;
public static int signout=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonContinue=(Button)findViewById(R.id.buttonContinue);
editTextLayout=(TextInputLayout) findViewById(R.id.editTextLayout);
editText=(TextInputEditText) findViewById(R.id.editText);
progressBar=findViewById(R.id.main_activity_progressbar);
progressBar.getIndeterminateDrawable().setColorFilter(Color.parseColor("#ffffff"),android.graphics.PorterDuff.Mode.MULTIPLY);
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(final View v, boolean hasFocus) {
if (!hasFocus) {
editTextLayout.setError(null);
hideKeyboard(v);
}
else
{
if(editText.getText().toString().length()<editTextLayout.getCounterMaxLength())
{
editTextLayout.setError("Min 10 Digits");
}
else
{
editTextLayout.setError(null);
}
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(s.length() == editTextLayout.getCounterMaxLength())
{
hideKeyboard(v);
}
if (s.length() < editTextLayout.getCounterMaxLength()) {
editTextLayout.setError("Min 10 Digits");
return;
}
else
editTextLayout.setError(null);
return;
}
});
}
}
});
buttonContinue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String number = editText.getText().toString().trim();
if (number.length() < 10) {
editTextLayout.setError("Invalid Number");
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
editTextLayout.setError(null);
}
}, 3000);
return;
}
progressBar.setVisibility(View.VISIBLE);
v.setVisibility(View.GONE);
String phoneNumber = "+91" + number;
Intent intent = new Intent(MainActivity.this, VerifyActivity.class);
intent.putExtra("phonenumber", phoneNumber);
startActivityForResult(intent,1);
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
buttonContinue.setVisibility(View.VISIBLE);
progressBar.setVisibility(View.GONE);
}
}
private void hideKeyboard(View view) {
InputMethodManager inputMethodManager =(InputMethodManager)getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
@Override
protected void onStart() {
super.onStart();
if(signout!=1 && LocationService.checkStart!=1){
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
}
if (FirebaseAuth.getInstance().getCurrentUser() != null) {
Intent intent = new Intent(this, ProfileActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
}
}
7. UniTesting: In Unit Testing each independent unit is tested separately, by isolating it from the remainder of the code to ensure paprts of the code are working properly, Unit is the smallest testable part of the code, as in here the classes are treated as base unit. Since the base application in was threading concept , it is possible to leverage the j Unit for testing the individual components. Unit Testing ( OD Application ) Test Modules Test Case Result
a. Activites Check all the clickables & textviews :Pass
b. API Calls Check whether API is called or not :Pass
c. JSON test Check the JSON data to represent :Pass
d. GET method Check get method is working or not :Pass
e. Firebase Connection Checks whether the firebase connection is working or not :Pass
f. Upload Image Check quality of image :Pass
g. Tabs MainActivity tabs are in correct order :Pass
h. Order Status Check order status :Pass
i. Processing Bar Checks whether the processing is correcting properly or not :Pass
j. Phone Number Check the Phonenumber of the user :Pass
k. File Manager Checks permission to save the Application Form to the internal storage :Pass
l. Authentication OTP verification for the applying of the OD Form :Pass
m. Bottom Navigation Drawer Checks whether the navigation drawer is working properly or not :Pass.
It provides the security. location updates done without internet. Internet connectivity for the chatting. For the location updates we have to click the service start button in the application. This application is useful mainly for women in their journey, and gives valuable information of ward and there safety and security to their guardians.
[1] \"ALL IN ONE APP FOR COLLEGE CERTIFICATES AND OD BY KOTLIN PROGRAMMING LANGUAGE IN ANDROID STUDIO\", INTERNATIONAL JOURNAL OF CREATIVE RESEARCH THOUGHTS (IJCRT), ISSN:2320-2882, Volume.6, Issue 2, Page No pp.578-584, April 2018, Available at : http://www.ijcrt.org/IJCRT1812075.pdf. [2] \"Android based Mobile Application Development by Kotlin Language\" http://ijsrcseit.com/CSEIT1183563. [3] TotalYoutubeChannelLink:https://www.youtube.com/watch?v=OknMZUnTydsHYPERLINKhttps://www.youtube.com/watch?v=OknMZUnTyds&list=PLgCYzUzKIBEvInwQhGSdnbyJ62nixHCt\"&HYPERLINK\"https://www.youtube.com/watch?v=OknMZUnTyds&list=PLgCYzUzKIBEvInwQhGSdnbyJ62nixHCt\"list=PLgCYzUzKIBEvInwQhGSdnbyJ62nixHCt [4] Firebase Total Documents: https://firebase.google.com/docs/ [5] OL. Google Android Developers, Android Developer Guide, http://developer.android.com/guide/topics/fundamentals.htmlFengsheng Yang, Android Application. [6] http://wscg.zcu.cz/wscg2012/short/F05-full.pdf. [7] ADT Plugin, available at http://developer.android.com/sdk/installing/ins talling-adt.html. [8] 15 Best Android Apps for Education and Learning Purpose, http://beebom.com/2014/06/15-best-androidapps-foreducationand-learning-purpose. [9] Number of available applications in the Google Play Store from December 2009 to February 2015, http://www.statista.com/statistics/266210/num ber-of-available-applications-in-the-googleplay-store/.
Copyright © 2022 E. Susmitha, A. Mahendra. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.
Paper Id : IJRASET46152
Publish Date : 2022-08-03
ISSN : 2321-9653
Publisher Name : IJRASET
DOI Link : Click Here