Year-Long Evolution of a Ride-Hailing App Available in 15 Countries
About Our Client
The Client is a European IT company operating internationally. It provides software products and web development, integration and data services for the hospitality industry. Among its customers are many world's leading brands.
Legacy App Requires Improvements to Stay Competitive
One of the Client's products was a web app connecting travelers and drivers. Among the app's distinctions are advance booking and integrations with the largest travel platforms that allow direct taxi bookings from them. The app is available in over 15 countries, including the US, the UK, the UAE, Qatar, and Singapore.
Developed several years ago, the app required a large-scale upgrade to keep the competitive edge. The Client planned the needed improvements but lacked the IT competencies to implement them. So, the Client was looking for a reliable IT company that could help.
Modernizing the Legacy Ride-Hailing App
Trusting our 34 years in software development and a solid track of projects, the Client commissioned ScienceSoft to modernize the app.
ScienceSoft provided a team of two Java developers, a front-end developer, and a mobile developer.
Migrating from the legacy PHP code to Java and refactoring
In the legacy app, one part of the code was written in PHP and the other — in Java, both parts having their own databases. ScienceSoft's team converted the legacy PHP code into the newest Java version and established a common database.
In addition, our team reviewed the entire code and proactively implemented several enhancements (e.g., we improved the grid of reservations, added EJB dependency injection, and optimized the 'assign a driver' flow).
As a result, we significantly improved the app performance and made the code much easier to maintain and evolve.
UI modernization of the legacy web app
Our front-end developer delivered a completely new, fully functional user interface (based on the UI mockups provided by the Client) and ensured its smooth communication with the server.
Adding new functionality
Our Java developers empowered the web app with new features, including:
- New pricing and discount rules, e.g., seasonal discounts, specific pricing rules for limo businesses.
- Passenger and driver no-show policies.
- Driver shift management: monitoring and notifying about a shift start and end, controlling how long and how often a driver is permitted to be outside the vehicle, viewing an 'End of shift' report, etc.
- Ability to import/export data about bookings into/from Excel.
- Integrations with Stripe and Payoneer payment processing platforms.
Building a mobile app for drivers
Our mobile developer built from scratch a convenient mobile app for drivers. The cross-platform app was made available for both Android and iOS devices. It offered comprehensive guided trip flows: accepting a trip, navigating to the passenger's pickup location, confirming arrival, navigating to the passenger's destination, completing the trip, and providing feedback and ratings.
The mobile app also allowed drivers to:
- Customize app settings such as region, language, and preferred navigation methods.
- View a history of trips filtered by date.
- View upcoming trips by date.
- Create, modify, and update shifts.
- Set up notifications on important updates.
- Calculate the best routes using an embedded map (Mapbox).
- Use built-in navigation and external navigation apps.
- Track earnings.
To enable app usage monitoring, we integrated the app with Google Analytics.
During the entire cooperation, our team followed the Agile approach with biweekly releases. The team also created and performed unit and integration tests for the new functionality.
A Competitive Ride-Hailing App Ready in One Year
In one year, the Client received a fully revived solution. Based on the analysis the Client conducted, the app became much more convenient for users and worked faster. Also, after migrating to Java and fixing code issues, the app was easier to maintain and evolve.
Technologies and Tools
Java 8–17, Spring, WildFly (JBoss), Hibernate, Micronaut, MySQL, Firebase, Flutter, Liquibase, Docker, Linux.