Proizvod, ne projekat po narudžbi
Zayoto je jedini projekat u ovom portfoliju koji nije rađen za klijenta. Napravili smo ga zato što smo, radeći sajtove za rent-a-car i transfer agencije u Crnoj Gori, iznova nailazili na isti problem.
Agencija ima deset do trideset vozila, vodi ih u tabeli, prima rezervacije preko WhatsApp-a i telefona, a sajt joj je katalog bez naplate. Ljeti ima previše posla da bilo šta mijenja, zimi nema prometa da to plati. Rješenje po mjeri košta koliko i pola sezone.
Zayoto je odgovor na to: jedna platforma koju agencija plaća mjesečno, koja joj daje sopstveni sajt sa naplatom, admin panel za flotu i rezervacije, i pristup marketplace-u koji joj dovodi goste.
Dvije strane iste platforme
Za goste Zayoto je marketplace. Unesu grad i datume, dobiju sve ponude svih agencija u jednom pregledu, sa cijenom koja je konačna. Bez iznenađenja na pultu.

Pretraga vraća ponude grupisane po kategoriji i mjenjaču, sa jasno označenim uslovima: neograničena kilometraža, depozit ili bez depozita, besplatno otkazivanje, osnovno osiguranje, gorivo puno na puno. Cijena je uvijek prikazana i po danu i ukupno za izabrani period.
Za agencije Zayoto je operativni sistem. Vozni park, kategorije, sezonske cijene, rezervacije, kupci, ugovori sa elektronskim potpisom, fakture, popusti, korisnici sa ulogama i dnevnik aktivnosti. Plus SiteBuilder, modul sa 21 ekranom kroz koji agencija sama podešava izgled i sadržaj svog javnog booking sajta.
Transferi su bili teži dio
Rent-a-car je logistika. Transferi su matematika.

Cijena transfera zavisi od relacije, udaljenosti, klase vozila, doba dana i sezone. Napravili smo obračun koji uzima prvo pravilo koje odgovara, kroz pet stepenica, redom:
- Cijena koju je agencija upisala na konkretnoj relaciji
- Cijena para zona iz matrice, jedna cijena, po klasi vozila, ili po kilometru
- Sopstvena stopa zone, za vožnje unutar nje
- Kilometarska stopa, sa opsezima po klasi vozila ili zajedničkim opsezima
- Minimalna naplata kao donja granica
Tek onda idu zajednički modifikatori, uvijek istim redom: nivo cijene po klasi vozila, sezona, doplata po dobu dana, doplate po lokaciji. Rezultat nije samo broj: obračun vraća razloženu stavku tipa „osnovna stopa 1,20 € po km × 67 km", pa gost vidi odakle cijena dolazi. Odvojeno od cijene stoje pravila o minimalnom vremenu unaprijed, koja odlučuju da li se vožnja uopšte može rezervisati.
Zone nisu spisak gradova nego prave GeoJSON poligone, koje agencija crta mišem preko mape u adminu. Udaljenost se traži kroz četiri nivoa rezerve: keš u bazi (30 dana, čuva i putanju), pa Google Directions, pa Distance Matrix, pa haversine formula. Ideja je jednostavna: stranica uvijek vrati cijenu, čak i kad je Google nedostupan.

Aerodromi Podgorica i Tivat imaju svoje ulazne stranice, a svaka česta relacija dobija programatski generisanu stranicu sa fiksnom cijenom. Zašto to radimo detaljno objašnjavamo u tekstu izrada sajta za rent-a-car agencije.
21 jezik, i to na dva nivoa
Gosti koji traže auto u Crnoj Gori dolaze iz cijele Evrope. Platforma radi na 21 jeziku: engleski, srpski, crnogorski, hrvatski, bosanski, njemački, ruski, francuski, italijanski, španski, poljski, mađarski, turski, albanski, slovački, slovenački, ukrajinski, holandski, danski, švedski i norveški.

