Built and extended a full-stack booking and payment platform for a black SUV/chauffeur service in Jacksonville, FL. Delivered:
- Public site: Hero section with service-type tabs (Trip / City-to-City), pickup and destination fields with Google Places autocomplete, place-type icons (airport, restaurant, train, bus, gas, building), date/time picker, vehicle selection, live price calculation, and Stripe payment flow (PaymentIntent create/confirm and webhooks).
- Booking logic: Backend pricing with per-vehicle base rate, optional tiered per-mile rate above a configurable miles threshold (e.g. 100 miles), and a 30-minute gap rule so the same vehicle cannot be double-booked (availability checked on create and via a check-availability API).
- Admin panel: Mobile-responsive layout with collapsible sidebar and hamburger menu; dashboard, bookings list with filters and pagination, booking detail/edit (including Places autocomplete), vehicles CRUD with tiered rate fields and image upload, and settings management.
- Post-payment: Invoice email (Blade template) sent after successful payment; SMTP configuration for the domain.
- Places UX: Migrated from legacy Google Places Autocomplete to PlaceAutocompleteElement (with legacy fallback); fixed global callback naming for the Maps script; stabilized autocomplete so pickup/dropoff values are not cleared when date or other fields change (effect deps and refs).