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.
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.
| Stack | React 18 + TypeScript, Vite, Tailwind CSS, TanStack Query |
|---|---|
| Backend | PostgreSQL with edge functions and scheduled jobs (pg_cron) |
| Codebase | ~135,000 lines · 757 files |
| Interface | 236 components · 58 pages · 44 admin + 26 agency screens |
| Database | 64 tables · 223 versioned migrations |
| Server functions | 39 (payments, calendar sync, localisation, email) |
| Mobile app | Android — com.gezpoint.app |
| Locales | TR · EN · AZ via an automatic localisation pipeline |
| Payments | Four card gateways with per-provider instalment control |
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.
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.
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.
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.
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.
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.
Most of the problems we solved on Gezpoint repeat across sectors. Tell us about yours and we will scope it together.
We load nothing beyond the cookies required for the site to work. If you let us measure which pages get attention, we can make the site better. Details