0% found this document useful (0 votes)
48 views86 pages

Help App Amtioj

Uploaded by

nikhileshiyer72
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)
48 views86 pages

Help App Amtioj

Uploaded by

nikhileshiyer72
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/ 86

HELP APP

A Project Report
Submitted in partial fulfilment of the

Requirements for the award of the Degree of

BACHELOR OF SCIENCE (INFORMATION TECHNOLOGY)


By

Amitoj Singh Banga -530003210111

Under the guidance of

Dr. Neelam Naik


Assistant Professor

DEPARTMENT OF INFORMATION TECHNOLOGY

Shri Vile Parle Kelavani Mandal’s


USHA PRAVIN GANDHI COLLEGE OF ARTS, SCIENCE

AND COMMERCE

NAAC Accredited ‘A+’ Grade


(Affiliated to University of Mumbai)
MUMBAI, 400056 MAHARASHTRA
2023 – 2024
2023– 2024

PROFORMA FOR THE APPROVAL PROJECT PROPOSAL

PNR No.: 2021016400541252 Roll No.: C106

1. Name of the Student:

Amitoj Singh Banga

2. Title of the Project:

HELP APP

3. Name of the Guide:

Dr.Neelam Naik

4. Teaching experience of the Guide:

20 years

5. Is this your first submission? Yes No

Signature of the Student Signature of the Guide

Date: ………………… Date: …………………….

Signature of the Coordinator

Date: …………………
SHRI VILE PARLE KELAVANI MANDAL’S
USHA PRAVIN GANDHI COLLEGE OF ARTS, SCIENCE AND COMMERCE
(Affiliated to University of Mumbai)
Bhaktivedanta Swami Marg, Juhu Scheme, Vile Parle (West), Mumbai – 400 056.
Tel.: 42332071 / 42332041- 44 ● Website: www.upgcm.ac.in ● Email: info@upgcm.ac.in NAAC
ACCREDITED ” A+ ” GRADE WITH CGPA 3.27

CERTIFICATE

This is to certify that this is a bonafide Project Report on

carried out by the following student of final year


B.Sc. (I.T.), Semester VI

Bachelors of Science in Information Technology


Submitted by

Name of the Student :- Amitoj Singh Banga

Exam Seat Number :- 1068631

In partial fulfilment of the award of degree of B.Sc.(I.T.) from the


University of Mumbai and is a bonafide record of the work done during
the Academic Year 2023–2024..

Internal Examiner External Examiner


Name: Name:
Date: Date:

BSc .IT Co-ordinator Principal


ABSTRACT

HelpApp is an assistance application for user’s to simply provide any assistance related to emergency
services like hospital, police station and fire station. Using Help App user can directly connect with
nearest hospital, police station and fire station. In this system user getting the facilities like by
pressing the panic button, user’s current location sends to Family members at regular interval SMS
and automatically dial 108 and a loud Alarm will be triggered that shows user in danger.

The "HelpApp" project aims to give users access to a location-based virtual assistant that provides
contextually pertinent information, services, and assistance in response to their vicinity to particular
locations or sites of interest. By utilizing location-based services to meet users' current needs and
preferences, the project seeks to improve user experiences.

The technologies used in this application are Html, Css, and JavaScript for front end with Cordova
framework, JAVA used for the back end of the application, while SQLite is used for the Database.

The "HelpApp" project seeks to accomplish a number of objectives in order to offer consumers
useful, contextually appropriate, and location-based assistance

i|Page
ACKNOWLEDGEMENT

At the outset of this project, we would like to express our sincere and heartfelt gratitude to all those
who have contributed to our endeavour. Without their active guidance, motivation, help, feedback,
and support, we could not have completed this project within the given time frame.

We extend our thanks to Dr. Anju Kapoor, our principal, for providing us with this opportunity to
conduct research and enhance our knowledge and skills.

We are also grateful to Mrs. Smruti Nanavaty, our Vice-Principal, for granting us this valuable
opportunity that has facilitated our project and contributed to our growth.

Our Project In-Charge, Dr. Neelam Naik, has provided us with constant guidance and supervision
to accomplish this assignment. We are highly indebted to her for her valuable feedback and
encouragement at various phases of the project.

Also, we would like to thank our Course Co-ordinator, Mr. Prashant Choudhary, for his valuable
feedback and support throughout the project.

We are grateful to all the teaching staff of the BSc.IT Department of Usha Pravin Gandhi College
of Arts, Science and Commerce for their constant encouragement, support, and guidance, which
helped us successfully complete our project work.

ii | P a g e
DECLARATION

I hereby declare that the project entitled, “Help App” done at MUMBAI, has not been in any case
duplicated to submit to any other university for the award of any degree. To the best of my knowledge
other than me, no one has submitted to any other university.

The project is done in partial fulfilment of the requirements for the award of degree of BACHELOR
OF SCIENCE (INFORMATION TECHNOLOGY) to be submitted as final semester project as
part of our curriculum.

Amitoj Singh Banga

iii | P a g e
TABLES OF CONTENT

Sr. No. Title Page No.

1 Abstract i

2 Acknowledgement ii

3 Declaration iii

4 List of Tables vii

5 List of Figures viii

Chapter 1: Introduction 1-7

1 1.1 Background 1

1.2 Objectives 1

1.3 Purpose, Scope & Applicability 2-4

1.3.1 Purpose 2

1.3.2 Scope 3

1.3.3 Applicability 4

1.4 Achievements 5

1.5 Organization of Report 6

Chapter 2: Survey of Technologies 8-15

2 2.1 Front End Technologies 8

2.2 Back End Technologies 9

2.3 Technology used by the Developer 11-15

2.4.1 Front End 11

2.4.2 Back End 12

2.4.2 Database 14

Chapter 3: Requirement Analysis 16-23

3 3.1 Problem Definition 16

3.2 Requirement Specification 17

3.3 Planning and Scheduling 18-21

3.3.1 SDLC 18

iv | P a g e
3.3.2 Gantt Chart 21

3.4 Hardware & Software Requirements 21

3.5 Preliminary Product Description 22

3.6 Conceptual Model 23


Chapter 4: System Design 24-37

4 4.1 Basic Modules 24

4.2 Data Design 24-26


4.2.1 Schema Design 25

4.2.2 Data Integrity and Constraints 26


4.3 Procedural Design 27-32
4.3.1 ER Diagram 27
4.3.2 Use Case Diagram 28

4.3.3 Sequence Diagram 29

4.3.4 Data Flow Diagram 30


4.4 User Interface Design 33

4.5 Security Issues 36


4.6 Test Cases 37

Chapter 5: Implementation and Testing 39-63

5 5.1 Implementation Approaches 39


5.2 Coding Details and Code Efficiency 40-56

5.2.1 Code 40
5.2.2 Code Efficiency 56
5.3 Testing Approach 57-62

5.3.1 White Box Testing 58


5.3.2 Black Box Testing 59

5.3.3 Unit Testing 60


5.3.4 Integrated Testing 61
5.4 Modification and Improvements 63

v|Page
Chapter 6: Results and Discussion 64-72

6 6.1 Test Reports 64

6.2 User Documentation 65-72


6.2.1 Home Page 65

6.2.2 Emergency SoS 66

6.2.3 Helpline Numbers 67


6.2.4 Hidden Camera 69

6.2.5 Current Location 71

6.2.6 App Tour 72


Chapter 7: Conclusion 73-74

7 7.1 Conclusion 73
7.2 Limitations of the System 73

7.3 Future Scope of the Project 74


References 75

vi | P a g e
List of Tables

Table No. List of Table Page No.

1 Preliminary Product Description 22

2 Data Design (User Table) 25

3 Data Design (Emergency Contact) 25

4 Data Design (GPS) 26

5 Data Design (Emergency Service) 26

6 Test Cases 37

7 Test Reports 64

vii | P a g e
List of Figures

Figure No. List of Figures Page No.

1 SDLC – Iterative Diagram 20

2 Gantt Chart 21

3 Conceptual Model 23

4 Basic Modules 24

5 ER Diagram 27

6 Use Case Diagram 28

7 Sequence Diagram 29

