← All work
Client engagement · 2019–23

Car-Booking Web App for a Mobility Platform

A car-sharing / mobility platform

Overview

The consumer-facing single-page web app for booking shared cars on a mobility platform. It consumes the booking REST API and guides users through finding a vehicle, capturing required documents, and completing a reservation.

The Challenge

Car-sharing onboarding and booking is a multi-step flow with phone verification, document/photo capture and date selection, all of which must feel smooth in the browser while staying in sync with a JWT-secured backend across page reloads.

What We Built

A React 16 SPA structured around a Kea + Redux state layer (kea-router, kea-thunk) with redux-observable/RxJS side effects and redux-persist for session continuity. The UI uses Bootstrap and react-bootstrap with multi-step progress (rc-steps), date selection (react-datepicker), international phone input (react-phone-input-2), in-browser camera capture (react-webcam) with EXIF handling (exif-js), and sweetalert2 for feedback. API access goes through Axios with JWT decode/handling (jwt-decode, universal-cookie), and styling is built from SCSS via node-sass. Shipped with a Dockerfile and GitLab CI, with the API base URL configurable at build time.

Technologies & Approach

React with a Kea-on-Redux architecture kept the multi-step booking state predictable and persistable. RxJS/redux-observable handled asynchronous flows, and the broad library set (webcam, phone input, datepicker, EXIF) covered the practical realities of a mobility onboarding journey without bespoke widgets.

Outcome / Impact

Provided the web booking experience for the mobility product, maintained alongside its backend across 2019–2023. Demonstrates delivering a state-rich, integration- heavy React app for a real consumer mobility service.

Capabilities Demonstrated

  • React 16 SPA development with Kea + Redux + RxJS
  • Persisted, multi-step booking/onboarding UX
  • In-browser camera and document capture with EXIF handling
  • International phone verification and date-selection flows
  • JWT-secured API consumption
  • Dockerized frontend builds via GitLab CI
More work See all →