It took us 12 months to develop Goloca, a complete ride booking solution for boat providers in Maldives.The cross platform application was designed using React Native to provide a user friendly and intuitive interface for both iOS and Android. We implemented this app in various phases. Keeping the best practices in mind, we started with designing a robust database architecture. We then designed the UI/UX screens for different users i.e. individual users or customers, boat providers and associated business users like hotels. We then moved to the implementation, testing and deployment phase respectively. The app had many advanced features such as ticketing, payments, deals, reward points and tracking system to be implemented. Ticketing alone required a step by step booking process which involved showing users with options to select the ride type such as a ferry, water taxi or boat etc, number of passengers travelling, one-way or return tickets, date and time of travel etc. before pulling a list of available options with calculated price. The app also allowed customers to charter a private boat. The most important part of ticketing was to implement a demand and supply based algorithm to show dynamic pricing. We integrated multiple payment gateways like Stripe & PayPal to process digital payments. Wallet feature was also built for easy single click payments. Features like daily deals and reward points earned on previous bookings, called Golo points, were also implemented to keep users engaged and drive retention.
Building an extensive cross-platform mobile application like Goloca with multiple interfaces was a complex task. As we progressed through the development process, we encountered many unique challenges. Addressing these challenges was important to make the application highly robust and customized for users.
Boats can’t always take the straight route between start and end destinations. Factors like weather conditions & water currents can affect these routes significantly. Hence knowing the exact distance travelled between two points becomes important for calculating ride fares accurately. There were no pre-existing solutions that could be used when it came to determining distance on a sea route.
Goloca was a highly complex app with advanced features. The client was worried about scalability as the app evolved and whether the app would be robust enough to handle high traffic volumes. Ensuring the stability and performance of a large scale app like Goloca was a must to prevent it from crashing.
Like any other application this application had multiple Alpha testing personnel and lot of feedback came for incorporation from time to time. As app was algorithm heavy, making these changes was not an easy task as lot of testing has to be re-done every-time changes came in.
The app was about to bring a business change in small island nation and hence promoters were fearful of the business idea getting leaked and someone else coming into market earlier and since market size was limited, the overall investment could have gone into toss.
With the help of our dedicated resources, we successfully met the requirements and delivered beyond client’s expectations. We built the app using the latest technologies and frameworks and ensured application stability and performance were not compromised at all. Our team implemented advanced solutions to resolve the above mentioned challenges.
We designed a module where boat providers could create route maps by entering the origin and destination points of a ride. The app tracks the route taken by the boat in real-time and determines the accurate distance travelled between the two points. Once created these maps and distance information will be stored in the database. In future, this will act as an input to calculate fares for a ride between the two specified locations.
To ensure app scalability, we used the Micronaut framework to develop Goloca as a microservices oriented application. We further implemented stateless authentication with Jason Web Token (JWT) to redirect user requests to any server. This increased application performance by eliminating the need to maintain session states and storing all user data on server-side.
Though the changes were seen as small, their repercussion in terms of effort was large due to algorithm level changes and test all the scenarios. Client was co-operative and understanding and hence we had his support in this matter. Additionally we have been a doing a god job at documentation of modules, flows and use cases and hence any such changes could be easily tracked back to what all it impacts and hence we could test the scenarios with high level of accuracy.
We at OnGraph took this as challenge and proposed a series of steps to ensure we are first one to hit the market. We suggested to toll out individual modules as they get compete verses a big set of multiple modules coming to market at delayed timing. This ensured capturing market fast. Additionally we had planned a very flexible and scaleable architecture to accomodate a lot more modules that can come in future. We coupled this with multi resources and parallel team of developers to roll out initial scope of various modules fast, one after another, keep the market interested. We kept taking the enhanced features requested and feedback accomodated. This was we ensured we capture market at first and keep consolidating out position.