PWA dla pracowników i kierowników¶
Cel¶
PWA jest prostym, instalowalnym interfejsem do zadań terenowych i decyzji kierowniczych. Ma działać na zwykłym telefonie, także przy przerwanym internecie, bez udawania zaufanego workera. Telefon rejestruje zdarzenia, wyświetla stan i przekazuje decyzje do Control Plane; ciężkie modele, adaptery i bazy pozostają lokalnie na serwerze/workerach.
Wspólna karta modułu¶
| Pole | Kontrakt |
|---|---|
| Odpowiedzialności | uwierzytelnienie, role, cache offline, synchronizacja, push, formularze, zdjęcia, decyzje i receipt UI. |
| Wejścia | assigned jobs, formularze, zdjęcia/skany, lokalizacja za zgodą, podpis, komentarz, approval decision. |
| Wyjścia | eventy, artifact uploads, status, request zmiany, decyzja operatora i potwierdzenie synchronizacji. |
| Zależności | PWA gateway, identity, Artifact Store, workflow API, push provider lub lokalne powiadomienia. |
| Uprawnienia | per użytkownik/rola/projekt; brak worker IPC, DB i sekretów usług. |
| Autonomia | walidacja formularza, kolejka offline, przypomnienia; brak cichej decyzji za człowieka. |
| Walidacja | device/session revoke, offline conflicts, cross-user isolation, cache policy, accessibility, 320 px. |
| Awaria | tryb offline z datą świeżości, durable local queue, bezpieczne logout/wipe i ręczne rozstrzygnięcie konfliktu. |
PWA pracownika¶
Ekrany: Dzisiaj, Zlecenia, Grafik, Nieobecności, Skanuj, Wiadomości, Profil. Pracownik widzi tylko przypisane zadania i dane konieczne do wykonania. Może potwierdzić zmianę, rozpocząć dojazd, zgłosić blokadę, dodać zdjęcia, checklistę i podpis. Zakończenie zadania ma jawne kryteria, a brak pola nie jest uzupełniany przez AI jako fakt.
Tryb offline przechowuje ograniczony zestaw zleceń z expiry. Zdarzenia mają client sequence, device ID i lokalny czas, ale serwer zapisuje własny autorytatywny czas. Po powrocie sieci synchronizacja wykrywa, że zlecenie mogło zostać anulowane lub zmienione. Konflikt nie jest nadpisywany last-write-wins przy danych krytycznych.
PWA kierownika¶
Ekrany: Uwagi, Zespół, Pokrycie zmian, Zamiany, Nieobecności, Incydenty, KPI i Approvals. Kierownik widzi wyjątki, nie surowy strumień wszystkiego. Może zaakceptować candidate grafiku w granicach swojej roli, przydzielić właściciela, odesłać zadanie do poprawy i uruchomić eskalację. Nie otrzymuje automatycznie dostępu do prywatnych notatek czy surowych nagrań.
Powiadomienia¶
Powiadomienie zawiera minimalną treść, np. „Wymagana decyzja w sprawie zmiany 12/08”, a nie pełne dane wrażliwe na lock screen. Deep link wymaga aktywnej sesji i ponownego pobrania stanu. Push nie zawiera approval credential. Quiet hours, priorytety i kanał awaryjny są konfigurowane per rola.
Przykładowe polecenia¶
- „Pokaż pracownikowi tylko jutrzejszą zmianę i wymagane szkolenia.”
- „Pozwól zgłosić urlop, ale decyzję zostaw kierownikowi.”
- „Wyślij push dyżurnemu; jeśli nie potwierdzi w pięć minut, uruchom zatwierdzoną eskalację.”
- „Usuń dane offline tego urządzenia po jego oznaczeniu jako utracone.”
Pełny przebieg¶
Pracownik terenowy pobiera rano trzy zlecenia. W piwnicy traci zasięg, wykonuje checklistę i robi zdjęcia. PWA zapisuje zaszyfrowane eventy i bloby z kolejnością. W międzyczasie kierownik anuluje trzecie zlecenie. Po synchronizacji pierwsze dwa eventy są przyjęte, a trzecie trafia do konfliktu; aplikacja nie wysyła zdjęć do anulowanego zlecenia bez decyzji. Norbi tworzy raport i prosi kierownika o przeklasyfikowanie materiału lub usunięcie zgodnie z retencją.
Bezpieczeństwo urządzenia¶
Sesja jest krótka, wiązana z urządzeniem i może zostać revoked. Biometria odblokowuje lokalny klucz, ale nie zastępuje tożsamości serwera. Root/jailbreak, brak blokady ekranu lub nieaktualna wersja mogą ograniczyć funkcje. Screenshot i clipboard są kontrolowane tam, gdzie platforma pozwala, ale system nie składa niemożliwych obietnic pełnej ochrony na prywatnym telefonie.
Walidacja i scenariusz awaryjny¶
Testy obejmują utratę sieci podczas uploadu, duplicate submit, zmianę czasu, token expiry, dwa urządzenia, utratę telefonu, powtórny login innego pracownika, mało miejsca, permission denial kamery i konflikt roli. Przy kompromitacji urządzenia administrator revoke sesję i zleca wipe lokalnego cache przy następnym kontakcie. Ponieważ wipe może się nie wykonać na offline urządzeniu, ograniczona retencja i szyfrowanie pozostają podstawową ochroną.