Studija slučaja · Avanturistički turizam

Waterfall Adventure Center – Booking platforma za avanturistički turizam

Custom booking platforma za rafting centar na Tari i Pivi: naplata kartica (3-D Secure), pricing engine, depozit/balans i CMS na 8 jezika. Pogledajte studiju slučaja.

Šćepan Polje Godina: 2026 ME
Naplata: kartice, 3-D SecureBooking: uživo dostupnostJezici: 8

Booking platforma, ne brošura

Waterfall Adventure Center je rafting i avanturistički centar na ušću Tare i Pive, u Šćepan Polju na sjeveru Crne Gore. Nude jednodnevne i višednevne rafting i kanjoning ture, planinarenje i smještaj uz rijeku, gostima iz cijelog svijeta.

Njima nije trebao još jedan sajt sa lijepim fotografijama i kontakt formom. Trebala im je platforma koja naplaćuje prave rezervacije karticom, računa stvarne cijene tura sa svim varijantama i radi na više jezika. I to platforma kojom vlasnik upravlja sam, bez programera u svakom koraku.

Izgradili smo tačno to: jedna Laravel + Vue aplikacija koja u sebi nosi brz javni sajt, ozbiljan booking engine i admin panel sa skoro 55 ekrana.


Izazov

Avanturistički turizam ima nekoliko stvari koje običan sajt ne rješava:

  • Prava naplata. Karte se plaćaju onlajn, uz depozit pri rezervaciji i ostatak kasnije. To znači stvaran novac, EU regulativu i 3-D Secure, gdje greška nije opcija.
  • Složene cijene. Cijena po osobi ili po grupi, različite stope za djecu, dodatne aktivnosti, paketi, smještaj i lokalni porezi po turi. Sve to mora da se izračuna tačno, u realnom vremenu.
  • Više jezika. Gosti dolaze iz desetak zemalja, pa cijeli sajt, i interfejs i sadržaj, mora da radi na njihovom jeziku.
  • Samostalnost. Vlasnik svakodnevno mijenja ture, cijene, sezone i sadržaj. To ne smije da zavisi od programera.

Šta smo izgradili

Jedna Laravel aplikacija sa dva lica: brz, server-renderovan javni sajt i bogat admin panel rađen kao single-page aplikacija (Inertia + Vue 3). Brojke koje opisuju obim:

8 jezika · ~55 admin ekrana · prava naplata kartica (3-D Secure) · 36 modela podataka · ~88.000 linija koda · CI/CD do produkcije.

Projekat je rađen kroz oko 202 commit-a tokom tri mjeseca, sa automatskim testiranjem i deploy-om, i u produkciji je iza Cloudflare-a.


Booking engine, srce platforme

Rezervacija ide u dva koraka: prvo detalji, pa sigurno plaćanje. Korisnik bira turu, datum, broj odraslih i djece, dodaje smještaj ako želi, a sa desne strane prati cijenu uživo, sa razloženim iznosom.

Ono što ovaj sistem čini ozbiljnim:

  • Provjera dostupnosti u realnom vremenu, kapacitet ture i broj slobodnih jedinica smještaja za izabrane datume, uz izuzimanje otkazanih rezervacija. Rezervacija nikada ne blokira samu sebe kad je osoblje pomjeri na drugi datum.
  • Transparentan obračun, na primjer jednodnevni rafting na Tari prikaže cijenu po osobi, posebnu stopu za djecu i lokalne poreze (Rafting Tax, Piva Nature Park Tax) kao zasebne stavke.
  • Depozit i balans, pri rezervaciji se naplati depozit (podrazumijevano 20%), a ostatak se naplaćuje kasnije.

Više o tome zašto direktne rezervacije vrijede više od oslanjanja na OTA platforme pišemo u tekstu direktne rezervacije vs Booking.com.


Naplata kartica, urađena kako treba

Ovo je dio gdje većina sajtova staje, a mi smo ga uradili do kraja.

  • Bankart gateway preko Payment.js hostovanih polja, sajt nikada ne dodiruje sirove podatke o kartici, uz podršku za 3-D Secure izazov.
  • Integritet iznosa, naplaćeni iznos uvijek dolazi iz baze, nikada iz zahtjeva pretraživača. Korisnik ne može da promijeni cijenu.
  • Idempotentno potvrđivanje, potpisani webhook (HMAC provjeren) potvrđuje 3-DS plaćanja i bezbjedan je za ponavljanje. Duplirani ili ponovljeni poziv ne može da napravi dvostruku naplatu niti da pokvari stanje rezervacije.
  • Plaćanje preko linka, osoblje generiše link sa zaključanim iznosom (depozit, balans ili proizvoljan iznos) i pošalje ga gostu na mejl.

Operativna konzola, ne obična administracija

Admin nije samo lista zapisa. Stranica jedne rezervacije je kompletan back-office radni prostor na jednom mjestu.

