Booking platforma, nie brožúra
Waterfall Adventure Center je raftingové a dobrodružné centrum pri ústí Tary a Pivy, v Šćepan Polju na severe Čiernej Hory. Ponúkajú jednodňové a viacdňové raftingové a kanyoningové túry, turistiku a ubytovanie pri rieke pre hostí z celého sveta.
Nepotrebovali ďalší web s krásnymi fotografiami a kontaktným formulárom. Potrebovali platformu, ktorá skutočne prijíma platby kartou, počíta reálne ceny túr so všetkými variantmi a funguje vo viacerých jazykoch. A to platformu, ktorú majiteľ spravuje sám, bez programátora pri každom kroku.
Postavili sme presne to: jedna aplikácia Laravel + Vue, ktorá v sebe nesie rýchly verejný web, seriózny booking engine a admin panel s takmer 55 obrazovkami.
Výzva
Dobrodružný turizmus má niekoľko vlastností, ktoré bežný web nerieši:
- Skutočná platba. Túry sa platia online, so zálohou pri rezervácii a zvyškom neskôr. To znamená reálne peniaze, európsku reguláciu a 3-D Secure, kde chyba nie je možnosť.
- Zložité ceny. Cena na osobu alebo na skupinu, rôzne sadzby pre deti, doplnkové aktivity, balíky, ubytovanie a miestne dane podľa túry. Všetko sa musí vypočítať presne, v reálnom čase.
- Viacero jazykov. Hostia prichádzajú z desiatok krajín, takže celý web, rozhranie aj obsah, musí fungovať v ich jazyku.
- Samostatnosť. Majiteľ denne mení túry, ceny, sezóny a obsah. To nesmie závisieť od programátora.
Čo sme postavili
Jedna Laravel aplikácia s dvomi tvárami: rýchly, server-renderovaný verejný web a bohatý admin panel tvorený ako single-page aplikácia (Inertia + Vue 3). Čísla, ktoré opisujú rozsah:
8 jazykov · ~55 admin obrazoviek · skutočná platba kartou (3-D Secure) · 36 dátových modelov · ~88 000 riadkov kódu · CI/CD do produkcie.
Projekt vznikol v ~202 commitoch počas troch mesiacov, s automatickým testovaním a nasadením, a v produkcii beží za Cloudflare-om.
Booking engine, srdce platformy
Rezervácia prebieha v dvoch krokoch: najprv detaily, potom bezpečná platba. Používateľ vyberie túru, dátum, počet dospelých a detí, pridá ubytovanie ak chce, a na pravej strane sleduje cenu naživo s rozpísanými položkami.

Čo robí tento systém serióznym:
- Kontrola dostupnosti v reálnom čase, kapacita túry a počet voľných ubytovacích jednotiek pre zvolené dátumy, s vylúčením zrušených rezervácií. Rezervácia nikdy nezablokuje samu seba, keď ju personál presunie na iný dátum.
- Transparentný výpočet, napríklad jednodňový rafting na Tare zobrazí cenu na osobu, osobitnú sadzbu pre deti a miestne dane (Rafting Tax, Piva Nature Park Tax) ako samostatné položky.
- Záloha a doplatok, pri rezervácii sa vyberie záloha (predvolene 20 %), zvyšok sa fakturuje neskôr.
Viac o tom, prečo priame rezervácie prinášajú viac než závislosť od OTA platforiem, píšeme v článku priame rezervácie vs Booking.com.
Platba kartou, spravená správne
Toto je časť, kde väčšina webov skončí, a my sme ju dotlačili do konca.
- Bankart gateway cez Payment.js hostované polia, web nikdy nepríde do kontaktu so surovými údajmi karty, s podporou 3-D Secure výzvy.
- Integrita sumy, vyúčtovaná suma vždy pochádza z databázy, nikdy z požiadavky prehliadača. Používateľ nemôže zmeniť cenu.
- Idempotentné potvrdenie, podpísaný webhook (HMAC overený) potvrdzuje 3-DS platby a je bezpečný pre opakované volanie. Duplicitné alebo zopakované volanie nemôže vytvoriť dvojitú platbu ani pokaziť stav rezervácie.
- Platba cez odkaz, personál vygeneruje odkaz so zamknutou sumou (záloha, doplatok alebo ľubovoľná suma) a pošle ho hosťovi na e-mail.
Operačná konzola, nie obyčajná administrácia
Admin nie je len zoznam záznamov. Stránka jednej rezervácie je kompletný back-office pracovný priestor na jednom mieste.

