STOP Átkelőhely logó
"STOP" Átkelőhely
Gyalogos figyelmeztető rendszer

A program célja és küldetése

A Stop! Átkelőhely egy professzionális, háttérben futó védelmi és tájékoztató rendszer gyalogosok számára. A megoldás kettős küldetést teljesít:

  • Balesetmegelőzés: figyelmezteti a mobileszközt használó gyalogosokat a közeledő városi akadályokra.
  • Akadálymentesítés: élőszavas támogatást ad vak és gyengénlátó felhasználóknak.

Alapelv a térképmentes tájékozódás: az alkalmazás szenzoradatok és az OpenStreetMap (OSM) alapján, valós időben elemzi a veszélyforrásokat.

Funkcionális specifikáció

1) Intelligens környezetelemzés

  • Dinamikus lekérdezés: az app 500 x 500 méteres pufferben dolgozza fel az OSM adatokat.
  • Felismert akadályok: zebra, lépcső, járdaszegély, forgalomterelő oszlop, korlát, villamosvágány, utcai pad, szemetes, lámpaoszlop.
  • Irányérzékenység: csak a haladási irányba eső (30°-os sáv) és releváns távolságon belüli akadályokat jelzi.

2) Adaptív riasztási profilok

A rendszer két fő üzemmódot kezel, és intelligensen vált közöttük.

  • "Látó" üzemmód: vibráció, sípoló hang és képernyővillanás; opcionális intelligens szűrés; állítható riasztási távolság (5-25 m).
  • "Akadálymentesített" üzemmód: élőszavas bemondás (TTS) + kényszerített rezgés; folyamatos figyelés; 1 méteres biztonsági távolság; állapot-visszaállítás kikapcsoláskor.

Technikai kivitelezés (architektúra)

  • Adatkezelési réteg: `SettingsRepository` (Jetpack DataStore), `LocationRepository` (StateFlow).
  • Logikai és vezérlési réteg: `SettingsViewModel` (MVVM), `AlertCoordinator`, `ProtectionEvaluator`.
  • Végrehajtó réteg: `LocationService` (Foreground Service), `VoiceAlert` (TTS HU/EN), `OsmManager` (Overpass API + failover).

Biztonsági garanciák

  • Legalább egy aktív csatorna: nem kapcsolható ki egyszerre minden riasztási mód.
  • Védelmi vákuum elleni védelem: veszélyes visszaállítási állapot esetén kényszerített biztonsági reset.
  • Shake-to-Acknowledge: a riasztás fizikai rázással is nyugtázható.

UI és design irányelvek

  • Modularitás: újrahasználható komponensek (`SettingsToggle`, `SettingsSlider`).
  • Reaktív megjelenítés: az UI közvetlenül adatfolyamokat figyel, ezért a háttérbeli változások azonnal láthatók.
  • Konzisztencia: egységes színhasználat az aktív és tiltott állapotok egyértelmű megkülönböztetésére.