8 Data Flow Diagram Level 0 30

9 Data Flow Diagram Level 1 31

10 Data Flow Diagram Level 2 32

11 Home Page 33

12 Login Page 34

13 Emergency Services of Help App 35

14 Iterative Model Implementation 39

15 White Box Testing 59

16 Black Box Testing 60

17 Unit Testing 62

18 Home Page 65

19 Emergency SoS 66

20 Helpline Number – Part 1 67

21 Helpline Number – Part 2 68

22 Hidden Camera – Part 1 69

23 Hidden Camera- Part 2 70

24 Current Location 71

25 App Tour 72

viii | P a g e
Chapter 1

Introduction
1.1 Background
HelpApp is very useful android app. This application is use as security purpose. Using that user
can directly connect with nearest hospital, police station and fire station. In this system user
getting the facilities like by pressing the panic button, user’s current location sends to Family
members at regular interval SMS and automatically dial 108 and a loud Alarm will be triggered
that shows user in danger.

User can View Nearest Hospital, Fire station or any other assistance with the use of Google
Place API and Displayed on a map with directions and with contact details. Taking into account
privacy issues is crucial while creating a location-based Android Help Assistance App. Users
must be aware of how much data is being used and be able to manage location permissions
within the app.

The emergency services in India lack reliability, the numbers available on the internet are
invalid. Booking an ambulance in emergency is another challenge in itself Considering this
lack of reliable sources and to cater these problems we have come up with a solution.

1.2 Objectives
The "HelpApp" project's goals center on utilizing location-based services to provide users with
pertinent and contextually appropriate aid and information depending on their vicinity to
particular locations or points of interest. The following are the project's main objectives:

1. Location-depending Information: The main objective is to offer users location- specific


data, services, and help depending on their present location.
2. Nearby Points of Interest: The software should assist users in finding nearby points of
interest, including hospitals, police station, medical stores, stores, and other pertinent
locations.
3. Emergency Support: One goal is to offer customers nearby emergency contacts,
hospitals, police stations, or other crucial services in case of an emergency.

1|Page
4. Privacy and data security: It's essential to protect user privacy and data security. The
project put in place strong safeguards to protect user location information and offer
clear privacy settings.
5. User-Friendly Interface: The project should have a simple, user-friendly interface that
makes it simple for users to seek help and information.
6. Seamless Integration: To provide accurate and current information, the app smoothly
interface with location-based services, maps, and other pertinent APIs.
7. Continuous Improvement: The "HelpApp" project will continuously learn from user
interactions, just like any Android Help Assistance app, to better comprehend user
intent and develop its capabilities over time
By attaining these objectives, the "HelpApp" project is able to offer users a useful and
contextually appropriate tool that improves their experiences in their immediate
surroundings, making it a necessary travel companion for both tourists and regular
users.

1.3 Purpose and Scope


1.3.1 Purpose

The "HelpApp" project aims to give users access to a location-based virtual assistant that
provides contextually pertinent information, services, and assistance in response to their
vicinity to particular locations or sites of interest. By utilizing location-based services to meet
users' current needs and preferences, the project seeks to improve user experiences. The project
"HelpApp" has the following main purpose:

1 Location-Specific Assistance: The main purpose is to provide users with information and
assistance that is specifically pertinent to their current location. The app may deliver
services and responses that are contextually relevant by utilizing real-time location data.
2 Emergency Support: Providing customers with access to area emergency contacts,
hospitals, police stations, and other vital services is one of the project's objectives.
3 User Convenience: By providing location-specific support, navigation, and access to
nearby resources, the goal is to make users' life more convenient.
4 Privacy and data security: A key component of the project is ensuring user privacy and
data security. Strong security measures should be implemented by the program, and it
should provide clear privacy options.

2|Page
5 Seamless Integration: To deliver accurate and current information, the app should
smoothly interact with location-based services, maps, and other pertinent APIs.
6 User-Friendly Interface: The goal is to give users a simple, user-friendly interface that
makes it simple to access help and information specific to their location.
7 Continuous Improvement: The project will continuously learn from user interactions, just
like any Android Help Assistance app, to better comprehend user intent and develop its
offerings over time.

The "HelpApp" project's overall purpose is to provide a useful and location-aware virtual
assistant that improves users' experiences and gives them access to pertinent information
and services in their local surroundings. Travellers, tourists, and those looking for
localised advice and recommendations may find this location-based strategy particularly
helpful.

1.3.2 Scope

We will take into account the "HelpApp" project's constraints when creating and deploying the
app. Realistic expectations and efficient app development are made possible by an
understanding of these constraints. Several of the project's major scope include:

 Depending on variables like GPS signal strength, inside vs. outside use, and network
connectivity, location-based services' accuracy can change. Users may have trouble
pinpointing their precise position, which could result in differences in the recommendations
for places to go nearby.
 Location-based apps present privacy issues because they require access to the user's
location information. Due to privacy concerns, users would be reluctant to consent to such
access, which could hinder app uptake.
 Continuous GPS or location-based services use can drain a device's battery significantly.
To reduce energy consumption, we should optimize the app's location monitoring.
 Because the program depends on real-time location services, its usability in places with
weak or no internet connectivity may be restricted. This restriction can be lessened by
implementing some offline functionality or by caching location-specific data.

3|Page
 There may be issues with the app's ability to effectively understand complicated user
circumstances, intent, or preferences. This may result in generalized advice or
misconceptions
 For location information, navigation, and local recommendation services, the app heavily
depends on external APIs and services. The functioning of the app may be affected if any
of these services experience problems or go through changes.
 Privacy and security must be carefully considered while gathering and keeping user
location data. We need to warn users about data usage and put in place appropriate data
protection safeguards.
 Building a thorough "near me" app with a wide range of location-based features can be
time- and resource-consuming because it calls for integrating with several APIs and
services.

We will carry out extensive testing, take user feedback into account, and continuously enhance
the app's functionality and user experience to get around these restrictions. A successful
"HelpApp" project requires striking a balance between offering beneficial location-based
services and addressing potential issues.

1.3.3 Applicability

A wide spectrum of users, especially those who gain from location-based services and
contextually relevant information, can use the "HelpApp" project. The following people are
among the project's target audience:

1. Families & Parents: Families can use the app to keep a check on their family members.
2. Emergency Situations: The app can be useful for anyone in an emergency because it can
give information on surrounding hospitals, police stations, and emergency services.
3. Health and Fitness Enthusiasts: Those who are interested in health and fitness can use the
app.

The "HelpApp" initiative is designed for those who wish to look about their immediate area,
identify useful services, and receive location-based assistance in real time. It is helpful for a
variety of settings and user profiles because it provides practical convenience and location-
based personalization.

4|Page
1.4 Achievements

The "HelpApp" project seeks to accomplish a number of objectives in order to offer consumers
useful, contextually appropriate, and location-based assistance. The project's main goals to
achieve are as follows:

1. Location-Based Assistance: The main objective is to offer consumers pertinent and


contextually appropriate help, advice, and services based on their present physical location.
2. Real-Time Navigation: Through the provision of precise and current turn-by-turn
directions, walking routes, or information on public transport, the initiative aims to help
users reach their intended locations quickly.
3. Real-Time Updates: To keep users informed and provide real-time updates about their
Health.
4. Emergency Support: One of the objectives is to offer users nearby emergency contacts,
hospitals, police stations, or other crucial services in order to give them immediate aid
during emergencies.
5. User Convenience: By providing location-specific support, navigation, and easy access to
neighboring services, the app aims to increase users' convenience.
6. Privacy and data security: It's essential to protect user privacy and data security. Strong
security safeguards should be put in place for user location data, and the project should
offer clear privacy options.
7. Seamless Integration: To deliver accurate and trustworthy information, the app should
smoothly integrate with location-based services, maps, and other pertinent APIs.
8. Easy Access to Location-Specific Information and support: The app seeks to give users a
simple and user-friendly interface that makes it simple to access location-specific
information and support.
9. Continuous Improvement: The project should continuously learn from user interactions to
better comprehend user intent and develop its offerings over time.

By achieving these goals, we can offer consumers a useful and contextually appropriate
solution that improves their daily lives and experiences.

