07 mar 2025·7 min czytania

Aplikacja do rejestracji odwiedzających z identyfikatorami QR: model danych i przepływy

Zaprojektuj model danych i przepływy rejestracji odwiedzających z identyfikatorami QR: alerty dla hostów, pytania BHP, dzienniki awaryjne i eksport historii odwiedzin.

Aplikacja do rejestracji odwiedzających z identyfikatorami QR: model danych i przepływy

Jaki problem musi rozwiązywać proces rejestracji

Proces rejestracji to nie tylko cyfrowa księga gości. Decyduje, kto jest w środku, kogo odwiedza i co trzeba zrobić dalej. Jeśli jest dobrze zaprojektowany, recepcja pracuje spokojnie, a masz wiarygodne zapisy do późniejszych audytów.

Papierowe listy zawodzą w przewidywalny sposób: nazwiska są nieczytelne lub źle zapisane, brak jest godzin, ludzie zapominają się wyrejestrować. Kartka na blacie może też ujawniać dane prywatne — każdy może zobaczyć poprzednie wpisy. Kiedy sytuacja zmienia się szybko (host utknął na spotkaniu, odwiedzający odpowiedział na pytanie bezpieczeństwa z czerwonym flagiem), personel zaczyna gonić ludzi telefonami.

Dobry wynik jest prosty: check-in trwa poniżej minuty, identyfikator jest czytelny i skanowalny, a host dostaje właściwe powiadomienie bez spamowania. Każda wizyta staje się czystym zapisem: kto, kiedy, gdzie, dlaczego i jakie były odpowiedzi — możliwym do eksportu na potrzeby audytu czy dochodzenia.

Zanim zaczniesz projektować, zamknij zakres. Większość zespołów zaczyna od kilku typów wizyt: goście na miejscu, wykonawcy (z dodatkowymi krokami BHP), dostawy (czasem bez identyfikatora, ale z zaznaczonym czasem) oraz rozmowy kwalifikacyjne (z większymi wymogami prywatności).

Zdecyduj też, gdzie doświadczenie będzie dostępne. Tablet-kiosk jest najlepszy dla szybkości i spójności. Aplikacja webowa dla recepcjonisty nadaje się lepiej do wyjątków, poprawek i reprintów. Opcja mobilna może pomóc hostom lub ochronie zweryfikować check-iny QR z dala od recepcji.

Role, uprawnienia i zdarzenia, które musisz śledzić

Aplikacja do rejestracji odwiedzających żyje lub umiera przez dwie rzeczy: jasne role i czysty ślad zdarzeń. Jeśli którakolwiek z tych części jest niejasna, dostaniesz brakujące alerty, chaotyczne eksporty i logi, którym nikt nie ufa.

Role do zaplanowania

Na początek trzymaj role prosto:

  • Odwiedzający: podaje własne dane i odpowiada na pytania, nie widzi innych wizyt.
  • Gospodarz: widzi wizyty przypisane do siebie, potwierdza przybycia i może żądać działań (np. eskorty).
  • Recepcjonista (front desk): tworzy wizyty, poprawia oczywiste literówki podczas check-inu, reprintuje identyfikatory i przeprowadza wyrejestrowania.
  • Ochrona: widzi kto jest aktualnie na miejscu, pomaga przy spisach awaryjnych i przegląda notatki o incydentach.
  • Administrator: zarządza site'ami, politykami i eksportami, łącznie z zasadami retencji.

Granice uprawnień są najważniejsze wokół danych osobowych i raportowania. Zdecyduj wcześnie, kto może przeglądać numery telefonów, dane dowodów tożsamości czy zdjęcia odwiedzających oraz kto może eksportować historię. Często przyjmuje się regułę: recepcja prowadzi przepływ, ochrona widzi aktualną obecność na miejscu, a tylko admini eksportują pełną historię.

Zdarzenia, które zawsze powinieneś rejestrować

Myśl w kategoriach zdarzeń, a nie jednego wiersza „wizyta”, który jest edytowany w czasie. To są momenty, które będziesz potrzebować później do audytu i rozwiązywania problemów:

  • Check-in completed (timestamp, urządzenie, site)
  • Badge issued (ID identyfikatora, wartość QR, wydrukował)
  • Host notified (używany kanał, status dostarczenia)
  • Safety answers submitted (jaki zestaw pytań lub wersja była pokazana)
  • Check-out (kto wyrejestrował, jak, kiedy)

