Az utas.hu története

Most, hogy kijött a FUTÁR első olyan változata, amelyben vannak vonatok is, gondoltam, mesélek egy picit a kis-nagytestvéréről: az utas.hu -ról. Ezzel azt is szeretném bemutatni, milyen sok minden kell egy közepes szolgáltatás beindításához, mennyi minden van a UX alatt, amire egy digitális szolgáltatásnak szüksége van.

Mi is az utas.hu?

Az utas.hu célja szerint a FUTÁR országos közlekedésre való párja: eredeti elképzelésében a mostaninál is több szolgáltató adatait tartalmazta, többek közt az összes helyközi buszszolgáltatót, de volt benne hajó (BAHART), egyes helyi („városi”) szolgáltatók adatai, és ha a publikus részében nem is valósidejű, de MÁV adatok.

Másszóval: az utas.hu a menetrendek.hu FUTÁR-köntösben, valósidejű közlekedésre fókuszálva.

Mi köze az utas.hu -nak a menetrendek.hu -hoz?

Az utas.hu elődje, még a menetrendek üzemeltetőjének előadásából

Az utas.hu azután jött létre, hogy az együttműködés megszűnt a menetrendek.hu üzemeltetője, és a Közlekedéstudományi Intézet (KTI) közt – fájdalmas szakítás volt: hirtelen az összes buszállomás kijelzőiről eltűntek a valósidejű adatok: a buszok ugyanis a Közlekedéstudományi Intézet központjába küldték az adatokat, viszont azok menetrend nélkül értelmezhetetlenek voltak, így a tábla a saját buszairól se tudta, mikor és hányas megállóba érkeznek. 

Mindez a háttérben zajlott: én is már csak az összezavarodott kijelzőkkel szembesültem, ahogy mentem haza karácsonykor. Ugyan a KTI-nek én a UX szakértője voltam, de mint az épp kézre eső informatikust, engem kértek meg a probléma megoldására.

Az egyesített menetrend feltámasztása hamvaiból

Könnyűnek tűnik ez elsőre: megszerezzük “a menetrend”-et, és visszarakjuk. Igen ám, de nem egy menetrendünk volt, hanem sok – és ezeket egyesíteni kellett a közös állomásaikon. A régi rendszer egyesítette őket – ennek a működését kellett felmondásukat töltő munkatársak félmondatos elszólásaiból, egy 2012-es, a szerver egyik sarkában felejtett binárisból (ha nem tudod, mi az a bináris: a .exe fájl), meg a 2018-as utolsó közös adatbázisból összevarázsolni – természetesen a bináris már nem igazán beszélgetett a friss adatbázissal. 

Az egyesítés félig manuális folyamat: az egyes menetrendek nem konzisztensen tartalmazzák ugyanazt, ráadásul a menetrend sokszor csak felsorolja az állomásokat – hogy földrajzilag hol van, azt valakinek be kell jelölnie (vagy ha ketten bejelölték, csak picit máshova, akkor döntenie), sőt, a térképes nézethez azt is be kell rajzolnia, hogy vannak az egyes állomások összekötve – akár többféle módon, például két város közt a falukat végigjárva, vagy közvetlenül az autópályán. 

Kézzel egyesíteni ugyanakkor rettenetesen nagy munka lenne: ekkor még több busztársaság volt, egymást átszövő hálózattal, de külön-külön menetrendekkel: ha egy busz az egyik szerint 2 perccel előbb indul mint a másik szerint, kinek van igaza? Vagy ha egy állomáson a járat az egyik fél szerint az 1-es, a másik fél szerint a 9-es megállóból indul, kinek van igaza? (Ismétlem: az állomás kijelzőjét ez a program irányította, nagyon nem volt mindegy!) Ha a két város közt több út is van, hol fog menni a busz? Ehhez egy “intelligens” algoritmus kell, amit én csak “igazságtevő” algoritmusnak hívtam.