5|Page
1.5 Organization of Report

Chapter 1 has mainly focused on a brief description of the background and context of the
project and its relation to work already done in the area. It has given a concise statement of the
aims and objectives of the project, answers questions on why this project is being done, how
the project could improve the system its significance and theoretical framework, what are the
main issues being covered in the project, what are the main functions of the project, and how
this project will serve the computer world and people. This chapter will also explain what
knowledge the student has achieved after the completion of the work, what contributions has
the project made to the chosen area. It will also state the goals achieved describing the degree
to which the findings support the original objectives laid out by the project.

In the 2nd chapter, Survey of Technologies, it will highlight collective awareness and
understanding of available technologies related to the topic of the project. It will also give the
detail of all the related technologies that are necessary to complete the project and are available
in the chosen area. It will also present a comparative study of all those available technologies
and explain why we selected the one technology for the completion of the objectives of the
project.

The 3rd chapter will describe the problem definition of the HelpApp. It will also cover the
requirements of the components that will be used and also the drawbacks of the existing system
that lead to requirements to eliminate the problems of the old system. Also, the way the project
is planned to be completed will be shown with the help of Gantt chart. This will describe how
the project has been scheduled. The last thing this chapter will include is the use of conceptual
models which will help to understand the app and its operations

The 4th chapter will determine the design of the, describing the modules or the components
that will be used. It will also focus on the data design, the way data is being used and handled,
sent and received, updated and deleted. It will also show a basic user interface that will help to
get a brief idea of how the system will look to the user.

6|Page
The 5th chapter, Implementation and Testing, will focus on the implementation of system design. This
will include implementation approaches, important snippets of codes, the kind of testing approaches to be
taken and their details.

The 6th chapter gives results of the project implementation. It shows the results of what was completed.
It will discuss these results in different scenarios and will help to determine the success rate in all types of
scenarios. It will also provide user documentation of the system, which will include all the necessary
details required to use the system and get it working immediately.

The 7th chapter, Conclusions, brings together the limitations encountered during the testing of the project
and how they can be eliminated in the future. It also enlists the criticisms accepted during the
demonstrations of the project. It will also include the future scope of the project describing two things:
firstly, new areas of investigation prompted by developments in this project, and secondly, parts of the
current work that were not completed due to time constraints and/or problems encountered.

7|Page
Chapter 2

Survey of Technologies
2.1 Front End Technologies
The term "front-end technology" refers to a broad range of instruments, coding languages, and
methodologies used to develop the interactive and visual elements of a website or web
application. Users engage with it directly through their web browsers as part of the web creation
process. The Back End consist of following features: -

 Accessibility: To make sure that web content is accessible to persons with disabilities,
including those who use screen readers and other assistive technology, front-end developers
pay attention to accessibility standards (e.g., WCAG).
 Interactivity: Real-time updates, dropdown menus, form validation, and other interactive
web features can be created using JavaScript and other scripting languages, which increases
user engagement.
 Security: By adding client-side security procedures like input validation and preventing
Cross-Site Scripting (XSS) attacks, front-end developers contribute to the security of web
applications.

Let's get deeper into front-end technology:

1. Hypertext Markup Language (HTML):


 The building blocks of web development are HTML. This markup language is utilized to
organize content on web pages.
 The definition of elements including headings, paragraphs, lists, links, images, and forms
in HTML is done using tags.
 It offers the fundamental organization and information of a web page.

2. Cascaded Style Sheets (CSS):


 The HTML content is styled and formatted using CSS. It manages a web page's layout,
colors, fonts, and visual design.

8|Page
 CSS can be used directly within HTML, inside a style> element, or as external CSS files
that are linked to HTML.
 For quicker development, CSS frameworks like Bootstrap and Materialize offer pre-
designed styles and layouts.
3. JavaScript:
 JavaScript is a powerful programming language that may be used to enhance the
functionality and interaction of online pages.
 To alter page content or react to user input, it can manipulate the Document Object Model
(DOM).
 Form validation, animations, and asynchronous server requests (AJAX) all need the use of
JavaScript.
4. CSS Preprocessors:
 Advanced CSS capabilities like variables, mixing, and nesting are introduced by CSS
preprocessors like Sass and LESS, which improve CSS code organization and
maintainability.
5. Application Programming Interfaces (APIs) for the web:
 Front-end code can communicate with outside services and obtain data from servers thanks
to web APIs.
 Examples include the Web Storage API for client-side data storage, the Geolocation API
for determining a user's location, and the Fetch API for sending HTTP requests.

2.2 Back End Technologies


A vital part of web development, back-end technologies are in charge of server-side operations,
database management, and the overall functionality of an online application. Back-end
technologies take care of the underlying logic and data administration while front- end
technologies concentrate on the user interface. The Back End consist of following features:

1. Database Integration:
 Back-end technology enable seamless data management, storage, and retrieval within
databases.
 To deal with different types of databases, they offer database connectors and query
languages (SQL or NoSQL).

9|Page
2. Security:
 To secure sensitive data, security mechanisms including user authentication,
authorization, and encryption are used.
 Common security flaws like SQL injection, Cross-Site Scripting (XSS), and Cross-Site
Request Forgery (CSRF) can be avoided with the use of back-end solutions.
3. Data Validation and Sanitization:
 To guarantee that incoming data is accurate and safe for use, back-end systems impose
data validation and sanitization.
 This stops harmful or deformed data from having an impact on the program.

A thorough discussion of back-end technologies is provided below:


1. Server-Side Programming Languages:
Languages used for server-side programming are frequently used in back-end
development.
 Python: Python, which is well-known for being straightforward and flexible, is frequently
used for creating websites utilizing frameworks like Django and Flask.
 Java: Java is a popular option for large-scale enterprise applications due to its portability
and robustness.
 Ruby: The Ruby on Rails framework favors convention over configuration, making it
user-friendly for developers.
 PHP: PHP is a commonly used programming language for creating dynamic webpages.
 Node.js: Node.js, which is renowned for its event-driven, non-blocking I/O architecture,
allows JavaScript to be utilized on the server-side.
2. Database Management Systems (DBMS):
 The management of databases using DBMS software ensures data protection, integrity,
and effective querying.
 MySQL, PostgreSQL, Microsoft SQL Server, and Oracle Database are a few examples.

10 | P a g e
2.3 Front End and Back End Technologies used in the Project

2.3.1 Front End Technology

Cordova: Cordova is also known as Apache Cordova. It is not a programming language itself
rather it is a framework for developing mobile applications using web technologies such as
HTML, CSS, and JavaScript. Cordova allows developers to create cross-platform mobile apps
that can run on multiple platforms, including Android, IOS, Windows, and more, using a single
codebase.

Choosing CORDOVA for your HELPAPP offers several advantages making it an appropriate
candidate for frontend development

 HTML, CSS, and JavaScript these are the core technologies used for creating the user
interface and logic of a Cordova-based mobile app. Developers write the apps front-end
code using these web technologies.
 Cordova provides a set of APIs and a native container for running web-based apps as native
mobile applications. It acts as a link between the web code and the device's native
capabilities.
 Cross-Platform Compatibility: Cordova enables the development of mobile apps that can
run on multiple platforms, including Android, IOS, Windows, and more. This "write once,
run anywhere" approach saves time and effort compared to building separate native apps
for each platform
 Code Reusability: A significant advantage of Cordova is code reusability. The majority of
the code base can be shared across platforms, reducing duplication and maintenance efforts.
 Hybrid Development: Cordova allows developers to combine native components and web
components in a single app. You can integrate native code for specific platform-dependent
features while maintaining a majority of the code base in web technologies.
 Community and Ecosystem: Cordova has a large and active developer community,
resulting in extensive documentation, plugins, and tutorials to assist with development
tasks.

11 | P a g e
2.3.2 Back End Technology
JAVA:
Android has succeeded in keeping JAVA on the forefront in the last couple of years.
JAVA gives the best option for development of mobile applications that are based on
Android, as Android consists of its own APIs and JAVA libraries. So, for Android
applications, you use android APIs as well as JAVA to write code for Android apps.