Uczyń krytyczne zdarzenia audytowalnymi i append-only (check-in, powiadomienie, check-out). Pozwól na ograniczone edycje tylko w polach często błędnych (pisownia imienia, firma) i zapisuj, co się zmieniło i kto to zmienił.

Podstawowy model danych: odwiedzający, wizyty, identyfikatory i site'y

Niezawodny system zaczyna się od czystego modelu. Kluczowa idea to rozdzielenie osoby od zdarzenia jej przybycia na miejsce. Powtarzający się odwiedzający ma jeden rekord, a każde przyjście staje się nową wizytą.

Zacznij od dwóch podstawowych tabel: Odwiedzający i Wizyty.

  • Odwiedzający to osoba (imię i nazwisko, telefon, e-mail, firma, opcjonalne zdjęcie lub notatka o dowodzie).
  • Wizyta to pojedyncze zdarzenie (data, cel, kogo odwiedza, gdzie się kieruje).

Jeden Odwiedzający może mieć wiele Wizyt.

Dodaj Gospodarzy i Site'y, aby twoje logi odzwierciedlały sposób działania biznesu. Gospodarze to pracownicy lub najemcy, którzy otrzymują alerty. Site'y reprezentują lokalizacje fizyczne (siedziba, Magazyn A). Jeśli później potrzebujesz więcej szczegółów, możesz dodać strefy (lobby, piętro, strefa chroniona) bez łamania podstaw.

Tabele, których naprawdę potrzebujesz

Trzymaj to w małej liczbie:

  • Odwiedzający
  • Wizyty
  • Gospodarze
  • Site'y
  • Identyfikatory (Badges)
  • Urządzenia (kiosk/tablet/drukarka)

Identyfikatory powinny być przypisane do Wizyty, a nie trwale do Odwiedzającego. Zapobiega to zamieszaniu, gdy zapasy identyfikatorów są ponownie używane, zgubione lub wydrukowane dwukrotnie.

Statusy i znaczniki czasu, które mówią prawdę

Wizyty potrzebują znaczników czasu i statusu, który odpowiada temu, co personel mówi na głos. Przechowuj co najmniej created_at, checked_in_at, checked_out_at oraz canceled_at (lub flagę anulowania). Połącz to z jasnym statusem takim jak scheduled, arrived, checked_in, checked_out, no_show, canceled.

Przykład: ktoś jest zaplanowany na 10:00, przychodzi o 9:55 (status: arrived), potem kończy pytania i otrzymuje kod QR (status: checked_in). Jeśli wyjdzie bez wyrejestrowania, nadal masz checked_in_at i możesz posprzątać to później za pomocą reguły eksplicytnej.

Pytania bezpieczeństwa: jak modelować pytania i odpowiedzi

Pytania bezpieczeństwa pomagają tylko wtedy, gdy możesz ufać historii później. Częstym błędem jest zapisywanie odpowiedzi w profilu odwiedzającego, co nadpisuje to, co powiedział ostatnio. Traktuj pytania jako szablony, a odpowiedzi jako zapisy per-wizyta, aby każdy check-in zachował własny snapshot.

Prosta struktura działa dobrze:

  • Szablon pytania definiuje, co pytasz.
  • Odpowiedź wizyty przechwytuje, co zostało odpowiedziane podczas konkretnej wizyty.

Szablony pytań kontra odpowiedzi per-wizyta

Utrzymuj szablony stabilne i zapisuj dokładny tekst pokazany (lub wersję szablonu) razem z odpowiedzią. Jeśli później zmienisz sformułowanie, starsze wizyty nadal powinny pokazywać, co dana osoba faktycznie zobaczyła.

Zestawy pytań pozwalają pokazywać różne pytania w zależności od kontekstu, na przykład site'u, typu odwiedzającego, okna czasowego (tymczasowe zasady), zespołu hosta lub języka.

Typy odpowiedzi i flagi akcji

Planuj więcej niż tak/nie. Częste typy to tak/nie, krótki tekst, podpis, zdjęcie oraz przesyłanie dokumentu (np. polisa ubezpieczeniowa). Przechowuj metadane pliku (nazwa, typ, timestamp) i kto go zebrał.

