An Assistant Android Application "Help Me" Application

Many people find themselves in a situation where they feel threatened or scared for their lives. Those people sometimes might need assistance in carrying out certain projects or tasks or may require certain documents or would like to share certain helpful documents with other users. In this application we try to integrate all of these aiding functions and mobile technologies into one assistant application to help users who require such services, to obtain it easily in one place without any constraints. This application offers seven main functions: signing in/up, adding contacts, sending location using the panic button, asking for a request, doing a favour for a friend, uploading and downloading documents from the server, and how to use menu. We have used Java and XML for the development on the client-side and the Firebase services to develop and store data on the server-side alongside Node.js for server-side function development.


INTRODUCTION
Recently, people have started to depend almost entirely on their mobile phones, spending most of their time on them, either surfing the internet or connecting with friends, family and the world via social networks.By the second quarter of 2018, 88 percent of smartphones sold to end users were phones with the Android operating system [1]; making it the most popular mobile platform today.As of December 2018, the Google Play Store features over 2.6 million apps.[2]; making it the ultimate development environment for Mobile OS in the 21 st century.During the recent few years, mobile devices are becoming more efficient and powerful due to advancements in technology.On the other hand, their prices are dropped dramatically.However, due to their nature of portability, they have very limited resources such as computation power, screen size and battery power in comparison with personal computers, but people started using mobile devices in their computation tasks, instead of using personal computers.Due to the android apps availability, popularity and our limited knowledge of the IOS development environment, we have decided to build an application that runs and utilizes the android system features to assist and aid end-users in their daily tasks, projects and provide them with a sense of security.Lately our country Libya has undergone a large number of political changes that have led to the rise of many public and personal safety and security issues, thus leading us to develop and promote our application and its idea of being able to send your location to chosen individuals asking for help when in danger or when facing a predicament.Mobile applications are the future since they provide powerful development tools with alternative faster, securer and more personalized methods of dealing with its enduser and his data.In our application, we make use of this technology to provide an assisting application that aims to provide a greater sense of security and reliability to its user.

PAPER SCOPE
This paper is concerned with the domains of developing mobile application "Help Me" that provides different aiding services to its users.Users of our application will be able to send their current location including the latitude and longitude, anytime and anywhere, they feel in danger or lost-in an SOS SMS to their chosen contacts asking for help, they may also request help in daily tasks or projects from other users, and will be able to return the favour by helping other users as well, in addition, users can upload helpful documents and download any document available on this application easily and without any constraints.What our application is offering, is an easy use of aiding application that allows users to seek help whenever and wherever they might need it.

APPLICATION LIMITATIONS AND CONSTRAINTS
This section is concerned with constraints and limitations faced by the user, programmer and the technology used in the system.

Technology constraints
 Wi-Fi connection and access. GPS and Geocoder tracking technology. SIM carrier. Mobile network signals for sending/receiving SMS

System Constraints
 The application runs only on mobile platforms that support Android OS.  The application runs on Android devices with API 21 or above.

Server Constraints
In our application, we are using a server provided by Google known as Firebase, for storing data, images and pdf files, as well as providing notification services across multiple devices.Implementing a Firebase real-time database leads to the following constraints:  It is a NoSQL DB which provides very limited and simple queries, no relationship between different application data.

Journal of Alasmarya University: Basic and Applied Sciences
 Most applications allow users to search application contents, whether you want to search for posts or tasks containing certain words or for an uploaded document.However, Firebase real-time DB and Cloud Firestore do not support native indexing or searching for text fields in DB or documents.In the future development of the application, enabling a full-text search of DB or Firestore can be done using a thirdparty service like Algolia [3].

FEASIBILITY STUDY
A feasibility study is an evaluation and analysis of a project or system that somebody has proposed.The technological scientist also calls it a feasibility analysis.The study tries to determine whether the project is technically and financially feasible, put simply; the study is an analysis of how easily or successfully we could complete something.It also tries to determine how profitable or unprofitable it might be.[4] In this section we determine whether our application has technical, economical and operational merits; by answering a list of questions proposed as criteria for measuring such standards.

Technical Feasibility
Technical feasibility considers and studies the technical requirements and tools needed for the proposed project.The systems project is considered technically feasible if the internal technical capability is sufficient to support the project requirements [5].
We determine technical feasibility by answering the following questions.
 Is the app.feasible within the limits of current technology?"Yes." The system can be built with the currently available tools and technology.
 The system requires the project team to be familiar with the use of the internet and familiar with mobile application development. Does the technology exist at all? "Yes."  The development tools of the project are available and up to date with the current standards of mobile application development. The technology used in development is widely popular and familiar. Is it a practical proposition?"Yes."  The application proposed can be implemented with the current technology including both: hardware and software requirements. The technology the application offers is also accessible and available most of the time. Can the proposed system be maintained and used?"Yes."  No high-performance hardware required.
 With the addition to compatible smart-phone platforms, the system would run smoothly, with no extra skills required.