These apps are called as native apps, as they are developed by using native tools and
libraries. You can also code in other languages as well but you need a framework to
convert into native app for that API. To execute the programming files, Android does
not use JVM (JAVA Virtual Machine) but instead uses DVM (Dalvik Virtual Machine),
which is not a true JVM. So, to execute the files it has to convert into DEX format and
then bundled into Android Package (APK).

For mobile application, JAVA has specially designed J2ME (JAVA to micro edition).
All J2ME applications must have a main class that is derived from a special class called
MIDlet. The standard JAVA runtime environment for these devices is provided using
(MIDP) Mobile Information Device Profile and Connected Limited Device
Configuration (CLDC). To write J2ME applications, you need the JAVA platform
micro edition SDK (software development kit) and IDE, which can be Eclipse or Net
beans. But to develop an Android application, JAVA midlet has to convert into android
apps and for that, tools like J2Android are used. This tool can convert any JAVA midlet
into Android apps.

There is a question raised on the JAVA performance and future application, but JAVA
gives the platform to promising languages based on JVM such as Scala and Clojure.
And with the introduction of the new version, JAVA 7 will become more efficient. In
conclusion, JAVA is the best choice for mobile developers working on Android
applications because it is convenient and relatively easy to use

12 | P a g e
Key Features:

1. Object Oriented: In Java, everything is an Object. Java can be easily extended since it is based on the
Object model.

2. Platform Independent: Unlike many other programming languages including C and C++, when Java
is compiled, it is not compiled into a platform specific machine, rather into platform-independent byte
code. This byte code is distributed over the web and interpreted by the Virtual Machine (JVM) on
whichever platform it is being run on.

3. Simple: Java is designed to be easy to learn. If you understand the basic concept of OOP Java, it would
be easy to master.

4. Secure: With Java's secure feature it enables to develop virus-free, tamper-free systems. Authentication
techniques are based on public-key encryption.

5. Architecture-Neutral: Java compiler generates an architecture-neutral object file format, which makes
the compiled code executable on many processors, with the presence of Java runtime system.

6. Portable: Being architecture-neutral and having no implementation dependent aspects of the


specification makes Java portable. The compiler in Java is written in ANSI C with a clean portability
boundary, which is a POSIX subset.

7. Robust: Java makes an effort to eliminate error-prone situations by emphasizing mainly on compile
time error checking and runtime checking.

8. Multi thread: With Java's multithreaded feature it is possible to write programs that can perform many
tasks simultaneously. This design feature allows the developers to construct interactive applications that
can run smoothly.

9. Interpreted: Java byte code is translated on the fly to native machine instructions and is not stored
anywhere. The development process is more rapid and analytical since the linking is an incremental and
light-weight process.

13 | P a g e
2.3.3 Database

SQLite Database:

Relational database management system (RDBMS) SQLite is a serverless, lightweight,


embedded solution that requires little configuration. The pronunciation is frequently
"sequel-lite" or just "SQL-light." The following are some of SQLite's salient traits and
features:

1. Embedded Database: SQLite runs within the same process as the application and does
not require its own server process because it is made to be embedded directly into
applications. Because of this, it may be used for desktop, mobile, and small- to medium-
sized web applications.
2. Self-Contained: SQLite databases are simple to administer and share because they are
kept on disk as a single file. One library, usually a few hundred kilobytes in size,
contains the whole database engine, simplifying deployment and maintenance.
3. Zero Configuration: SQLite doesn't require any setup or configuration, in contrast to
conventional RDBMS systems. SQLite databases don't require any installation or
administration work before applications may begin utilizing them.
4. Relational Database: SQLite is based on the relational database concept and allows
data management and querying using SQL (Structured Query Language). Because of
its features, which include tables, indexes, triggers, transactions, and views, it may be
used to store structured data.
5. Multi-Operating System Compatibility: SQLite is compatible with a wide range of
operating systems, including Windows, macOS, Linux, iOS, and Android. Because of
this, programmers can create apps that work on several platforms without having to
change the database code.
6. High Performance: SQLite provides good performance for the majority of common
database operations despite being lightweight. On a normal system, it can handle
thousands of transactions per second and is geared for workloads that include a lot of
reading.
7. Low Resource Usage: SQLite is made to be as resource-efficient as possible, using
very little CPU and memory power. It is hence appropriate for contexts with limited
resources, such as embedded systems and mobile devices.

14 | P a g e
8. Open Source: SQLite is free to use for both business and non-commercial uses because
it is open-source software that has been released into the public domain. Developers are
free to examine, alter, and add to the project thanks to its open-source code.

All things considered, SQLite is a small, flexible, and user-friendly database option that
works well for applications that need a basic, overhead-free database engine. It is very
well-liked in desktop software, small-scale web applications, and mobile app
development.

15 | P a g e
Chapter 3

Requirements and Analysis


3.1 Problem Definition

3.1.1 Problem in the existing system

 Limited Location Accuracy: One of the significant challenges was the accuracy of location
services. In some cases, the apps struggled to point the exact location of the caller, which
is critical during emergencies
 Inconsistent Integration with Emergency Services: Some apps faced challenges when it
came to integrating seamlessly with local emergency services, such as police, fire, and
medical response teams.
 User Interface Complexity: The complexity of some app’s interfaces could be a barrier,
especially for older individuals or those who are not technologically inclined.
 Data Privacy and Security Concerns: Users were often concerned about the security of their
personal information, especially when using third-party apps for emergency services.
 Response Time: The response time of these apps in critical situations was crucial. Any
delays or inefficiencies in routing emergency calls could have serious consequences.
 False Alarms and Pranks: Some apps experienced issues with false alarms, which could
divert emergency services from actual emergencies. Additionally, prank calls or misuse of
the app could strain resources.

3.1.2 Problem Statement

The current Problem of the Help App is the ineffectiveness of the GPS tracking system, which
handles the user’s location in case of emergency situation or panic button usage. The app
lacks capability of covering large proximity of region. The app is also lacking behind
providing maps, accessing essential features and resources without any internet connection.

16 | P a g e
3.1.3 Solution
 Work closely with local emergency services to establish direct connections and ensure
smooth communication between the app and emergency response teams.
 Implement advanced location tracking technologies like A-GPS, Wi-Fi
triangulation, and Bluetooth beacons to improve accuracy.
 Include an option for users to make emergency calls even without an internet
connection, and provide offline maps and resources.
 Design a user-friendly interface with clear and intuitive navigation, and offer tutorials or
guides for first-time users.
 Implement user verification mechanisms, like phone number verification, to reduce
false alarms and discourage misuse.
 Implement robust encryption protocols, strict data access controls, and comply with data
protection regulations for data protection
 Develop a cache system for critical information, and enable users to access essential
features even when offline.
 Optimize the app's infrastructure and servers to ensure quick response times, and
conduct regular stress testing to handle peak loads.

3.2 Requirement Specification


User:
 Registration: Basic Details with 3 Family Members details such as Name & Phone No.
Direct Login and details will be saved.
 Panic Button: Gets activated by pressing or shouting "Panic", and after activation sends
Panic SMS to members and dials 911 automatically, and a loud Alarm will be triggered
and at regular intervals SMS of current location.
 Edit Member Details: User can edit member details.
 Hospital: View nearest Hospital with the use of Google Place API and displays on a map
with directions and with contact details.
 Police Station: View nearest Hospital with the use of Google Place API and displays on a
map with directions and with contact details.

17 | P a g e
 Fire Station: View nearest Fire Station with the use of Google Place API and displays on a
map with directions and with contact details.
 Road Side Assistance Details: Contact numbers of different assistance like, breakdown,
towing, helpline etc.
 Accident Reporting: Report’s an accident by filling out a form with accident images.
 Weather & News Updates: Can view Weather via Google API, and News via Admin.

Admin:
 Login: Admin need to login with their valid login credentials in order to access the
system.
 View User: All the registered user’s details can be viewed by admin.
 View Accidents: All the recent as well as current accident with details and images can be
viewed by the admin.
 Add News: Admin can add news with details.
 Add Road Side Assistance: For accidental or any breakdown purpose, admin add
