Cestovný ruch

CK DAKA – PWA s režimom Trip Mode

Webová PWA pre klientov CK DAKA – katalóg, rezervácia a „Trip Mode“ počas zájazdu

WebServer/API

O projekte

Rozsiahla Next.js PWA, ktorá pokrýva celú cestu klienta CK DAKA: katalóg zájazdov synchronizovaný z XML feedu, detail s termínmi a nástupnými miestami, rezervačný formulár a po odchode „Trip Mode“ so skupinovým chatom, oznamami sprievodcu, voucherom a praktickými nástrojmi na cestu. Obsahuje aj rozhranie pre sprievodcov, jednoduchý admin pre rezervácie a zákazníkov a vernostný program s odznakmi. Ide o samostatný projekt odlišný od Capacitor appky CK-DAKA-app; prihlásenie je zatiaľ len pripravené (demo režim podľa e-mailu).

Čo aplikácia vie

  • Import ponuky z XML feedu CK DAKA streamovacím SAX parserom (zájazdy, termíny, kapacity, nástupné miesta s príplatkami, kategórie), ručne aj cez cron endpoint
  • Katalóg s filtrami (destinácia, typ, doprava, cena, nástupné miesto), mapa destinácií v Leaflete, porovnanie zájazdov, obľúbené a kurátorské kolekcie
  • Detail zájazdu s termínmi, zľavami, voľnou kapacitou, mapou sedadiel v autobuse, predpoveďou počasia a heuristickým vízovým/dokladovým checkerom
  • Rezervácia s údajmi cestujúcich a nástupným miestom, odoslanie e-mailu do CK a potvrdenia klientovi cez Resend, export termínu do .ics
  • Trip Mode (/trip/[termín]) podľa fázy zájazdu: voucher s QR, skupinový chat s reakciami, pripnutím a hlasovými správami, oznamy sprievodcu, SOS, program, mapa, ankety, fotky, spoločné výdavky, straty a nálezy
  • Rozhranie sprievodcu (oznamy, itinerár, SOS hlásenia) a admin stránky pre rezervácie, zákazníkov, SOS a export
  • Tabuľa odchodov v štýle letiska s automatickou obnovou a kalendár odchodov
  • Vernostný program: body, úrovne Bronze–Platinum, odznaky, vernostný shop, odporúčací kód s QR, narodeninové bonusy
  • PDF výstupy cez pdfkit: denník zájazdu, ročenka, certifikát, batožinové visačky s QR, brožúra
  • Kalkulačky a nástroje: kurzy mien, storno poplatky, splátkový kalendár, porovnanie poistení, darčekový poukaz; offline asistent na princípe intent matchingu (bez LLM)

Technicky zaujímavé

  • Streamovací import ~10 MB XML feedu (SAX) s detekciou zmien cez hash a synchronizáciou zájazdov, termínov a nástupných miest
  • Inštalovateľná PWA so service workerom (Serwist), offline stránkou a web push notifikáciami
  • Veľký rozsah na jednom kóde: 110 stránok, 127 API endpointov a 101 dátových modelov pokrývajúcich celý životný cyklus klienta

V pláne

  • Nasadenie na Vercel s databázou PostgreSQL
  • Napojenie AI asistenta na Claude API