Travel & tour booking · 2026

A travel booking platform,built end-to-end.

Travel Trek is a production-ready booking system for flights, hotels, tours and payments, with secure authentication, real-time availability, and a full admin layer. Designed and engineered solo, from schema to screen.

Travel TrekBoarding pass2026
Passenger
Nurudeen Abdul-Majeed
Role
Solo - design & engineering
Route
Schema → Screen
Type
Production booking system
Stack
Next.js · Express · PostgreSQL
Status
Live & maintained
FlightTT-2026

01 · Departures

Five modules, one system.

  • TT·01Real-time

    Flight booking

    Search and reserve flights with real-time availability checks and conflict resolution.

  • TT·02Synced

    Hotel reservations

    Book accommodations with automated confirmation workflows and availability sync.

  • TT·03Curated

    Tour management

    Browse and book curated destinations, managed end-to-end from the admin layer.

  • TT·04Secured

    Payments

    Secure transaction handling with validation, confirmations, and automated expiry of unpaid bookings.

  • TT·05Staffed

    Admin console

    Analytics overview, booking, user and review moderation, plus monthly bookings, payments, and top-tours reporting.

02 · Under the hood

Engineering decisions that carry the product.

Not a demo. Validation, queues, payments, access control: every layer is built the way a production team would ship it.

  • Auth

    Four doors, one session

    Password, email-OTP and Google sign-in with optional two-factor; short-lived JWTs behind rotating refresh tokens, and role-based access for customers, agents, and admins.

  • Money

    Integer pesewas only

    Every amount is an integer in minor units from database to API. No floats near money. One formatter renders GH₵ at the edge; Paystack collects, webhook-verified.

  • Data

    PostgreSQL + Prisma

    A relational schema built for booking integrity: flights, hotels, rooms, tours, and payments in one typed model, with soft deletes auto-scoped out of every read.

  • Queues

    BullMQ + Redis

    Scheduled background workers expire unpaid bookings and keep flight and tour statuses current.

  • Validation

    Zod at both doors

    Every request body, query, and param passes a Zod schema behind rate-limited endpoints; React Hook Form and Zod validate again before anything leaves the client.

  • Testing

    450+ tests in CI

    Over 340 integration tests exercise every endpoint against a real Postgres, plus a frontend suite. Lint, types, tests, and build gate every merge.

03 · Cargo manifest

Typed from database to browser.

100% TypeScript, with Zod validation shared across client and server.

Frontend

  • Next.jsapp framework
  • TypeScripttyped UI code
  • Redux Toolkitstate & data layer
  • React Hook Formforms
  • Zodclient validation
  • TanStack Tabledata tables
  • shadcn/uiinterface kit
  • Framer Motionmotion

Backend

  • Express 5API server
  • PrismaORM & migrations
  • PostgreSQLsystem of record
  • Redisqueue store
  • BullMQbackground jobs
  • Paystackpayment gateway
  • Cloudinarymedia storage
  • Pinostructured logging

04 · Now boarding

The demo is live.

Gate TT-26Live demoBoarding

Real tours, hotels, flights and reviews from the running system, served by its public API. Browse the inventory, then sign in with a demo account and book any of it.