Roadside assistance info.

3.3 Planning and scheduling

3.3.1 SDLC

The Iterative model is a software development process where the development cycle is divided
into smaller, repetitive iterations. Each iteration involves a sequence of steps including
planning, requirements analysis, design, implementation, testing, and evaluation. The primary
idea behind the iterative model is to deliver a working product incrementally, with each
iteration building upon the previous one.
The phases of the iterative model typically include:
1 . Requirements Gathering and Analysis: In this phase, the project requirements are
identified, analyzed, and documented. This involves understanding the needs of the
stakeholders and defining the scope of the project. The requirements are prioritized
based on their importance and feasibility.

18 | P a g e
2. Design: After gathering the requirements, the design process begins. During this stage, the
development team creates the architecture and design of the software system. This includes
specifying system components, data structures, interfaces, and algorithms. The goal
of the design phase is to create a blueprint for the software's implementation.
3. Implementation: During the implementation phase, developers write code based on the
design specifications. This entails converting the design into executable code via
programming languages and development tools. Developers work iteratively, introducing
features and functionality gradually, sometimes in short cycles known as iterations.
4. Testing: Testing is an ongoing phase in the iterative approach that takes place concurrently
with implementation. Various types of testing, such as unit testing, integration testing, system
testing, and user acceptability testing, are used to find and address faults in software and
ensure its quality and stability.
5. Evaluation: After each iteration, stakeholders review the software's performance, usability,
and alignment with requirements. Stakeholders give input based on their experiences with the
programme, which is used to identify areas for improvement and inform future revisions.
6. Refinement: In successive iterations, the software is polished and enhanced in response to
input obtained during the evaluation process. This could include changing current features,
introducing new functionality, fixing bugs, or updating the design to better suit stakeholder
demands and expectations.

These stages are repeated iteratively, with each iteration producing a better version of the
software. The iterative paradigm promotes flexibility, adaptation to change, and continual
improvement throughout the software development process.

19 | P a g e
Figure 1: Iterative Model

20 | P a g e
3.3.2 Gantt Chart

Figure 2: Gantt Chart

3.4 Software and Hardware Requirements

Software Requirement:
 Windows 7 or higher
 Android Studio
 SQL Server 2008

Hardware Requirement:
 i3 Processor Based Computer
 1GB-RAM
 80 GB Hard Disk
 Monitor
 Internet Connection
 Android Device

21 | P a g e
3.5 Preliminary Product description
Table 1: Preliminary Product Description of Help App
Major Features of the User
System

Login and Registration Yes

Emergency SOS Yes

Helpline Numbers Yes

Current location Yes

Magnetometer Yes

Siren Alert Yes

Add Emergency Contact No

App tour No

22 | P a g e
3.6 Conceptual Models

Figure 3: Conceptual Model of Help App

23 | P a g e
Chapter 4

System Design
4. 1 Basic Module

Figure 4: Basic module of Help App

24 | P a g e
4.2 Data Design

4.2.1 Schema Design

User:

Table 2: User Schema Design of Help App

Field Type Null Length


User name Varchar no 30
User password Varchar No 30
User email Varchar no 30
User address Varchar no 55
User contact no. Int No 11

Emergency Contact:

Table 3: Emergency Contact of User

Field Type Null Length


Name String no 11
Contact No Int no 11

25 | P a g e
GPS:

Table 4: current location of user

Field Type Null Length


Location Varchar No 30

Emergency Services:

Table 5: Emergency Services Schema Design of Help App

Field Type Null Length


Name String No 11
Contact No Int No 11

4.2.2 Data Integrity and Constraints

Data Integrity and Constraints for the Login and Registration Module:

1. Unique User Identifiers: Ensure that each user has a unique identifier, such as a username
or email address, to prevent duplicate accounts and maintain data integrity.

2. Data Validation: Verify user-provided data for registration, such as email addresses, to
ensure they adhere to the correct format and prevent incorrect or malicious entries.

3. Password Hashing: Store passwords securely by using cryptographic hashing algorithms to


safeguard sensitive login information.

4. Data Encryption: Encrypt data transmission during login and registration processes to
protect against eavesdropping and maintain confidentiality.

5. Password Reset Constraints: Implement secure mechanisms for password reset, such as
sending reset links to registered email addresses, and verify the identity of users requesting
password changes.

6. Error Handling: Implement robust error handling to provide clear and secure feedback to
users during login and registration, preventing information leakage.

26 | P a g e
4.3 Procedural Design

4.3.1 ER Diagram

Figure 5: ER Diagram of Help App

27 | P a g e
4.3.2 Use Case Diagram

Figure 6: Use Case Diagram of Help App

28 | P a g e
4.3.3 Sequence Diagram

Figure 7: Sequence Diagram of Help App

29 | P a g e
4.3.4 Data Flow Diagram

Level 0

Figure 8: Data Flow Diagram Level 0 of Help App

30 | P a g e
Level 1

Figure 9: Data Flow Diagram Level 1 of Help App

31 | P a g e
Level 2

Figure 10: Data Flow Diagram Level 2 of Help App

32 | P a g e
4.4 User Interface Design

Figure 11: Home page of Help app

33 | P a g e
Figure 12: Login Page of Help App

34 | P a g e
Figure 13: Emergency services of Help Ap

35 | P a g e
4.5 Security Issues

• Incorrect username: Invalid or incorrect username entered by admin to login into admin
module.

• Incorrect password: Just like incorrect username, password can also be incorrect resulting in
login failure (example if caps lock may be on).

• Data loss: Records may be deleted due to some different reasons.

• Data redundancy: Data may get replaced or lost.

• Connection: Connectivity of Wi-Fi may get disconnected due to some connectivity issues.

• Test repeatedly: Your application should be tested repeatedly using different test cases so as to ensure
that the flow of working of your application is correct.

36 | P a g e
4.6 Test Cases

Table 6: Test Cases of Help App

Sr. No. Description Entry Result


1 Incorrect username Abc Invalid username

2 Incorrect password Xyz Invalid password

3 Correct username Admin Access granted


4 Correct password Direct123 Access Granted
(example)

5 Registration If not null, Please fill required


constraint isn’t details
filled

6 Using Magnetometer to Tap on Hidden Successfully


Camera and then tap
find hidden camera on using Detects Hidden
magnetometer camera in the
proximity of the
device
7 Emergency SoS Add Contact to Contact Added
Emergency SoS Successfully

8 Siren Alert Tap on Siren Alert Siren Goes Off


(Siren Starts)

9 Emergency SoS Triple Tap on Power Call goes to


Button emergency number
112 and Alert sent to
Emergency Contact
10 Emergency Services Tap on Helpline Successfully Call
(Helpline Number) Number and Select connected to
the Emergency Emergency Service
Service

37 | P a g e
11 Find the Hidden Camera Tap on Device Detects IR rays
Camera in Hidden emitted from hidden
Camera section camera using night
vision
12 Police Tap on Police in Successfully call the
(Helpline Number) Helpline Number police

13 Ambulance Tap on Ambulance Successfully call the


in Helpline Number Ambulance

14 Domestic Abuse Tap on Domestic Successfully call the


Abuse in Helpline Domestic Abuse
Number

15 Child Abuse Tap on Child Abuse Successfully call the


Abuse in Helpline Child Abuse
Number

16 Women in Distress Tap on Women in Successfully call the


Distress in Helpline Women in Distress
Number

17 Current Location Triple tap on power Current Location


button in Current Sent to Emergency
Location in Home Contact
Page
18 App Tour Tap on Features in Successfully
App tour redirected to the
selected feature

38 | P a g e
Chapter 5
Code and Test

5.1 Implementation approach:


Iterative process starts with a simple implementation of a subset of the software requirements and
iteratively enhances the evolving versions until the full system is implemented. At each iteration,
design modifications are made and new functional capabilities are added. The basic idea behind this
method is to develop a system through repeated cycles (iterative) and in smaller portions at a time
(incremental).
The following illustration is a representation of the Iterative and Incremental model –

Fig 14: Iterative Model Implementation

39 | P a g e
5.2 Coding Details and Code Efficiency:
5.2.1 activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView 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"
android:background="@drawable/bgapps"
tools:context=".MainActivity">

