GastroOps
Samodzielnie zbudowane offline-first PWA Nuxt 4 — projekt produktu, architektura, implementacja, testy i wdrożenie wykonane przez jednego developera — które zastępuje papierowe logi HACCP cyfrowym monitoringiem temperatur, zadaniami i ścieżkami audytu dla małych firm gastronomicznych.
Informacje o projekcie
- Rola
- Zdefiniowałem workflowy operacyjne i samodzielnie zbudowałem produkt, architekturę offline, integracje, testy oraz środowisko demo.
- Okres
- Lipiec 2026 · Niezależny prototyp produktu
- Zespół
- Projekt samodzielny · 1 developer

Wyzwanie
Małe firmy spożywcze — lodziarnie, kawiarnie, food trucki — potrzebują zgodności HACCP, ale papierowe logi są podatne na błędy i łatwo je zgubić. Rozwiązanie cyfrowe musi przetrwać niestabilny internet w sezonowych lub mobilnych lokalizacjach.
Kluczowa decyzja
Kolejkować każdą mutację lokalnie i synchronizować ją idempotentnie po powrocie sieci, aby praca HACCP nie zależała od połączenia.
Podejście
System powstał jako PWA Nuxt 4 z typowanym modelem domenowym i granicą repozytorium. Mutacje otrzymują idempotencyjne UUID, a endpoint synchronizacji przyjmuje ograniczone batch’e po powrocie sieci. Serwer ocenia zakresy temperatur, checklisty i wartości yes/no, otwiera niezgodności oraz wymusza działanie korygujące, retest i zamknięcie. Tryb demo używa repozytorium in-memory; adaptery serwerowe obejmują write-through do Baserow i ścieżkę SaaS opartą o SQLite.
Kluczowe elementy
- Kolejka offline z UUID i idempotencją dla kontroli, raportów dziennych i dostaw
- Ocena zakresów, checklist i yes/no ze stanami compliant, warning, critical i non-conformity
- Cykl działania korygującego wymagający retestu przed zamknięciem
- Uprawnienia według roli i lokalizacji oraz izolowany lookup urządzeń QR
- Traceability dostaw i partii produktów z kontrolami bezpieczeństwa
- Eksport kontroli sanitarnej z rekordami, rejestrami, audytem i informacją o zakresie
Architektura
- Nuxt 4 z Vue 3 i TypeScript strict
- Nuxt UI 4 i Tailwind CSS dla komponentów UI
- Pinia wyłącznie do kolejki offline
- Plugin Vite PWA dla service workera i cache
- API Nitro za interfejsami repozytoriów dla demo in-memory, Baserow i trybu SaaS na SQLite
- Walidacja Zod na wszystkich granicach danych
- Testy jednostkowe Vitest i e2e Playwright
Weryfikacja
- Testy kontraktu repozytorium pokrywają idempotencję, izolację QR, korekty, metryki dashboardu, zatwierdzanie szablonów i dostawy
- Playwright prowadzi temperaturę poza zakresem przez niezgodność, działanie korygujące, retest i zamknięcie
- Schematy Zod walidują requesty API i reguły między polami na granicach serwera
Obecne ograniczenia
- Domyślne publiczne demo przechowuje stan w pamięci procesu, jeśli nie skonfigurowano opcjonalnego snapshotu
- Adapter Baserow działa write-through i nie ma jeszcze kompletnego cache odczytów
- Podpisywane uploady R2/S3 oraz przygotowana ścieżka Postgres nie są ukończonymi funkcjami produkcyjnymi
Rezultat
Kompletny źródłowo prototyp operacyjny z deterministycznym demo, przetestowanymi workflow HACCP i opisanym self-hostingiem. Trwałe wdrożenie multi-tenant nadal wymaga wyboru i konfiguracji produkcyjnego trybu repozytorium.
Wewnątrz produktu


