AnywhereTransit — Felhasználói kézikönyv és teszt-útmutató
Utolsó frissítés: 2026-08-19. A dev környezet címei:
Back-office: https://dev.backoffice.anywheretransit.com ·
Operator Console: https://dev.admin.anywheretransit.com ·
API: https://dev.api.anywheretransit.com ·
Mobil-appok: helyi build (flutter run --flavor dev -t lib/main_dev.dart).
A dokumentum végén átfogó teszt-forgatókönyv van, ami sorban végigvisz mindenen.
1. A rendszer részei és ki mit használ
| Felület | Ki használja | Mire |
|---|---|---|
| Back-office | a platform üzemeltetője (mi) | ügyfelek (tenantok) létrehozása, csomagok/árak, számlázás, support, rendszer-üzemeltetés |
| Operator Console | az ügyfél (szolgáltató) adminja, diszpécsere, megtekintője | menetrend-kezelés, tagok, beosztás, járművek, műszakok, elszámolás, foglalások, előfizetés |
| AT sofőr-app (Android) | a szolgáltató sofőrjei | műszak + járat indítás/zárás, GPS-küldés, saját beosztás és profil |
| AT utas-app (iOS+Android) | utasok | közeli megállók, keresés, élő térkép, kedvencek, útvonalterv, jegyek |
| AT Felmérő (Android) | a szolgáltató terepi munkatársa | menetrend-felmérés terepen: megállók GPS-szel + fényképpel, offline mentéssel |
| Publikus feedek | útvonaltervezők, aggregátorok | /feeds/{agencyId}/gtfs.zip + vehicle-positions.pb + trip-updates.pb + service-alerts.pb |
A fő függőségi lánc (ebben a sorrendben kell léteznie mindennek):
- Back-office-ban létrejön az ügyfél (tenant) és az admin-fiókja.
- Az admin belép az Operator Console-ba, feltölt + publikál egy GTFS-feedet (vagy a Back-office beállít külső adatforrást).
- Az admin meghívja a tagokat (diszpécser, sofőr), felveszi a járműveket, elkészíti a beosztást.
- A sofőr az appban műszakot és járatot indít → GPS-pozíciók jönnek.
- Az utas-app és a publikus feedek a publikált menetrendből + élő pozíciókból dolgoznak.
2. Belépés, fiókok, jogosultságok (minden felületre közös)
2.1 Hogyan születik egy fiók
- Tenant-admin: a Back-office → Ügyfelek → „Új ügyfél" hozza létre. Ha az e-mail még nem létezik, a rendszer ideiglenes jelszót generál és e-mailben elküldi (ha nem ment ki a levél — pl. nincs SMTP —, a felület kiírja a jelszót kézi átadásra).
- Tag (diszpécser/sofőr/megtekintő): az Operator Console → Tagok → „Meghívás" (e-mail + név + becenév + telefonszám + szerepkör). A tagság azonnal aktív. Új fióknál meghívó-levél megy a belépési adatokkal; meglévő fióknál a user értesítést kap, hogy a cég hozzáadta (a régi regisztrációja megmarad — egy e-mail cím több cégnél is lehet tag, cégenként más szereppel).
- Platform-staff: Back-office → Platform-staff → „Új platform-staff felvétele".
2.2 Első belépés — kötelező jelszócsere
Aki ideiglenes jelszóval lép be (meghívott, reset-elt), annak a rendszer kötelezően jelszót cseréltet: a belépés után azonnal a csere-képernyő jön, és amíg nem cserélt, a szerver minden mást blokkol (API-ból sem kerülhető meg). Sikeres csere után a régi munkamenetek érvénytelenné válnak.
2.3 Kétlépcsős belépés (2FA)
- Megkövetelés: az agency-admin a Tagok adatlapján pipálja be („2FA megkövetelése"). A tag a következő belépésekor kötelező beállító-képernyőt kap (QR-kód a weben; a sofőr-appban másolható titkos kulcs), és addig nem léphet tovább.
- Belépés 2FA-val: a jelszó után a felület 6 jegyű kódot kér a hitelesítő appból.
- Platform-staffnak a 2FA mindig kötelező. A 2FA-t kikapcsolni csak maga a user tudja; a support a Back-office-ból vissza tudja állítani (Felhasználók → Megnyitás → 2FA-reset), ha pl. elveszett a telefon.
2.4 Zárolás
5 egymást követő hibás jelszó után a fiók néhány percre zárolódik — ilyenkor a helyes jelszó is „Túl sok sikertelen próbálkozás…" üzenetet kap. Várj pár percet és próbáld újra.
2.5 Szerepkörök és képernyő-engedélyek
- Operator Console:
AgencyAdmin(minden),Dispatcher(üzemeltetés: beosztás, műszak, járművek, tagok olvasás/meghívás),Viewer(csak olvasás),Driver(nem léphet be a konzolba — a sofőr-appba való; a cégválasztó ki sem ajánlja, és útbaigazító üzenetet kap). - A menü alapból szerep szerint szűkül: a Tagok csak admin+diszpécsernek, az Előfizetésem csak adminnak látszik.
- Jogosultsági mátrix (tagonkénti finomhangolás): az admin a Tagok → adatlap → Képernyő-engedélyek részben tagonként is adhat/elvehet képernyőt a szerep-alaphoz képest (Alapértelmezés / Látja / Nem látja). A tiltás nem csak a menüből rejt el — a hozzá tartozó szerver-végpontok is 403-at adnak. A módosítás a tagnál a következő betöltéskor (frissítés/újra-belépés) érvényesül. Önkizárás-védelem: az admin a saját Tagok-engedélyét nem tudja elvenni.
- Back-office:
PlatformOwner(minden, beleértve staff-kezelést),PlatformAdmin,PlatformSupport,PlatformReadonly. Ugyanez a képernyő-engedély-rendszer itt is él: a Platform-staff adatlapon az owner staffonként tilthat/engedélyezhet Back-office képernyőket (indoklás-köteles, auditált).
2.6 Kijelentkezés zsákutcából
Ha tagság nélkül lépsz be a konzolba (vagy csak sofőr-tagságod van), a cégválasztó képernyő magyarázó szöveget + Kijelentkezés gombot mutat.
3. Back-office — oldalanként
3.1 Dashboard
Gyors áttekintés: ügyfelek, feed-egészség (publikálás, validálás, RT-frissesség, letöltési hibaarány), riasztás-jelzők.
3.2 Ügyfelek (tenantok)
- Új ügyfél — négylépéses varázsló:
1. Cégadatok és adminisztrátor: cégnév, időzóna (kereshető lenyíló), ország, admin-e-mail + az admin neve/telefonszáma, indoklás. Az admin-fiók azonnal aktív tagságot kap; a belépési adatok névre szóló e-mailben mennek (ha nincs SMTP, a felület kiírja az ideiglenes jelszót kézi átadásra). Dupla kattintás ellen idempotencia-védelem van.
2. Csomag: a hozzárendelés egyben bekapcsolja a csomagban foglalt funkciókat — nem kell utána a Funkciókapcsolókhoz menni. Kihagyható, de akkor a 3. lépés pirosan jelzi, hogy nincs aktív előfizetés.
3. Térkép-lefedettség: a meglévő területek listája — ha az ügyfél városa már le van fedve, nincs teendő. Egyébként új terület a térképen kijelölve, akár azonnali építéssel. Ez nem függ a menetrendtől: a lefedettség platform-szintű, és egy terület több ügyfelet is kiszolgál.
4. Mi van még hátra: a beüzemelési lista élőben az új ügyfélre, egy Átlépés az ügyfél konzoljára gombbal (szimulált belépés, indoklással, auditálva — egyenesen a Feedek oldalra), és nyíltan kimondva, mi az, ami nem innen intézhető: a menetrendet az ügyfél tölti fel a saját konzolján, az útvonaltervező gráfja pedig csak publikált menetrend után építhető (a területe a megállókból számolódik).
- Beüzemelési állapot (az adatlap tetején, és jelzésként a lista sorai mellett): megmutatja, mi hiányzik még ahhoz, hogy az ügyfél dolgozni tudjon. Két rétegű, és ez a lényege: a piros (blokkoló) tételek nélkül az ügyfél nem tud dolgozni — nincs publikált menetrendje, nincs belépni tudó adminja, vagy nincs aktív előfizetése. A sárga tételek csak korlátoznak (útvonaltervezés, térkép-lefedettség), és csak akkor jelennek meg, ha az ügyfél az adott funkciót meg is kapta — akinek nincs útvonaltervezése, annál a gráf szóba sem kerül. Minden hiányzó tétel mellett gomb visz oda, ahol pótolható. A listában piros pont jelzi, ha van blokkoló akadály.
- Megnyitás (adatlap): törzsadatok (számlázási adatok, „Számla, e-mail és fizetőoldal nyelve" — ez a mező adja a hivatalos számla, a fiók-e-mailek ÉS a Barion fizetőoldal nyelvét is; ha a Barion nem támogatja a választott nyelvet (olasz, román, horvát), a fizetőoldal a platform-alapértelmezett nyelvre esik vissza, és a felület ezt jelzi), Tagok (név + e-mail + szerep), Adatforrások (lásd alább), Publikus feed-URL-ek (GTFS zip + a három .pb, másolás-gombbal — ezt adjuk át aggregátoroknak), Előfizetés (csomag, add-onok, számlák).
- Adatforrások (feed-típusonkénti mátrix): négy sor — GTFS (zip), VehiclePositions, TripUpdates, ServiceAlerts —, mindegyiknél választható „Mi adjuk" (a platform generálja/szolgálja; a kimenő címeket a Publikus feed-URL-ek doboz mutatja) vagy „Külső URL" (mi kérdezzük le és dolgozzuk fel). Külső TripUpdates és VehiclePositions már fut (percenkénti szinkron); a külső GTFS zip auto-import és a külső ServiceAlerts feldolgozás második ütem — a beállítás elmenthető, a felület jelzi, hogy a szinkron még nem fut rá.
- Számlák: kézi „fizetettnek jelölés" (ha nincs online fizetés), Barion-fizetés indítása, Sztornó (csak hivatalos számlára, indoklással — az eredeti számla letölthető marad, MELLÉ kerül ellenbizonylat).
- Státusz-váltás: az új ügyfél mindig Trial (próbaidőszak) állapotban jön létre — élesbe az Aktiválás gombbal kerül (indoklással, auditáltan), ettől lesz Active. Automatikus aktiválás nincs: sem a csomag-hozzárendelés, sem a számla kifizetése nem lépteti tovább a státuszt, ez tudatos, kézi döntés.
- Felfüggesztés / lezárás: kétlépcsős (kérés + jóváhagyás), auditált.
3.3 Felhasználók (globális user-nézet)
Új felhasználó: e-mail + teljes név + becenév + telefonszám (opcionálisak) + indoklás — csak az identitás jön létre, hozzáférést utána külön kell adni. Keresés e-mailre → Megnyitás: tagságok (cégnévvel), eszközök/munkamenetek, utas-előfizetés állapota. Support-műveletek (mind indoklás-köteles és auditált): Jelszó-reset (új ideiglenes jelszó e-mailben + kötelező csere), 2FA-reset, tokenek visszavonása, belépés a user nevében (impersonáció — csak olvasásra jogosít, max 30 perc), GDPR-export/-törlés.
3.4 Platform-staff
Lista + Új platform-staff felvétele (e-mail + szerep + név/becenév/telefon + indoklás) + Megnyitás (adatlap: szerepkör, 2FA-állapot, utolsó belépés; owner szerkesztheti a nevet/becenevet/telefont, és itt állítja a Képernyő-engedélyeket is — staffonként tiltható/engedélyezhető bármely Back-office képernyő, indoklással, auditáltan) + szerepkör-váltás + visszavonás. Nem maradhat a rendszer PlatformOwner nélkül, és az owner a saját Platform-staff engedélyét nem tudja elvenni.
3.5 Csomagok és árak
B2B csomag-katalógus (havi/éves ár, tartalmazott funkciók) + önkiszolgáló add-on árlista. Csomag-hozzárendelés automatikusan szinkronizálja az ügyfél funkciókapcsolóit.
3.6 Funkciókapcsolók (platform-szint)
Kill-switch-ek (sys.*): vészhelyzetben egy funkció minden ügyfélnél lekapcsolható. Kétlépcsős visszakapcsolás.
3.7 Beállítások
Futásidőben szerkeszthető konfiguráció, kategóriánként. A teszthez fontosak:
- E-mail:
Smtp:*(enélkül nem megy levél — a felület ilyenkor kézi jelszó-átadást kér),Clients:OperatorConsoleBaseUrl/Clients:BackofficeBaseUrl(a levelek belépés-linkjei),Clients:DriverAppUrl(a sofőr-app letöltési linkje — pl. Google Play URL —, kitöltve a sofőr-meghívó e-mailek ezt tartalmazzák; üresen általános szöveg megy). - Adatforrások:
Realtime:AgencySync:*(a per-tenant GTFS-RT szinkron ütemezése),Uploads:MaxUploadMb(a feltölthető GTFS zip legnagyobb mérete, alapból 512 MB — ez az egyetlen korlát, a proxyk nem korlátoznak; módosítás után API-újraindítás kell). - Kiadások:
Releases:IngestSecret(enélkül a Verziók oldal kiadás-listája üres). - Útvonaltervezés:
Otp:PublicApiBaseUrl(ebből épülnek a publikus feed-URL-ek is).
3.8 Rendszer-riasztások
Feldolgozatlan hibák dedupolt listája (előfordulás-számmal). Megoldottnak jelölhető.
3.9 Verziók
- Melyik kiadás fut melyik szolgáltatáson + changelog kiadásonként (a CI küldi be deploykor).
- Rollback: bármelyik korábbi kiadásra, egy gombbal (szolgáltatásonként is).
- Konténerek: állapot, log-nézegető (sor-szám állítható), Újraindítás — indoklással.
- Publikus weboldal: a nyilvános
anywheretransit.comoldal tartalma a kiadás része (az API-image-ben utazik), ezért a publikálás is ide tartozik. A kártya megmutatja a futó kiadást és a tárhelyen lévő oldal verzióját: ha a kettő eltér, „elavult — új kiadás van" jelzés figyelmeztet. A Publikálás gomb egy lépésben kitolja az aktuális tartalmat (indoklás-köteles, auditált). A hozzáférés a Beállítások → Weboldal csoportban állítható; a jelszó titkos mező, a felület sosem mutatja vissza. A gomb csak akkor aktív, ha az adatok teljesek.
- Átviteli mód (Website:Protocol): alapból SFTP (SSH-alapú, végig titkosított, port 22) — ezt támogatja a legtöbb tárhely. Az FTPS (explicit TLS a 21-es porton) sok szolgáltatónál nem működik: ilyenkor „500 Syntax error, command unrecognized" jön, mert a szerver az AUTH TLS parancsot sem ismeri. Implicit FTPS-t (990-es port) a beépített kliens nem támogat. A titkosítatlan FTP csak végszükség — ott a jelszó is nyíltan utazik a hálózaton.
3.9/b Pénzügy, Kiutalások, Feed-egészség, Jobok, Hibabejelentések
- Pénzügy: bevétel havonta, kintlévőség, fizetetlen számlák. A
jegybevétel az ügyfélé — nekünk abból a jutalék a bevételünk; ez a
két szám itt szándékosan külön áll. Csomagváltás a következő megújítástól
hat, a már kiállított számlát nem írja át. Kézi rendezéshez indoklás kell,
és bekerül az audit-naplóba.
- Kiutalások: időszak lezárása → jóváhagyás → banki hivatkozás rögzítése.
A lezárás egyszeri — különben kétszer fizetnénk ugyanazt.
- Feed-egészség: ügyfelenként mikor volt utolsó publikálás, van-e
validációs hiba, mikor jött utolsó járműpozíció, hány valós idejű
szinkron-hiba volt 24 óra alatt.
- Jobok: a háttérfeladatok futásai státusz szerint. Ha valami elhasal,
a hiba rendszerriasztásként is megjelenik (3.8) — nem kell ezt az
oldalt figyelni ahhoz, hogy értesülj róla.
- Hibabejelentések: a mobil appokból beküldött bejelentések, képmelléklettel.
3.10 Térkép-lefedettség
Ez adja a nyomvonal-illesztést: ha egy jármű (vagy a Felmérő app) végigment
egy útvonalon, a rögzített GPS-nyomot ez igazítja rá a valódi utcákra. Enélkül a
nyomvonal-javaslat *nyers* marad — a menet vonalát követi, nem az úttengelyt: a
kanyarban levág, álló helyzetben szór.
- Új terület: adsz neki nevet, és a térképen a négy sarkot húzva kijelölöd a
területet. Az úthálózati adat forrását nem kell megadnod — a rendszer maga
keresi meg. (Kézzel csak akkor kell, ha egyik forrás sem fedi le a területet;
a felület ilyenkor meg is mondja.)
- Építés: egy gomb. Az építés a build-gépen fut (percek), a státusz
Épül… → Kész sorrendben vált. A Kész mellett látszik a csempeszám és a
méret is.
- Egy terület több ügyfelet is kiszolgál. Ha két ügyfél ugyanabban a
városban működik, elég egyszer megépíteni — a rendszer magától kiszámolja, hogy
egy ügyfél menetrendje benne van-e egy kész területben. (Ez eltér az
OTP-gráftól, ahol ügyfelenként külön kell.)
- Szerkesztés: a határok módosítása után a terület újraépítésre vár — a régi
csempék már nem azt a területet fednék.
Mikor kell hozzányúlni: ha új régióban lesz ügyfél, vagy ha fél-egy év múlva
elavul az úthálózati adat. Attól, hogy a rendszer frissül, az utcák nem
változnak.
Ha hibát ír ki: a felület a konkrét okot mutatja („nincs lefedő forrás",
„nulla csempe", „a motor nem indult"), nem csak azt, hogy sikertelen. A
részletes napló a build-gépen van, lásd
deploy/valhalla-tile-builder/SETUP.md.
3.11 Audit-napló
Minden Back-office-os írás (ki, mit, mikor, miért, honnan). Szűrhető, CSV/PDF-exportálható, sosem törlődik.
4. Operator Console — oldalanként
4.1 Belépés és cégválasztó
E-mail+jelszó (+2FA-kód, ha be van kapcsolva). Több aktív tagságnál cégválasztó; egy tagságnál automatikus belépés. A bal oldali sávban cégváltó, nyelvváltó (hu/en/de/es/it/el), Hiba jelentése gomb, kijelentkezés, és a futó felület-verzió címkéje (hibabejelentésnél ezt add meg).
4.1/b Kezdőlap
A belépés ide visz. A mai nap egy képernyőn, három kérdés sorrendjében:
- Mi megy most — futó járatok, aktív műszakok, ma teljesült járatok, és a
mai átlagos eltérés a menetrendtől.
- Mi romlott el — sofőr-jelzések (12 óra), megszakadt járatok, mai
foglalások (ebből hány vár fizetésre), mai jegybevétel.
- Amire figyelni kell — a menetrendi naptár lejárata (ha kifut, az
utas-app másnap üres menetrendet mutat; két héttel előtte figyelmeztet),
30 napon belül lejáró jármű-okmányok, fizetetlen előfizetési számla.
Minden kártya odavisz a részletes képernyőre — kivéve a
sofőr-jelzések kártyát: az a fejléc értesítés-lenyílóját nyitja meg,
és azt mutatja, hány jelzés jött ma és ebből mennyit néztél már meg.
Újat csak akkor jelez, ha tényleg új érkezett. Szándékosan nincs a
kezdőlapon „hány megálló / hány vonal" típusú szám: azokból nem
következik teendő.
4.2 Feedek (menetrend-életciklus)
- Draft → import → validálás → publikálás. Élő feedhez sosem nyúlunk: a publikálás atomi váltás, a korábbi publikált verziók megmaradnak (vissza lehet állni).
- Import: GTFS zip feltöltés (nagy fájl is — háttér-jobként fut, az állapot pollozható). Validálás: MobilityData gtfs-validator, hibalistával. Export: GTFS zip / NeTEx.
- Nyomtatható megállói menetrend (Megállók oldal → *Menetrend* gomb): a
kifüggeszthető lap egy megállóra, vonal- és irány-szűrővel. Nem
nap-alapú: a generálás napjától a feed érvényességének végéig szól, és
naptípusonként külön oszlopot ad (munkanapokon / szabadnapokon /
munkaszüneti napokon…) a menetrend tényleges közlekedési napjaiból. Ami
csak néhány napon jár, vagy önálló, dátum-fejléces oszlopot kap, vagy
csillagot a hozzá illő oszlopban, lenti magyarázattal. Lapméret
A3/A4/A5 vagy egyéni mm; a lap 6 nyelve pipálható, a választás
megjegyződik. A betűméret a laphoz igazodik (kitölti, de nem lóg ki), a
bal felső sarokban a Beállításokban feltöltött logó, jobb felül **QR-kód
az élő indulásokhoz**.
- Összes menetrend (ZIP) gomb: minden megálló lapja egy fájlban —
háttérben készül, a folyamat látszik ({kész}/{összes}), a kész ZIP **24
óráig** tölthető le. Kifüggesztés-cserénél ez az egy kattintás.
- Feeden belül szerkesztő-oldalak: Megállók (térképpel), Vonalak, Járatok, Megállási idők, Naptárak, Shape-ek, Szintek/Pathways (akadálymentes útvonalak), Átszállások, Gyakoriságok, Viteldíjak (v1 + Fares v2), Fordítások, Feed-info, Attribúciók.
4.3 Élő térkép
A publikált menetrend megállói + az élő járművek (SignalR-frissítéssel). A pozíció forrása lehet sofőr-GPS, szimulátor vagy külső GTFS-RT. Elavult pozíciót a rendszer előbb „becsültre" minősít, majd elrejt — sosem mutat élőnek látszó régi adatot.
4.4 Tagok
Lista (Név — becenév elsőbbséggel —, e-mail, szerep, státusz) + Meghívás (név/becenév/telefon/szerep) + Megnyitás adatlap: elérhetőségek szerkesztése, 2FA megkövetelése, Képernyő-engedélyek (adminnak: tagonként Alapértelmezés / Látja / Nem látja minden konzol-képernyőre — lásd 2.5), 2FA/utolsó belépés kijelzés, ki hívta meg, legutóbbi műszakok. Felfüggesztés/visszaállítás/törlés. Az utolsó aktív admin nem fokozható le és nem törölhető.
4.5 Beosztás (diszpécseri tervező)
- Szűrők: mettől–meddig (max 7 nap) + vonal. Nagy menetrendnél (pl. VBB) a rendszer vonal-választást kér.
- Lista nézet: a publikált menetrend járatai naponként — dátum, vonal, indulás, honnan, cél, sofőr (vagy „nincs kiosztva"), Kiosztás/Átadás gomb.
- Kiosztás dialógus: sofőr-választó (névvel), jármű-választó (aktív járművek), üzenet a sofőrnek (pl. „kiállás a garázsból 7:20-ra" — a sofőr-app mutatja). Ha a járaton már van sofőr, átadás lesz: indoklás kötelező, az előző sofőr szakasza megmarad az elszámolásban.
- Üzenet a sofőröknek (nyugtázással): rövid forgalmi közlés egy
sofőrnek vagy az összesnek (pl. „terelés a Mars térnél"). A *fontos*
jelzésű üzenet a sofőr-appban azonnal felugrik, és a sofőrnek
nyugtáznia kell („Láttam"); a küldő listáján látszik, ki nyugtázta és
mikor. Az üzenetnek lejárata van — a tegnapi terelés ma már félrevezetne.
- Napi tábla: sofőrönkénti idősáv a nap kiosztott járataival (blokk = vonal + indulás + jármű; rákattintva átadás). A ki nem osztott járatok számát jelzi.
4.6 Járművek (flottakezelés)
Jármű-törzs: hívónév, rendszám, kapacitás, típus, garázs, alacsonypadlós / kerekesszékes jelölés, km-óra állás, státusz (aktív/műhelyben/kivont — törlés nincs, a régi beosztások hivatkozásai megmaradnak). Garázsok kezelése ugyanitt.
- Flotta-állapot (az oldal tetején, csak ha van teendő): mi járt le és mi jár le hamarosan — lejártak elöl. Alapból 30 napra előre néz.
- Okmányok / szerviz gomb járművenként, két füllel:
- Okmányok: műszaki vizsga, kötelező biztosítás, casco, tachográf-hitelesítés, engedély, egyéb — okmányszámmal és érvényességi dátummal (ez kötelező, erre figyelmeztet a rendszer).
- Szerviz: elvégzett munkák dátummal, km-óra állással, költséggel és műhellyel, plusz a következő esedékesség dátum és/vagy km szerint. Elég az egyiket megadni — amelyik hamarabb bekövetkezik, arra figyelmeztet.
- A jármű km-óra állása szervizrögzítéskor automatikusan frissül (csak előre, hogy egy utólag bevitt régi szerviz ne léptesse vissza). Ez nem azonos a műszakok GPS-ből számolt km-jével: a jármű a követésen kívül is megy.
- Kivont (Inactive) járműre nem figyelmeztet a rendszer; a műhelyben lévőre igen.
4.7 Műszaknapló
Munkaidő-őr: a futó műszak sora jelvényt kap, ha átlépte a
figyelmeztetési küszöböt („hosszú műszak"), illetve a felső határt
(„munkaidő túllépve") — a küszöbök konfigból jönnek
(Shift:LongShiftWarnHours / MaxShiftHours). A sofőr ugyanezt a
műszak-képernyője tetején látja. A rendszer nem zárja le a műszakot és
nem tiltja a munkát: a vezetési- és pihenőidő megítélése a szolgáltató
felelőssége — a platform dolga a jelzés.
A műszakok listája (sofőr névvel, idők, jármű) + a napi beosztás-kártya + diszpécseri korrekció (indoklás-köteles). A járat-futásoknál látszik a sofőr zárási megjegyzése és ide kerülhet a diszpécser-indoklás is.
4.8 Elszámolás
- Díjszabás-kártyák: óradíj / km-díj / járatdíj / havi fix + éjszakai/hétvégi/ünnepnapi szorzók, érvényesség-kezdettel; sofőrönkénti felülbírálás.
- Havi kimutatás: generálás → tételes nézet (műszak-alapú: óra+km az alap, a köztes várakozás is fizetett) → jóváhagyás → PDF/CSV export (a PDF a sofőr-átadásokat szakaszonként bontja).
4.9 Foglalások, Közlemények, OTP-gráf, Funkciókapcsolók
- Foglalások: transzfer-foglalások kezelése (a white-label widgetből is ide érkeznek), Barion-fizetéssel.
- Közlemények: ServiceAlert-ek írása → a publikus
service-alerts.pb-ben és push-ban jelennek meg. - OTP-gráf: az útvonaltervező gráfjának építése egy gombbal (a build a CI-gépen fut, nem a szerveren). Előfeltétel: publikált feed — enélkül a generálás nem indul (a terület a publikált feed megállói köré számolódik). A térképen látható javasolt területtel a Gráf generálása azonnal indítható; a *Beállítások mentése* csak akkor kell, ha a területet vagy a haladó OSM-URL-t módosítod.
- Funkciókapcsolók: az ügyfél
agency.*flagjei — DE a csomag-szinkron felülírhatja (az előfizetés a forrás-igazság).
4.9/b Integrációk és Napi nyomvonal
- Integrációk: itt adod ki az adataidat másoknak. Publikus feed-címek
(statikus GTFS + valós idejű feedek) készen másolható URL-ként — ezt kérik
az aggregátorok és az utastájékoztató rendszerek; a cím publikáláskor sem
változik. SIRI-előfizetés: aki nem lekérdezni akar, hanem kapni —
megadja a fogadó címét, és küldjük neki a változásokat. A soron látszik az
utolsó kézbesítés ideje és az egymást követő hibák száma: ha a másik
oldal elromlik, azt itt látod meg, nem attól, hogy felhív.
- Napi nyomvonal: egy sofőr napi mozgása szakaszokra bontva (járat, üres
járat/garázsmenet, járat nélküli szakasz). Külön engedélyhez kötött,
mert egy ember teljes napját mutatja. Ahol nem volt hálózat, ott a hézag
meg van jelölve — nem húzunk oda egyenest, mert az kitalált útvonal
lenne, ami bizonyítéknak látszik.
4.10 Tarifa és jegyek (alapból csak admin)
Három fül, mert három különböző kérdés — és három különböző gyakoriság:
- Díjszabás: *egységes díj* (egy ár az egész hálózaton) vagy *kilométer-sávos*
(a magyar távolsági minta). A sávok nem fedhetik egymást; a megkezdett kilométer
is fizetendő, és a legfelső sáv fölötti távolságra a legdrágább sáv ára jár.
A zónás árazás nem itt van: azt a menetrendi adat (GTFS-Fares V2) hordozza.
- Jegyek és bérletek: amit az utas megvehet az appban — egyszeri jegy,
időalapú jegy (perc), bérlet (nap). A *kedvezmény-kategória* (diák, nyugdíjas)
szabad szöveg: a jogosultságot a sofőr ellenőrzi, ahogy ma papíron is.
A távolsági jegynél az árat a km-sáv adja, nem a beírt ár.
- Kiutalás: a jegybevétel a platform fizetési fiókjába érkezik, és
időszakonként utaljuk ki. A tábla a bruttót, a jutalékot és a ténylegesen
utalt nettót mutatja, banki hivatkozással. Az időszakokat havonta
automatikusan zárjuk; a jóváhagyás és a kifizetés a platform dolga (nálunk,
a Back-office-ban történik) — ez az oldal a te kimutatásod.
Ez nem az előfizetés. Az előfizetés a szoftver ára (mi számlázunk neked),
a kiutalás a te jegybevételed nálunk (mi fizetünk neked). A kettő külön mozog.
A/feeds/…/faresoldal más: az a GTFSfare_attributesszerkesztője a
menetrendi adatban. Ez az oldal az értékesítés.
4.11 Előfizetésem (csak admin)
Jelenlegi csomag + funkciók, csomagváltás/add-on-vásárlás (fizetés után lép életbe; ingyenes azonnal), számlatörténet: Barion-fizetés + dokumentum-letöltések — Díjbekérő (fizetés után is), Számla, Sztornó külön gombokkal (a valódi Billingo-PDF-ek).
5. AT sofőr-app (Android)
- Belépés: e-mail + jelszó (+2FA-kód, ha kell). Első belépésnél kötelező jelszócsere; megkövetelt 2FA-nál kötelező beállítás (a titkos kulcs koppintásra másolható a hitelesítő appba).
- Műszak-képernyő: cégválasztó (több tagságnál legördülő), jármű-azonosító mező → Műszak indítása. A műszak a fizetett idő kerete — a köztes várakozás is beleszámít.
- Mai járataim: a diszpécseri beosztás — „Mai beosztásod: 06:10 – 14:30 · N járat" összefoglalóval; járatonként menetrendi idő, beosztott jármű, diszpécser-üzenet. Egy koppintás az indítás; a kezdő-megálló közelében (geofence) az app magától felajánlja.
- Futó járat: GPS megy a háttérben (értesítés-sávval); a végállomásnál zárás-javaslat. Zárás: dialógus — üresen hagyva „teljesült", kitöltve a nem-teljesülés indoklása (a diszpécser látja).
- Műszaki hiba / Elakadtam / Megtelt / Terelés: kézi gombok — a járat INTERRUPTED lesz, a műszak (fizetett idő) NEM zárul, a diszpécser dönt.
- Profilom (fejléc-ikon): saját név/becenév/telefon + Elszámolásom — csak a rád érvényes, nem nulla díj-komponensek látszanak (ha csak járatdíj van, nem az óra számít).
- QR-beolvasás: egy szkenner, kétféle kód — a foglalás-QR-t és a jegy-QR-t is
ez olvassa, nem kell választani. Teljes képernyős zöld/piros válasz. Jegynél
nincs külön „beszállítás jelölése": az egyszeri jegyet maga a beolvasás
aktiválja, a bérlet pedig nem fogy.
Hálózat nélkül is működik: a készülék helyben ellenőrzi a jegy
aláírását, és borostyán válasszal engedi tovább az utast (nem zöld —
azt, hogy felhasználták-e már, csak a szerver látja). A beolvasás
sorba kerül, és kapcsolatnál magától feltöltődik; a kamerás nézet alján
látod, hány ilyen vár még.
- Hiba jelentése + verziócímke a belépő-képernyőn is.
6. AT utas-app (iOS + Android)
- Közelben (főoldal): kereső-mező, kedvenc-megálló gyorsgombok, a 8 legközelebbi megálló a következő indulásokkal és távolsággal; lehúzásra frissül. Helyzet-engedély nélkül a demó-terület közepét mutatja (jelzéssel).
- Keresés: megállóra ÉS vonalra, csillaggal kedvencelés; vonalra koppintva napi menetrend dátum-lapozóval.
- Térkép: megálló- és élő jármű-rétegek (ki-be kapcsolhatók), járat-követés (a kiválasztott jármű mozgása élőben), útvonalterv-ikon. A jármű-ikon a típust mutatja (busz / trolibusz / villamos), az alacsonypadlós járat külön jelölést kap; a vonalak a menetrendi színükkel rajzolódnak. A gyalogos rávezetés a megállóig iránytű-követő: a térkép arra fordul, amerre nézel, mint a mobilos navigációkban. A térkép a sötét módot is követi.
- Megálló-nézet: következő indulások visszaszámlálással, dátum-választóval egy adott nap teljes kínálata; késés-jelzés (−1/+5 perc szabály szerint).
- Kedvencek: megállók / vonalak / járatok külön szekcióban; megállónál dátum-gomb, vonalnál napi menetrend; bármelyikről indítható élő követés (átvált a térképre).
- Útvonaltervezés: A→B az OTP-vel (ha a gráf megépült), térképes útvonal-rajzzal. Az ajánlat-kártyák lépésenként, olvashatóan sorolják a teendőt: gyaloglásnál mennyit és hová sétálj, járatnál hol szállj fel, hol szállj le és hány megálló az út.
- Jegyek: két nézet egy fülön — *Jegyeim* (a megvett jegyek, felmutatható
nagy QR-rel) és *Foglalásaim*. A jegy alatt a megvásárolható termékek: a
vásárlás Barion-fizetőoldalra visz, visszatérve frissítéssel jelenik meg a
jegy. Az egyszeri jegy a felszálláskor, az első beolvasáskor aktiválódik —
előre nyugodtan megvehető.
Távolsági jegynél előbb a honnan–hova megállót kell kiválasztani; az
árat ezután a rendszer számolja ki a menetrendi kilométerből, és még a
fizetés előtt kiírja (a km-sávval együtt).
- Fiók: bejelentkezés/regisztráció, push-értesítések, fiók-törlés (store-követelmény).
- Hálózat nélkül is használható: az app a legutóbb látott menetrendi
válaszokat eltárolja, és kapcsolat híján ezekből mutat — a képernyő
tetején sáv jelzi, hogy tárolt adatot látsz (élő járműpozíció és
útvonaltervezés offline nincs).
6/b. AT Felmérő app (Android)
Terepi menetrend-felmérés olyan szolgáltatónak, akinek nincs kész
menetrendi adata — az app végigkísér az útvonalon, és megállónként rögzít.
- Belépés: ugyanaz a fiók, mint a többi felületen.
- Felmérés: útvonalon végighaladva megállók felvétele
GPS-koordinátával, névvel és fényképpel (kamera) — a fotó később a
megálló azonosítását segíti a szerkesztésnél.
- Offline is működik: a felmérés először a készülékre mentődik, és a
kezdőképernyő Függő felmérések listájából bármikor feltölthető —
terepen gyakran nincs térerő, egy kész felmérés nem veszhet el.
- Feltöltés után az adat draft feedbe kerül, és a Console Feedek
oldalán szerkeszthető/publikálható tovább.
- Az app 6 nyelven beszél (hu/en/de/es/it/el), a rendszernyelvet követi;
a neve nem-magyar nyelveken AT Surveyor.
7. Publikus feedek (integrációk)
Back-office → Ügyfelek → Megnyitás → „Publikus feed-URL-ek" doboz adja a kész címeket:
/feeds/{agencyId}/gtfs.zip— a legutóbbi publikált menetrend (első letöltés generál és cache-el; új publikálás automatikusan új tartalmat ad).vehicle-positions.pb/trip-updates.pb/service-alerts.pb— élő GTFS-RT.
8. E-mailek — mikor mi megy ki
| Esemény | Levél |
|---|---|
| Új user meghívása (tag vagy tenant-admin) | belépési adatok + „első belépéskor jelszót kell váltanod"; nem-sofőr szerepnél a Console belépési linkje, sofőrnél a sofőr-app letöltési linkje (ha a Clients:DriverAppUrl be van állítva) |
| Meglévő user hozzáadása egy céghez | „X cég hozzáadott a csapatához" (jelszó nélkül) |
| Support jelszó-reset | új ideiglenes jelszó |
| Új platform-staff | Back-office belépési adatok |
| Impersonáció | értesítés az érintett usernek |
| Utas jelszó-visszaállítás / e-mail-csere | visszaállító, ill. megerősítő link — az app nyelvén (6 nyelv) |
Minden levél egységes, AT-arculatú HTML-ben megy (mellette sima szöveges
változat a régi levelezőknek). Feltétel: működő SMTP (Beállítások →
E-mail). Ha nincs, minden működik, csak a felület kézi jelszó-átadást kér.
9. Mi minek a függvénye (hibakeresési térkép)
| Ha ez nem működik… | …ezt ellenőrizd |
|---|---|
| Élő járművek nincsenek a térképen | van-e publikált feed; fut-e pozíció-forrás (sofőr-app műszak+járat / szimulátor / Ügyfél-adatforrás URL); Back-office feed-egészség: RT-frissesség és letöltési hibaarány |
| Nem jön meghívó/reset e-mail | Beállítások → E-mail (SMTP) + a felület úgyis kiírja a jelszót kézi átadásra |
| Az utas nem kap jelszó-visszaállító levelet | ugyanaz az SMTP-beállítás; az app SZÁNDÉKOSAN ugyanazt írja ki akkor is, ha a cím nem létezik (különben ki lehetne deríteni, ki regisztrált) — a tényleges küldési hibát a Rendszer-riasztások mutatja |
| Üres a Verziók kiadás-lista | Releases:IngestSecret + a GitHub RELEASES_INGEST_SECRET (teendő-doksi 8/b) |
| Útvonalterv nem ad eredményt | OTP-gráf megépült-e ÉS fut-e (Operator Console → OTP-gráf: az állapotnak „Fut"-nak kell lennie). Ha az állapot Hibás, a hibaüzenet tartalmazza a konténer utolsó log-sorait |
| Az OTP-gráf megépül, de a tervezés mégis „nincs bekötve" | a gráfot építő és a futtató OTP-verziónak egyeznie kell — mindkét helyen ugyanaz a rögzített image-digest (deploy/docker-compose.yml és deploy/otp-graph-builder/run-build.sh); verzió-váltás után minden gráfot újra kell építeni |
| Az ügyfél státusza Trial marad | ez a létrehozás alapállapota — a Back-office → Ügyfelek → Aktiválás gombbal lesz Active (nincs automatikus léptetés) |
| OTP-gráf generálása „nincs publikált feed" hibával áll meg | előbb a Feedek oldalon importálj GTFS-t és publikáld — a gráf területe a publikált feed megállóiból számolódik |
| Számla-letöltés csak „összesítőt" ad | Billingo-kulcs beállítva? 0 Ft-os számlának nincs Billingo-dokumentuma |
| Sofőr nem látja a beosztását | a beosztás a MAI szolgálati napra szól-e; a sofőr a jó céget választotta-e a műszaknál |
| Publikus gtfs.zip 404 | az ügyfélnek nincs publikált feedje |
| GTFS-feltöltés „túl nagy fájl" hibával áll meg | Uploads:MaxUploadMb (Beállítások → Adatforrások); módosítás után API-újraindítás |
| A belépés „mindent 403-mal dob" | kötelező jelszócsere vagy 2FA-beállítás van függőben — a belépő-képernyő mutatja |
| Egy tag nem lát egy menüpontot / 403-at kap egy képernyőn | Képernyő-engedélyek: a szerep-alap vagy egy tagonkénti tiltás zárja ki (Tagok → adatlap, ill. Back-office → Platform-staff → adatlap) |
10. Nyelvek és akadálymentesség
Mind az öt felület (Back-office, Operator Console, sofőr-, utas- és Felmérő-app) 6 nyelvű (hu/en/de/es/it/el) — a webes felületeken a bal sáv nyelvváltójával, mobilon a rendszernyelvet követve. A kimenő utas-e-mailek is az app nyelvén mennek. A publikus jogi dokumentumok (/public/legal/*) szintén 6 nyelven érhetők el (az oldal tetején nyelvváltóval; az utas-app és a landing a saját nyelvét adja át) — a fordítások udvariassági jellegűek, jogi kérdésben a magyar változat az irányadó. WCAG-elvek: kontraszt, 48dp érintésméret, színfüggetlen státusz-jelzések.
11. Átfogó teszt-forgatókönyv
Végigjátszható sorrendben; minden lépésnél ott a hely, ahol az eredményt ellenőrzöd.
A. Platform-oldal (Back-office, platform-owner belépéssel)
- Beállítások → E-mail: SMTP kitöltve? (van — rackhost) → Ügyfelek → Új ügyfél egy SAJÁT teszt-e-maillel → ellenőrzés: megjött-e a meghívó-levél.
- Ügyfelek → Megnyitás: tagok névvel látszanak? Publikus feed-URL-ek doboz mutatja a 4 URL-t?
- Verziók: kiadás-lista + futó verziók; konténer-log megnyitása; (opcionális) újraindítás indoklással.
- Felhasználók → keresés a teszt-adminra → Megnyitás → Jelszó-reset → jött-e levél.
B. Ügyfél-oldal (Operator Console, a teszt-admin fiókkal)
- Belépés az e-mailben kapott ideiglenes jelszóval → kötelező jelszócsere-képernyő → csere → beenged.
- Tagok → Meghívás: egy sofőr (név+becenév+telefon, Driver) és egy diszpécser → a sofőr-meghívó levél megjött?
- Tagok → a sofőr adatlapján 2FA megkövetelése pipa (CSAK ha a sofőr friss app-buildet használ!).
- Feedek → új draft → GTFS zip import → validálás → publikálás. (Gyors teszthez a kézi mini-GTFS a jó.)
- Járművek: garázs + jármű felvétele (rendszám, kerekesszékes pipa).
- Beosztás: mai nap + vonal-szűrő → egy járat kiosztása a sofőrre, járművel és „garázsmenet"-üzenettel → Napi táblán megjelenik?
- Sofőrként belépés a KONZOLBA → tiltó üzenetet kapsz (ez a helyes viselkedés).
C. Sofőr-app
- Belépés a sofőr-fiókkal (ideiglenes jelszó → csere; ha 2FA-t követeltél: beállító-képernyő).
- Profilom: név/telefon átírása + Elszámolásom szakasz (ehhez a konzolon díjszabás-kártya kell — 4.8).
- Műszak indítása → Mai járataim: idők + jármű + üzenet látszik? → járat indítása → a konzol Élő térképén mozog?
- Járat zárása megjegyzéssel („nem teljesült, mert…") → Konzol → Műszaknapló: látszik a megjegyzés? Diszpécser-indoklás hozzáírása.
- Műszak zárása → Elszámolás: havi kimutatás generálása → a műszak benne van?
D. Utas-app
- Közelben: helyzet-engedély megadása → közeli megállók indulásokkal. (Berlinen kívül a demó-terület közepe jön — ez szándékos.)
- Keresés → vonal → napi menetrend → egy járat élő követése (átvált a térképre).
- Kedvencek: megálló csillagozása → dátum-gombbal másnapi indulások.
- Publikus feed: a 2. lépésben másolt
gtfs.zipURL letöltése böngészőből — érvényes zip jön?
E. Pénzügyek (opcionális kör)
- Back-office → Csomagok: csomag létrehozása árral → Ügyfél-adatlapon hozzárendelés → számla keletkezik → Billingo-díjbekérő letölthető? → kézi „fizetve" jelölés → hivatalos számla → Sztornó → mindhárom dokumentum letölthető a konzol Előfizetésem oldaláról is?
Ismert korlátok a teszthez: minden új mobil-funkció friss buildet igényel (git pull + build_runner a transit_core-ban); a külső statikus GTFS zip auto-importja és a külső ServiceAlerts-feldolgozás még második ütem (a beállítás elmenthető, a felület jelzi).