<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_marginRight="20dp"
android:layout_marginLeft="30dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TextView
android:id="@+id/Textapp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Help App"
android:textColor="@color/cardview_light_background"
android:textSize="22sp" />

</RelativeLayout>

40 | P a g e
<GridLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:alignmentMode="alignMargins"
android:columnCount="2"
android:columnOrderPreserved="false"
android:paddingTop="40dp"
android:rowCount="4"
app:layout_constraintEnd_toEndOf="parent">

<androidx.cardview.widget.CardView
android:id="@+id/Settings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_margin="12dp"
android:clickable="true"
android:focusable="true"

android:foreground="?android:attr/selectableItemBackground"
app:cardCornerRadius="12dp"
app:cardElevation="6dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
android:padding="16dp">

41 | P a g e
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/ic_sos"
app:srcCompat="@drawable/ic_sos" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="Emergency\nSOS"
android:gravity="center"

android:textColor="@color/common_google_signin_btn_text_light_pressed"
android:textSize="16sp" />

</LinearLayout>

</androidx.cardview.widget.CardView>

<androidx.cardview.widget.CardView
android:id="@+id/Currentlocation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_margin="12dp"
android:clickable="true"
android:focusable="true"

android:foreground="?android:attr/selectableItemBackground"
app:cardCornerRadius="12dp"

42 | P a g e
app:cardElevation="6dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
android:padding="16dp">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/ic_photographer__new"
app:srcCompat="@drawable/ic_photographer__new"
/>

<TextView
android:id="@+id/current"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="Hidden\nCamera "
android:gravity="center"

android:textColor="@color/common_google_signin_btn_text_light_pressed"
android:textSize="16sp" />

</LinearLayout>

</androidx.cardview.widget.CardView>

<androidx.cardview.widget.CardView

43 | P a g e
android:id="@+id/helpline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_margin="12dp"
android:clickable="true"
android:focusable="true"

android:foreground="?android:attr/selectableItemBackground"
app:cardCornerRadius="12dp"
app:cardElevation="6dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
android:padding="16dp">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_world_news"
android:layout_gravity="center"
app:srcCompat="@drawable/ic_world_news" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="Helpline\nNumbers"
android:gravity="center"

44 | P a g e
android:textColor="@color/common_google_signin_btn_text_light_pressed"
android:textSize="16sp" />

</LinearLayout>

</androidx.cardview.widget.CardView>

<androidx.cardview.widget.CardView
android:id="@+id/Siren"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_margin="12dp"
android:clickable="true"
android:focusable="true"

android:foreground="?android:attr/selectableItemBackground"
app:cardCornerRadius="12dp"
app:cardElevation="6dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
android:padding="16dp">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"

45 | P a g e
android:src="@drawable/ic_siren_new"
app:srcCompat="@drawable/ic_siren_new" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="Siren\nAlert"
android:gravity="center"

android:textColor="@color/common_google_signin_btn_text_light_pressed"
android:textSize="16sp" />

</LinearLayout>

</androidx.cardview.widget.CardView>

<androidx.cardview.widget.CardView
android:id="@+id/send_Location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_margin="12dp"
android:clickable="true"
android:focusable="true"

android:foreground="?android:attr/selectableItemBackground"
app:cardCornerRadius="12dp"
app:cardElevation="6dp">

<LinearLayout
android:layout_width="match_parent"

46 | P a g e
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
android:padding="16dp">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/ic_app_overview"
app:srcCompat="@drawable/ic_app_overview" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="App\nTour"
android:gravity="center"

android:textColor="@color/common_google_signin_btn_text_light_pressed"
android:textSize="16sp" />

</LinearLayout>

</androidx.cardview.widget.CardView>

<androidx.cardview.widget.CardView
android:id="@+id/map"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_margin="12dp"

47 | P a g e
android:clickable="true"
android:focusable="true"

android:foreground="?android:attr/selectableItemBackground"
app:cardCornerRadius="12dp"
app:cardElevation="6dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
android:padding="16dp">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_about_us"
android:layout_gravity="center"
app:srcCompat="@drawable/ic_about_us" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="Current\nLocation"
android:gravity="center"

android:textColor="@color/common_google_signin_btn_text_light_pressed"
android:textSize="16sp" />

</LinearLayout>

48 | P a g e
</androidx.cardview.widget.CardView>
</GridLayout>

</LinearLayout>

</ScrollView>

MainActivity.java:
package com.mad.womensafety;

import androidx.appcompat.app.AppCompatActivity;
import androidx.cardview.widget.CardView;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;

import android.util.Log;
import android.view.View;

public class MainActivity extends AppCompatActivity {


CardView siren, location, Settings, currentlocation, Helpline, Map;
@Override

49 | P a g e
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_main );

Intent backgroundService = new Intent( getApplicationContext(),


ScreenOnOffBackgroundService.class );
this.startService( backgroundService );
Log.d( ScreenOnOffReceiver.SCREEN_TOGGLE_TAG, "Activity
onCreate" );
int permissionCheck = ContextCompat.checkSelfPermission
(MainActivity.this, Manifest.permission.SEND_SMS);
if (permissionCheck != PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission (MainActivity.this,
Manifest.permission.ACCESS_FINE_LOCATION) !=
PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission
(MainActivity.this, Manifest.permission.CALL_PHONE) !=
PackageManager.PERMISSION_GRANTED)
{
ActivityCompat.requestPermissions (MainActivity.this, new
String[]{Manifest.permission.SEND_SMS,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.CAMERA,
Manifest.permission.CALL_PHONE, Manifest.permission.READ_CONTACTS}, 0);
}

//this is a special permission required only by devices using


//Android Q and above. The Access Background Permission is
responsible
//for populating the dialog with "ALLOW ALL THE TIME" option
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
requestPermissions(new
String[]{Manifest.permission.ACCESS_BACKGROUND_LOCATION}, 100);
}

50 | P a g e
siren = findViewById( R.id.Siren );
location = findViewById( R.id.send_Location );
Settings = findViewById( R.id.Settings );
currentlocation = findViewById( R.id.Currentlocation );
Helpline = findViewById( R.id.helpline );
Map = findViewById( R.id.map );
siren.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity( new Intent( getApplicationContext(),
Flashing.class ) );
}
} );
location.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity( new Intent( getApplicationContext(),
Instructions.class ) );
}
} );
Settings.setOnClickListener( v -> startActivity( new Intent(
getApplicationContext(), SmsActivity.class ) ) );
currentlocation.setOnClickListener( new View.OnClickListener()
{
@Override
public void onClick(View v) {
startActivity( new Intent( getApplicationContext(),
ChoosenActivity.class ) );
}
} );

51 | P a g e
Helpline.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity( new Intent( getApplicationContext(),
HelplineActivity.class ) );
}
} );

Map.setOnClickListener( new View.OnClickListener() {


@Override
public void onClick(View v) {
startActivity( new Intent( getApplicationContext(),
MapActivity.class ) );
}

} );

}
}

DbHelper.java
package com.mad.womensafety.Contacts;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

52 | P a g e
import java.util.ArrayList;
import java.util.List;

