Technology considerations - Superhero App

Volunteers may have a wide range of devices. From our implementation in Ernakulam, it is clear that these devices are of low cost. Hence optimisations are needed to make the work effectively.

All technology considerations are based on the implementation in Ernakulam district, Kerala.

Dealing with battery optimisation algorithms

  1. Since our superhero app needs to track location and update it with the server, it needs to keep GPS & Cellular data ON at all times.

  2. This causes battery drain and hence some mobile phone OEMs tend to kill the app.

  3. To overcome this situation, we worked with Google's Android team to come up with 2 solutions.

Solutions

  1. Heartbeat model with OS-level alarm based check

    1. A background service runs continuously and updates the volunteer's location in a fixed interval - say 1 minute. This is the heartbeat.

    2. To ensure that the heartbeat is on, a OS level alarm is triggered every 15 minutes. It checked to ensure the heartbeat is active and updating the user's location.

    3. If the alarm finds that the heart beat has been killed, it restarts the heartbeat.

    4. Since the alarm is at OS level, it can't be killed by the OEM and solves our problem.

  2. Push notification

    1. In some cases, the heartbeat model can also fail - low battery, poor network coverage etc

    2. If the location can't be update for more than 1 hour, the system sends a push notification to the user asking him/her to check for internet & GPS location

    3. When the user acts on this notification, we re-establish the heartbeat model with OS level alarm.

Dealing with phones being in silent mode

  1. Due to the emergency nature of requests on the Superhero Network, it is vital that all requests reach the volunteers.

  2. Some of them may leave their phones on silent and hence regular calls, messages or notifications may go unnoticed.

Solution

  1. When an emergency request is received on a volunteers phone, an alarm audio is played in loop for 30 seconds.

  2. This sound is independent of the SILENT mode triggers on the phones and hence will be heard.

    1. It is an intrusion into the expected behaviour of the phone, but considering the emergency nature of the requests, this has been implemented.

    2. The sound's loudness is based on the phone volume.

Caveat : If the phone volume is also turned off, then the notification will not make any noise and we'll switch to vibrations.

Forgot password implementation

  1. Normally done via an alternative channel like email

  2. From our usage in Ernakulam, most of the volunteers do not use email

  3. Most of them forget their password also, primarily because they're not very tech savvy.

    1. The Network was one of their first experiences with real-time tracking and mobility using technology.

Solution

  1. OTP based system was created for resetting password

  2. When user requests for a password reset, an OTP is send to their registered phone number.

  3. They can create a new password by confirming the OTP.

Last updated