Dodaj flagę „wymagana akcja” w szablonie oraz regułę typu „jeśli odpowiedź to TAK, utwórz alert bezpieczeństwa.” Przykład: „Czy przewozisz przedmiot zabroniony?” Jeśli odwiedzający odpowie tak, wizyta może przejść do stanu przeglądu i wymagać zatwierdzenia przed wydrukowaniem identyfikatora.

Alerty dla hostów: wyzwalacze, kanały i śledzenie powiadomień

Śledź każdy event audytu
Loguj check-iny, powiadomienia, edycje i wyrejestrowania jako append-only zdarzenia gotowe do eksportu.
Zbuduj logi

Alert dla hosta powinien odpowiedzieć na jedno pytanie szybko: „Czy muszę teraz coś zrobić?” Zwykle oznacza to krótką wiadomość zawierającą kto przybył, gdzie jest, po co i czy wymagana jest aprobata.

Co powinno wyzwalać alert

Utrzymuj wyzwalacze przewidywalne, żeby hosty im ufały:

  • Gość dokonuje check-inu przy recepcji
  • Zaplanowana wizyta spóźnia się o ustalony czas (np. 10 minut)
  • Odpowiedź bezpieczeństwa tworzy flagę ochrony
  • Przybycie VIP (zwykle z innym priorytetem)

Powiąż wyzwalacze z danymi: site, typ wizyty i preferencje hosta, zamiast hardkodować wyjątki.

Kanały, deduplikacja i śledzenie

Używaj wielu kanałów, ale nie wysyłaj wszystkich za każdym razem. Dobry domyślny ustaw to jeden główny kanał, plus powiadomienie na ekranie recepcjonisty, jeśli dostawa zawiedzie.

Trzymaj reguły proste:

  • Dedupe key: (visit_id + trigger_type + host_id) w krótkim oknie
  • Priorytet: normalny vs pilny (pilne może próbować drugiego kanału)
  • Ciche godziny: respektuj godziny pracy per host lub site

Śledź każde powiadomienie jako osobny rekord, żeby można było audytować, co się wydarzyło. Przechowuj status (sent, delivered, failed), szczegóły błędu, liczbę prób i czasy retry. Jeśli wiadomość zawiedzie, przejdź do prostej akcji recepcji, np. „Zadzwoń do hosta.”

Dzienniki awaryjne: rejestrowanie obecności, którym można ufać

Powiadamiaj hostów wiadomościami
Wysyłaj powiadomienia do hostów przez e-mail, SMS lub Telegram za pomocą wbudowanych modułów.
Dodaj powiadomienia

Dziennik awaryjny to nie to samo co normalny rekord odwiedzającego. To migawka ograniczona czasowo, na którą możesz polegać podczas ćwiczeń, ewakuacji lub prawdziwego incydentu, nawet jeśli ktoś później zapomni się wyrejestrować.

Zdefiniuj typy zdarzeń i reguły z góry. Ćwiczenie można zaplanować i uruchomić przez personel. Incydent może utworzyć uprawniony użytkownik, a potem potwierdzić go safety lead. Powiąż każde zdarzenie awaryjne z site (opcjonalnie strefą), aby odpowiadać na pytanie: „Kto powinien być tu teraz?”

Dla każdego wpisu w dzienniku awaryjnym przechowaj minimalne pola, które czynią go wiarygodnym:

  • Typ zdarzenia, site i opcjonalnie strefa
  • Czas rozpoczęcia, zakończenia i status (open, closed)
  • Kto był na miejscu na start (odwiedzający, wykonawcy, pracownicy)
  • Potwierdzenia (kto potwierdził liczenie, kiedy i z jakiego urządzenia)
  • Tożsamość aktora dla każdej zmiany (created_by, closed_by, edited_by)

Utrzymuj te rekordy jako append-only. Jeśli ktoś poprawi nazwisko lub oznaczy osobę jako bezpieczną, zapisz nową timestampowaną akcję zamiast nadpisywać stare wartości.

Najszybszy zysk to jeden przycisk „Lista aktualnie obecnych”, który pobiera wszystkie aktywne wizyty dla site i zamraża listę w zdarzeniu awaryjnym. Uczyń to łatwym w użyciu pod presją: widok z dużą czcionką, eksport CSV/PDF oraz filtracja po strefach i „jeszcze nie potwierdzonych”.

