Travel marketplace

Gezpoint

A travel marketplace that merges tours and accommodation into one search experience. 135k lines of code, 64 tables, a rule-based pricing engine, external calendar sync and an Android app in the store.

Gezpoint gezpoint.com
135Ksatır kod
64tablo
26K+tesis havuzu
Open the site
Technical profile

What it is built with

StackReact 18 + TypeScript, Vite, Tailwind CSS, TanStack Query
BackendPostgreSQL with edge functions and scheduled jobs (pg_cron)
Codebase~135,000 lines · 757 files
Interface236 components · 58 pages · 44 admin + 26 agency screens
Database64 tables · 223 versioned migrations
Server functions39 (payments, calendar sync, localisation, email)
Mobile appAndroid — com.gezpoint.app
LocalesTR · EN · AZ via an automatic localisation pipeline
PaymentsFour card gateways with per-provider instalment control
What makes it different

Not a standard website

  • Two product types, one search engine. Tours and accommodation have different schemas, yet search, filters and booking present them as a single experience. Comparable platforms build these as two separate products.
  • There is a pricing rule engine. Early-booking, long-stay and last-minute rules stack when they overlap and are protected by a cap. Most sites offer a single discount field.
  • Calendars sync with external channels. Booking.com and Airbnb calendars are pulled every half hour and blocked dates close here too — double bookings are prevented structurally.
  • Reviews have to be earned. Only a guest with a real, completed stay can review, at least a day after checkout: one review per listing, two edits maximum.
  • Property data needs no migrations. Room types, amenities, meal plans and extras live in a flexible JSON schema, so a new field never means a database change.
  • Gateways and instalments are managed from the panel. Which provider and which instalment table is live is controlled per provider.
What we did

The solution in six parts

01

Accommodation module

A step-by-step property wizard for room types (capacity, size, beds, view), amenities, meal plans, house rules and cancellation policy. Search across a list and a map, filtered by date, party size and availability.

02

Rule-based pricing engine

Early-booking, long-stay and last-minute rules can be toggled per property; overlapping rules stack and are protected by a cap. The detail page shows the old price, the discount badges and the new total together.

03

Extras and upselling

Transfers, breakfast, late checkout and any other extra the property defines can be selected during booking; the total and the payment update instantly and the selection is stored with the reservation.

04

External calendar sync

Calendars from Booking.com, Airbnb and similar channels are pulled every half hour and blocked dates close on the platform too, removing the double-booking risk.

05

Verified reviews

Only a guest with a completed stay, at least one day after checkout, can write a review. One review per listing, at most two edits, with photo and video support.

06

Multi-provider payments

Four card payment and instalment providers; which provider and which instalment plan is open is controlled per provider from the admin panel. Failed payments get a flow that explains what happened.

Components

What was built

  • 184 interface components including 44 admin and 26 agency panel screens
  • Property, room, pricing-rule and extras data in a flexible JSON schema — new fields need no migration
  • Map-based search and worldwide location lookup
  • Scheduled calendar sync job with conflict detection
  • Tiered child pricing by age bracket
  • Search-friendly slug structure and automatic English/Russian localisation
  • Per-provider instalment tables and 3-D Secure callback verification
  • Mobile app published in the stores

Want a similar system?

Most of the problems we solved on Gezpoint repeat across sectors. Tell us about yours and we will scope it together.