Case study · Travel / Booking · 2024

A car, hotel and tour booking platform built from scratch

A React single-page app on a Node.js API and PostgreSQL: three booking modules, one-click Google login and availability checked at database level.

Discovery89
Discovery89 website
3Booking modules: cars, hotels, tours
100%Double-booking prevention
1-clickGoogle login
2ndProject for a returning client
ClientDiscovery89
IndustryTravel / Booking
ServicesCustom software development
StatusCompleted & live
Year2024
The challenge

What needed to change.

The client wanted a real booking business, not a plugin stack: three booking types with reliable availability, Google login with no passwords, automatic confirmations, an admin panel and a blog, all custom and production-ready.

01

Three booking flows

Cars, hotels and tours each have different data and rules.

02

No double bookings

Availability had to be guaranteed in the database, not just the screen.

03

Password-free login

Users sign in with Google and land on their dashboard.

04

Real architecture

A React app on a REST API that can scale and be extended.

The approach

How we built it.

01

Google OAuth 2.0

Passport.js sign-in, profile sync and JWT sessions. No passwords.

02

Node.js REST API

Express API for listings, bookings, users and blog, with booking emails.

03

Availability engine

PostgreSQL date-range checks block conflicting bookings, even at the same moment.

04

React booking flows

Listings, calendars, booking forms and history for each module.

05

Admin panel

Listings, bookings, users and blog managed by the client.

The results

Before and after.

Area
Before
After
Booking reliability
No system
Database-level checks
Login
Password sign-up
One-click Google
Platform
Templates and plugins
Custom React + Node.js
Technology

Tools & stack

ReactReact RouterAxiosNode.jsExpressREST APIPostgreSQLGoogle OAuth 2.0Passport.jsJWTNodemailer
Related services
Have a project like this?

Let's build it with you.

Book a free 30-minute call. We will give you a straight answer on fit, scope, timeline and budget.

1

Book a call30 minutes, no sales pitch. Tell us what you want to build.

2

Get a straight answerHonest feedback on fit, scope, timeline and budget.

3

Decide with no pressureGo ahead only if it feels right. No commitment.