Projects

AutoRent Pro

A car rental management system — catalogue, availability-aware booking, payment, and an admin view of the fleet.

Role
Software Engineer
Status
shipped
  • AutoRent Pro — the rental catalogue, booking calendar and fleet dashboard

Problem

A rental desk runs on a calendar, a phone and a spreadsheet, and the three disagree. AutoRent Pro puts the catalogue, the availability and the payment in one place, so a customer books against what is actually free and the operator sees the whole fleet from one dashboard.

Architecture

checkoutconfirmsfleetReact clientclientAdmin dashboardclientExpress APIserviceJWT authserviceBooking + availabilityserviceStripeexternalNotificationsexternalMongoDBdata
Architecture of AutoRent Pro.
Read this diagram as text
  • React client connects to Express API
  • Express API connects to JWT auth
  • Express API connects to Booking + availability
  • Booking + availability connects to MongoDB
  • Booking + availability checkout Stripe
  • Booking + availability confirms Notifications
  • Admin dashboard fleet Express API
  • Express API connects to MongoDB

Engineering decisions

The stack, reasoning not written up yet:

React · Node.js · Express · MongoDB · OAuth / JWT · Stripe

The hard part

Availability is a race, not a query. Two customers looking at the same car for the same weekend both see it free, and whichever is slower through checkout gets a confirmation for a vehicle that has gone. Booking had to stop asking whether a car looks free and start holding it: a reservation is written before checkout and expires on its own if payment never completes, with Stripe's result promoting or releasing it. Confirmation mail is sent from that same step, so nobody is emailed about a booking that quietly lapsed.

Result

End to end: a vehicle catalogue with real-time availability, calendar-backed booking, Stripe checkout, JWT accounts, automated confirmation and reminder mail, customer reviews, and an admin dashboard over the fleet.