Operational Feasibility
Operational feasibility is dependent on human resources available for the project and involves projecting whether the system will be used if it is developed and implemented.[5] ( ‫المجلذ‬ We determine operational feasibility by answering the following questions:  Does the current mode of operation provide adequate throughput and response time?
"Yes."  The desired result for running the application has been obtained, this has been determined by running the application on real-devices. Response time takes a few seconds without much delay, when a good internet connection is provided, also determined by running and testing the application on real devices. Does the current mode of operation provide reliable and easy to understand services?"Yes." Each service is classified separately and there is no over-lapping between application's services. The application's services are reliable and provide the desired end results. Can or will end-users and management adapt to the change?"Yes."  The application's service is embeddable and effective for users in their daily lives. The application's colors, and design is user-friendly; which makes it easy to adapt to and accept. A detailed, thorough walk-through is provided for first-time users. Does the current mode of operation offer effective controls to protect against fraud and to guarantee the accuracy and security of data and information?"Yes." The current system will be built using the Google Firebase Security rules, which guarantee the protection of user data and information.Firebase Security Rules: Firebase Security Rules work by matching a pattern against database paths and then applying custom conditions to allow access to data at those paths.All Rules across Firebase products have a path-matching component and a conditional statement allowing read or write access.Rules for each Firebase product must be defined in the app.[6]  Access to any content inside the System is denied to non-registered users. User personal information and details are accessible to only him/her and the project development team.

REQUIREMENT ELICITATION
Due to the high rates of kidnapping in Libya and the increasing risk of crimes, on both civilians and governmental personals equally, people find themselves in unpredictable situations in which they feel in danger and need to ask for help.Unfortunately, most of our anti-crime hotlines are either invalid or respond slowly and unprofessionally here, leaving the Libyan citizen with no one but his family and friends to turn in case of crisis.As a result, we have decided to implement our application's idea, to preserve a sense of safety for the people in our country.

Journal of Alasmarya University: Basic and Applied Sciences
Furthermore, our application allows its users who may need aid in certain tasks and activities, to ask for it online via the application without a need to send it as an SMS.

USER INTERFACES
User interfaces will be displayed accompanied by a description for each interface.

Welcome screen
When you open the application for the first time this interface will be displayed for the user.

Login screen
In this interface, the user must enter his/her phone number and wait for verification code to log in.

Figure 2. (a)welcome screen (b)login screen (c)add contacts screen
There are TWO cases following this process:  New users: For the first time registered users, a registration page -mandatory -appears that asks the user to write his details, when finished, user presses "Continue", then we move to add more contacts.

 Old users:
Users who have signed up and added their contacts will be directed to their profile page immediately.Here they can upload a new image, update, delete the profile, show their added contacts and sign out.

Add contacts screen
This screen is required to complete the registration step, here the user should add contacts from his contact list.Once in the application user may also add more contacts or even view contact when they press show contact option in the user profile page.

Panic button screen
This screen displayed when the user presses the panic button activity from the side menu, user can use this button when he/she feels scared or in a danger when the button is in sleep mode the colour is Green when the user presses the button the colour will change to Red.

Receive a request (task) screen
This screen includes all requests received from other users, a user can accept any of these requests, also a user can comment on any request he receives.

Downloading & Uploading Document screen
In this interface the user can download the file by click in downloading file option, all files available for download will be displayed.Also, a user can upload a file from his/her files to the storage and database, the application will ask the user to access his files; after allowing access to the user's files all PDF files in the user's device will be displayed.

How to Use Screen
This screen will have a brief description for the user to show him/her how to use the application with screenshots.

IMPLIMENTATION
The implementation of the "Help me" mobile application is based on the design and analysis phases of the previous sections.The whole system will be divided according to each functional requirement alone, then each functional requirement will be broken down into smaller components (sub-requirements).Each sub-requirement will be implemented, deployed and tested on a real device independently.Finally, there will be a whole system testing, to make sure all requirements work together.

Implementation Environment
Android Studio is the official Integrated Development Environment (IDE) for Android application development, based on IntelliJ IDEA [8].
 Android studio has been used as the development environment.

Figure 3 .
Figure 3. panic button screens and Msg