Krok po kroku: pełny przepływ check-in i check-out

Przepływ powinien działać zarówno dla osób zarejestrowanych wcześniej, jak i dla gości przychodzących spontanicznie, i pozostawiać czysty ślad: kto przybył, kto zatwierdził, kto jeszcze jest na miejscu i kiedy wyszedł.

Przebieg check-in (od zaproszenia do identyfikatora)

Jeśli możesz, zacznij wcześniej niż przybycie odwiedzającego. Wstępna rejestracja tworzy Wizytę przypisaną do osoby, site, hosta i okna czasowego. Wyślij wtedy kod QR powiązany z tą konkretną wizytą, aby recepcja nie musiała zgadywać.

Przy kiosku odwiedzający skanuje kod QR lub recepcjonista wyszukuje po imieniu, firmie lub telefonie. Pokaż szybkie potwierdzenie tożsamości (np. pełne imię i nazwisko i firma) przed kontynuacją, żeby nie sprawdzić złego „Jan K.”.

Następnie zbierz pytania bezpieczeństwa i potwierdzenia. Zapisz każdą odpowiedź jako oddzielny rekord z timestampem i dokładnym brzmieniem pokazanym.

Po przejściu wymaganych kontroli wydaj identyfikator i powiadom hosta. Identyfikator powinien zawierać unikalny token QR przypisany do aktywnej Wizyty, a nie do osoby. Wyślij alert do hosta i zapisz status dostarczenia, próby retry oraz (jeśli wspierane) odczyt lub potwierdzenie.

Przebieg check-out (w tym automatyczne wyrejestrowanie)

Wyrejestrowanie powinno być równie szybkie: zeskanuj QR z identyfikatora, potwierdź wizytę i ustaw check_out_time.

Dla brakujących wyrejestrowań użyj reguły końca dnia per site, która oznacza wizyty jako auto checked-out i loguje powód. To utrzymuje zliczenia w sytuacjach awaryjnych bardziej wiarygodne.

Przykład: wizyta wykonawcy z flagą bezpieczeństwa

Prototypuj przepływy z QR
Utwórz krótkotrwałe tokeny QR, reprinty i zasady wyrejestrowania w jednym workflow.
Wypróbuj AppMaster

Wykonawca o imieniu Jordan przybywa 20 minut wcześniej, żeby serwisować jednostkę HVAC. Przy recepcji Jordan używa kiosku i skanuje kod QR (lub otrzymuje go, jeśli to pierwsza wizyta). System tworzy nową Wizytę przypisaną do site, oczekiwanego hosta i ID identyfikatora.

Podczas check-inu Jordan odpowiada na krótki zestaw pytań BHP. Jedno pyta: „Czy wykonywałeś prace na gorąco w ciągu ostatnich 24 godzin?” Jordan wybiera „Tak.” Ta odpowiedź jest oznaczona, więc status wizyty zmienia się na „Pending approval” zamiast „Checked in”. Timestamp oraz dokładne pytanie i odpowiedź są zapisane przy wizycie.

Recepcjonista ma trzy jasne opcje:

  • Zezwolić na wejście (override z powodem)
  • Odrzucić wejście (zarejestruj powód)
  • Poprosić o zatwierdzenie hosta (zalecane dla zflagowanych odpowiedzi)

Jeśli poproszono o zatwierdzenie, host jest natychmiast powiadamiany kto czeka, dlaczego jest zflagowany, gdzie się znajduje oraz dostaje przyciski decyzji (approve lub deny). Host widzi też skróconą historię wizyt, np. datę ostatniej wizyty i czy były poprzednie flagi.

Po zatwierdzeniu wizyta przechodzi na „Checked in”, a identyfikator staje się aktywny. Gdy Jordan wychodzi, recepcjonista (lub Jordan przy kiosku) dokonuje check-outu. Aplikacja zapisuje czas wyjścia, status zwrotu identyfikatora i krótką notatkę typu „Zrobiono wymianę filtra HVAC. Brak problemów.” Jeśli identyfikator nie zostanie zwrócony, to również jest to zarejestrowane.

