Skip to content

Turanta

House help booked in a minute, and everything it takes to deliver it

A home-services marketplace for Mumbai, built end to end. Two apps, an operations panel and the dispatch, payments and payout engine behind them.

The Turanta customer app home screen with Instant and Schedule booking options, beside an illustration of a Turanta professional.

The challenge

Booking help at home in India usually runs on phone calls and personal recommendations. Turanta wanted to make it work like ordering a cab: choose a service, pay, and a verified professional arrives.

The booking screen is the small part of that. Behind it sits an operation that has to hold together in real time: who is on shift, who is close enough, who is free for the whole job, how they are verified, how the customer pays and how the professional is paid.

The requirement

  • A customer app for instant and scheduled bookings, with payment, tracking and support.
  • A separate app for professionals (“Xperts”) covering onboarding, identity checks, shifts, jobs and earnings.
  • An operations panel for the team running hubs, service areas, pricing, finance and partner approvals.
  • Automatic assignment of the right professional to each job.
  • Accounting that stands up to audit: invoices, refunds, wallet balances and payouts.

The solution

For customers. Sign-in is by phone number and one-time code. A customer saves an address on a map, and the app checks it falls inside a serviced area before showing any services. They book for now or for a chosen slot, apply a coupon, and pay by Razorpay or wallet. During the job they see the professional’s location, share a start code at the door, can extend the booking, and can call the professional without either side seeing the other’s number.

For professionals. Onboarding walks through identity documents, a selfie and bank details, then waits for approval. Day to day, the app handles hub selection, shift check-in and breaks, the job list, starting a job with the customer’s code, earnings by payout cycle, targets, leave and an SOS alert. It is available in six languages, including Hindi, Marathi, Kannada and Tamil.

For operations. The admin panel covers bookings, partner verification and suspension, a live attendance map, hubs and their service areas, catalogue and pricing, coupons, payments and refunds, invoices, the ledger, pay plans and payout cycles, referrals and support issues.

Architecture

One NestJS API serves both mobile apps and the admin panel, on PostgreSQL with PostGIS. Each hub’s service area is stored as a polygon, so “do we serve this address?” is answered by the database.

Dispatch runs every minute. It treats assignment as an optimisation problem and uses the Hungarian algorithm to match open jobs to available professionals, taking travel time and each person’s existing job windows into account. That gives the best overall set of matches across all open jobs, which first-come-first-served cannot.

Money is recorded in a double-entry ledger. Wallet credit, refunds, tax invoices, credit notes and payout calculations all derive from it, so every balance can be traced to the entries that produced it.

Payments and refunds go through Razorpay, with webhooks verified on the server. One-time codes and masked calls go through Exotel. Push notifications use Firebase Cloud Messaging. Documents and images are stored in object storage behind signed URLs. The marketing site is a static Astro build.

Technology

Flutter with Riverpod for both apps; NestJS, TypeORM and PostgreSQL with PostGIS on the backend; React, Vite and Tailwind CSS for the admin panel; Razorpay, Exotel, Firebase and Google Maps as integrations; Astro for the website.

Outcome

Turanta is live in Mumbai, with the customer app published on the App Store and Google Play. One team built the whole system: both apps, the operations panel, the backend and the public website.

More work

Have something similar to build?

Tell us what you’re building, fixing or automating. We’ll tell you honestly whether we can help.