Gondolnád, hogy ezt egyszer kell megcsinálni – de sajnos a menetrend országos szinten néhány hetente változik – útépítések, pályafelújítások kezdődnek, amik miatt megállók és utak szűnnek meg és jönnek létre, és nyilván olyan is van, hogy át kell neveznünk egy megállót, mert az önkormányzat átnevezte az utcát, vagy bezárt a gyár, aminek a nevét viselte. Ilyenkor a program visszadobja – vagy rosszabb esetben az utasok szólnak, hogy tévedett az igazságtevő.

Hegesztés éjszakákon át

Kaptam egy rakás hozzáférést a szerverekhez, pár – a lehetőségeikhez képest segítőkész – kollégát, akik különböző szempontokból ismerték a rendszer egyes részleteit. Eleinte az is kihívás volt, hogy “átirányítsuk” a saját “postánkat” a címünkre, mert a közvetítő technológia megszűnésével hirtelen nem kaptuk meg az egyes menetrendeket, amikből dolgoznunk kellett volna. 

A legbonyolultabb az volt, hogy miután megtaláltam a régi programokat, működésre bírjam őket: ez egy kudarcra ítélt vállalkozás volt, hisz 7 év alatt az adatbázis nagyon átalakult, a programokat pedig sok-sok éve nem használták (pl. 32 bites programok, 64 bites rendszer), de a futtatásuk folyamatos figyelésével mindenféle házi eszkábálású elemző eszközökkel sokat elárult, hogy amúgy mit csinálnak “békeidőben”. 

Természetesen a költségvetés eleinte pontosan nulla forint volt, “sikerdíjas” a projekt: ha sikerül a feltámasztás, akkor beszélhetünk pénzről… Szóval volt, hogy inkább megírtam egy-egy elemzőprogramot, mint megvegyem, másnak (az ún. disassembler-nek) kénytelen voltam fél órás próbaváltozatait használni.

Ekkor tanultam meg a React-ot is, miközben egy olyan felületet kellett hozzá építenem, ahol szemmel is ellenőrizhető, nem csak az adatbázis konzolját használva, ami másnak nem triviális.

Felmentőseregek

Természetesen egyedül egy ekkora feladat lehetetlen: előbb-utóbb kaptam egy programozócsapatot, aki az általam kiásott információk alapján megpróbálta megírni az új betöltő programot, valamint, amikor már annyira működtek a rendszerek, hogy el lehetett kezdeni az elmúlt hetek, sőt, azóta hónapok elmaradt megálló-beállításait, akkor az azt ismerő kollega nem csak segített, hogy minek, hogyan “kéne” működnie, de felmondási idejét végül e-learning anyagok készítésével töltötte, amivel sikeresen tudták ezt megoldani később mások.

Eközben az ügyfelek árgus szemekkel figyeltek, mi történik – van, aki írt egy “ellen-elemző”-t, ami vizslatta az összefüggést a mi rendszereink és az ő adatbázisuk közt, mások csak jelezték, mit látnak a táblájukon az állomás ablakából, és minek kéne kint lennie rajt. Ezekből a programokból, levelekből, telefonbeszélgetésekből is rengeteg hasznos információ jött, bár mivel nem csak a mi, de az ő programjaik is hirtelen, szükségszülte eszköz volt valamihez, aminek a belső működését csak sejtettük, néha azokban volt a hiba.

Továbblépés

Ha csak “simán” helyrerakjuk az adatbázist, pontosan ott vagyunk, ahol előtte fél éve “amúgyis” voltunk – nehéz lett volna megmagyarázni, mire megy el ennyire sok energia. Ezért ki kellett találni valamit, ami látványos, és ami eddig még nem volt: így jött az ötlet, hogy a Pesten megszokott FUTÁR programhoz hasonló felületen jelenjenek meg ezek az adatok.

