Help App Amtioj
Help App Amtioj
A Project Report
Submitted in partial fulfilment of the
AND COMMERCE
HELP APP
Dr.Neelam Naik
20 years
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
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.
iii | P a g e
TABLES OF CONTENT
1 Abstract i
2 Acknowledgement ii
3 Declaration iii
1 1.1 Background 1
1.2 Objectives 1
1.3.1 Purpose 2
1.3.2 Scope 3
1.3.3 Applicability 4
1.4 Achievements 5
2.4.2 Database 14
3.3.1 SDLC 18
iv | P a g e
3.3.2 Gantt Chart 21
5.2.1 Code 40
5.2.2 Code Efficiency 56
5.3 Testing Approach 57-62
v|Page
Chapter 6: Results and Discussion 64-72
7 7.1 Conclusion 73
7.2 Limitations of the System 73
vi | P a g e
List of Tables
6 Test Cases 37
7 Test Reports 64
vii | P a g e
List of Figures
2 Gantt Chart 21
3 Conceptual Model 23
4 Basic Modules 24
5 ER Diagram 27
7 Sequence Diagram 29
11 Home Page 33
12 Login Page 34
17 Unit Testing 62
18 Home Page 65
19 Emergency SoS 66
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|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.
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:
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.
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.
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.
10 | P a g e
2.3 Front End and Back End Technologies used in the Project
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.
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:
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
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.
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.
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.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
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
Magnetometer Yes
App tour No
22 | P a g e
3.6 Conceptual Models
23 | P a g e
Chapter 4
System Design
4. 1 Basic Module
24 | P a g e
4.2 Data Design
User:
Emergency Contact:
25 | P a g e
GPS:
Emergency Services:
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.
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
27 | P a g e
4.3.2 Use Case Diagram
28 | P a g e
4.3.3 Sequence Diagram
29 | P a g e
4.3.4 Data Flow Diagram
Level 0
30 | P a g e
Level 1
31 | P a g e
Level 2
32 | P a g e
4.4 User Interface Design
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).
• 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
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
38 | P a g e
Chapter 5
Code and Test
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;
49 | P a g e
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_main );
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 ) );
}
} );
} );
}
}
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;
// Database Name
private static final String DATABASE_NAME = "contactdata";
@Override
public void onCreate(SQLiteDatabase db) {
53 | P a g e
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1)
{
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;
}
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.
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.
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
58 | P a g e
Figure 15: White Box Testing
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.
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.
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.
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.
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
FAILED 0
PENDING 0
IN PROGRESS 0
BLOCKED 0
64 | P a g e
6.2 User Documentation
This is the First Page that the user sees after opening the website. It Provides most of the
information a user needs.
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
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.
67 | P a g e
Figure 21: Helpline Number
68 | P a g e
6.2.4 Hidden Camera
69 | P a g e
IR rays emitted by the camera are used to detect with the help of device IR sensor
70 | P a g e
6.2.5 Current Location
This page contains the current location of the user
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
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.
• 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