Ayfair — Private Transfer & VTC Booking Platform (Client, Driver, Admin)
Full-stack private transfer platform — Flutter apps for passengers and drivers, Django API with live GPS and chat, Next.js admin, Stripe payments, and Stripe Connect onboarding for drivers and order givers.

Ayfair is a production-grade transportation booking platform for private vehicle transfers, round trips, and guided tours — built as a multi-sided system where passengers book rides, drivers accept and execute trips, and operators manage fleet, pricing, and commissions from a web admin.
The product spans four surfaces: a Flutter client app (iOS & Android), a Flutter driver app, a Next.js admin panel, and a public landing site — all backed by a Django REST API with WebSockets for real-time booking updates, driver tracking, and in-trip chat. Payments run through Stripe (card, Apple Pay, Google Pay) with Stripe Connect Express for driver and order-giver payouts and automated commission splits (platform / driver / donneur d'ordre).
I owned implementation across the stack: booking and pricing logic, status workflows, Connect onboarding flows, passenger booking-for-third-party flows, multilingual UX (FR, EN, AR), push notifications, invoicing, and production deployment on ayfair.eu.
Booking engine, pricing, and trip lifecycle
Built end-to-end booking for one-way, round-trip, and mise à disposition transfers plus a tours module — pickup/destination selection via maps, Google distance/duration, vehicle categories with passenger and luggage rules, and server-side price calculation so quotes cannot be tampered with on the client.
Implemented a granular status model (assigned → en route → passenger onboard → completed) shared between client, driver, and admin, with WebSocket broadcasts so passengers see driver ETA and map position without polling.
Added passenger preferences, child seats, flight/train references, cash vs card payment paths, and post-trip driver ratings and tips — with review rules that respect who actually rode (self-booking vs order-giver booking for someone else).
Stripe payments & Connect for a multi-sided marketplace
Integrated Stripe Payment Sheet in the client app (card, Apple Pay, Google Pay) with PaymentIntent authorization/capture aligned to trip completion, plus webhooks for payment confirmation and Connect account.updated sync.
Shipped Stripe Connect Express onboarding for drivers and client-side order givers (donneur d'ordre): secure email links, return/refresh URLs on ayfair.eu, identity verification, and commission splits (e.g. 20% order giver / 5% platform / 75% driver) with pending and weekly payout flows.
Built passenger-facing flows for order-giver bookings: booking confirmation emails, optional card payment links, public cancel/invoice pages, and PDF invoicing variants for standard passengers vs order giver vs end passenger.
Driver operations, admin, and production platform
Delivered the driver Flutter app for job invitations, accept/reject, turn-by-turn context, status updates, earnings/wallet views, and Stripe onboarding — with booking visibility rules so drivers only see relevant open trips.
Built the Next.js admin for fleet, vehicle categories, tours, live bookings, drivers, order givers, commission reporting, platform Stripe settings, and notification management.
Deployed on VPS (Nginx → Daphne ASGI) with Redis for Channels, PostgreSQL, FCM push notifications, multi-language content across apps, and public API at api.ayfair.eu serving production iOS/Android builds.
Results
- Surfaces shipped
- Client + Driver apps, Admin, API, Landing
- Realtime
- WebSocket tracking & chat
- Languages
- 3 (FR, EN, AR)
- Payments
- Stripe + Connect Express