A Micro Project Report On Women Safety App
A Micro Project Report On Women Safety App
-Siddhesh Shelar
A
Micro Project Report
on
Affiliated to
Maharashtra State
Board of Technical Education
Maharashtra State
Board of Technical Education
Certificate
This is to certify that Mr. Siddhesh Jagdish Shelar with Roll No- 12 has successfully completed Micro-
project in course Mobile App Development (22617) for the academic year 2020-21 as prescribed in the
'Assessment Manual' during his/her tenure of completing Sixth Semester of Diploma Programme in
Computer Engineering from institute, Sandip Polytechnic with institute code 1167.
Annexure – I
Micro Project
Proposal
1.0 Aims/Benefits of the Micro-Project:
This system is for women’s safety and overcomes existing systems. This GPS system is the
“Women’s Safety App”. It consists of a GPS device, an Android phone. The unit will
provide status information such as latitude, the longitude of the user.
The proposed App is based on advanced sensors. Each time a user makes a phone call, an
emergency signal will be generated automatically and then an information alert will be sent
to the contacts that have been added to the emergency call.
The proposed system will be implemented with the help of android application. Which will
alert the nearby people who having this application by sending alert messages to them and
alert sound in the guardian mobile on shaking of victim mobile. Also sends messages and
alert sound to the saved contacts in the application and police station. Which also show the
location of the victim with the help of GPS tracker system. Which also make sound in
guardian mobile when his/her mobile in silent mode.
Guardian app which is installed in the guardian mobile. and initiated by giving
there mobile number
. Girl app which is installed in the girls mobile. and initiated by giving girls name,
id, mobile number.
Server login module which consists data of guardian location information
Sr Name of
Specification Qty. Remarks
No Resource/Material
Desktop with Intel Core 2 Duo -
1 Hardware Resource 2.93 GHz, RAM 2GB, HDD 1
160 GB
Software Resource Android Studio -
2 1
3 Any Other Resource Internet - -
Annexure – I
Micro Project
Report
1.0 Rationale:
In today’s fast moving world, Women Security is an issue of growing concern. We have read about
many unfortunate incidents happening with women and the rate is increasing. Women these days
are working women and the globalization has made us aware of gender equality. Earlier the women
were restricted only to the household chores. With the changing scenario, women are competing
with men in all fields .We can see women going to great success levels in all fields, may it be
corporate, scientific, education, business or any other field. Safety of women matters a lot whether
at home, outside the home or working place. Last few crimes against women especially the case in
Delhi was very dread and fearful. Because of such crimes, women safety has become a major topic.
According to the statistics, it is found that every two out of three women have suffered trauma in
the last year. According to the survey of women, it is found that women are losing their confidence
because of such incidents. By the survey of Delhi government’s Women and Child Development
Department, around 80% of the women in national capital have fear regarding their safety. Women
are harassed not only in the night or evening but also in the day time at their home, working places,
or other places like street, club, etc. It is found through the survey that the reason of safety concern
is the lack of gender-friendly environment and improper functional infrastructure such as
consumption of alcohol and drugs in open area, lack of adequate lighting, safe public toilets,
sidewalks, lack of effective police service, lack of properly working helpline numbers, etc. A huge
percentage of women have no faith that police can curb such harassment cases. There is an urgent
need to understand and solve this problem of women safety so that they can also grow equally like
men in their own country.
Server module
1. After installation of guardian app and victim app two tables are created in server model.
2. Two tables are victim table and guardian table.
3. Victim table contain five columns VID, VNAME, PHONE -NUMBER, LATITUDE,
LONGITUDE.
4. Guardian table contains three columns PHONE NUMBER, LATITUDE, LONGITUDE.
Figure shows the spiral model of software development. This model is combination of well- known
waterfall model and iterative prototyping. It yields rapid development of more complete version of
software. Using spiral model software is developed as series of
Evolutionary releases. During the initial releases, it may just paperwork or prototype. But during
later releases the version goes towards more completed stage.
The spiral model can be adopted to apply throughout entire lifecycle of the application from
concept development to maintenance. The spiral model is divided into set of framework activities
defined by software engineer team. The initial activity is shown from center of circle and developed
in clockwise direction. Each spiral of the model includes following four stages:
Planning Phase: This stage includes requirement gathering, cost estimation, resource allocation.
Risk Analysis Phase: This stage involves strengths and weaknesses of the project. Design Phase:
This stage includes coding, internal testing and deployment.
Evaluation Phase: Last stage involves client evaluation (client side testing) to get the feedback.
Various activities which are performed according to the spiral model phases are shownTab.
Sr
Name of Resource/Material Specification Qty. Remarks
No
Processor i3/HDD-
1 Hardware Resource 1
1TB/RAM-8GB
Android Studio,
2 Software Resource 1
jdk1.8.0
3 Any Other Resource Printer 1
Code:
//XML CODE
1. Home Page
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/button2"
android:layout_alignLeft="@+id/button2"
android:onClick="register"
android:layout_marginBottom="71dp"
android:text="Register" />
<Button
android:id="@+id/button3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button2"
android:layout_below="@+id/button2"
android:onClick="display_no"
android:layout_marginTop="74dp"
android:text="View Registered" />
<Button
android:id="@+id/button2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:onClick="instruct"
android:layout_centerVertical="true"
android:text="Instructions" />
<Button
android:id="@+id/button4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:onClick="verify"
android:text="Register Your Mobile Number" />
</RelativeLayout>
2. Register:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".Register" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="64dp"
android:text="Name:" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:layout_marginTop="71dp"
android:text="Number:" />
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/textView2"
android:layout_centerHorizontal="true"
android:layout_marginTop="68dp"
android:onClick="storeInDB"
android:text="Save" />
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView2"
android:layout_alignBottom="@+id/textView2"
android:layout_alignRight="@+id/button1"
android:ems="10"
android:hint="Mobile Number"
android:inputType="phone" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView1"
android:layout_alignBottom="@+id/textView1"
android:layout_alignLeft="@+id/editText2"
android:ems="10"
android:hint="Person Name"
android:inputType="textPersonName" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button2" style="?
android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button1"
android:layout_alignParentBottom="true"
android:layout_marginBottom="21dp"
android:onClick="instructions"
android:text="Instructions" />
<Button
android:id="@+id/button3" style="?
android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/button1"
android:layout_alignTop="@+id/button2"
android:onClick="display"
android:text="View Registered" />
</RelativeLayout>
3. Verify:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".Verify" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="176dp"
android:onClick="verify_no"
android:text="Submit" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button1"
android:layout_centerHorizontal="true"
android:layout_marginBottom="76dp"
android:ems="10"
android:hint="Your Phone Number"
android:inputType="phone" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button2" style="?
android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="94dp"
android:onClick="back"
android:text="Back" />
</RelativeLayout>
4. Instructions:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".Instructions" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="16dp"
android:text="INSTRUCTIONS"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/help"
android:layout_centerHorizontal="true"
android:layout_marginTop="34dp"
android:onClick="back"
android:text="Main Menu" />
<TextView
android:id="@+id/help"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button1"
android:layout_below="@+id/textView1"
android:layout_marginTop="15dp"
android:text="@string/help" />
</RelativeLayout>
5. Display:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".Display" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:onClick="back"
android:text="Main Menu" />
</RelativeLayout>
//JAVA CODE
1. AccelerometerManager.java
package com.sid.womensafetyapp;
import java.util.List;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.widget.Toast;
/**
* Returns true if the manager is listening to orientation changes
*/
public static boolean isListening()
{ return running;
/**
* Unregisters listeners
*/
public static void stopListening() {
running = false;
try {
if (sensorManager != null && sensorEventListener != null) {
sensorManager.unregisterListener(sensorEventListener);
}
} catch (Exception e) {}
}
/**
* Returns true if at least one Accelerometer sensor is available
*/
public static boolean isSupported(Context context) {
aContext = context;
if (supported == null) {
if (aContext != null) {
} else {
supported = Boolean.FALSE;
}
}
return supported;
}
2. BgService.java
package com.sid.womensafetyapp;
import android.annotation.SuppressLint;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.IBinder;
import android.os.Looper;
import android.os.Message;
import android.telephony.SmsManager;
import android.util.Log;
import android.widget.Toast;
@SuppressLint("HandlerLeak")
String str_address;
super(looper);
}
@Override
public void handleMessage(Message msg) {
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
if (AccelerometerManager.isSupported(this)) {
AccelerometerManager.startListening(this);
}
mServiceLooper = thread.getLooper();
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// Start a sticky.
return START_STICKY;
}
switch (message.what) {
case 1:
Bundle bundle = message.getData();
str_address = bundle.getString("address");
// TelephonyManager
tmgr=(TelephonyManager)BgService.this.getSystemService(Context.TELEPHONY_SERVICE);
// String ph_number=tmgr.getLine1Number();
SQLiteDatabase db;
db=openOrCreateDatabase("NumDB", Context.MODE_PRIVATE, null);
Cursor c=db.rawQuery("SELECT * FROM details", null);
Cursor c1=db.rawQuery("SELECT * FROM SOURCE", null);
String source_ph_number=c1.getString(0);
while(c.moveToNext())
{
String target_ph_number=c.getString(1);
// SmsManager smsManager=SmsManager.getDefault();
// smsManager.sendTextMessage("+918121668944", "+918121668944", "Please help me. I
need help immediately. This is where i am now:"+str_address, null, null);
Toast.makeText(getApplicationContext(),
"Source:"+source_ph_number+"Target:"+target_ph_number, Toast.LENGTH_SHORT).show();
}
db.close();
break;
default:
str_address = null;
}
}
}
@Override
public void onAccelerationChanged(float x, float y, float z) {
// TODO Auto-generated method stub
}
@Override
public void onShake(float force) {
GPSTracker gps;
gps = new GPSTracker(BgService.this);
if(gps.canGetLocation()){
}
else{ gps.showSettingsAle
rt();
}
if (AccelerometerManager.isListening()) {
AccelerometerManager.stopListening();
3. Verify.java
package com.sid.womensafetyapp;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import android.support.v4.app.NavUtils;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Build;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_verify);
// Show the Up button in the action bar.
setupActionBar();
/**
* Set up the {@link android.app.ActionBar}, if the API is available.
*/
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void setupActionBar() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
getActionBar().setDisplayHomeAsUpEnabled(true);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.verify, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// This ID represents the Home or Up button. In the case of this
// activity, the Up button is shown. Use NavUtils to allow users
// to navigate up one level in the application structure. For
4. Display.java
package com.sid.womensafetyapp;
import android.app.Activity;
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
Cursor c;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display);
SQLiteDatabase db;
db=openOrCreateDatabase("NumDB", Context.MODE_PRIVATE, null);
5. RGeocoder.java
package com.sid.womensafetyapp;
import java.io.IOException;
import java.util.List;
import java.util.Locale;
import android.content.Context;
import android.location.Address;
import android.location.Geocoder;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
}
sb.append(address.getLocality()).append("\n");
sb.append(address.getPostalCode()).append("\n");
sb.append(address.getCountryName());
result = sb.toString();
}
}
catch (IOException e) {
Log.e(TAG, "Unable connect to Geocoder", e);
}
finally {
Message message = Message.obtain();
message.setTarget(handler);
if (result != null) {
message.what = 1;
Bundle bundle = new Bundle();
result = "Latitude: " + latitude + " Longitude: " + longitude +
"\n\nAddress:\n" + result;
bundle.putString("address", result);
message.setData(bundle);
} else {
message.what = 1;
Bundle bundle = new Bundle();
result = "Latitude: " + latitude + " Longitude: " + longitude +
"\n Unable to get address for this lat-long.";
bundle.putString("address", result);
message.setData(bundle);
}
message.sendToTarget();
}
}
};
thread.start();
}
}
Fig. Home
Register Page
Fig. Register
Verify Page
Fig.Verify
Instructions Page
Fig. Instruction
Display Page
Fig. Display
a) Practical Outcomes:
As an independent nation, we must ensure respect and security of women and we cannot deny them
this basic right. It is now time to initiate action to eradicate the menace of security issues with
women. Violence against women remains embedded in our societies, both as a daily reality and a
difficult situations .Gender justice is impossible in a world where at least one in three women faces
violence in her lifetime, regardless of her culture, religion, socioeconomic class, or education level
Our country can be a true democracy only when all women have the security and freedom from
violence.
Sheet
(A) (B)
Total Marks
Process and Product Assessment Individual Presentation/Viva
(10 Marks)
(6 Marks) (4 Marks)
Annexure – IV
Micro Project Evaluation
Sheet
(A) (B)
Total Marks
Process and Product Assessment Individual Presentation/Viva
(10 Marks)
(6 Marks) (4 Marks)
…………………………………..
……………………………………………………………………………
Name & Designation of Course Teacher: Prof. N.D. Dhamale, Lecturer
Downloaded From MSBTE Solution App
MSBTE Solution
-Siddhesh
Comments/Suggestions about Teamwork/Leadership/Inter-personal Communication (if any)
…………………………………..
……………………………………………………………………………
Name & Designation of Course Teacher: Prof. N.D. Dhamale, Lecturer
Downloaded From MSBTE Solution App
MSBTE Solution
-Siddhesh
Annexure – IV
Micro Project Evaluation
Sheet
Name of Student: Shreyash Kiran Dahale Enrollment No: 1711670155
Name of Programme: Computer Engineering Semester: V
Course Title: Mobile App Development Course Code: 22617
Title of Micro Project: Women Safety App
Learning Outcomes Achieved:
1. Interprete features of Andriod operating system.
2. Configure Android environment and development tools.
3. Develop rich users Interfaces by using layouts and controls.
4. Use User Interface components for android application development.
5. Create Android application using database.
6. Publish Android applications.
Poor Average Good Excellent
Sr Sub
Characteristic to be Assessed Marks Marks Marks Marks
No Total
(1-3) (4-5) (6-8) (9-10)
(A) Process and Product Assessment (6 Marks)
1 Relevance to the Course
2 Literature Review/Information Collection
3 Completion of the Target as per Project Proposal
4 Analysis of Data & Representation
5 Quality of Prototype/Model
6 Report Preparation
(B) Individual Presentation/Viva (4 Marks)
7 Presentation
8 Viva
(A) (B)
Total Marks
Process and Product Assessment Individual Presentation/Viva
(10 Marks)
(6 Marks) (4 Marks)
…………………………………..
……………………………………………………………………………
Name & Designation of Course Teacher: Prof. N.D. Dhamale, Lecturer
Downloaded From MSBTE Solution App
MSBTE Solution
-Siddhesh
Annexure – IV
Micro Project Evaluation
Sheet
(A) (B)
Total Marks
Process and Product Assessment Individual Presentation/Viva
(10 Marks)
(6 Marks) (4 Marks)
Maharashtra State
Board of Technical Education
Certificate
This is to certify that Mr. Jainul Jignesh Dave with Roll No- 01 has successfully completed Micro-project
in course Mobile App Development (22617) for the academic year 2021-22 as prescribed in the
'Assessment Manual' during his/her tenure of completing Fifth Semester of Diploma Program in Computer
Engineering from institute, Sandip Polytechnic with institute code 1167.
Maharashtra State
Board of Technical Education
Certificate
This is to certify that Mr. Shreyash Kiran Dahale with Roll No- 08 has successfully completed Micro-
project in course Mobile App Development (22617) for the academic year 2021-22 as prescribed in the
'Assessment Manual' during his/her tenure of completing Fifth Semester of Diploma Program in Computer
Engineering from institute, Sandip Polytechnic with institute code 1167.
Maharashtra State
Board of Technical Education
Certificate
This is to certify that Mr. Ojas Yogesh Joshi with Roll No- 57 has successfully completed Micro-project in
course Mobile App Development (22617) for the academic year 2021-22 as prescribed in the 'Assessment
Manual' during his/her tenure of completing Fifth Semester of Diploma Program in Computer Engineering
from institute, Sandip Polytechnic with institute code 1167.