Na njoj osoblje vidi i radi sve: status rezervacije, stavke i ponovni obračun cijene, stanje depozita i balansa, stanje Bankart plaćanja, generisanje linkova za naplatu, sinhronizaciju sa Google Sheets-om, bilješke i kompletnu istoriju aktivnosti.

Pored toga, tu su i objedinjeni kalendari zauzetosti za ture i smještaj, operativni dashboard sa pregledom dolazaka i odlazaka za dan, ručno kreiranje rezervacija i izvještaji (rezervacije i finansije, sa CSV izvozom).


Pravi pricing engine

Cijene u turizmu nisu jedan broj. Napravili smo sistem koji pokriva način na koji centar zaista posluje:

  • cijena po osobi ili po grupi
  • posebne stope za djecu (procenat ili fiksni popust)
  • dodatne aktivnosti i paketi (grupni i sa obrokom)
  • doplate za smještaj i lokalni porezi po turi
  • sezonske cijene bez vezivanja za godinu, prozor „Nov–Mar" se ponavlja svake godine, sa jasnim prioritetom: fiksni datum > sezona > cijela godina > osnovna cijena

CMS kojim vlasnik upravlja sam

Skoro sve što se vidi na javnom sajtu može da se mijenja iz admina, bez programera. Tu su Site Settings (brend, kontakt, društvene mreže, SEO, analitika, pravila rezervacije), editor tura sa 7 tabova, upravljanje smještajem, sezonama i doplatama, hero slajdovi, blog sa rich editorom, pravne stranice i sadržaj retreat i About stranica.

Pristup je pod kontrolom: nalozi osoblja sa ulogama (super-admin, admin, agent, recepcija), opcioni dvofaktorski login i kompletan dnevnik aktivnosti koji bilježi ko je šta promijenio i kada.


Osam jezika, do kraja

Sajt je konfigurisan za 8 jezika: engleski (izvorni), crnogorski, njemački, francuski, italijanski, ruski, češki i poljski. URL-ovi su sa prefiksom jezika, uz hreflang oznake i prebacivanje jezika u samom sajtu.

Prevodi rade na dva nivoa: statički tekstovi interfejsa i posebna tabela prevoda za sadržaj iz baze (naslovi tura, opisi, itinerari, pravne stranice). Svaki entitet u adminu ima tab „Translations" sa pokazateljem koliko je preveden, pa vlasnik tačno vidi šta još treba prevesti.


Pod haubom

Backend: PHP 8.4, Laravel 12, Fortify (login + 2FA), Inertia.js 2, Spatie paketi (permission, medialibrary, activitylog, honeypot), Google API klijent za Sheets, MySQL i Redis za red poslova i keš.

Admin: Vue 3.5 + TypeScript, Tailwind CSS v4, reka-ui / shadcn-vue komponente, TinyMCE, vue-advanced-cropper za isijecanje slika, Vite 7.

Javni sajt: Blade + Alpine.js, Swiper za galerije, Flatpickr i GLightbox. Fontovi Fjalla One i Albert Sans.

Kvalitet i isporuka: Pest 4 test set (68 fajlova) koji gejtuje automatski deploy preko GitHub Actions.

Tri stvari na koje smo posebno ponosni:

  1. Naplata sa garancijom integriteta, hostovana polja, 3-DS, iznos iz baze i idempotentno potvrđivanje znače da ponovljeni poziv nikada ne napravi dvostruku naplatu.
  2. Sezonske cijene bez godine, prozori se ponavljaju svake godine, sa determinističkim redom rješavanja prioriteta.
  3. Slike sa više isijecaka, art-direkcija kroz <picture> sa zasebnim desktop i mobilnim isijecima, u AVIF/WebP formatu, brzo i oštro na svakom uređaju.

Detaljnije o našem pristupu izradi ovakvih sistema pogledajte na stranicama Izrada sajtova i Sistem integracije.


Rezultat i obim

StavkaVrijednost
Modeli podataka36
Migracije baze104
Kontroleri56
Admin ekrani (Vue)~55
Javni šabloni stranica27
Podržani jezici8
Linije koda~88.000
Test fajlovi (Pest)68
Git commit-i~202

Sajt je u produkciji iza Cloudflare-a, prima prave rezervacije i naplaćuje depozit karticom, a vlasnik samostalno vodi ture, cijene, sezone, sadržaj i prevode na svih 8 jezika.


Pogledajte websajt

raftingmontenegro.com


Ako i vama treba booking sistem koji naplaćuje prave rezervacije i koji vodite sami, kontaktirajte nas i napravićemo plan koji prati vaš biznis. Pogledajte i ostale projekte iz našeg portfolija.

Sljedeći korak

Imate ideju za sličan projekat ili želite sistemski pregled?

Na osnovu ovakvih projekata gradimo digitalne sisteme koji vam vraćaju vrijeme. Javite se da vidimo šta je realno za vaš biznis u narednih 6-12 mjeseci.