How we developed an Uber-like, luxury transportation platform
Just in three months, Evrone developed a full-fledged Uber-like service with a back office on Ruby on Rails for a luxury car rental app. Read an article to find out how to build the backend for an Uber service!
Since 2003, 1st Business Services has offered luxury car services, with English-speaking chauffeurs, for businesses and private customers. They operate in Moscow, St. Petersburg, Sochi, and other Russian cities. The company specializes in business and private trips, providing transportation for crew members of aircrafts, guided tours, conferences, sporting and social events, and VIP service.
Their customer-oriented, individualized approach to each request has made the company a leader in the integrated transportation services Russian market.
At the end of 2015, 1st Business Services approached Evrone with a proposal to develop a transportation service for a business class clientele. Their first question was about Uber app development costs and how much it would be to build a luxury car rental app.
We talked to and met with the clients, and it turned out that one of them was the owner of a taxi fleet of luxury cars. At that time, they used a ready-made, automated, US-based system for luxury transportation requests, which was quite expensive. The system was used to automate operations of the limousine and luxury car fleet.
However, this system did not satisfy them, since it did not allow for payment processing. The usual process for taxi users — go to the website, put in a trip request, pay, and go — was impossible to set up through the system they used.
We were excited for the opportunity to develop an exclusive, luxury, Uber-like system. So, we agreed to help and kicked off the fixed-timeline project. We started by detailing the tasks for the customer and outlining the plan of work for the car rental app development.
We agreed to develop a website, where users could register, log in, select their pick-up and drop-off locations, pay for the trip online, and receive verification of their request. Also, we were to develop a back office for the system, which admins could use to track requests, payments, and essential data. Our development team had to create a web solution that took into account the business logic and met all of the client’s requirements.
In three months, we developed a full-fledged service with a back office, and we also tested customer scripts to make sure that all functions worked as the client expected.
We developed the backend of the project in Ruby on Rails, and we used PostgreSQL for data storage. We chose such a classic technology stack for building the backend for an Uber-like service, because it allowed us to focus on functionality and business logic.
- Calculation of the cost of the trip, based on distance and map zones.
- Integration with the API addresses of Google Maps.
- An interactive editor of special map zones in the back office.
- Integration with the Russian Standard bank billing API, as it was the only bank at that time that worked with AMEX cards. This allowed customers to pay for a car using any currency they wanted.
Working with maps
In the admin panel of the system, we implemented a rich zoning functionality. For example, we zoned airports in a way that allowed for different trip costs, depending on the destination. So, the cost of calling a taxi to the airport for pick-up was different than the cost of transportation between airports. This was quite a tricky logic to implement.
We started by adding airports to the admin panel and outlining them on the map. To do this, we used PostGIS, a PostgreSQL add-on that works with geodata to calculate trips and their cost. All of Moscow was delineated, and, for example, if the original address came from a city in the Moscow region, then the price changed. We added a price matrix in the admin panel to calculate these order-dependent costs. It was an extensive block of work that allowed us to successfully implement the functionality of maps with locations and fares management.
PostGIS is a very convenient spatial database extender for the PostgreSQL object-relational database. It adds support for geographic objects, allowing location queries to be run in SQL. We always recommend using PostGIS if you need to work with maps within the project. It allows you to store geographic data and the language of queries to it. For example, it can show houses within a radius from the centre of the city, or the distance between the points, or the occurrence of one geometric region in another.
With their new website, the company successfully operates in the Russian business transportation market and provides:
- 24/7 Support — their dispatch service and chauffeurs are available to assist the customers anytime.
- Professional, English-speaking chauffeurs.
- A 1st Class Fleet with new and fully-equipped business-class vehicles for any occasion.
- Flexible business terms and conditions for corporate clients.
We enjoyed rapidly developing an Uber-like software solution for such an amazing company, using our favourite Ruby on Rails stack. We’re always looking for new projects to be a part of, so reach out to us if you need help creating a custom solution for your business!