NaviTaxi (taximeter) is an Android driver application that eliminates the need for taxi drivers to search for orders, as the software finds and distributes the most suitable orders for them. As a result, drivers spend less time arriving at the destination. Thanks to numerous functionalities and integrations NaviTaxi (taximeter) application makes the work in taxi service convenient and comfortable. For example, when drivers open the application, they see a map indicating where there are more orders and where there are fewer. If the passenger changes or adds an address during the trip, the system will change the route, calculate the cost and inform the driver about it. Also, drivers can easily withdraw money to their online wallets anytime.
There is an issue in that many taxi drivers spend a significant amount of time and effort looking for clients. To tackle this issue, the Reviro development team had to develop a user-friendly mobile application for drivers. The program had to automate the process of passenger search and other critical driving operations, making their job simpler. Without needing a dispatcher, the program should automatically distribute nearby taxi orders within 1,000 meters. Another important element should be a function of an intelligent routing system on the 2GIS map, where algorithms will construct the most optimized route from point A to point B, displaying the amount of time and the total cost of the trip. As a result, the driver should spend less time getting to the passenger. Most essential, drivers should be able to withdraw their profits to their online wallets anytime, without having to visit the office.
Drivers can receive unique benefits using the NaviTaxi taximeter app to ensure a consistent and high income. A driver app's development may be separated into three stages: UI/UX design, Android development, and QA testing.
We wanted to make the app's UI/UX design as simple as possible so that drivers could quickly learn how to use it and react to orders with one click.
Kotlin was used to create the Android app. With Kotlin, our developers could do more tasks with fewer lines of code, increasing the development's efficiency and flexibility for future upgrades, integrations, and testing.
The project's main architecture is the MVVM (Model-View-ViewModel) design pattern, simplifying the development and debugging process. The program comprises multiple layers: Base, Data, DI, UI, Services, and Utils.
Base is an abstract class layer that serves as a template for other Android components and classes.
Data is a layer that holds the application's data and business logic, specifying the creation, storage, and modification of application data.
DI is the layer that includes the dependency creation modules. This layer was developed using the Kotlin Coin framework.
UI is a collection of user interface layers. It is the main area of interaction with the user and shows the application data on the screen.
Utils is a collection of static utilities for working with views, maps, and other useful tools and plugins.
The navigation component in Android Jetpack was utilized for the navigation architecture, which allows deep linking and snippets, delivering a predictable and consistent user experience in an app with basic buttons.
All operations are linked and held on the project's backend, including all taxi ordering procedures logic. Algorithms for intelligent route planning, looking for drivers within a 1000-meter radius and calculating the precise time of arrival and cost of a trip from point A to point B are built in the backend. Redis is used to store all driver location data, and Redis GeoSpatial is used to determine distances between drivers while looking for candidate drivers. Celery Task changes drivers' geolocation every 5 seconds by deleting irrelevant places and replacing them with new ones. The Python programming language and the FastAPI framework are used in the backend. These versatile and secure programming tools enable effective client-server interaction. Everything revolves around the FastAPI, which connects Redis, PostgreSQL, and travel algorithms to the mobile app that passengers and drivers use. FastAPI's scalability and speed allow it to efficiently manage huge traffic, with an average of 500+ requests and 20,000,000+ HTTP requests and events processed daily. Consequently, even during heavy demand, the program can work smoothly.
In addition, we applied machine learning techniques to increase the program's performance. After gathering sufficient amounts of trip data and using machine learning techniques, we discovered locations of high demand. As a result, we've implemented a surge pricing system, which raises the fee in select locations based on client demand. This assists us in motivating drivers to accept orders during rush hour.
Our QA engineers are constantly testing the app to detect any flaws in the database, customer search, and all of the operations that occur within the app. The program automatically saves all of the information about the user's device, making testing even easier. This is accomplished by manual, black box, white box, and grey box testing, unit tests, integration tests, and user interface tests. As a result, all devices are 99.3 percent crash-free.
The NaviTaxi driver app has undergone five significant releases since the startup was founded and developed.
The app's first version featured the most basic functionality for quickly getting started as a driver in NaviTaxi.
Beginning with NaviTaxi takes a few hours for drivers. They should download the NaviTaxi taximeter app from Google Play and start registering, which takes a few minutes and includes several steps. At the registration step, drivers should fill in basic information about themselves, their documents, and their automobile after receiving authorization through phone number, and upload images of their car and appropriate documentation. After dispatchers examine and authorize the driver via the admin panel, they may begin using the program and receiving orders.
The program has features for managing the status: "Online" or "Busy." If the status is "Online," the system will automatically send orders within a 1,000-meter radius. There are options to accept the order. Drivers have access to crucial capabilities such as "In place", "Navigation", "Call" and "Dispatcher" as soon as they accept an order. The system does not distribute incoming orders if the status is "Busy." When the drivers are on the line, the fastest route is immediately displayed, together with the trip's distance.
Many improvements have been introduced in the second edition to make the ride more convenient for drivers and their work simpler.
Withdrawing earnings to the credit card Few taxi companies enable drivers to withdraw their earnings from the balance to a linked card at any time without going to the office. Drivers' accounts have an "Income" section that comprises transaction information and displays the total amount available for withdrawal. This feature makes life significantly easier for drivers by allowing interest-free withdrawals from NaviTaxi's partner banks.
Orders are on the way "Orders on the way" is a function that allows drivers to take orders while driving home or on business. The "Home" and "Business" functionalities can only be utilized twice daily. Commission and boarding are the same as ordinary trips in the "Home" and "Business" functions.
On the board Another feature allows drivers to earn even more money anytime and under all circumstances. A driver may be approached and asked for a ride while waiting for their orders to be distributed, and drivers now have the option of picking up that passenger.
Driver's balance To make a trip, the driver must have some money on their balance because each trip deducts commission from it. Drivers cannot receive orders if their balance is zero; thus, we've provided the ability to top up the balance using terminals. Drivers may also view extensive information about their balance, all top-ups, and charges in this section.
Driver bonuses The driver's account menu now includes a bonuses section. These benefits may improve ride quality, motivate drivers, and recruit new ones. These bonuses have a time restriction and may only be given by admins through the admin dashboard.
Chat with a passenger Chat with passengers is a messaging option available exclusively during a ride as an alternative to calling. Not all passengers want to be called and may turn off the call function.
The waiting fee is automatically deactivation The waiting fee is immediately canceled when there is no trip endpoint.
Route reconstruction If the driver does not follow the route generated at the trip's start, a notice indicating that it is being reorganized and presenting a new route is displayed.
Order cancellation audio notification An automated audio announcement was introduced to notify the driver that the order had been canceled to avoid unpleasant situations when the driver arrived at the location and waited for the passenger.
Announcements and news A feature where drivers may read a stream of news and announcements was introduced.
Nighttime mode In the options, drivers may select a dark or bright theme for the application.
NaviTaxi's passenger services have been enhanced in the third edition.
Fare "Minivan" The "Minivan" tariff provides taxi services for big group travels. In terms of functionality, this is standard fare: economy, comfort, and comfort+ options.
Fare management Drivers' accounts have a "Fare" feature that displays the possible fares set to them after registration by the NaviTaxi administration. Drivers can choose which fare to work according to their qualifications.
Additional addresses After deleting or adding an address, drivers are notified of the route modification, and the final cost is recalculated.
History of the trip There is a part in the driver's account with the trip history. In this section, drivers may check their completed trips for specific times, addresses, time, and trip prices.
New ways to replenish the balance New platforms have been added via which the driver's balance may be topped up.
Contact technical support There is a "Support" section in the driver's account where the driver may contact the support service with any questions.
Taxi pools Drivers must select their taxi company from a list of available taxi firms while registering.
SMS codes To cut costs, drivers will receive codes to their WhatsApp accounts instead of SMS messages to their phones for authorization.
A database of addresses Reviro created an address database since any searches in the 2GIS map were costly for Navitaxi. Any address queries will be sent to the database first; only if the address is not found in the database will it be forwarded to 2GIS maps.
The fourth edition includes additional features for drivers to make their trips more comfortable and to help them earn more money.
High-demand dynamic zone The problem of drivers not knowing where orders are has been solved by integrating a high-demand zone algorithm. Drivers may now see taxi order demand highlighted on the map by color saturation, allowing them to acquire more orders instead of idly driving around the city.
"Let's go" will be automatically pressed After drivers click "In place" and drive 500 meters from point A without pressing "Let's go," the trip should proceed to the following step, "On the trip".
Displaying the trip fee and the total price When a new order is received, the trip information is shown instantly, along with the fare and final cost.
Section "Your car" All information on the driver's automobile is saved here, and drivers can submit a request through this section if they wish to modify something. They can track the request's status and receive updates after sending it.
Photo control A monthly car photo control is introduced to the program via a new "Photo control" area. A week, 5 days, 3 days, and 1 day before the deadline for providing images for photo control, the driver will get reminders in the form of notifications. Drivers who fail the photo control will not be able to accept orders.
Swipes instead of buttons Swipes were used to prevent the "In place," "Let's go," and "Finish" buttons from being accidentally pressed.
Voice guidance Sound navigation was added to critical trip operations such as route reconstruction, a passenger canceling an order, and so on.
Turning off the navigation's voice In the application settings, the driver can disable the navigator's voice.
Low balance When a driver's balance is low, and they attempt to get on a line, they are informed that their balance is low and that they need to replenish it.
The fifth and latest release includes upgraded driver NaviTaxi application functionalities.
Comment from a passenger When the driver gets an order, any comments left by passengers on order are shown in the comment window.
The "On the way" function is automatically terminated. When the driver reaches point B in the "On the way" function at a distance of one kilometer, the function is turned off automatically, and the system does not send orders.
Tip Passengers may now tip using their credit cards, and tipping has been included in the trip and transaction history for drivers.
A notification indicating the driver is unable to join the line If a driver is blocked, they are informed while attempting to join a line that they are blocked and cannot get orders. The same notice is displayed when the driver fails the photo control, has a low balance, or turns the GPS off.
With each new release, the NaviTaxi driver app becomes better and better, providing drivers with the best resources for significant and consistent earnings.
Python, FastAPI, Celery, Redis, PostgreSQL, Docker, Kubernetes, Kotlin, Retrofit, 2GIS map, Glide, Koin, Room, Jetpack, Pin View, Mask, Timber, Espresso, Mockito, Lottie, Figma
Android apps are used by 70% of the world's population. It's a win-win situation for every firm to develop Android apps since they attract new customers, increase income and brand awareness, and build loyal customer bases. Get in touch with us, and we will create Android apps for your company!