Ekkor még nálunk dolgozott a MÁV-START több prominens személye is – nekik dobtam be először az ötletet, hogy igazából mi le tudjuk szedni az ELVIRA-ból a késéseket, és akkor az is látszik, BKK-s kontaktjaimat (akik azóta nagyrészt nincsenek a BKK-nál) pedig azzal hitegettem, hogy meg tudjuk csinálni, hogy egyetlen kijelzőn vannak az ő adataik és a városon belül is szolgáltatást végző, Pest megyei helyközi járatok.

Városi vs országos: az utas.hu UX

A kis pöcök azt jelzi, az indulási idő nem a lakásból indulásra vonatkozik – sok hasonló apróság van benne

A helyi és a helyközi közlekedés UX szinten sokmindenben különbözik: míg a BKK nem igazán gondolkozik településnevekben (csak a HÉV vonatok lépik át a település határát), addig ez a helyközi közlekedésben teljesen természetes, hogy annyit mondunk, “Debrecenbe szeretnék menni”, pedig Debrecen teljesen önálló közlekedési rendszerrel rendelkezik, ahogy “Szentendre” is tucatnyi megállót jelent valójában.

Ez ráadásul új funkciókat is hoz magával: az említett szentendrei tucatnyi megállónál közel sem biztos, hogy az autóbusz-állomáson érdemes leszállni, ha mi mondjuk a Fő tér környékén szeretnénk ebédelni, pénzben sem – ezért kell a háztól-házig tervezés, amely mind a MÁV rendszereiből, mind a menetrendek.hu -ból hiányzik. Így aztán az indulási idő is kétértelművé válik: amikor nekem kell indulnom, vagy amikor a busz megy? A funkció megvolt, de új UI kellett a FUTÁR-nak.

A várakozás a távolsági utazás sajátja…
…de néha pont, hogy kapkodós

Ez a UI – ami főleg az utazástervező eredménylistájában mutatkozik meg – az, amiben ez a két program leginkább különbözik.

Közben csináltattunk brandet (Vasvári Péter grafikáit láthatjátok), az egyik elbukott logótervből betöltő animációt faragtam, és tanácsadtam a FUTÁR fejlesztőcsapatát a felület változtatásaiban, akik szívet-lelket beletéve, megcsinálták kéréseimet.

A politikai korrektség végett egyik jármű se nyerhet a betöltőben sem!

A történet vége

Hősnek lenni nem csak fárasztó, de gyakran hálátlan feladat is: főleg ha a feladat “csak” az, hogy minden működjön úgy, ahogy “tegnap”. Magyarországon az üzemeltetés amúgy se egy hálás meló (sokan nem értik, hogy pl. egy ilyen adatbázis frissen tartása nem automatizálható teljesen; nagy méretben egy komplett csapatot kíván), ráadásul nagyjából amire összeállt, eredményt hirdettek az EGYJEGY rendszer közbeszerzésén (a 4iG – T-Systems konzorcium nyert), az ottani fejlesztőknek pedig kellett valaki, aki értelmezi, mit írtunk le: az EGYJEGY specifikációját részben én írtam, fő társszerzőm addigra felmondott.

Így aztán az első pár karbantartási kör után átadtam egy új kollegának az üzemeltetési feladatokat, és az EGYJEGY-re koncentráltam, ami nem csak abban lett volna több, mint az utas.hu, hogy jegyet is lehet rajt venni, hanem… mindegy is, az egy másik történet. 

Végül amikor másik társszerzőm is felmondott, és egyedül álltam volna szemben rengeteg feladattal és felelősséggel, én is inkább beadtam a felmondásomat. A Közlekedéstudományi Intézetnél – közös főnökeinken túl – már senki nem dolgozik, aki ebben a feltámasztásos projektben részt vett.

Viszont kapcsolatok kialakultak, és talán ennek is köszönhető, hogy ma háztól-házig lehet tervezni a BKK és a vasúti közlekedés közt, figyelembe véve a valós indulási időket. Reméljük, hamarosan igaz lesz ez a buszközlekedésre is, és jegyet is lehet majd venni – háztól házig.

Értesülnél a cikkekről?

Kötelező megadni.