Skip to main content
Have a project in mind? Let's talk
Book a call Tell us about your project Book a Call
Case Study Travel / Booking Platform 2024

Car, Hotel & Tour Booking Platform for Discovery89

A modern full-stack travel booking platform built for Discovery89.

4
Auth & Booking Modules (Cars, Hotels, Tours)
100%
Double-Booking Prevention at DB Level
1
Click Google Login
5/5
Returning Client Rating
Project Summary

Discovery89 at a glance

Full-stack travel booking platform with 3 booking modules, Google OAuth, and real-time availability checking

Client
Discovery89
Industry
Travel / Booking Platform
Services
Custom Software Development
Status
Completed & Live
Year
2024
01
The Challenge

The Problem: Build a Production-Ready Booking Platform Entirely From Scratch

The client needed a real booking business platform, not a template or a WordPress plugin stack. Three separate booking modules (cars, hotels, tours) with proper availability logic that prevents double-bookings at the database level, Google OAuth so users never create passwords, automated email confirmations, a full admin panel, and a blog for SEO content. All of it custom, all of it production-ready.

  • 01
    Three Complex Booking Flows
    Car rentals, hotel reservations, and tour packages each have different data models, availability logic, and booking flows, all needing to work correctly simultaneously and appear in a single unified user dashboard.
  • 02
    Real Availability, No Double-Bookings
    Availability checks had to happen at the PostgreSQL database level using date-range overlap queries, not just in the UI, to guarantee that concurrent bookings can never result in the same resource being sold twice.
  • 03
    Frictionless Google OAuth Login
    The client was firm: no password creation. Users click, authenticate with Google, and land on their dashboard. The full OAuth 2.0 flow, JWT session management, and persistent login all had to work seamlessly.
  • 04
    True Custom Application Architecture
    No WordPress, no Shopify, no page builders. A proper React SPA talking to a Node.js REST API backed by PostgreSQL, the kind of architecture that scales and can be extended without inheriting a plugin ecosystem's limitations.
02
The Approach

How We Built It

We designed the PostgreSQL schema first, normalising users, listings, and bookings correctly before writing a single line of application code. The Node.js API was built and tested independently, then the React frontend consumed it. Google OAuth was implemented as the sole authentication method from the start.

01
Auth

Google OAuth 2.0 End-to-End

Implemented full Google OAuth 2.0 using Passport.js, token exchange, Google profile sync on first login, JWT issuance, refresh token handling, and clean logout with session revocation. No passwords, no friction.

02
Backend

Node.js REST API

Built a comprehensive REST API in Node.js + Express covering all CRUD operations for cars, hotels, tours, bookings, users, and blog content, with JWT middleware protecting all authenticated routes and Nodemailer sending confirmation emails on every booking.

03
Database

PostgreSQL Availability Engine

Designed a normalised PostgreSQL schema with date-range overlap queries that check for conflicting bookings before confirming any reservation, preventing double-bookings at the database level regardless of concurrent requests.

04
Frontend

React SPA with Three Booking Flows

Built a single-page React application with React Router for client-side navigation, Axios for API communication, and three fully independent booking flows, each with listing pages, availability calendars, booking forms, confirmation pages, and booking history.

05
Admin

Full Admin Control Panel

Delivered a secure admin panel (separate from Google auth) for managing all listings, bookings, users, and blog content, enabling the client to run the platform completely independently.

03
The Results

What We Delivered

A production-ready travel booking application built entirely from scratch. All three booking modules operational, availability logic preventing double-bookings at the database level, Google OAuth working end-to-end, and the client managing everything independently from day one. This was a returning client, their second project with Devvista.

3
Booking Modules Live
Cars, Hotels, Tours
100 %
Availability Accuracy
DB-level prevention
1
Click to Book with Google Auth
Zero passwords
2nd
Project for Same Client
Returning client
Booking Availability Reliability
Before (no system) After (DB-level checks)
User Login Friction
Before (password signup) After (one-click Google)
The Process

Development Phases

Database schema and API first, frontend built on top of a fully tested backend. Each booking module developed and tested independently before integration.