Na nej personál vidí a robí všetko: stav rezervácie, položky a prepočet ceny, stav zálohy a doplatku, stav Bankart platieb, generovanie odkazov na platbu, synchronizáciu s Google Sheets, poznámky a kompletný log aktivít.
Okrem toho sú tu aj zjednotené kalendáre obsadenosti pre túry a ubytovanie, operačný dashboard s prehľadom príchodov a odchodov pre daný deň, ručné vytváranie rezervácií a reporty (rezervácie a financie, s CSV exportom).
Skutočný cenový engine
Ceny v turizme nie sú jedno číslo. Postavili sme systém, ktorý pokrýva spôsob, akým centrum skutočne podniká:

- cena na osobu alebo na skupinu
- osobitné sadzby pre deti (percentuálna alebo fixná zľava)
- doplnkové aktivity a balíky (skupinové a so stravou)
- príplatky za ubytovanie a miestne dane podľa túry
- sezónne ceny bez väzby na rok, okno „nov.–mar." sa opakuje každý rok, s jasnou prioritou: pevný dátum, sezóna, celý rok, základná cena
CMS, ktorý majiteľ spravuje sám
Takmer všetko, čo je viditeľné na verejnom webe, možno meniť z adminu bez programátora. Patria sem Site Settings (značka, kontakt, sociálne siete, SEO, analytika, pravidlá rezervácií), editor túr so 7 záložkami, správa ubytovania, sezón a príplatkov, hero slideshow, blog s rich editorom, právne stránky a obsah retreat a About stránok.
Prístup je pod kontrolou: účty personálu s rolami (super-admin, admin, agent, recepcia), voliteľné dvojfaktorové prihlásenie a kompletný denník aktivít, ktorý zaznamenáva kto čo zmenil a kedy.
Osem jazykov, do konca
Web je nakonfigurovaný pre 8 jazykov: angličtina (zdrojová), čiernohorčina, nemčina, francúzština, taliančina, ruština, čeština a poľština. URL adresy majú jazykový prefix, s hreflang značkami a prepínaním jazyka priamo na webe.

Preklady fungujú na dvoch úrovniach: statické texty rozhrania a samostatná prekladová tabuľka pre obsah z databázy (názvy túr, opisy, itineráre, právne stránky). Každá entita v admine má záložku „Translations" s indikátorom, koľko percent je preložených, takže majiteľ presne vidí, čo ešte treba dokončiť.
Pod kapotou
Backend: PHP 8.4, Laravel 12, Fortify (prihlásenie + 2FA), Inertia.js 2, Spatie balíky (permission, medialibrary, activitylog, honeypot), Google API klient pre Sheets, MySQL a Redis pre frontu úloh a cache.
Admin: Vue 3.5 + TypeScript, Tailwind CSS v4, reka-ui / shadcn-vue komponenty, TinyMCE, vue-advanced-cropper pre orezávanie obrázkov, Vite 7.
Verejný web: Blade + Alpine.js, Swiper pre galérie, Flatpickr a GLightbox. Písma Fjalla One a Albert Sans.
Kvalita a nasadenie: Pest 4 testovacia sada (68 súborov), ktorá hlídkuje automatické nasadenie cez GitHub Actions.
Tri veci, na ktoré sme mimoriadne hrdí:
- Platba s garanciou integrity, hostované polia, 3-DS, suma z databázy a idempotentné potvrdenie zaručujú, že opakované volanie nikdy nevytvorí dvojitú platbu.
- Sezónne ceny bez roku, okná sa opakujú každý rok, s deterministickým poradím riešenia priorít.
- Obrázky s viacerými orezmi, art-direction cez
<picture>so samostatnými desktop a mobilnými orezmi vo formáte AVIF/WebP, rýchle a ostré na každom zariadení.
Viac o našom prístupe k tvorbe takýchto systémov nájdete na stránkach Tvorba webových stránok a Systémové integrácie.
Výsledok a rozsah
| Položka | Hodnota |
|---|---|
| Dátové modely | 36 |
| Migrácie databázy | 104 |
| Kontroléry | 56 |
| Admin obrazovky (Vue) | ~55 |
| Verejné šablóny stránok | 27 |
| Podporované jazyky | 8 |
| Riadky kódu | ~88 000 |
| Testovacie súbory (Pest) | 68 |
| Git commity | ~202 |
Web je v produkcii za Cloudflare-om, prijíma skutočné rezervácie a vyberá zálohu kartou. Majiteľ samostatne vedie túry, ceny, sezóny, obsah a preklady vo všetkých 8 jazykoch.
Pozrite si web
Ak aj vy potrebujete booking systém, ktorý skutočne vyberá platby a ktorý spravujete sami, kontaktujte nás a pripravíme plán, ktorý zodpovedá vašmu podnikaniu. Pozrite si aj ďalšie projekty z nášho portfólia.