Częste błędy powodujące złe logi i pominięte alerty

Złe dane zwykle zaczynają się od jednego skrótu w przepływie. System jest użyteczny tyle, ile audytowalny jest ślad, gdy ktoś zapyta: „Kto tu był, kiedy i kto to zatwierdził?”

Częstym błędem jest mieszanie tożsamości odwiedzającego z historią wizyt. Osoba powinna pozostać stabilna w czasie, a każde przybycie powinno być osobnym rekordem. Jeśli nadpisujesz pole „obecna_wizyta” w profilu odwiedzającego, tracisz możliwość audytu powtórnych wizyt, hostów, odpowiedzi BHP i reprintów identyfikatorów.

Kody QR to kolejna pułapka. Jeśli kod QR nigdy nie wygasa, staje się wielokrotnego użytku i można go skopiować z fotografii. Traktuj QR jako krótkożyjący token powiązany z konkretnym wydaniem identyfikatora i wizytą, i unieważniaj go przy wyrejestrowaniu.

Edycje bez śladu niszczą zaufanie. Jeśli personel może zmieniać przeszłe odpowiedzi BHP, koniecznie zapisuj kto, co i kiedy zmienił oraz poprzednią wartość.

Awaria kiosku nie powinna sprowadzać się do „po prostu wpuść ich bez rejestracji”. Zaplanuj fallback, np. przepływ przez telefon pracownika, papierowy backup wprowadzony później albo tryb offline, który synchronizuje się po przywróceniu urządzenia.

Pominięte alerty często wynikają ze złożoności realnego świata:

  • Wiele site'ów korzystających z jednej bazy bez jasnego pola Site w wizytach i identyfikatorach
  • Wiele hostów na jedną wizytę (host główny, host zapasowy, skrzynka zespołowa)
  • Zmiana hosta w trakcie wizyty bez logowania reasignacji

Szybkie kontrole przed wdrożeniem

Skonfiguruj role i uprawnienia
Zdefiniuj dostęp recepcjonisty, hosta, ochrony i administratora bez pisania kodu.
Utwórz role

To zadziała tylko wtedy, gdy dane pozostaną spójne w ruchliwy dzień. Zanim postawisz to na tablecie recepcji, przeprowadź test "chaotycznego dnia": wiele przyjazdów jednocześnie, zgubiony identyfikator oraz host, który nie odpowiada.

Zacznij od rekordu wizyty. Każda wizyta powinna mieć jeden jasny status (pre-registered, checked-in, checked-out, denied, canceled) i znaczniki czasu odpowiadające rzeczywistości. Jeśli ktoś zacznie check-in i odejdzie, zdecyduj, co się dzieje po 5–10 minutach: auto-wygaszanie próby, czy pozostawienie jako „rozpoczęte” ale nie będące na miejscu.

Zweryfikuj cykl życia identyfikatora end-to-end. Kod QR powinien być łatwy do audytu: kiedy został wydany, kiedy stał się aktywny i kiedy został zwrócony lub wygasł. Jeśli identyfikator jest reprintowany, natychmiast unieważnij stary QR, żeby nie skończyć z dwoma „aktywnymi” identyfikatorami dla jednej wizyty.

Krótka lista kontrolna wystarczy:

  • Eksporty zgadzają się z tym, co personel widzi na ekranie (liczenia, zakresy dat, filtry site i host)
  • Ponowne wysłanie alertu nie tworzy duplikatów
  • Treść alertu jest użyteczna (imię odwiedzającego, site, host, flagi bezpieczeństwa)
  • Błędy dostarczenia są widoczne (sent, delivered, failed) i retry są bezpieczne
  • Ćwiczenie awaryjne może wygenerować listę obecnych w mniej niż dwie minuty

Eksportowalna historia odwiedzin: raportowanie, retencja i ślad audytu

Zbuduj MVP rejestracji
Szybko zamodeluj odwiedzających, wizyty i identyfikatory z no-code backendem i interfejsem kiosku.
Zacznij budować

Eksporty to moment, w którym system rejestracji staje się użyteczny do realnej pracy: zgodności, przeglądu incydentów i prostych pytań typu „Kto był tu we wtorek o 15:00?” Zdecyduj wcześnie, co jest „prawdą”, bo eksport będzie traktowany jako oficjalny zapis.