01
Database Schema & API Design
Week 1
02
Google OAuth & Auth System
Week 1–2
03
Node.js REST API (All Modules)
Weeks 2–4
04
React Frontend & Booking Flows
Weeks 3–5
05
Admin Panel & Blog
Week 5
06
Testing, Email & Deployment
Week 6
Tech Stack

Technologies & Tools

A true full-stack custom application, React SPA on the frontend, Node.js + Express REST API on the backend, PostgreSQL for relational data, Google OAuth 2.0 for authentication, and JWT for session management. No CMS, no page builders.

React.js React Router Axios CSS3 / Responsive Node.js Express REST API Nodemailer PostgreSQL Sequelize/pg Google OAuth 2.0 Passport.js JWT dotenv
“
I've worked with this developer before on TradingSmarter, so I already had a good idea of what to expect. Still, Discovery89 was a much bigger scope, three booking modules, Google login, a full database, the whole thing built from the ground up in React and Node. It did. The booking flows for cars, hotels, and tours all work well. I tested them quite thoroughly before going live and the availability logic is solid, you can't book something that's already taken. The admin side is straightforward. Second project with the same developer and I'd go back for a third. Reliable, communicates well, and the technical quality is there.
G
Godfrey
Returning Client, Discovery89.com (2nd Project with Devvista)
FAQ

Questions about this project

Straight answers to what buyers ask before a project like Discovery89.

Still have a question?Send it over and we will answer personally.Send a Message

Discovery89 is a custom full-stack travel booking platform Devvista built from scratch for a returning client. It lets users book car rentals, hotel stays and tour packages through a single account, with real-time availability checking, one-click Google login and automated email confirmations. It runs on a React single-page app, a Node.js and Express REST API, and a PostgreSQL database, no WordPress, Shopify or page builders.

Availability is enforced at the PostgreSQL database level using date-range overlap queries, not just in the interface. Before any reservation is confirmed, the system checks for conflicting bookings on that exact resource and date range, so the same car, room or tour can never be sold twice, even under concurrent requests. This delivers 100% double-booking prevention by design rather than relying on front-end validation.

Devvista built Discovery89 as a true custom application: a React SPA frontend (React Router and Axios), a Node.js and Express REST API, and a normalised PostgreSQL database. Authentication uses Google OAuth 2.0 via Passport.js with JWT session management, and Nodemailer sends booking confirmation emails. A separate admin panel lets the client manage cars, hotels, tours, bookings, users and blog content.

No. By client requirement, Discovery89 uses Google OAuth as the only sign-in method, users click once, authenticate with Google and land on their dashboard, with no passwords to create or reset. Devvista implemented the full OAuth 2.0 flow including token exchange, Google profile sync on first login, JWT issuance, refresh-token handling and clean session revocation on logout.

Yes. Discovery89 runs three independent booking modules, car rentals, hotel reservations and tour packages, each with its own data model, availability logic and booking flow, all surfaced in one unified user dashboard. This lets the client operate a complete travel business (listings, availability calendars, booking forms, confirmations and booking history) from a single custom platform.

The platform was delivered in roughly six weeks. Devvista designed the PostgreSQL schema and API first, built and tested the Node.js backend independently, then layered the React frontend and three booking flows on top, finishing with the admin panel, email confirmations and deployment. Discovery89 was this client's second project with Devvista, following TradingSmarter.

Cost depends on the number of booking modules, integrations (payments, OAuth, email) and admin requirements. Because Discovery89 is custom-built in React, Node.js and PostgreSQL, with no page-builder or plugin licensing, the client fully owns the code and can extend it without platform limits. Devvista scopes each build with a consultation, so you can book a call to get a fixed-price estimate for your own booking or marketplace platform.
Let's talk

Need a full-stack booking or marketplace platform?

We build custom applications from scratch, React, Node.js, PostgreSQL, OAuth, booking flows, admin panels. No page builders, no limitations. Book a call to scope your project.

  • 30-minute consultation
  • No commitment required
  • Response within 24 hours
  1. Book a call30 minutes, no pitch. Tell us what you want to build.
  2. Get a straight answerHonest feedback on fit, scope and timeline.
  3. Decide with no pressureMove ahead only if it feels right. No commitment required.
Chat on WhatsApp