Professional Documents
Culture Documents
She Project 1
She Project 1
CERTIFICATE
This is to certify that Manisha (2320042) and Mohit (2320005) studying in Ambala College of
Engineering and Applied Research, Devsthali, (Batch: 2020-2024) have completed their Project-
I entitled “She(Women Safety App)” at Ambala College of Engineering and Applied Research,
Devsthali under supervision of Er. Narinder Kaur It is further certified that they had attended a
required number of practical classes at Ambala College of Engineering and Applied Research,
Devsthali for the completion of their Project-I during 6th semester.
2
She (Women safety app) 2320042 , 2320005
DECLARATION OF STUDENT
We hereby declare that the work which is present in this Project-II report entitled “SHE (Women
Safety App)” in the partial fulfilment for the award of the degree of Bachelor of Technology and
submitted to the Department of Computer Science and Engineering of Ambala College of
Engineering and Applied Research, Devsthali affiliated to Kurukshetra University, Kurukshetra
is an authentic record of us, carried out during a period of Oct 2021 to Jan 2022, under the
supervision of Er. Seema Rani, Assistant Professor (CSE). The matter presented in this project
report has not been submitted by us for the award of any other degree of this or any other
institute/university
3
She (Women safety app) 2320042, 2320005
PREFACE
Chapter 1 Introduction: This chapter provides the details regarding the introduction of Android
development, a little overview to understand its past, its purpose to understand how much and in
which way this is helpful, its scope.
Chapter 2 Requirement Analysis: In this chapter, we will study the various requirements of
Android Studio.
Chapter 3 Design Specifications: In this chapter, we will be discussing about the visitor
interface and admin interface of our project.
Chapter 4 Implementation and Testing: In this chapter, we will study about the API’s that we
have used in making our project.
Chapter 5 Results: In this chapter, we will be showing the screen shots of the app that we have
made using the concepts, discussed in above chapters
Chapter 6 Deployment: In this chapter, we will go through the process which we have used to
make our project, step-by-step.
Future Scope: In this, we discuss the future scope of cloud computing and it’s face recognition
service in brief.
4
She (Women safety app) 2320042, 2320005
ACKNOWLEDGEMENT
Engineers in all disciplines must acquire knowledge of project making. Students, in particular,
will find ‘project making’ as an integral part of their studies that will infuse the spirit of doing
practical work in them.
The satisfaction that accompanies the successful completion of any task would be incomplete
without the mention of the people who made it possible whose constant guidance crowned our
efforts with success. We sincerely express our deep gratitude to the management of our college
for giving us liberty to choose and to work on the most relevant project i.e. “SHE (Women Safrty
App) at we have a smooth environment at the college and lab. She helped us with our project
from the beginning till the end. Her continuous surveillance over our work allowed us to work
more efficiently.
Manisha (2320042)
Mohit (2320005)
5
She (Women safety app) 2320042, 2320005
ABSTRACT
The specific goals, objectives and outcomes of each safe cities for women
programme will depend on the most important issues local women face and the
capacity of the programme to implement change.
Of the six million crimes that police in India recorded between 1 January and 31 Decem -
ber last year, 428,278 cases involved crimes against women.
It's a rise of 26.35% over six years - from 338,954 cases in 2016.
A majority of the cases in 2021, the report said, were of kidnappings and abduction,
rapes, domestic violence, dowry deaths and assaults.
Also, 107 women were attacked with acid, 1,580 women were trafficked, 15 girls were
sold and 2,668 women were victims of cybercrimes.
With more than 56,000 cases, the northern state of Uttar Pradesh, which is India's most
populous with 240 million people, once again topped the list.
It was followed by Rajasthan with 40,738 cases and Maharashtra with 39,526 cases.
6
She (Women safety app) 2320042, 2320005
LIST OF FIGURES
Figure No. Figure Description Page No.
Scope Graph 37
7
She (Women safety app) 2320042, 2320005
TABLE OF CONTENTS
Certificate………………………………………………………………………. I
Declaration of Student………………………………………………………….. II
Preface………………………………………………………………………….. III
Acknowledgement……………………………………………………………… IV
Abstract…………………………………………………………………………. V
List of Figures…………………………………………………………………... VI
1. Introduction……………………………………………………………. 1
1.2 Purpose………………………………………………....................... 1
2. Requirement Analysis………………………………………………….. 3
3. Design Specifications…………………………………………………... 7
8
She (Women safety app) 2320042, 2320005
5. Results…………………………………………………………………... 26-30
6. Deployment……………………………………………………………... 31-35
Conclusion………………………………………………………………………….. 36
Future Scope………………………………………………………………………… 37
References…………………………………………………………………………... 38
9
2320042, 2320005
Chapter 1- Introduction
1.1 OVERVIEW
In today’s world, people using smart phones have increased rapidly andhence, a smart phone can be
used efficiently for private security or various protection purposes hence, a smart phone can be used
efficiently for private security or various other protection purposes. The dangeous incidents that
outraged the entire other protection purposes. The heinous incidents that outraged the entire nation have
waken us to go for the safety issues. So we have created a app so that women can feel safe when they go
outside. In The feature of this application is to send application is to send the message to the registered
contacts continuously, i.e. sharing the message to the registered contacts continuously and sharing the
live location. Continuous location tracking information helps to seek out the location, tracking
information helps to find the location of the victim and can be rescued safely.
1.2 PURPOSE
Women are working at different diverse groups for a common cause. womens work across different
places, religious, political, and cultural divides to promote peace. We are all know about importance of
safety of women's but we must realize that they should be properly protected. Womens are not
physically strong as men, in an emergency situation a helping hand would be a relief for them.
1.3 SCOPE
In the last 5 years, we have seen significant growth in the market of women’s safety app development,
especially with the increase in the rate of molestation and mishaps that occurred with the women.
The existing industry is also likely to add more development and technology inside the solution for the
women to deliver them better safe solutions.
We have seen that technology, especially 5G and AI, has played an important role in deploying safety
solutions using GPS warnings alarms, SMS, and likewise to warn the special people and relatives at the
time of need. It would face a maximum rate of 20% growth in coming up with safer solutions for
women. The App For Women Security includes various features like text messages to emails or sending
a loud tone alarm like a whistle to alert and win the next person who is trying to molest the woman.
If we are talking about what the women’s safety application is all about then in a single line we can see
that it is a surgical solution for the women in case of emergency when they are outside their home and
facing any kind of endangered situation. To overcome the situation there is a solution that will help that
victim at the time when they face unsafe and away from their parents. There is a solution that can reside
in their smartphone and call and action to the parents and their relatives to get them aware that their
child is in some horrible situation. So that they can come instantly and mug their child out of that
situation.
b) Functional Requirements
Functional requirements are properties that must exist in the final system. For any mobile
application, we need to download the application from the play store. The application could be
either free or paid depending upon the store or merchant.
To use the application, the user needs to register and login to the application after installing by
providing login information. Once, he or she logins into the application, they can use all the
features.
c) Performance Requirements
Response time, scalability, platform dependencies, tolerance are the performance requirements
that should be considered when developing any system.
The application or system should be able to respond quickly when the user interacts with the
application. The application should be developed in such a way that it should be scalable enough
to accept new features when we want to expand the application complexity.
The application should run in all the specified software and hardware requirements from the
design phase of the project.
Also, the tolerance rate (fault tolerance) of the application should be at a higher level in case of
network issues, connectivity issues, and when the application crashes or stops.
It should be able to deliver the information about any of those issues to the user when the system is
no longer able to provide results when the user wants.
d) System Requirements
The application should be installed into a device, system or any machine in such a way that it
should have basic requirements like supporting software and hardware of the device, accessing in-
built software, say camera for mobile device, internet permissions, and potential security issues
such as virus or any malware detection.
e) Testing and Maintainability Requirements
The application should be able to meet all the possible good and bad test cases under a test
environment. Application should be developed in such a way that it does not have any issues or
crashes when the user is using the application. It should be able to extend itself when we expand
the code or implement any new functions to the existing application.
2.2 Use Case Diagram
A use case is a methodology used in system analysis to identify, clarify, and organize system
requirements. The use case is made up of a set of possible sequences of interactions between systems
and users in a particular environment and related to a particular goal. It consists of a group of elements
(for example, classes and interfaces) that can be used together in a way that will have an effect larger
than the sum of the separate elements combined.
The use case should contain all system activities that have significance to the users. A use case can be
thought of as a collection of possible scenarios related to a particular goal, indeed, the use case and goal
are sometimes considered to be synonymous.
In this use case diagram of the website admin can add, delete, edit posts and view the Categories, as well
as admin can manage all the posts. Also, Admin can see who has contacted them.
14
She (Women safety app) 2320042 , 2320005
15
She (Women safety app) 2320042 , 2320005
3.1.1 Home
In Home we have all the features back to back . A simple interface so that user can easily
understand
Red trigger button and green safety button provide safety and easy for non educated
person beacuse of colour
With a single click gps location will send to the contacts added to it as well as to all
helpline via text message online as well as offline.
This will send a message to the registered contacts that she reached home safely. So that
they don’t have to worry even more
3.1.4 Map
To track the current location of the user, guiding for safe routes and crime-prone
areas (user would be able to mark the area safe or can view the number of users that have
marked the area as safe, currently we are using crimeometer API to check whether the
area is safe or not rather than providing information
3.1.5 Helpline
Women can call within the app by simply tab on the call button.
16
She (Women safety app) 2320042 , 2320005
f) Text View: The text view component belongs to the view group as a part of GUI. It
displays the text or content view of any activity to the user and allows them to edit.
g) Edit Text: This allows itself to be editable in the text box.
h) Button: One of the important components in which the application needs. It is mainly
associated with action when the user clicks it. We can represent the button using any
text which holds the action class on it.
i) Image Button: Suppose, if we want to have an image for the button which we have
designed, we can include using this control by adding the source or path of the image
file within the tags in the layout file.
j) List View: This is a key component under the view group which helps in displaying the
information about anything when we click the action button.
k) Scroll View:It also allows us to scroll through the screen and have a look about the
information displayed. Using the list adapter, the content is pulled from the database
l) Checkbox: It is the control component which allows us to use or make use of the
function by just clicking on the check box button. When we include check box widget in
the application, we can see a small box in the screen on which we can check it and it
will be selected.
17
She (Women safety app) 2320042 , 2320005
Introduction to Programming Languages, IDE’S, Tools and Technologies used for this
Implementation
4.1 Implementation
i. Java
As the project is developing an Android Application, the default programming language
is Java. All Android applications are built using Java in Android Studio or Eclipse or
both. Java is a popular and widely used language throughout the world. As mentioned in,
[3] Java is one of the powerful programming languages like C, C++. developed by Sun
Microsystems which has many powerful features as described below. After the
development of C, C++, Java has come into evolution by addressing their drawbacks [4] .
It is one of the open source projects [5] that could be easily installed in our machine. The
language is also easy to learn, understand and implement. Java is used in various kinds of
applications like Web, Desktop, Mobile, and Big Data. Many powerful features are
supported by Java including various libraries, application services, graphics library for
2D/3D applications. The language is flexible enough to maintain code complexity, test,
implementation, integration and support. Apart from these, there are other key features
which make Java more special. It is object oriented programming language, one of the
important hierarchies in the programming languages which is used to implement real time
applications, it provides for code reusability, it has a platform independence feature
including any virtual machines(Write Once Read Everywhere), as in no need to write the
code for different OS as the Java Compliers convert the java source files to bytecode and
this could be interpreted by any machine and the actual code is compiled irrespective of
any machine, OS. It is more secured as the compilers are designed efficiently to figure out
any kind of errors.
1. Android Studio
Android Studio [6] is exclusively designed for developing Android applications. It consists
of all Android SDK tools to design, develop, maintain, test, debug and publish our app.
The IDE is designed very efficiently which makes the developer’s job easy. It also supports
the IntelliJ IDE, the main idea behind this IDE is that it automatically senses the variables,
methods, classes, built-in functions or it could be anything else when we press the first
letter of it. After the completion of project, the whole application could be put as an .APK
(Android Package) file, in which we can run that APK file in any device and use the
application.
Other main tools include Android SDK, ADB, and Gradle Build.
One of the main tools used in developing android applications, as it packages many core
features into one SDK and it can be used in the application easily. This helps us to avoid
writing lot of code, and building applications faster.
Android SDK uses ADB tool as a connection device which allows us to connect the
Android Devices or Emulator with the machine via USB. After developing or while
developing applications, we can connect with the device to check how the application runs.
Later, we can debug and run the applications.
4. Gradle Build:
Gradle Scripts are the recent feature that is added to Android Studio.
We need to configure the project and modules by mentioning all the supported jar
files, SDK’s, version name, level, compiled SDK version, build tools version. to
ensure that the developed app is compatible with the testing device/emulator.
Gradle is also like Ant and Maven which helps in maintaining java projects
(repositories).
5. MySQL Database
In this project, I have used MySQL database to store the data. This is one of the
popular open source relational database management systems. We can perform all
DDL, DML, DCL operations using this database. This also supports different
programming language applications. The applications could connect the database
using separate ways which includes PHP myadmin WAMP, LAMP, Web Services.
To use this database, we should first download, install and configure the MySQL
instance in our machine. While configuring, we should give access credentials which
could be used further whenever you open the MySQL shell.
SOURCE CODE
USER INTERFACE :
Splash screen :
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SplashActivity">
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
android:background="#E9DFEA"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/shelogo" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="84dp"
android:text="SAFETY - TWO TAPS AWAY..."
android:textSize="20dp"
android:textColor="#E6B4A4"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/imageView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.431"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Main activity:
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:background="#E9DFEA"
android:layout_height="match_parent"
tools:openDrawer="start"
android:id="@+id/drawerLayout"
tools:context=".MainActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="wrap_content"></include>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#E9DFEA">
<androidx.cardview.widget.CardView
android:id="@+id/cardView"
android:layout_width="170dp"
android:clickable="true"
android:foreground="?attr/selectableItemBackground"
android:layout_height="170dp"
android:layout_marginStart="15dp"
android:layout_marginTop="50dp"
android:backgroundTint="#72CD75"
app:cardCornerRadius="30dp"
app:cardElevation="8dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/cardViewHelpline"
android:layout_width="170dp"
android:layout_height="170dp"
android:clickable="true"
android:foreground="?attr/selectableItemBackground"
android:layout_marginStart="215dp"
android:layout_marginTop="50dp"
android:backgroundTint="#DC7799"
app:cardCornerRadius="30dp"
app:cardElevation="8dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/cardViewDefence"
android:layout_width="170dp"
android:layout_height="170dp"
android:layout_marginStart="15dp"
android:layout_marginTop="240dp"
android:clickable="true"
android:foreground="?attr/selectableItemBackground"
android:backgroundTint="#ECE39A"
app:cardCornerRadius="30dp"
app:cardElevation="8dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</ScrollView>
<com.google.android.material.navigation.NavigationView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:id="@+id/navigationView"
app:headerLayout="@layout/header_lay"
app:menu="@menu/navigation_items">
</com.google.android.material.navigation.NavigationView>
</androidx.drawerlayout.widget.DrawerLayout>
BACK END :
package com.example.mapd;
import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import android.Manifest;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.os.Bundle;
import android.os.Handler;
import android.telephony.SmsManager;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import com.example.mapd.db.MyDbHandler;
import com.example.mapd.map.MapsActivity;
import com.example.mapd.progressBarClass.LoadingDialog;
import com.google.android.gms.location.FusedLocationProviderClient;
import com.google.android.gms.location.LocationServices;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.navigation.NavigationView;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
SmsManager smsManager;
FloatingActionButton buttonContact;
MyDbHandler db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_navigation_add);
drawerLayout=findViewById(R.id.drawerLayout);
navigationView=findViewById(R.id.navigationView);
toolbar=findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
try {
db = new MyDbHandler(getApplicationContext());
} //db
catch (Exception e){
e.printStackTrace();
} //db
//______________________________
safeGirl = findViewById(R.id.imageViewSafeGirl);
defence = findViewById(R.id.imageViewDefence);
map = findViewById(R.id.imageViewMap);
helpLine = findViewById(R.id.imageViewHelpLine);
alert = findViewById(R.id.buttonAlert);
buttonContact = findViewById(R.id.buttonContact);
helpLine.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(), HelplineActivity.class));
}
});
defence.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(), Defence.class));
}
});
alert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getLastLocation();
}
});
map.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(), MapsActivity.class));
}
});
buttonContact.setOnClickListener(new View.OnClickListener() { //>>>>>>>>>>>>>>CONTACT
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(), MainActivity.class));
}
});//>>>>>>>>>>>>>>CONTACT
safeGirl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
list = db.viewData();
for (DmModel d : list) {
String n = d.getKEY_NAME();
String p = d.getKEY_PHONE();
smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(p, null
, "Hello " + n + " , I have reached my destination safely (●'◡'●)", null, null);
}
}
});
//_____________________
private void getLastLocation() {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == Package-
Manager.PERMISSION_GRANTED) {
fusedLocationProviderClient.getLastLocation().addOnSuccessListener(new OnSuccessListener<Location>()
{
@Override
public void onSuccess(Location location) {
if (location != null) {
Geocoder geocoder = new Geocoder(getApplicationContext(), Locale.getDefault());
List<Address> addresses = null;
smsManager = SmsManager.getDefault();
MyDbHandler db = new MyDbHandler(getApplicationContext());
try {
addresses = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
} catch (IOException e) {
e.printStackTrace();
}
list = db.viewData();
}
}
});
} else {
askPermissions();
}
}
@Override
//_______________________
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater=getMenuInflater();
inflater.inflate(R.menu.menu_items,menu);
return true;
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.item_exit:
moveTaskToBack(true);
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(1);
break;
case R.id.item_aboutUs:
AlertDialog.Builder builder=new AlertDialog.Builder(NavigationAddActivity.this);
builder.setTitle("Developers").setMessage("Developers Name:" +
" Manisha And Mohit \nFor contacting us Visit:\ninsta @so_called_engineers._ ")
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).show();
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
}
CASE 2 :
Test if the safe button works -
Verified that it send safety message with single click
CASE 3 :
Test if calling can be done-
Verified that calling on helpline is working fine
CASE 4 :
Test if Map is working (or providing current location)-
Verified that map is working absolutely fine
Chapter 5- Results
Default Page
Image Analysis Performed on Various Subjects
Chapter 6-Deployment
6.1 Steps to build the app
CONCLUSION
This safety app is designed to enhance the safety for women, kids and everyone. At any
time ans anywhere
1.Our intention is to provide with the fastest and simple way to contact your nearest and
dearest and emergency center.
2.When there is an emergency, it will be difficult to get ideas and we will be in fear,
however it is important that our parents and friends ae to be notified that we are in
danger, so can find the exact location come and help them.
FUTURE SCOPE
1. This safety app is designed to enhance the safety for women, kids and everyone. At any
time ans anywhere
2. Our intention is to provide with the fastest and simple way to contact your nearest and
dearest and emergency center.
3. When there is an emergency, it will be difficult to get ideas and we will be in fear, how-
ever it is important that our parents and friends ae to be notified that we are in danger, so
can find the exact location come and help them.
4. Existing system does not have a feature to send messages to 3 members at a same time
and to the near police station and a siren sound. These features will be helpful to the wo-
men who are in need of help.
REFRENCES
1. https://developers.google.com/maps/documentation/android-sdk/
utility
2. https://stackoverflow.com/questions/41465053/how-to-call-activity-
from-a-library-module-in-android-studio
3. https://www.tutorialspoint.com/android/android_sending_sms.htm
4. https://developers.google.com/maps/documentation/android-sdk/
location
5. https://developer.android.com/training/location/request-updates
6. https://firebase.google.com/docs/auth/android/start