Wspieraj co najmniej CSV i XLSX. CSV jest najlepsze do audytów i importów. XLSX jest wygodniejsze dla wielu zespołów nie-technicznych.

Zdefiniuj stabilny zestaw pól i zachowaj ich znaczenie spójne w czasie. Praktyczne minimum obejmuje:

  • Visit ID (unikalny i nigdy nieużywany ponownie)
  • Tożsamość odwiedzającego (imię oraz stabilny klucz odwiedzającego)
  • Site i host
  • Znaczniki check-in i check-out (ze strefą czasową)
  • Identyfikator identyfikatora (wartość QR lub numer badge)

Trzymaj regułę "kto może eksportować" surową. Zwykle recepcja może przeglądać listę dnia, ochrona może eksportować zakres dat, a admini eksportują wszystko. Traktuj eksport jako osobne uprawnienie, a nie tylko „może widzieć wizyty”.

Zasady retencji, które przetrwają rzeczywistość

Napisz zasady retencji prostym językiem, żeby były stosowane konsekwentnie. Częste reguły to przechowywanie pełnych logów wizyt przez 12–24 miesięcy, anonimizacja danych osobowych po okresie retencji (z zachowaniem sum i znaczników czasu), dłuższe przechowywanie dzienników awaryjnych jeśli polityka tego wymaga oraz nigdy nie usuwanie śladów audytu, nawet jeśli anonimizujesz odwiedzającego.

Ślad audytu i żądania usunięcia

Dodaj pola audytu do każdego rekordu wizyty (created_by/at, edited_by/at) oraz do akcji eksportu (exported_by/at, export_scope, format pliku, liczba wierszy).

Dla żądań usunięcia unikaj twardych delete'ów, które łamią raporty. Bezpieczniejsze podejście to „usuwanie prywatności”: wyczyszczenie lub zahashowanie pól osobowych (imię, e-mail, telefon), zachowując Visit ID, znaczniki czasu, site, host i kody powodów, aby raportowanie pozostało spójne.

Kolejne kroki: przekształcanie planu w działającą aplikację

Przekształć model w trzy skoncentrowane ekrany: kiosk check-in (szybki, duże przyciski), dashboard recepcjonisty (dzisiejsze przyjazdy, nadpisy, reprinty) oraz widok hosta (kto przychodzi, kto jest na miejscu, kto wymaga uwagi). Gdy każdy ekran ma jedno zadanie, ludzie rzadziej obchodzą proces.

Następnie powiąż automatyzacje z eventami, a nie przyciskami. Każda zmiana statusu powinna być czymś, na co można polegać: created, checked in, badge issued, host notified, checked out i marked as left during an emergency sweep. Dzięki temu alerty nadal będą działać, nawet gdy różni pracownicy używają różnych urządzeń.

Pierwsze wydanie, które często wystarcza do uruchomienia, obejmuje jeden site, jeden kiosk, dashboard recepcjonisty, tworzenie i reprint identyfikatorów QR, podstawowe alerty do hostów ze śledzeniem dostarczenia, pytania BHP z jedną regułą przeglądu oraz eksport historii odwiedzin w zadanym zakresie dat.

Jeśli chcesz zbudować bez kodu, platforma taka jak AppMaster może pomóc w ustawieniu modelu bazy danych, workflowów i wielu front-endów (kiosk, web, mobile) wokół jednego shared źródła prawdy. Zacznij mało, pilotuj w jednym lobby, a potem skaluj, gdy logi i alerty pozostaną spójne pod realnym obciążeniem recepcji.

FAQ

Jak szybko powinien trwać check-in odwiedzającego w dobrym systemie?

Celuj w mniej niż minutę dla większości odwiedzających. Utrzymaj ścieżkę „happy path” na trzech krokach: zidentyfikuj wizytę (skan QR lub szybkie wyszukiwanie), odpowiedz na wymagane pytania, wydrukuj identyfikator i powiadom hosta. Wyjątki (poprawki literówek, zatwierdzenia, reprinty) przenieś na ekran recepcjonisty, żeby kiosk pozostał szybki.

Czy powinienem przechowywać dane odwiedzającego w rekordzie wizyty, czy osobnym profilu odwiedzającego?

