Case Study
How RuteAppz Developed a Custom Taxi Booking and Dispatch Platform for KariTaxi
A custom taxi platform with passenger and driver apps, an admin and dispatch panel, a booking website and real-time services.

Project overview
KariTaxi is a ride-booking service that needed a custom mobility platform bringing together passenger booking, driver applications, administrative operations and supporting real-time services. RuteAppz developed and deployed the core technical components: a CodeIgniter backend on a MongoDB database, a Next.js passenger booking website, Node.js-based real-time services and Flutter apps for passengers and drivers.
| Client | KariTaxi |
|---|---|
| Industry | Taxi and ride-hailing |
| Project | Custom taxi booking and dispatch platform |
| Software type | Custom mobility platform |
| Components | Passenger app, driver app, admin and dispatch panel, booking website, real-time services |
| Technology | CodeIgniter 4, MongoDB, Next.js, Node.js, Flutter |
| Project status | Core components developed and deployed |
Business requirements
A taxi service has to coordinate several moving parts at once:
- Easy booking. Passengers need to request a ride from a phone or a website and see an estimated fare before they commit.
- Finding a driver. The nearest available driver has to be found and offered the trip quickly, and operators need to step in when no driver accepts.
- Driver tools. Drivers need to go online, accept or reject trips, navigate, and see their earnings.
- Operational control. The operator needs one place to manage passengers, drivers, vehicles, bookings, zones and fares.
- Trust and safety. Phone verification, trip codes, emergency contacts and an SOS option help both sides.
- Communication. Passengers, drivers and support staff need to be able to talk to each other about a trip.
The RuteAppz solution
RuteAppz built one platform with five cooperating parts. A passenger app and a booking website let people request rides. A driver app receives and runs the trips. A web admin panel gives the KariTaxi team a dispatch board, tracking, fare and zone settings and reporting. A Node.js service handles high-frequency driver location updates and live chat. All of them work against one CodeIgniter backend and one MongoDB database, so a booking made on the website, in the app or by an operator follows the same rules.
Features
What RuteAppz built
Passenger app
Phone sign-up with verification, saved places, fare estimates, booking, scheduled rides, trip history, wallet and SOS.
Driver app
Go online, receive trip offers, accept or reject, arrive, start and complete trips, and view earnings.
Admin and dispatch
Dispatch board, manual assignment, live trip tracking, drivers, passengers, vehicles and reports.
Fares and zones
Vehicle-model fares with optional zone fare tables and surge multipliers, used for both estimate and final fare.
Booking website
A Next.js site where passengers can book, track a booking and manage their account.
Real-time services
A Node.js service for driver location updates, trip chat and support chat.
Verification and SMS
Phone OTP verification with expiry, resend and attempt limits, plus configurable SMS gateway and templates.
Safety and support
Emergency contacts, SOS for passengers and drivers, support chat, and lost-item reporting.
How a booking moves through the platform
The workflow below follows the code path of a booking, from the passenger's request to the completed trip. It is the same for bookings made in the app and on the website, with operators able to create and assign bookings from the admin panel as well.
Passenger application
The passenger app guides people from sign-up to a finished trip. Passengers register and sign in with a phone number and a verification code, set saved places such as home and work, and search for a destination or drop a pin on the map. Before booking they see an estimated fare, and while the platform looks for a driver the app shows a searching screen. Passengers can also schedule a ride for later, follow in-progress, completed, cancelled and scheduled trips, view receipts and rate a trip. Around the ride, the app offers a wallet with top-up and saved cards, promo codes, referrals, push notifications, emergency contacts with SOS, trip chat, a support chat and lost-item reporting, in a choice of languages.
Driver application
The driver app is built around the working day. A driver can register, sign in, and switch between online and offline. While online, the app sends the driver's position in the background so the platform knows who is available. Trip offers arrive as requests that the driver can accept or reject; the driver then marks arrival, starts the trip and completes it, with a start code confirmation when the operator has enabled it. Drivers can also take a street pickup, where the trip is started from the driver's own app. The app shows trip history and earnings, a wallet that can be recharged, subscription plans, referrals, trip and support chat, and an SOS option with emergency contacts.
Admin and dispatch management
The admin panel is where the KariTaxi team runs the service. It includes a dispatch board for bookings, where an operator can create a booking, see the nearest available drivers, offer a trip to a driver, withdraw an offer, assign a driver or cancel. A live tracking view shows active trips on a map. Other modules cover passengers, drivers, vehicles and vehicle models, zones and zone fares, promo codes, payments, revenue and reports, SOS events, trip and support chats, lost items, notifications, security logs, and role-based permissions for admin users. A website booking engine module controls how the public booking site behaves.
Trip management and fare configuration
Fares are configured per vehicle model and calculated by one shared fare engine. It combines a base fare, distance, trip minutes, waiting time, a time-of-day surcharge, a zone surge multiplier and tax. When a pickup point falls inside a geofenced zone, that zone's own fare table and surge multiplier apply instead of the model defaults. The same engine produces the estimate shown before booking and the final fare at trip completion, so the two are calculated the same way.
Real-time location and communication
High-frequency traffic is handled by a separate Node.js service, so it does not slow down the main backend. The driver app sends location updates to this service about every five seconds, and the service returns the driver's dispatch state. The same service runs socket-based trip chat between a passenger and a driver, and support chat between users and the KariTaxi team, with message history and read receipts. Admin users can follow trip chats and support chats from the panel.
SMS and OTP protections
Phone verification protects sign-up and booking. A verification code expires after ten minutes, a new code can be requested only after a 45-second cooldown, and a code is locked after five wrong attempts. The public booking website can limit how many bookings a guest makes per day. SMS messages are sent through a gateway chosen in the admin panel (Twilio, or a configurable custom HTTP gateway), using editable message templates and a global on/off switch for SMS. The platform can also generate a start-of-trip code, optionally delivered by SMS, that the passenger shares with the driver. This case study does not describe other SMS providers, automatic fallback between providers or country-based provider selection.
Payments
The apps include a wallet for passengers and drivers, with money added through card payments, and saved cards for passengers. The backend contains Stripe and Razorpay payment integrations, with test and live modes and credentials managed in the admin panel. The public KariTaxi site mentions cash and wallet. This case study does not state which payment gateways are switched on in production, and it makes no claim about driver payouts, withdrawals or payment volumes.
Passenger booking website
The booking website is a Next.js application with its own login and registration, an account area, booking and booking-success pages, and a track-booking page. It talks to a public booking API that returns the service configuration and vehicle models, estimates a fare and creates the booking, with validation, phone verification and a guest booking limit on the server side. The pages are responsive for phones and desktops.
Technology and deployment
- CodeIgniter 4 backend on PHP 8, with REST APIs for the passenger app, the driver app and the booking website.
- MongoDB database.
- Next.js passenger booking website.
- Node.js service with socket.io for location, trip chat and support chat.
- Flutter passenger and driver apps with Firebase push messaging, Google Maps and device location.
- Previously hosted on AWS Lightsail, according to project records.
This case study does not state current hosting, uptime commitments or certifications.
What this case study does and does not claim
What the platform was built to provide
- Passenger booking with fare estimates, in an app and on a website.
- A driver app with offers, trip status steps, earnings and wallet.
- An admin panel with a dispatch board, live tracking, fares, zones, vehicles and reporting.
- Real-time location and chat services.
- Phone verification and trip codes with built-in limits.
Intended business benefits
- A single platform for bookings from several channels.
- Faster driver assignment, with operator control when needed.
- Consistent fares between estimate and trip completion.
- Safer trips through verification, emergency contacts and SOS.
This page describes what the source code implements. It does not state which features are enabled in production or how the apps were tested end to end on store-installed versions. It makes no claims about bookings, drivers, passengers, ratings, revenue or uptime.
Related RuteAppz solutions
- Taxi Platform: RuteAppz's taxi booking software, the product line this custom project belongs to.
- Dispatch software development: custom dispatch and assignment software.
- Fleet management software development: custom software for vehicles and trips.
- Taxi app development for South Africa: a related RuteAppz offering. It is not a statement about where KariTaxi operates.
Need a Custom Taxi Booking and Dispatch Platform?
Build a tailored transportation platform with passenger bookings, driver operations, dispatch management and business-specific workflows.
More case studies

RKR Water Suppliers
How RuteAppz Built an Offline Water Supply Management & Billing Application
A custom offline desktop application for recording tanker deliveries, managing vendors, documenting water quality and preparing monthly bills without internet dependency.
Read story
Stitchwell Digitizing
How RuteAppz Developed a Custom Order Management Platform for Stitchwell Digitizing
A custom web platform for embroidery digitizing and vector artwork orders, quotations, revisions, file delivery and invoicing.
Read story
FIXIT Handyman
How RuteAppz Built a Custom Handyman and Home Services Marketplace for FIXIT
A customized platform connecting customers with independent service professionals through category-based requests, OTP-verified job start and M-Pesa payment.
Read story