public class DbHelper extends SQLiteOpenHelper {


// Database Version
private static final int DATABASE_VERSION = 1;

// Database Name
private static final String DATABASE_NAME = "contactdata";

// Country table name


private static final String TABLE_NAME= "contacts";

// Country Table Columns names


private static final String KEY_ID = "id";
private static final String NAME = "Name";
private static final String PHONENO = "PhoneNo";

public DbHelper(Context context){


super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {

//create the table for the first time


String CREATE_COUNTRY_TABLE = "CREATE TABLE " + TABLE_NAME +
"("
+ KEY_ID + " INTEGER PRIMARY KEY," + NAME + " TEXT,"
+ PHONENO + " TEXT" + ")";
db.execSQL(CREATE_COUNTRY_TABLE);
}

53 | P a g e
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1)
{

//method to add the contact


public void addcontact(ContactModel contact){
SQLiteDatabase db=this.getWritableDatabase();
ContentValues c=new ContentValues();
c.put(NAME,contact.getName());
c.put(PHONENO,contact.getPhoneNo());
db.insert(TABLE_NAME,null,c);
db.close();
}

//method to retrieve all the contacts in List


public List<ContactModel> getAllContacts(){
List<ContactModel> list=new ArrayList<>();
String query="SELECT * FROM "+TABLE_NAME;
SQLiteDatabase db=this.getReadableDatabase();
Cursor c=db.rawQuery(query,null);
if(c.moveToFirst()) {
do {

list.add(new
ContactModel(c.getInt(0),c.getString(1),c.getString(2)));

} while (c.moveToNext());
}
return list;
}

54 | P a g e
//get the count of data, this will allow user to not add more that
five contacts in database
public int count(){
int count=0;
String query="SELECT COUNT(*) FROM "+TABLE_NAME;
SQLiteDatabase db = this.getReadableDatabase();
Cursor c=db.rawQuery(query,null);
if(c.getCount()>0){
c.moveToFirst();
count=c.getInt(0);
}
c.close();
return count;
}

// Deleting single country


public void deleteContact(ContactModel contact) {
SQLiteDatabase db = this.getWritableDatabase();
int i=db.delete(TABLE_NAME,KEY_ID + " = ?",
new String[] { String.valueOf(contact.getId()) });

db.close();
}

55 | P a g e
5.2.2 Code Efficiency
Code efficiency is directly linked with algorithmic efficiency and the speed of runtime execution for
software. It is the key element in ensuring high performance. The goal of code efficiency is to reduce
resource consumption and completion time as much as possible with minimum risk to the business or
operating environment. The software product quality can be accessed and evaluated with the help of the
efficiency of the code used. Code efficiency plays a significant role in applications in a high execution-
speed environment where performance and scalability are paramount. One of the recommended best
practices in coding is to ensure good code efficiency. Well-developed programming codes should be able
to handle complex algorithms.
Here are some specific areas to focus on for improving code efficiency:
1. UI Performance Optimisation
 Use Constraint Layout or Linear Layout to create efficient UI layouts that decrease nested
view hierarchies.
 To handle large datasets efficiently, display lists of data using Recycler View rather than
List View
 Reduce the utilisation of sophisticated drawable resources and instead utilise vector
drawable or simpler shapes whenever possible.
 Optimise image loading with packages such as Glide or Picasso, and consider caching
solutions to reduce needless network requests.
2. Asynchronous operations
 To avoid blocking the UI thread, execute network requests, database queries, and other I/O
activities asynchronously using A sync Task, Kotlin coroutines, or Rx Java.
 Implement appropriate error handling and cancellation mechanisms for asynchronous jobs to
avoid memory leaks and assure resource cleanup.
3. Memory Management
 Avoid memory leaks by removing references to things that are no longer required, particularly
in long-lived components like as Activities and Fragments.
 Use the Android Profiler to track memory utilisation and detect probable memory leaks or
wasteful memory usage trends.
 Consider employing a memory cache for frequently accessed data to eliminate the requirement
for multiple object creations.

56 | P a g e
4. Background Processing
 Use background services, foreground services, or Job Scheduler to complete long-running
operations that do not require immediate user input.
 Optimise battery consumption by batching and scheduling background processes to run at
appropriate times, such as when the device is idle.

5. Tests and benchmarks


 Perform performance testing and benchmarking to assess the impact of code changes on
app performance and discover opportunities for improvement.
 Use automated testing frameworks such as Espresso or Robo-electric to replicate user
interactions and assess UI responsiveness under varying circumstances.

By focusing on these areas of code efficiency, you can ensure that your Android help support project
provides a responsive and dependable user experience across a wide range of device setups and usage
scenarios.

5.3 Testing Approach


Testing is a process of executing a program with the intent of finding errors. A good test case is one
that has a high probability of finding an as yet undiscovered error.
 A successful test is one that uncovers an as yet undiscovered error.
 If testing is conducted successfully, it will uncover error in the software and testing
 Demonstrates that software functions appear to be working according to specification, that
behavior and performance requirement appear to have been met.
 In addition, data collected as testing provide good indication of software reliability and some
indication of software quality whole.
 But testing cannot show the absence of errors and defects, it can only shows that errors and
defects are present.

Testing Principles:
All the tests should be traceable to customer requirements. Test should be planned long before testing
begins.

57 | P a g e
 Testing should begin in small scale and progress towards large scale.
 Exhaustive testing is not possible.
 Testing should be conducted by independent third party.
Testing Methods
Testing must have designed with the highest likelihood to find possible errors in the system to
avoid major problems before the system goes live.
There are two methods to design the test case:
1) White Box Testing 2) Black Box Testing

5.3.1 White Box Testing


 White-box testing is a method of testing software that tests internal structures or workings of
an application, as opposed to its functionality.
 In white-box testing an internal perspective of the system, as well as programming skills, are
used to design test cases.
 The tester chooses inputs to exercise paths through the code and determine the appropriate
outputs
 White-box testing can be applied at the unit, integration and system levels of the software
testing process.
 Although traditional testers tended to think of white-box testing as being done at the unit level,
it is used for integration and system testing more frequently today.
 It can test paths within a unit, paths between units during integration, and between subsystems
during a system–level test.
 Though this method of test design can uncover many errors or problems, it has the potential to
miss unimplemented parts of the specification or missing requirements.

58 | P a g e
Figure 15: White Box Testing

5.3.2 Black Box Testing


Black box testing, also called as behavioral testing, focuses on the functional requirements of the software.
Black box testing is a software testing technique in which the tester does not know the internal workings
or implementation details of the system under test (SUT). In black box testing, the tester concentrates
entirely on the system's inputs and outputs, viewing the SUT as a "black box" in which they can only
observe its behaviour based on the inputs and predicted outputs. It is related to input and output only and
not related with the internal structure of the program.
This testing was also done so as to find errors such as:
 Initialization and termination errors  Behavior and performance errors
 Incorrect or missing functions
 Interface errors  Errors in data structures and external database access
 Performance errors

Advantages
1. Independence from Implementation Details
Testers are not required to comprehend the SUT's internal workings, allowing for a more objective
evaluation of its functioning.

59 | P a g e
2. Early Detection of Defects
Black box testing can be performed early in the software development lifecycle, even before the
implementation is complete, allowing for early detection and resolution of bugs.

3. User-Centric Testing
Test cases are created based on user views and requirements to ensure that the SUT matches user
expectations and functionality.

Figure 16: Black Box Testing

5.3.3 Unit Testing


Unit testing is a software testing technique in which individual units or components of a software system
are tested independently to ensure that they perform as expected. A unit is often defined as the smallest
tested component of a programme, such as a function, method, or class. The goal of unit testing is to ensure
that each unit's behaviour is correct regardless of how other components of the system interact.
Process
1. Write Test Cases Developers create test cases for each unit of code that they implement. Test cases
often encompass a wide range of scenarios, including regular cases, edge cases, and error
conditions.

2. Execute Tests Unit tests are run using a testing framework or tool. The test results are then analysed
to see whether the units perform as predicted.

3. Analyse Results Developers examine the test results to determine any failures or problems. Failed
tests indicate potential problems in the code that must be addressed.
60 | P a g e
4. Debug and Fix When a test fails, developers debug the code to see why it failed. Once the problem
has been found, they make the necessary repairs to guarantee that the unit functions properly.

5. Refactor Tests Unit tests are constantly refactored to ensure their usefulness as the codebase
changes. This includes changing tests to reflect changes in requirements or implementation
specifics.

Advantages

1. Early Detection of Defects Unit tests allow for early detection of errors by validating individual
pieces of code as they are developed. This assists in identifying and resolving issues before they
spread to other parts of the system.
2. Facilitates Refactoring Unit tests provide a safety net while refactoring code, allowing developers
to make changes with confidence since they know there are tests in place to check the integrity of
their changes.

3. Documentation Unit tests serve as a type of codebase documentation, demonstrating how units of
code should be used and what behaviour is expected.
4. Improved Design Writing testable code frequently results in better software design because it
encourages the use of modular, loosely linked components that are easier to test and manage.
5. Supports Continuous Integration Unit tests are an essential component of continuous integration
pipelines, allowing automated testing of changes as they are merged into the
code base.

