Case Study

Chat application for EndLink

Endlink focuses on helping businesses and departments connect and communicate to create new things.

About the client

In 2014, Rob White & Ruben Viera came up with a plan to revolutionise communication between departments with Endlink. A Start-Up led by a force of two visionaries, Endlink focuses on helping businesses and departments connect and communicate to create new things. Identifying healthcare as their entry point, they are looking to make the world a better place for people and businesses and venture into education, law and other sectors of the society.

The Problem

In March, 2018, Rob & Ruben reached out to GeekyAnts, carrying themselves on the back of a theme in our NativeBase Marketplace that made quite an impression on them. They wanted to seek out their goal of creating Endlink by developing a Mobile Healthcare Platform in the form of a complete app with Frontend & Backend. It was pretty clear to the team that the requirement of Endlink would require building an app from scratch and scaling it as it went on.

At the outset, an initial scheme of 11-15 weeks (which was fixed) was charted out and readily approved by the client. With initial discussions in place, an elaborate plan was set which was to start with a 5-week Minimum Viable Product and then go from there, which then transformed into a project with a much bigger scope in November, 2018, owing to their satisfaction with the project. The scope was divided into 3 phases, having 4,3 & 1 milestones each respectively.

Within this scope, an engagement model was put in place, specifying continuous upgrades and development by one developer from the working team.

Requirements

The project demanded the following requirements:

  • Endlink sought a complete chat application, with a supporting backend based on Firebase & the front-end built in React Native.
  • Being an invite only app, it shall allow users to Direct Message other users as well as host Group Chats, Topic Chats et cetera.
  • The users of the app shall also be able to assign to-do's to other concerned users.
  • Overall, the app would feature support for multiple organisations per account, multiple user role per account, effective user management, biometric login, reminders for tasks & notifications for new messages.
  • On top of this, features such as push notifications (for when users were away), ghost messaging (where messages deleted themselves after 1 day) & facial recognition for login were also included.

Team On-Call

Deciding upon the perfect team was imperative to the success of this project. According to the engagement model decided, one developer amongst the working team was to deliver ongoing upgrades and development on the product. This app was to feature a fully functional chat service with biometrics integration and a super-smooth and simple UI. To build that, a team of three were chosen, led by Atul, the lead architect. With Rob & Ruben's introduction to the team and their detailed discussion on proceedings, tasks were defined clearly and the team was handed the wheel to steer this project into the direction of perfection.

The Development Phase

The team was geared up and ready to jump into action. The overall development of the project was divided into two phases:

  • Phase 1: Developing the UI & Frontend.
  • Phase 2: Backend development & integration of the overall product.

The vision of Rob & Ruben pertaining to how the app should look and feel was delivered to the team in the form of wireframes of designs of all screens that were supposed to be in the app. The team's work was to re-build those designs into pixel-perfect and working UI screens. This phase lasted about 6 weeks. During this time, the client was kept in the loop constantly and was reached out to for feedback at every step of the way to ensure that the work was being driven in the direction they wanted it to go into.

All login screens, screens with Terms & Conditions, preferences et cetera were built, while backend and integration work slowly picked up pace to translate into the second phase of development. There were some express changes in the UI that were made midway during development, which were also incorporated smoothly and with ease. One special feature pertaining to To-Do lists was to add tasks in the To-Do list directly from the chat window. Any message sent or received in chat could be added to the To-Do lists of the user by holding down on the message.

Once the UI screens were ready and approved by the client, the second phase of development was initiated.

The second phase involved all the screens to conjoin and work seamlessly as a complete app. This posed a requirement for a strong backend implementation and accurate integration of the two. Firebase was already chosen to serve as a backend for this application. We made a suggestion to the client to consider using GraphQL or Elixir over Firebase, given their special features to cater to specific needs of the app to reduce overhead while retrieving data, namely the ability to fetch only the required data rather than complete pages, as well as their acceptance. After due considerations and lengthy discussions, methods were procured to use the features of elastic search to facilitate specific functionalities and reduce data retrieval overhead and the backend was retained in Firebase.

The first step was to Identify data that was to be stored in the database & created collections to cater to that function, rather than storing it locally. There was an estimation of about 10,000 concurrent users on the app & Firebase allows upto a million concurrent users, so that was no problem. For the data that was stored on the server, a database was created using Firestore, a database set up within Firebase, which facilitated quick tracking and retrieval of data, whenever required. Since Firebase does not support elastic search, Bitnami was utilized to enable this function.

As per the engagement model, releases were to be made continuously throughout the lifecycle of the project. Releases were made bi-weekly, which then proliferated into everyday releases. A staggering 70 successful releases later, Endlink reached it's official version 1 build, as a complete working app.

Currently, the 3rd phase of the project is active & underway.

In bird's eye view,

  • Tasks were managed on JIRA.
  • Bitbucket & Git was used to help with Version Controlling of the releases.
  • App depended on react-native-firebase library entirely.
  • Bi-weekly calls were scheduled with the client for constant updates.

Overcoming Challenges

Challenges are always an important part of growth and this project was no exception. The biggest obstacle while developing this app was performance. This app incorporated a lot of functionalities and making them work the way they're supposed to, and fast was a wall that needed to be crossed. The app had a lot of data that it was storing and using. This caused the app to lag unexpectedly, when a lot of data was at play. Nonetheless, the expertise of the team on call allowed them to scale this wall with ease and move forward with the plan. To compensate for the huge influx of data, they reduced the number of API calls to the minimum requirement and introduced pagination to further improve it. That did the trick and made the app smooth and fast.

For smooth login, facial recognition was implemented in the app. While dealing with biometrics, data security is of prime concern and we had to make it secure by not sending any biometric data to the server. Instead, all such data was stored locally in devices, which was used to create signatures. These signatures were then tallied with the public key sent in the server. If they were a match, the app would recognize the user's face and log them in.

Final Impressions

It was a great responsibility to ensure that the app was relevant to Endlink's mission of making medical services and communication quick and easy. As the app progressed, Rob & Ruben were impressed with how their vision turned out as a real-time, fully-functional application. They were fascinated by the readiness of the team and their capability to deliver functions and fixes on time, as well as pushing new releases on a daily basis to them, while taking critical feedback and turning it into credible operations. Such was the extent that at present, the team at GeekyAnts is working on developing a new iteration of the Endlink app with new features and new designs.

Parcel App for PayPoint

UK's Largest Billing Service Provider Hired GeekyAnts To Help Expand It's Service Avenues.

Social App for Liviit

The Man behind Liviit employed GeekyAnts to shift his web-app to a mobile app in React Native.

2017 © All rights reserved. Sahu Soft India Pvt Ltd.