Prevodi rade na dva sloja. Interfejs ide iz jezičkih fajlova, a sadržaj koji agencije same unose (nazivi kategorija, uslovi, stranice) ide kroz tabelu prevoda u bazi. Koliko jezika agencija može da uključi zavisi od plana.
Pretplate koje se stvarno provode
Tri plana sa javnom cijenom, Starter 99 €, Growth 149 € i Pro 199 € mjesečno, uz doplatu po vozilu, plus Enterprise po dogovoru. Godišnje plaćanje se naplaćuje kao deset mjeseci. Svaki plan ide sa petnaest dana besplatnog probnog perioda.

Ono što je ovdje bilo zanimljivo nije cjenovnik nego provođenje limita. Napravili smo mjerenje potrošnje po zakupcu i eskalaciju u četiri koraka: uredno, meko upozorenje na 80% limita, sedmodnevni grejs period preko 100%, pa tvrdo zaustavljanje. Nema situacije u kojoj agencija usred sezone ostane bez pristupa bez ijednog upozorenja.
Funkcije se otključavaju po planu kroz zaseban sloj, pa se na primjer webhooks ili modul transfera uključuju ili isključuju bez diranja koda.
Marketplace ima svoju ekonomiju odvojenu od pretplate: rezervacija koja stigne preko marketplace-a nosi proviziju, sa ugovorenom stopom po agenciji i minimalnim iznosom po rezervaciji.
Pod haubom
Backend: PHP 8.4, Laravel 12, Inertia.js 2, Laravel Cashier + Stripe za pretplate i naplatu, Spatie permission, Sentry, Twilio za SMS, Web Push, DomPDF za ugovore i fakture, MySQL i Redis.
Admin: Vue 3.5 + TypeScript, Tailwind CSS, shadcn-vue komponente, Leaflet sa leaflet-draw i Turf.js za crtanje zona, FullCalendar za kalendar rezervacija, signature_pad za elektronski potpis ugovora.
Javni dio: Blade sa zasebnim bandlom, Alpine.js, Swiper, Flatpickr.
Kvalitet: 177 test fajlova (Pest) i Playwright end-to-end testovi.
Multi-tenancy je riješen kroz automatsko globalno ograničenje po zakupcu na nivou modela, uz razdvojeno prepoznavanje zakupca po domenu, poddomenu ili kontekstu. Svaka agencija može da radi na ime.zayoto.com ili na sopstvenom domenu.
Kako pristupamo ovakvim sistemima pišemo na stranicama Sistem integracije i Strategija i arhitektura.
Obim
| Stavka | Vrijednost |
|---|---|
| Modeli podataka | 107 |
| Migracije baze | 232 |
| Kontroleri | 142 |
| Servisni slojevi | 80 |
| Admin ekrani (Vue) | 181 |
| Vue komponente | 162 |
| Blade šabloni | 295 |
| Definisane rute | 450 |
| Podržani jezici | 21 |
| Test fajlovi | 177 |
Modul transfera sam po sebi nosi 70 migracija i 24 modela, što ga čini najtežim dijelom platforme.
Gdje je Zayoto danas
Platforma je u produkciji iza Cloudflare-a, sa marketplace-om na 21 jeziku i pokrivenim gradovima Podgorica, Tivat i Kotor. Prva agencija je preuzeta na pilot.
Zayoto je istovremeno i brend pod kojim vodimo transfer projekte. Sajtovi Podgorica Airport Taxi i Elite Ride nose Zayoto potpis u podnožju, a iskustvo sa njih je oblikovalo modul transfera na platformi.
Radimo dalje na OTA konektorima i partnerskom API-ju.
Pogledajte platformu
Ako vodite rent-a-car ili transfer agenciju i tražite sistem koji naplaćuje i dovodi goste, javite nam se. Pogledajte i ostale projekte iz našeg portfolija.