Dashboard z widżetami, utrudnienia drogowe GDDKiA na mapie
Filip Borkowski, Backend/Frontend/Fullstack Engineer
Dashboard — widżety po zalogowaniu
Po zalogowaniu użytkownik widzi teraz konfigurowalne widżety z kluczowymi informacjami. Dostępne widżety to:
- Park maszyn — liczba pojazdów, aktywne GPS, lista pojazdów z ostatnią pozycją
- Mapa — szybki podgląd stanu GPS i utrudnień drogowych z linkiem do pełnej mapy
- Pracownicy — statystyki zespołu: aktywni, kierowcy, biuro
- Zlecenia — łączna liczba, nowe zlecenia, podział wg statusu
- Zadania — otwarte i zakończone zadania
- Czas pracy — dopasowanie kierowców GBOX z bazą pracowników
Każdy widżet można włączyć lub wyłączyć w panelu ustawień. Konfiguracja zapisuje się w przeglądarce i jest zapamiętywana między sesjami.
Utrudnienia drogowe GDDKiA na mapie
Zintegrowaliśmy dane z systemu KPD GDDKiA (DATEX II) — na mapie pojawiła się nowa warstwa „Utrudnienia GDDKiA", którą można włączyć checkboxem w panelu warstw.
Zdarzenia są oznaczone kolorowymi markerami w zależności od kategorii: wypadki (czerwony), pogoda (fioletowy), roboty drogowe (pomarańczowy), zarządzanie ruchem (niebieski) i inne. Po kliknięciu markera pojawia się popup z opisem, numerem drogi, datami i poziomem ważności.
Dane pobierane są z API GDDKiA w trybie SOAP Pull z podpisem WS-Security, a docelowo będą aktualizowane w czasie rzeczywistym dzięki trybowi Push.
Animowane markery GDDKiA z widocznym opisem
Warstwa GDDKiA zyskała pełnoprawne markery HTML z animowanym efektem pulsującego czerwonego kręgu. Każdy marker wyświetla zawsze widoczną ramkę z oznaczeniem drogi (duży czerwony badge, np. S8, A1) oraz skróconym opisem zdarzenia — bez konieczności klikania.
Po kliknięciu otwiera się rozbudowany popup z pełnym opisem, ograniczeniami, datami i poziomem ważności. Animacja CSS (trzy pierścienie SVG o rosnącym promieniu i zanikającej przezroczystości) sygnalizuje aktywne utrudnienie w widoczny sposób na tle mapy.
Zapis danych Push do Supabase
Endpoint /api/gddkia/push jest gotowy do odbierania komunikatów PushOnOccurrence z systemu GDDKiA. Każdy odebrany push jest zapisywany w bazie danych Supabase — zarówno jako log zdarzenia, jak i poszczególne sytuacje drogowe z upsert. Dane z Push mają priorytet przy wyświetlaniu na mapie.