With the onset of on-demand booking facilities, another up-and-coming company wanted to contribute to enabling ease of access of services and goods to the people, but with a twist. Their version of on-demand service booking would include all essential services on a subscription basis, which would lighten the burden on the user to re-book services as required and rather have a 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.
After the customary introductions and initial discussions, it was established as an extensive project that would last for a longer term than average. The scope of this engagement was set for 14 weeks initially, which was extended to a period of 6 months, owing to constant changes in requirements. The entire project was broken down into 5 distinct milestones set in place based on features and modifications to track progress. With the business side of things in place, it was time to decide upon the technical fold.
The project demanded the following requirements:
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.
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.
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.
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.
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.
The scope of the project and the duration it went on for was daunting, but at the end, the client was impressed by the punctuality of our team and the quality of work that was delivered. The client also applauded the attention to detail that the team has displayed. True professionalism was at display here all throughout the project and the quality of work has led to a lasting partnership between us and the client, which is evident by the fact that they have honoured us by collaborating again on another project. We are happy to serve another satisfied customer and present another quality product from our studio.