Pokreni projekt
Aplikacija za poslovanje agencije

Sustav za vođenje turističke agencije

Poslovni sustav za turističke agencije koje organiziraju vlastita grupna putovanja. Djelatnici planiraju svaki polazak, prijavljuju putnike, raspoređuju ih po sjedalima, evidentiraju uplate i vide tko još duguje, a svaki zaslon prije radnje kaže što će se dogoditi.

Zapisi se spremaju dok djelatnici tipkaju, šaljući samo promijenjena polja; vrijednost koju server odbije označava se na svom polju, a ostatak se sprema. Napomene ispod polja i potvrde prije radnji s posljedicama govore što se događa automatski, što ne i može li se poništiti. Djelatnici obavljaju sav svakodnevni posao, a administratori uz to vode korisnike, postavke i dnevnik promjena; deaktivirani korisnik odjavljuje se na svim uređajima. Aplikacija radi na hrvatskom i engleskom, u svijetloj i tamnoj temi.

Isprobaj demo ↗
ZaAgencije koje vode vlastita grupna putovanja
DjelatniciPlaniraju putovanja, prijavljuju i raspoređuju putnike, evidentiraju uplate
AdministratoriVode korisnike i postavke, čitaju dnevnik promjena
StatusU razvoju s prvom agencijom
Putovanja

Pregled sezone

Putovanja su grupirana po mjesecima s datumima, popunjenošću i cijenom, ispod vremenske crte sezone od četiri mjeseca. Traka na vrhu upozorava na putovanja u pripremi koja polaze u sljedećih 60 dana i na ona kojima još nedostaju podaci za otvaranje prijava.

  • Putovanje se otvara za prijave tek kad su upisani datumi, broj mjesta i cijena
  • Polasci unutar tjedan dana označeni su na popisu i na vremenskoj crti
  • Stupac uplata dijeli novac svakog putovanja na uplaćeno, zakašnjelo i ono što tek dospijeva, pa se kašnjenja razlikuju od novca kojem rok još nije došao
  • Promjene statusa traže potvrdu, navode posljedice i mogu se poništiti
Prijave

Prijave i lista čekanja

Prijava ima jednog platitelja i jednog ili više putnika. Cijena svakog putnika preuzima se s putovanja u trenutku prijave, a nadoplate i popusti vode se kao zasebne stavke. Prijava koja ne stane automatski ide na listu čekanja, a nitko ne može biti dvaput na istom putovanju.

  • Putnici se dodaju iz jednog polja za pretragu, koje ostaje spremno za sljedećeg
  • Obitelj se može dodati na jednu prijavu i platiti zajedno
  • Mjesta se broje samo iz aktivnih prijava, pa svaki zaslon prikazuje istu popunjenost
Vozila

Autobusi i sjedala

Putovanje ima jedan ili više autobusa, a njihova sjedala određuju broj mjesta. Sjedala se dodjeljuju na karti autobusa: odabere se putnik, zatim slobodno sjedalo, ili zauzeto pa dvoje zamijene mjesta, a sljedeći putnik s iste prijave odabire se sam. Spremljeni autobusi na putovanje donose prijevoznika, raspored sjedala te uobičajenog vozača i vodiča, a svaki autobus ima vlastiti popis putnika za ispis.

  • Rasporedi sjedala crtaju se u uređivaču, uključujući dvokatne autobuse, polazeći od četiri predloška
  • Automatski raspored ide redom prijava i drži svaku prijavu u istom autobusu kad stane
  • Spremljeni autobus upozorava kad je već na putovanju s preklapajućim datumima
  • Svaka promjena sjedala može se poništiti
Uplate

Uplate, povrati i prijenosi

Uplate pripadaju prijavi, koja se plaća kao cjelina. Svaka bilježi datum, način plaćanja, broj izvoda ili računa i tko je predao novac, a panel prijave prikazuje ukupan iznos, uplaćeno i preostalo. Novac se može i vratiti, uz obavezan razlog, ili prenijeti na drugu prijavu kao povezan par stavki. Otkazana prijava pokazuje koliko je novca još kod agencije.

  • Virman, gotovina ili kartica, uz zabilježenu vrstu kartice
  • Povrat ni prijenos nikad ne mogu premašiti uplaćeni iznos
  • Brisanjem jedne strane prijenosa briše se i druga
  • Izvoz uplata u tablicu (CSV) za knjigovodstvo, s filtrom po vrsti
Kašnjenja

Dugovanja nakon roka

Prijave koje još duguju nakon roka za uplatu ostatka skupljene su na jednoj stranici, od najdužeg kašnjenja, s telefonom platitelja. Rok se postavlja po putovanju, a zadano je 30 dana prije polaska.

  • Broj prijava koje kasne stoji u bočnom izborniku, vidljiv sa svakog zaslona
  • Završena putovanja izlaze s popisa 60 dana nakon povratka
Putnici

Kartoteka putnika

Zapis putnika čuva njegove podatke i svako putovanje na koje je prijavljen, s uplaćenim i dugovanim iznosom. Pretraga ne traži dijakritičke znakove, pa "saric" pronalazi "Šarić", a novi unos upozorava kad osoba možda već postoji.

  • OIB se provjerava, pohranjuje šifrirano i pronalazi samo točnim podudaranjem
  • Dob se računa iz datuma rođenja na datum putovanja
  • Putnici koji više ne putuju arhiviraju se, a povijest ostaje sačuvana
Dnevnik

Tko je što promijenio

Svaka promjena putovanja, putnika, prijava, uplata, korisnika i postavki bilježi se polje po polje, sa starom i novom vrijednošću i osobom koja ju je napravila. Uzastopne izmjene iste osobe na istom zapisu unutar deset minuta spajaju se u jedan red, pa automatsko spremanje ne piše red za svaku stanku. Administratori dnevnik čitaju na zasebnoj stranici i u kartici povijesti svakog putovanja i putnika.

  • Za OIB i lozinke bilježi se samo da su promijenjeni, nikad vrijednost
  • Izvoz uplata bilježi se s filtrima i brojem redaka
  • Povijest ostaje i kad zapis više ne postoji, uključujući obrisane prijave
Kako je izrađeno
Backend i API
Laravel, PHP, Sanctum, MySQL
Frontend
Vue, TypeScript, Vue Router, Pinia, TanStack Query, TanStack Table
Sučelje
shadcn-vue, Reka UI, Tailwind, vue-i18n
Kvaliteta
PHPUnit, Vitest, ESLint, Prettier