Interactive Map Discovery
Mapbox map with clustered markers (Turf/GeoJSON) and real-time states: available, matched and selected.
A mobile marketplace where EV drivers find shared chargers, match with hosts and book available hours. The backend checks host availability and prevents double bookings, while Socket.IO supports chat between matched users. Stripe Connect handles payments and host payouts, with webhooks reconciling payment status and a web dashboard for booking and revenue analytics.
As Co-Founder CTO, I architected and built the React Native app, Fastify backend, PostgreSQL database and web admin dashboard, modelling the host and renter journey from discovery and matching to booking and payment.
Mapbox map with clustered markers (Turf/GeoJSON) and real-time states: available, matched and selected.
Tinder-style matching where renters and hosts must mutually match before they can message or book.
Socket.io chat with instant delivery, room-targeted events, read-status tracking and auto room creation on match.
Multi-step flow with custom calendar and wheel date picker, hourly slots from each host’s availability and server-side double-booking prevention.
Stripe Connect Payment Intents and transfers to hosts, connected-account readiness checks and verified webhook signatures. Successful, failed and cancelled payments update booking status.
Handlebars HTML templates (Nodemailer) for verification, match alerts, booking confirmations and Stripe onboarding.
Uploads optimized with Sharp to AVIF and resized before storage on Supabase; presigned delivery via Cloudflare R2.
Expo + Firebase (FCM) for match requests, new bookings and incoming messages.
Image upload, charger/vehicle specs, weekly availability scheduling and a map-based location picker.
A single account operates as host or renter, with role-aware theming and a switch-account flow.
Revenue, bookings, growth, verification-funnel and engagement analytics with Recharts, plus a generic table explorer with XLSX export.
Token verification, administrator-account checks and restrictions for banned users, with administrative controls for user management and operational analytics.
Fastify with TypeBox schemas validating every request/response over Drizzle + Kysely; mobile, web and API in one repo.