Case Study

Subscription Based Delivery App

Revolutionizing on-demand services with a combination of subscription based models and cutting-edge technology.

About the client

In September, 2019, a simple Google Search for the best Flutter Developers led the client to our doorstep. The requirement was fairly straightforward, a dedicated team for full-stack development of the platform as an app and an admin dashboard. The app was to feature a catalogue of services that users can avail including taxis, groceries, essentials on a daily, weekly, monthly or yearly subscription.

The Problem

In September, 2019, a simple Google Search for the best Flutter Developers led the client to our doorstep. The requirement was fairly straightforward, a dedicated team for full-stack development of the platform as an app and an admin dashboard. The app was to feature a catalogue of services that users can avail including taxis, groceries, essentials on a daily, weekly, monthly or yearly subscription.

In September, 2019, a simple Google Search for the best Flutter Developers led the client to our doorstep. The requirement was fairly straightforward, a dedicated team for full-stack development of the platform as an app and an admin dashboard. The app was to feature a catalogue of services that users can avail including taxis, groceries, essentials on a daily, weekly, monthly or yearly subscription.

Requirements

The project demanded the following requirements:

  • A fully-functional mobile app for users and service providers & admin dashboard for moderators to manage the platform.
  • The primary feature was to be a school bus subscription service module for schools and parents.
  • A planner and order tracking feature for all users.
  • Efficient data management & live map tracking.

Team On-Call

This project was considerably large. Since it required a mobile and a web dashboard, plus a website for the client as well, we needed a well rounded team that could tackle all these different fields of development with minimum overhead. As designs for the app were already provided to us by the client, the design team was only required to oversee and suggest changes to design schemes, if any (with the permission of the client, of course). We handpicked the people who could deliver the best of both worlds and zeroed upon a team of two mobile app developers, two web developers and one QA engineer, led by Project Lead and architect, Amith MS.

The Development Phase

Given the extensiveness of the project requirement and the time frame, the complete scope of work was divided into three major deliverables: mobile app, web app & dashboard. On the technology front, Flutter was suggested as the best choice for the development of mobile apps, with MobX as the preferred State Management tool. For the web app, the most stable and reliable choice was React, with Redux for State Management & Google's Firestore was the obvious choice for the database. Flutter web was another choice of framework for the web app that we considered to keep the tech stack uniform throughout but the choice was done away with because of the fact that React is far more stable than Flutter Web at the moment.

With the tech stack decided and the team ready to go, it was time to kick things off in full gear. The mobile app was to have three distinct modules which were divided into three separate apps. Considering the school bus subscription service, on request of the client, a user view, a bus driver view, and a school/business view were all to be built as three standalone apps. Keeping this in mind, the first job to complete was to set up the entire project and chart out the dependencies. For this, the entire process was divided into 5 distinct milestones. The first milestone included designing the database, creating a common codebase for all different apps to build on & implementing authentication. The common codebase was created using Flutter and the database was tackled by Firestore, along with the web app being built in React & Redux. Within the first 3 weeks, the first milestone was completed.

The next step was to implement the numerous features within the applications. The most important feature was the ability to create plans on the app as a business owner and order tracking. This was a feature that was specifically implemented in the business owner version of the app. The next obvious feature to implement was for users to be able to purchase available subscription plans and then the executive/driver view of the app with all necessary features such as next pickup/delivery completed orders et cetera.

In bird's eye view,

  • Git was used for version control.
  • The client was constantly communicated with using Slack, Google Meet & Emails.
  • CodeMagic was the choice of tool for deployment.

GCM was used to deliver push notifications & Google Maps was used to handle the live tracking system. All these features were implemented and delivered in the subsequent milestones within the stipulated time.

Alongside development, a constant QA process was in place. With every feature that was built, the QA engineer rigorously tested it under all conceivable circumstances and platforms, reporting any issues that arose and getting things in working order. The client was constantly communicated with through Slack, emails and Skype calls to maintain transparency and a constant update channel. A CI/CD environment was set up to deliver builds to the client and a lot of stress was given to UAT (User Acceptance Testing) in each milestone, where the client would test the app as a user and report any issues or feedback.

Overcoming Challenges

As dense as this project was, the team was bound to face some challenges during the course of the project. One of the major challenges came in the form of implementing a payment gateway. Due to restrictions, Tap was the only payment gateway that could be implemented. Tap does not have an SDK that can be used for payment, which posed as a roadblock. It goes without saying that the team rose up to the occasion and built their own MethodChannels to make the app compatible with Tap and implemented it.

Final Impressions

Another major challenge was to implement Live Tracking with Google Maps. It was imperative that as the location of the executive changes on the map, the route is recalculated between the executive and the destination on the user and business app. As big as a roadblock this could be, the team managed to overcome it and implement accurate location updates on all relevant views in real-time.

 

Marigold Health

Helping a healthcare organization promote mental health with their concept of text-based support groups for people with mental ailments.

Dating App

Extending the experience of the biggest dating app in the region to a mobile app using state-of-the-art technology and expanding their user base multifold.

2020 © All rights reserved. GeekyAnts India Pvt Ltd.