Oddziel osobę od wizyty. Przechowuj stabilny rekord Odwiedzającego (dane identyfikacyjne i kontaktowe) i twórz nowy rekord Wizyty przy każdym przyjściu, dzięki czemu możesz audytować znaczniki czasu, hostów, odpowiedzi i wydania identyfikatorów bez nadpisywania historii.

Jak zapobiec ponownemu użyciu lub skopiowaniu identyfikatorów QR?

Traktuj kody QR jako krótkotrwałe tokeny powiązane z konkretnym wydaniem identyfikatora i konkretną wizytą. Unieważniaj token przy wyrejestrowaniu oraz przy reprintach, żeby nigdy nie mieć dwóch aktywnych kodów dla tej samej wizyty.

Jakie zdarzenia należy logować, aby audyty i dochodzenia były wiarygodne?

Używaj append-only zdarzeń dla momentów, które będą potrzebne później: zakończenie check-inu, wydanie identyfikatora, powiadomienie hosta, zapisanie odpowiedzi bezpieczeństwa oraz wyrejestrowanie. Gdy ktoś poprawia często błędne pole jak pisownia imienia, zapisz kto to zmienił, kiedy i jaka była poprzednia wartość.

Kto powinien mieć prawo przeglądać i eksportować historię odwiedzających?

Zacznij od prostych ról: odwiedzający, host, recepcjonista, ochrona i admin. Ograniczaj uprawnienia do eksportu; dobrym domyślnym ustawieniem jest: recepcjonista przeprowadza bieżący proces dnia, ochrona widzi aktualnie obecnych na miejscu, a tylko administratorzy mogą eksportować pełną historię.

Jak modelować pytania bezpieczeństwa, żeby historia się nie zniekształciła?

Przechowuj pytania jako szablony i zapisuj odpowiedzi per wizyta, łącznie z dokładnym brzmieniem lub wersją szablonu. Dzięki temu, jeśli zmienisz pytania później, stare wizyty nadal pokażą, co odwiedzający faktycznie zobaczył i odpowiedział.

Jak uniknąć spamowania hostów, jednocześnie mając pewność, że alerty dotrą?

Rejestruj każde powiadomienie jako osobny rekord ze statusem typu sent, delivered lub failed oraz szczegółami retry. Użyj reguły deduplikacji, na przykład jedno powiadomienie na hosta na dany trigger dla danej wizyty w krótkim oknie czasowym, i miej jasny fallback, gdy dostarczenie zawiedzie (np. przypomnienie na recepcji, aby zadzwonić do hosta).

Jaki jest najprostszy sposób na stworzenie listy obecnych na miejscu, której można ufać?

Dziennik awaryjny powinien zamrozić migawkę czasową listy osób obecnych na miejscu, nawet jeśli ktoś zapomni się wyrejestrować. Utwórz zdarzenie awaryjne dla danego site, skopiuj w nim wszystkie aktywne wizyty w tym momencie, a późniejsze potwierdzenia i zmiany zapisuj jako nowe, timestampowane akcje zamiast nadpisywania.

Jak postępować z odwiedzającymi, którzy zapomną się wyrejestrować?

Ustal przewidywalną regułę końca dnia dla każdego site, która oznacza nadal aktywne wizyty jako automatycznie wyrejestrowane i zapisuje powód. Zachowaj oryginalny czas zameldowania i upewnij się, że akcja auto-wyrejestrowania jest widoczna w logach, żeby nie sugerować, że osoba wyszła wcześniej.

Co powinno znaleźć się w pierwszym wydaniu aplikacji do rejestracji odwiedzających?

Zacznij od jednego site, jednego kiosku i jednego dashboardu recepcjonisty. Włącz drukowanie i reprint identyfikatorów QR, podstawowe alerty do hostów z śledzeniem dostarczenia, prosty zestaw pytań bezpieczeństwa z jedną regułą przeglądu oraz czysty eksport CSV/XLSX dla wybranego zakresu dat. Rozszerzaj gdy logi będą spójne w dniu rzeczywistego natężenia ruchu.

Łatwy do uruchomienia
Stworzyć coś niesamowitego

Eksperymentuj z AppMaster z darmowym planem.
Kiedy będziesz gotowy, możesz wybrać odpowiednią subskrypcję.

Rozpocznij