Enter access code to continue
All figures use βΉ1,000/hr flat rate. Both devs work in parallel β Flutter dev handles apps, Node.js dev handles backend.
AI tools cost covered by devs' company β not included in this budget. Client pays only dev hours + base app.
Client pays separately (not in this budget): Google Maps API, Razorpay fees, MSG91 SMS credits, cloud hosting, Apple/Play Store accounts.
Purchased from CodeCanyon at $399 (βΉ33,500). Full NestJS + Flutter + React Admin source code. Stack: Flutter 3.29 + NestJS (TypeScript) + PostgreSQL + GraphQL + WebSockets + Docker.
Stack confirmation: Flutter 3.29 (Android + iOS) Β· NestJS microservices (TypeScript) Β· PostgreSQL Β· GraphQL API (not REST) Β· graphql-ws subscriptions for real-time Β· Docker one-command deploy Β· 22 payment gateways Β· 8 SMS providers Β· 5 map providers incl. MapMyIndia
Features confirmed from official documentation at docs.bettersuite.io
| Feature | Status in Ridy | Notes |
|---|---|---|
| Rider (Customer) App | ||
| Multi-step booking wizard (pickup/drop) | β Included | Elegant UX, map-based |
| Real-time driver tracking on map | β Included | GraphQL subscriptions + WebSocket |
| Multiple service types (Economy, Premium, SUV) | β Included | Configurable in admin |
| In-app wallet + top-up + online payment | β Included | 22 gateways β Razorpay likely included |
| In-app chat (rider β driver) | β Included | Direct messaging |
| In-app call to driver | β Included | VoIP or native call |
| Trip history + fare estimates | β Included | With live pricing display |
| Coupons + promo codes | β Included | Admin-configured |
| Gift cards / credits | β Included | Send + redeem |
| Ratings & reviews post-trip | β Included | Both sides rate |
| Push notifications | β Included | Firebase FCM |
| SMS OTP login | β Included | 8 SMS providers β MSG91 likely included |
| Cash + Card + Wallet payment modes | β Included | All three modes |
| Driver App | ||
| Online / Offline toggle | β Included | With availability control |
| Ride request accept / decline | β Included | Push + in-app notification |
| Full trip flow (pickup β nav β drop) | β Included | Step-by-step navigation |
| Earnings (daily / weekly / monthly) | β Included | Full dashboard |
| Wallet + payouts + transaction history | β Included | Ledger view |
| In-app chat + call to rider | β Included | Both directions |
| Admin Panel | ||
| Live driver map + stats overview | β Included | React panel (beta) + Angular (stable) |
| Rider & driver management + KYC verification | β Included | Full CRUD + status control |
| Fleet / company management + commission | β Included | Multi-fleet support |
| Region-based pricing + geofencing | β Included | Zone price override |
| Trip monitoring + advanced filtering | β Included | Real-time + historical |
| Coupon + campaign management | β Included | Admin-configured discounts |
| Complaints + dispute handling | β Included | Ticket-based |
| System announcements (driver + rider) | β Included | Push + in-app |
| Branding customisation (logo, colors, name) | β Included | No-code in admin |
Flutter dev handles all items below. Hours are additional work on top of Ridy base.
UI skinning to Figma + India-specific features + missing flows
| Feature / Task | Hours Range | Who | Notes |
|---|---|---|---|
| UI / Figma Skinning | |||
| Onboarding + login screens (Figma skin) | 4β6 hrs | Flutter | Replace Ridy UI with Figma design |
| Home + map booking screen (Figma skin) | 8β10 hrs | Flutter | Most complex screen |
| Ride type selector UI (Economy/Premium/SUV/Outstation) | 4β5 hrs | Flutter | Add outstation card |
| Live trip tracking screen (Figma skin) | 5β7 hrs | Flutter | Driver pin, ETA, status bar |
| Trip history + receipt screens (Figma skin) | 4β5 hrs | Flutter | Includes GST invoice download button |
| Profile + settings screens (Figma skin) | 3β4 hrs | Flutter | Saved addresses, preferences |
| Wallet + payment screens (Figma skin) | 4β5 hrs | Flutter | UPI QR display, saved cards view |
| India-Specific Features (Missing from Ridy) | |||
| Dynamic UPI QR at trip end | 8β12 hrs | Flutter + Node | Razorpay QR API Β· Flutter shows QR, Node generates it |
| Airport fixed-fare route cards | 5β8 hrs | Flutter + Node | Predefined routes with fixed price display |
| Outstation full flow (night halt, allowance, return time) | 18β25 hrs | Flutter + Node | Complex β booking form, pricing display, driver schedule |
| GST invoice download from trip history | 3β4 hrs | Flutter | PDF viewer + download button (PDF generated on Node) |
| Missing Features from PRD | |||
| Trip OTP display (4-digit code on rider screen) | 3β4 hrs | Flutter | Shows code, confirm when driver enters it |
| Multiple stops (add waypoints) | 6β9 hrs | Flutter + Node | Add/remove stops, re-price on add |
| Post-trip tip driver | 3β5 hrs | Flutter + Node | Tip screen after rating, Razorpay charge |
| Payment retry window (5-min after failure) | 3β4 hrs | Flutter + Node | Retry banner, debt flag if expired |
| Save payment methods (Razorpay tokenisation) | 5β7 hrs | Flutter + Node | List saved cards/UPI, default selection |
| In-app chat β Rider β Support channel | 4β6 hrs | Flutter | Second chat channel (Ridy has riderβdriver, need riderβsupport) |
Rider App Flutter subtotal: 91β116 hrs Β· Midpoint ~100 hrs Β· Cost range: βΉ91,000 β βΉ1,16,000
Flutter dev handles all UI. Some features need Node.js backend support (marked).
UI skinning to Figma + safety features + India-specific flows
| Feature / Task | Hours Range | Who | Notes |
|---|---|---|---|
| UI / Figma Skinning | |||
| Driver onboarding + KYC screens (Figma skin) | 5β7 hrs | Flutter | Document upload, selfie, status screens |
| Home / availability screen (Figma skin) | 4β6 hrs | Flutter | Online toggle, earnings widget, map |
| Ride request popup + accept/decline (Figma skin) | 3β4 hrs | Flutter | Timer, fare, distance display |
| Active trip screen (Figma skin) | 4β6 hrs | Flutter | Navigation, OTP entry, trip controls |
| Earnings + wallet screens (Figma skin) | 3β4 hrs | Flutter | Daily/weekly/monthly breakdown |
| India-Specific + Safety Features (Missing from Ridy) | |||
| Trip OTP verify (driver enters 4-digit code) | 3β4 hrs | Flutter + Node | Input field, server validation before trip starts |
| Auto go-offline after inactivity (configurable) | 3β4 hrs | Flutter + Node | Background timer, push reminder before offline |
| Cash collection tracker (payable-to-company balance) | 6β8 hrs | Flutter + Node | Running balance on home screen, settlement flow |
| Document expiry alerts (30/15/7 days) | 4β6 hrs | Flutter + Node | Push notification scheduler + in-app banner + block on expiry |
| SOS button (emergency) | 4β5 hrs | Flutter + Node | Long press β alert to admin + live location share |
| Driver profile edit restrictions post-activation | 2β3 hrs | Flutter + Node | Lock name/phone/email fields, show "contact support" |
| Outstation mode (rates, night halt, return schedule) | 6β8 hrs | Flutter + Node | Separate trip flow UI for outstation rides |
| In-app chat β Driver β Support channel | 3β5 hrs | Flutter | Second chat channel alongside driverβrider |
Driver App Flutter subtotal: 50β70 hrs Β· Midpoint ~60 hrs Β· Cost range: βΉ50,000 β βΉ70,000
Node.js dev handles all items. Backend powers both apps + admin panel. GraphQL API extensions throughout.
India payments Β· fare engine Β· new modules Β· migration Β· deploy
| Feature / Task | Hours Range | Notes |
|---|---|---|
| Setup & Verification | ||
| Codebase study + architecture mapping | 8β10 hrs | GraphQL schema, microservice boundaries, Docker setup |
| Verify Razorpay in 22 gateways + activate + test | 3β5 hrs | Config, webhook, test transactions |
| Verify MSG91 in 8 SMS providers + activate + test | 2β3 hrs | OTP flow end-to-end test |
| Remove license validation code | 3β5 hrs | Find call-home in NestJS source, remove, test cold start |
| India-Specific Payment Features | ||
| Dynamic UPI QR generation (Razorpay API) | 6β10 hrs | Generate per-trip QR, poll payment status, expire after 5 min |
| Save payment methods (Razorpay tokenisation) | 4β6 hrs | Token vault, list/delete saved methods, charge on token |
| Payment retry window (5-min debt flag logic) | 3β4 hrs | Trip completion gate, debt flag, retry API |
| Post-trip tip β backend charge + driver credit | 3β4 hrs | 100% to driver, excluded from commission calc |
| Fare Engine (27 Parameters) | ||
| Extended fare engine (27 params β surge, night, peak, tolls) | 15β20 hrs | Ridy has basic fare engine β extend to full 27-param spec |
| Airport fixed-fare backend (route + price config) | 4β6 hrs | Admin-configurable route table, geofence trigger |
| Outstation pricing logic (night halt, allowance, return) | 10β14 hrs | Multi-day trip pricing, per-night charge, driver payout rules |
| New Modules | ||
| Trip OTP β generate, store, verify API | 3β5 hrs | 4-digit code, server-side verify before trip start mutation |
| Multiple stops β waypoint pricing API | 5β8 hrs | Sequential stops, per-stop wait time, re-price API |
| GST invoice PDF generator | 8β12 hrs | PDFKit/Puppeteer, GSTIN, auto-email + download endpoint |
| Document expiry alert scheduler | 3β5 hrs | Cron job, 30/15/7 day push notifications, block flag |
| Cash collection tracker API | 4β6 hrs | Running balance, settlement endpoint, admin view |
| SOS alert backend (admin push + location) | 3β4 hrs | Emergency alert mutation, admin notification |
| Support chat backend (riderβsupport + driverβsupport) | 6β8 hrs | New chat namespace/room, admin console APIs |
| Data migration scripts (from SaaS CSV/JSON export) | 12β18 hrs | Riders, drivers, trip history, bookings. Range depends on export quality. |
| Admin Extensions | ||
| Dispatcher Panel APIs (manual booking, override, CTI) | 18β25 hrs | Biggest custom module β new service + GraphQL schema |
| Admin 2FA (TOTP + SMS) | 5β7 hrs | Authenticator app + SMS fallback, mandatory for all roles |
| Customer dues management + booking block | 6β8 hrs | Debt flag, block ride booking, admin override |
| Manual refunds (original method or wallet) | 5β7 hrs | Reason log, Razorpay refund API, wallet credit path |
| Driver wallet ledger (per-driver drill-down) | 4β6 hrs | Full transaction history, export CSV |
| GST reports (GSTR-1 / GSTR-3B export) | 6β9 hrs | Date-range query, CSV/Excel export in GSTN format |
| Referral code management (per city) | 4β6 hrs | Generate, assign, track usage, credit wallet on success |
| Multi-city independent pricing (extend Ridy zones) | 6β9 hrs | Per-city fare tables, surge rules, service availability |
Backend Node.js subtotal: 158β208 hrs Β· Midpoint ~180 hrs Β· Cost range: βΉ1,58,000 β βΉ2,08,000
React/Angular frontend work for new modules. Node.js dev handles these alongside backend (same dev, APIs + UI).
Extending Ridy's React admin panel with new sections
| UI Module | Hours Range | Notes |
|---|---|---|
| Dispatcher Panel (Full New Module β biggest UI task) | ||
| Live map view + driver pins + SOS console | 8β10 hrs | React + Google Maps, real-time driver positions |
| Manual booking form (city/rental/outstation) | 6β8 hrs | Full booking form, fare override, assign driver |
| Call workflow + CTI integration UI | 5β7 hrs | Auto-pull customer info on incoming call |
| Issue resolution + coupon issue + refund UI | 4β6 hrs | Per-trip actions panel |
| Scheduled ride board | 3β4 hrs | Table view of upcoming scheduled rides, assign driver |
| Admin Panel Extensions | ||
| Support chat console (unified rider + driver inbox) | 5β7 hrs | Admin-side chat UI, assign to agent, mark resolved |
| GST reports page (GSTR-1/3B download) | 3β4 hrs | Date picker + download button |
| Driver wallet ledger page | 2β3 hrs | Table + filter + CSV export |
| Customer dues page + block/unblock | 2β3 hrs | Flag view, admin override toggle |
| Referral code management page | 2β3 hrs | Create/assign/track per city |
Admin/Dispatcher UI subtotal: 40β55 hrs (included within Node.js dev total above) Β· Cost range: βΉ40,000 β βΉ55,000
Both devs together for final sync, testing, and production deployment.
| Task | Hours Range | Who | Notes |
|---|---|---|---|
| Day 1 β GraphQL API contract agreement | 3β4 hrs | Both | Define all new mutations/queries before parallel work starts |
| Integration testing (apps β backend) | 8β12 hrs | Both | End-to-end ride flows, payment, OTP, outstation |
| Bug fixes post-integration | 6β10 hrs | Both | Shared buffer for cross-dev bugs |
| Staging deploy + client UAT support | 4β5 hrs | Node | Docker on staging VPS, test accounts |
| Production deploy + SSL + domain config | 3β4 hrs | Node | Docker prod, nginx, SSL cert |
| App Store + Play Store submission | 4β6 hrs | Flutter | Build signing, metadata, screenshots, submit |
Shared/QA subtotal: 28β41 hrs Β· Midpoint ~34 hrs Β· Cost range: βΉ28,000 β βΉ41,000
Both devs work in parallel from Week 1. Only 2 sync points: Day 1 (API contracts) and Week 5 (integration).
Assumption: 6β7 productive hours/day per dev. 5-day work week. 2 devs in parallel = ~12β14 combined hours/day.
Both devs study Ridy codebase together (Day 1β2). Define all new GraphQL mutations/queries on Day 1. Flutter dev sets up dev environment, builds, runs apps. Node.js dev: verify Razorpay + MSG91 in existing gateways, remove license validator, set up Docker local dev, study NestJS microservice structure.
Flutter: Onboarding, home/map screen, ride type selector Figma skin. Node: Fare engine extension (27 params), Trip OTP generate/verify API, dynamic UPI QR generation API, airport fixed-fare backend.
Flutter: Live trip screen, trip history/receipt, wallet/payment screens, UPI QR display, GST invoice download button, multiple stops UI, tip screen, payment retry banner. Node: Outstation pricing logic, multiple stops API, tip backend, payment retry/debt flag, save payment methods (Razorpay tokenisation).
Flutter: All driver app Figma screens, OTP verify input, cash tracker UI, document expiry banners, SOS button, auto-offline logic, outstation driver UI, profile edit lock. Node: Dispatcher Panel APIs, GST invoice PDF generator, document expiry scheduler, cash tracker API, SOS alert backend, support chat backend.
Flutter: App Store + Play Store builds preparation. Node: Dispatcher Panel UI (React), support chat console, GST reports page, driver ledger, customer dues, referral codes, admin 2FA. Data migration scripts from SaaS export. Both devs: integration testing together.
Staging deploy on client's VPS, client UAT testing, bug fixes from UAT feedback. Production deploy with SSL + domain config. Play Store + App Store submission. Final handover documentation.
Note on migration complexity: Timeline assumes the existing SaaS platform exports clean CSV/JSON. If export is messy or requires manual cleanup, migration can add 3β5 days. Plan for this buffer.
All figures in INR. Dev rate βΉ1,000/hr flat. AI tool costs covered by devs' company β not billed to client.
| Item | Hours / Qty | Rate | Min (βΉ) | Max (βΉ) |
|---|---|---|---|---|
| Base App | ||||
| Ridy β Full Source Code (CodeCanyon) | 1 license | Fixed | 33,500 | 33,500 |
| Flutter Dev β Rider App | ||||
| UI Figma skinning (all screens) | 24β36 hrs | βΉ1,000 | 24,000 | 36,000 |
| India-specific features (QR, airport, outstation UI) | 27β38 hrs | βΉ1,000 | 27,000 | 38,000 |
| Missing PRD features (OTP, stops, tip, retry, chat) | 18β26 hrs | βΉ1,000 | 18,000 | 26,000 |
| Flutter Dev β Driver App | ||||
| UI Figma skinning (all screens) | 19β27 hrs | βΉ1,000 | 19,000 | 27,000 |
| Safety + India features (OTP, SOS, cash tracker, doc expiry) | 21β30 hrs | βΉ1,000 | 21,000 | 30,000 |
| App Store + Play Store submission | 4β6 hrs | βΉ1,000 | 4,000 | 6,000 |
| Node.js Dev β Backend | ||||
| Setup, verification, license validator removal | 16β23 hrs | βΉ1,000 | 16,000 | 23,000 |
| India payments (UPI QR, tokenisation, retry, tip) | 16β24 hrs | βΉ1,000 | 16,000 | 24,000 |
| Fare engine extension (27 params + airport + outstation) | 29β40 hrs | βΉ1,000 | 29,000 | 40,000 |
| New modules (OTP, stops, GST invoice, doc expiry, SOS, chat) | 32β47 hrs | βΉ1,000 | 32,000 | 47,000 |
| Admin extensions (2FA, dues, refunds, ledger, GST reports, referral) | 27β38 hrs | βΉ1,000 | 27,000 | 38,000 |
| Dispatcher Panel β APIs + React UI | 44β59 hrs | βΉ1,000 | 44,000 | 59,000 |
| Data migration scripts (SaaS export) | 12β18 hrs | βΉ1,000 | 12,000 | 18,000 |
| Shared β Integration + QA + Deploy | ||||
| API contract sync (Day 1) | 3β4 hrs | βΉ1,000 | 3,000 | 4,000 |
| Integration testing + bug fixes | 14β22 hrs | βΉ1,000 | 14,000 | 22,000 |
| Staging + production deploy | 7β9 hrs | βΉ1,000 | 7,000 | 9,000 |
| GRAND TOTAL | 315β352 dev hrs + base app | βΉ3,46,500 | βΉ4,06,000 | |
Internal Estimation Document Β· Cab Platform Rebuild Β· June 2026
Confidential β Not for distribution
Base App: Ridy (CodeCanyon) Β· Stack: Flutter + NestJS + PostgreSQL
Rate: βΉ1,000/hr Β· 2 Devs Parallel Β· 5β6 Weeks