Doseg
Interaktivna karta dosega javnog prijevoza u Zagrebu. Klikni bilo gdje i vidi dokle možeš stići tramvajem ili busom u 15, 30 ili 45 minuta.
01 — kako radi
Klikom na kartu Doseg izračunava izokrone koristeći Dijkstrin algoritam nad ZET-ovim voznim redom. Rute se rekonstruiraju na klijentskoj strani, pa pregled prijelaza između linija radi trenutno dok pomičeš miš.
02 — podaci
03 — privatnost
Nema kolačića, praćenja ni osobnih podataka. Svi upiti ostaju između tvog preglednika i servera za rutiranje.
04 — arhitektura
Teški dio posla radi Rust servis (axum). Dijkstrin algoritam po transit grafu, zatim ekspanzija pješačkom mrežom od 422K čvorova iz OpenStreetMapa.
GTFS-RT kašnjenja dolaze iz ZET-ovog protobuf feeda svake 30 sekundi (~600 trip updateova po osvježavanju).
ts-rs generira TypeScript tipove iz Rust structova, jedan izvor istine za cijeli stack.
Next.js servira SSR stranice i lakše API endpointe. OpenTripPlanner radi planiranje ruta.
Ispred svega stoji Caddyreverse proxy s Cloudflareom. Koordinate se snappaju na mrežu (~100 m) tako da CDN može cachirati odgovore.
05 — otvoreni kod
Cjelokupni izvorni kod je dostupan na GitHubu.
Napravio Mislav Jovanović