Build 3-Platform Ride Booking App (Rider, Driver, Admin) — Phase 1 MVP
Budget: $1000.0
FIXED /
⭐ 0.00 (0)
United States
react-native, firebase, flutter, mobile-app-development
I'm building Xuros, a chauffeur/ride-booking platform for NYC, and need Phase 1 of a 3-part system built:
1. CUSTOMER APP (iOS + Android)
- Sign up / log in
- Reserve a ride in NYC, choosing from 4 vehicle categories: Black, Black SUV, Reserve, Signature
- Two booking types per category: Point-to-point (pickup to drop-off) and Hourly (minimum 2 hours)
- ALL reservations require a minimum of 24 hours advance notice — the app must block/reject any booking attempt inside that window (e.g. show "earliest available time" rather than letting the request submit)
- See ride status and basic ride history
- Payment via Stripe (I will provide a Stripe TEST account — no live payments in Phase 1)
2. DRIVER APP (iOS + Android)
- Sign up / log in, get approved by admin — includes setting the driver's HOME REGION (e.g. "NYC") during onboarding
- See and accept ride offers, filtered to their OWN region only:
- "Partner to Consumer" offers = customer bookings (NYC only, since the customer app currently only serves NYC riders)
- "Partner to Partner" offers = jobs posted by other drivers — these can be posted for ANY region worldwide (the poster picks the job's region at posting time), but only show up as acceptable to drivers whose registered home region matches that job's region
- IMPORTANT: when a driver POSTS a Partner-to-Partner job, they must pay for it upfront at posting time. That payment is held in ESCROW (authorize/hold the funds, do not release them) until the job is marked complete by both sides — only then does the money release to the driver who did the job. If a job is cancelled/disputed before completion, the held funds must be refundable, not already paid out.
3. ADMIN PORTAL (web)
- Login for me only, with owner-level access
- Approve/reject drivers, including setting/verifying their region
- View all bookings and assign/reassign NYC-based drivers
- View driver-posted (Partner-to-Partner) jobs across ALL regions, see escrow/held-funds status, and resolve disputes (release funds to driver, or refund poster)
- Basic reporting (bookings, revenue, active drivers, by region)
PHASE 1 SCOPE (this job): core flows above, working end-to-end with TEST payment data — including the escrow hold/release logic — but not production-ready polish, App Store submission, or live payments. Phase 2 (submission, live payments, polish) will be scoped as a separate job once Phase 1 is delivered and reviewed.
TECHNICAL APPROACH (open to your recommendation, but to hit this timeline I expect):
- React Native (Expo) or Flutter for the two mobile apps, so they share code and build fast
- A backend-as-a-service (Supabase or Firebase) rather than a custom server, to move quickly with built-in auth/security
- Stripe in MANUAL CAPTURE mode (authorize funds now, capture/release only on job completion) — this is what implements the escrow requirement above; do not simply charge and hold money in a separate ledger without Stripe's own hold mechanism
- A simple React (or similar) web app for the admin portal
WHAT I NEED FROM YOU:
- Proven experience shipping a mobile app with a real backend (not just UI)
- Direct experience with Stripe's manual-capture / authorize-then-capture flow (this is the core of the escrow feature — please confirm you've built this before, not just standard checkout)
- Experience with real-time or near-real-time data (an offers board that updates) — Supabase/Firebase real-time or similar
- Clear async communication in plain English — I'm non-technical and need milestone-by-milestone updates I can understand and approve before you continue
BUDGET & TIMELINE: $1,000 fixed price for Phase 1, 1 week, paid via Upwork milestones (released only after each milestone is reviewed and working). If your estimate is more than 1 week/$1,000 for the full scope above, tell me what you CAN deliver in that budget/time and we'll scope Milestone 1 accordingly — I'd rather get a smaller working piece than a rushed, insecure one (especially since this handles money).
SECURITY REQUIREMENTS (non-negotiable):
- All backend/API keys, database credentials, and payment keys are TEST/sandbox only for this phase — no production secrets exist yet
- Code lives in a private GitHub repo I own; you get collaborator access on a feature branch, not admin/owner access
- No secrets, keys, or credentials may be hardcoded or committed to git — environment variables only
- I review every pull request before merging to main
- Standard Upwork IP assignment applies — all code becomes my property on payment; no reuse of this code for other clients
TO APPLY, include:
1. A mobile app you've built with a real backend (link or screenshots), ideally something involving payments or a two-sided marketplace
2. Confirmation of hands-on experience with Stripe manual capture / held-funds flows specifically (not just standard one-time charges)
3. Your honest assessment of what's realistically deliverable for $1,000 in 1 week, including the escrow piece, and what you'd propose cutting or phasing
Openen op Upwork