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.
- Passenger
- Nurudeen Abdul-Majeed
- Role
- Solo - design & engineering
- Route
- Schema → Screen
- Type
- Production booking system
- Stack
- Next.js · Express · PostgreSQL
- Status
- Live & maintained
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.
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.