5.3.4 Integrated Testing


Integrated testing, often known as integration testing, is a software testing technique that combines and
tests separate units or components of a software system as a whole to ensure that they interact and work
properly together. The purpose of integrated testing is to uncover errors in component integration, such
as communication issues, data flow problems, and interface mismatches. Integrated testing occurs after
unit testing and before system testing in the software testing lifecycle.

61 | P a g e
Advantages
1. Validation of Interfaces and Interactions: Integrated testing ensures that components interact
and communicate correctly with one another, allowing data to flow easily between units.
2. Incremental Validation: Integrated testing enables incremental validation of the system's
functionality as new components are added, providing feedback on the system's progress
throughout the integration process.
3. Improved trust in System Behaviour: By testing the integrated system, stakeholders gain trust
in the software's overall behaviour and functioning, rather than just the correctness of individual
units.

Figure 17: Unit Testing Levels

62 | P a g e
5.4 Modification and Improvement:

The aim is to enhance the functionality, usability, and performance of the app to provide a better user
experience.

 Implement a modern and intuitive user interface design to improve user engagement.

 Improvement in real time response- Optimize server-side code to reduce processing time for real-time
updates.

 Improve the app through user feedback.

 Offline services without internet access- Implement offline capabilities to ensure that users can access
real-time data even when they're offline or experiencing poor network connectivity.
 Background Data Sync: implement a background data synchronization mechanism to periodically
fetch updates from the server and keep the app's data up to date. se sync adapters for efficient
background data synchronization.
 Security Considerations: Encrypt sensitive data transmitted between the client and server to protect
against security threats.
 Testing and Monitoring: Conduct thorough testing of real-time features on different Android devices
and network conditions.
 Battery and Performance Optimization: Optimize battery usage by minimizing network and CPU
usage during real-time updates.
 Design your application architecture to be horizontally scalable, allowing it to handle increasing loads
without sacrificing performance.

63 | P a g e
Chapter 6

Results and Discussions


6.1 Test Report

Table 7: Test Reports of Help App


EXECUTED PASSED 18

FAILED 0

Total Tests Executed (Passed + Failed) 18

PENDING 0

IN PROGRESS 0

BLOCKED 0

TEST PLANNED (PENDING + IN PROGRESS + BLOCKED +TEST 18


EXECUTED)
DEFERRED 0

Feature/ Component Tests %Tests %Tes Deferre Status Remar


ks
Planned Execute ts d/
d Passe Blocke
d d
Emergency SoS 3 100% 100% 0
Siren Alert 1 100% 100% 0
Magnetometer 2 100% 100% 0
Helpline center 6 100% 100% 0
Current Location 1 100% 100% 0
Login & Register 5 100% 100% 0

64 | P a g e
6.2 User Documentation

6.2.1 Home Page

This is the First Page that the user sees after opening the website. It Provides most of the
information a user needs.

Figure 18: Home Page of Help App

65 | P a g e
6.2.2 Emergency SoS

In Emergency SoS page user can add emergency contact to alert his family members in case of
emergency. Triple tab on power button automatically connects user to emergency services and send
a SMS to emergency contact with current location

Figure 19: Emergency SoS

66 | P a g e
6.2.3 Helpline Numbers

This page contains all the emergency helpline numbers. Single tap on any of the helpline number will
directly connect user to the corresponding service.

Figure 20: Helpline Number Section of Help App

67 | P a g e
Figure 21: Helpline Number

68 | P a g e
6.2.4 Hidden Camera

This page contains magnetometer which is used to detect hidden cameras

Figure 22: Hidden Camera Section in Help App

69 | P a g e
IR rays emitted by the camera are used to detect with the help of device IR sensor

Figure 23: Detect Spy Camera Section

70 | P a g e
6.2.5 Current Location
This page contains the current location of the user

Figure 24: Current Location Section of Help App

71 | P a g e
6.2.6 App Tour

This page contains all the features in the app to help user locate all the functionalities

Figure 25: App Tour Section of Help App

72 | P a g e
Chapter 7
Conclusion

7.1 Conclusion

In conclusion, HelpApp offers a robust solution to address the challenges faced by users in accessing
reliable emergency services in India. By integrating features such as direct connections to nearby
hospitals, police stations, and fire stations, along with an Emergency SOS, automatic location sharing
with family members, and integration with emergency services, HelpApp provides users with a
comprehensive safety net in times of distress.

In your country where traditional emergency services may lack reliability, HelpApp fills a crucial gap by
offering a dependable alternative. By providing accurate information and enabling users to quickly access
assistance, including booking ambulances, HelpApp ensures that individuals can receive timely help
when they need it most.

7.2 Limitations of the system

• Response Time: The efficiency of HelpApp in routing emergency calls and coordinating responses is
critical. Delays or inefficiencies in response times could potentially exacerbate emergency situations and
compromise user safety.
• Lack of Connectivity: Emergency services of HelpApp cannot be accessed without Internet connectivity.
• There is no system to verify whether the user is legitimate person or not.
• False Alarms and User Error: Users may accidentally trigger emergency alerts or panic buttons, leading
to false alarms. Additionally, users may forget to update their emergency contacts or provide incorrect
information, impacting the effectiveness of the app during a crisis.
• Reliance on Battery Life: Continuous use of location tracking and network connectivity can drain the
device's battery quickly. Users may hesitate to keep the app running in the background for extended
periods, especially if they anticipate a long day without access to a charger
73 | P a g e
6.3 Future Scope

 Data Privacy and Security Measures: As data privacy concerns continue to escalate, implementing
robust security measures, complying with data protection regulations, and prioritizing user privacy are
crucial for maintaining trust and credibility. Transparent data handling practices and user-centric
privacy controls can enhance user confidence in the app.
 Accessibility and Inclusivity: Continued focus on accessibility and inclusivity is essential to ensure
that the app caters to the needs of diverse user groups, including individuals with disabilities, elderly
users, and those from marginalized communities. Incorporating accessibility features, multi-language
support, and culturally sensitive content can enhance user engagement and adoption.

 Collaboration with Law Enforcement and Emergency Services: strengthening partnerships with local
law enforcement agencies, emergency services, and NGOs can enhance the app's effectiveness in
coordinating emergency response efforts, accessing resources, and providing timely assistance to users
in crisis situations.
 Community Engagement and Crowdsourcing: Leveraging crowdsourcing and community engagement
features within the app can empower users to share real-time information about safety hazards, report
incidents, and support each other in times of need. Building a supportive online community can foster
a sense of solidarity and encourage proactive participation in promoting safety.
 IoT and Wearable Devices Integration: Integration with IoT devices and wearable technology such as
smartwatches and personal safety devices can extend the reach of women safety apps, allowing users
to trigger alerts and access assistance discreetly and quickly, even in situations where accessing a
smartphone may be challenging.
 Offline Location Sharing and Tracking: Enable offline location sharing capabilities, allowing users to
share their current location or planned routes with friends, family, or emergency contacts even when
offline. Implement offline location tracking functionality, enabling users to track the real-time
movement of individuals or assets without relying on continuous internet connectivity.

74 | P a g e
References

1. https://guides.codepath.com/android

2. https://cordova.apache.org/docs/en/10.x/guide/cli/

3. https://www.geeksforgeeks.org/how-to-create-and-add-data-to-sqlite-database-in-
android/#:~:text=Navigate%20to%20the%20app%20%3E%20java,the%20code%20in%20
more%20detail.&text=Go%20to%20the%20MainActivity.,refer%20to%20the%20followin
g%20code

4. https://www.freecodecamp.org/news/how-to-use-sqlite-database-with-android-studio/

5. https://www.axon.dev/blog/how-to-integrate-google-maps-into-an-app

6. https://youtu.be/WouAQmqJI_I?si=1yPMg92LiDrjR0a5

7. https://stackoverflow.com/questions/52383302/magnetometer-sensors-reading-in-android-
studio-application

8. https://github.com/garvit14/Stay-Safe-SOS

75 | P a g e

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy