1. Wprowadzenie
iBeer to zintegrowany ekosystem do zarządzania barami piwnymi. System składa się z dwóch głównych modułów:
- BeerBase — publiczna baza piw i browarów. Każdy może przeglądać katalog piw, czytać i wystawiać recenzje, oraz sprawdzać dostępność piw w barach.
- BMS (Bar Management System) — system zarządzania barem. Dostępny dla personelu baru. Umożliwia zarządzanie kranami, telewizorami, menu i asortymentem.
Sekcje widoczne na tej stronie zależą od Twojej roli w systemie. Jeśli jesteś zalogowany jako pracownik baru, zobaczysz dodatkowe sekcje dotyczące BMS. Administratorzy widzą pełną dokumentację.
| Moduł | Dla kogo | Dostęp |
|---|---|---|
| BeerBase | Każdy użytkownik | Publiczny |
| BMS | Personel baru | Wymaga logowania |
| Panel admina | Administratorzy | Wymaga roli admin |
2. BeerBase — Przeglądanie piw
BeerBase to publiczna baza danych piw dostępna pod adresem /beerbase/. Każdy użytkownik może przeglądać katalog bez logowania.
Wyszukiwanie
Na stronie głównej BeerBase znajduje się pole wyszukiwania. Możesz szukać po:
- Nazwie piwa
- Stylu piwa (np. IPA, Lager, Stout)
Browary można filtrować osobnym filtrem (patrz poniżej).
Filtrowanie
Dostępne filtry pozwalają zawęzić wyniki:
| Filtr | Opis |
|---|---|
| Styl piwa | Wybierz jeden lub więcej stylów (IPA, APA, Stout, Lager...) |
| Browar | Filtruj po konkretnym browarze |
| ABV (alkohol) | Zakres procentowy (np. 4% - 8%) |
| IBU (goryczka) | Zakres jednostek goryczki |
| Dostępność | Pokaż tylko piwa aktualnie na kranie |
| Weryfikacja | Pokaż tylko piwa od zweryfikowanych browarów |
Sortowanie
Wyniki można sortować po: dacie dodania, nazwie (A-Z / Z-A), ABV lub IBU.
Strona piwa
Kliknięcie na piwo otwiera jego kartę (/beers/{id}) ze szczegółami:
- Zdjęcie piwa
- Dane podstawowe: ABV, IBU, styl, gatunek
- Opis piwa (w języku polskim i angielskim)
- Dane techniczne: temperatura podawania
- Składniki: chmiele, słody, drożdże, dodatki (jeśli wprowadzone)
- Recenzje użytkowników z oceną gwiazdkową (1-5)
- Dostępność w barach — w których barach piwo jest aktualnie na kranie, wraz z ceną (preferowana cena za 0.5L)
BeerBase jest dostępny publicznie pod adresem /beerbase/. Nie wymaga logowania do przeglądania katalogu.
3. BeerBase — Browary
Każdy browar zarejestrowany w systemie posiada własną stronę profilu. Profil browaru jest dostępny przez kliknięcie na nazwę browaru na karcie piwa lub w wynikach wyszukiwania.
Profil browaru
Strona browaru (/breweries/{id}) zawiera:
- Logo i opis browaru
- Pełną listę piw produkowanych przez browar
W wyszukiwarce piw możesz filtrować po konkretnym browarze, a także wyświetlić tylko piwa od zweryfikowanych browarów.
4. BeerBase — Recenzje i oceny
Zalogowani użytkownicy mogą oceniać piwa w systemie BeerBase.
Jak wystawić recenzję piwa
Przejdź na stronę piwa, które chcesz ocenić
Przewiń do sekcji „Recenzje"
Wybierz ocenę gwiazdkową (1-5 gwiazdek)
Napisz komentarz (min. 10 znaków, max 1000)
Kliknij „Dodaj recenzję"
Aby wystawiać recenzje, musisz być zalogowany na swoje konto BeerBase. Rejestracja jest bezpłatna.
Przeglądanie recenzji
Recenzje wyświetlane są na stronie każdego piwa z oceną gwiazdkową i komentarzem. Na stronie baru (/bars/{slug}) widoczne są recenzje lokalu wystawione przez użytkowników.
5. BeerBase — Profil użytkownika
Rejestracja
Przejdź do
/beerbase/Kliknij „Zaloguj się" lub „Zarejestruj się"
Podaj adres e-mail i hasło
Potwierdź rejestrację
Panel użytkownika
Po zalogowaniu masz dostęp do:
- Historii swoich recenzji
- Edycji profilu (zmiana e-mail, hasło)
6. Logowanie do BMS
System BMS jest dostępny pod adresem /bms-ts/. Aby uzyskać dostęp, potrzebujesz konta z przypisanym barem.
Jak się zalogować
Przejdź do
/auth/lub kliknij „Login" na stronie głównejWprowadź swój e-mail i hasło
Po zalogowaniu zostaniesz przekierowany do strony głównej iBeer, skąd możesz przejść do BMS
Twoje konto musi mieć przypisany bar (bar_slug). Jeśli po zalogowaniu widzisz komunikat „Brak przypisanego baru" — skontaktuj się z administratorem.
Przy pierwszym logowaniu administrator powinien Ci przypisać odpowiednią rolę i bar. Dane logowania otrzymasz od administratora systemu.
7. Franczyze i Fronty
iBeer obsługuje pojedyncze bary oraz franczyzy — grupy barów należących do jednej organizacji, współdzielących jeden magazyn produktów. Zrozumienie tego modelu jest kluczowe, bo Dashboard, Magazyn i uprawnienia zachowują się inaczej zależnie od tego, gdzie aktualnie jesteś.
Model: Magazyn + Fronty
W franczyzie występują dwa rodzaje „barów":
- 📦 Magazyn (warehouse) — centralny katalog produktów grupy. Tu definiujesz listę piw, ceny bazowe, dane BeerBase, synchronizację z POS. Magazyn nie ma własnych kranów, telewizorów ani playlist.
- 🛒 Front (front) — punkt sprzedaży (np. restauracja, kawiarnia). Front ma własne krany, TV, sekcje i playlisty, ale listę produktów pożycza z Magazynu grupy. Każdy front jest podpięty do jednej kasy POS (
psid).
Pojedynczy bar (bez franczyzy) to tzw. legacy bar — ma w sobie wszystko (produkty + krany + TV), działa jak klasyczny iBeer sprzed wprowadzenia franczyz.
┌──────────────────────────────────────────────┐
│ 📦 norblin_warehouse (Magazyn centralny) │
│ • 73 produktów (Uwaga Pils, IPA, ...) │
│ • ceny bazowe, integracja BeerBase │
│ • POS credentials (współdzielone) │
└──────────┬───────────────────────────────────┘
│ pożycza produkty
▼
┌──────────────────────┬──────────────────────┐
│ 🛒 norblin_resto │ 🛒 norblin_kawa │
│ PoS #1 (Restauracja) │ PoS #2 (Kawa) │
│ własne krany + TV │ własne krany + TV │
│ operator: „resto" │ operator: „kawa" │
└──────────────────────┴──────────────────────┘
Role w franczyzie
| Rola | Zakres | Co może |
|---|---|---|
| franchise_owner (CEO) | cała grupa (Magazyn + wszystkie fronty) | edycja produktów w Magazynie, zarządzanie frontami, dodawanie nowych punktów sprzedaży, dostęp do POS credentials |
| operator | jeden konkretny front | przypisywanie produktów do kranów, konfiguracja TV/playlist/sekcji swojego frontu, ukrywanie produktów na swoim froncie. Nie może edytować listy produktów ani zmieniać innych frontów. |
| auditor | cała grupa | read-only — podgląd bez możliwości zmian (np. księgowa, właściciel audytujący) |
| owner (legacy) | pojedynczy bar | pełna kontrola nad barem bez franczyzy |
| member | pojedynczy bar | read-only w legacy barze |
Przełącznik kontekstu (bar selector)
Jeśli masz dostęp do więcej niż jednego baru/frontu, w headerze Dashboardu pojawia się lista rozwijana (obok tytułu). Pozwala ona przełączyć aktualny kontekst — po wyborze, wszystkie zakładki (Magazyn, Krany, TV) pokazują dane z wybranego miejsca. CEO korzysta z niej, żeby przeskakiwać: Magazyn → Restauracja → Kawa w tej samej grupie.
Widok „Fronty" (dla CEO)
Gdy jesteś w kontekście Magazynu i masz rolę franchise_owner, w pasku zakładek (po prawej) widać 🛒 Fronty. Kliknięcie otwiera dedykowaną stronę, gdzie:
- widzisz listę frontów w grupie (PoS ID, liczba kranów, status sync, ostatnia synchronizacja),
- klikasz „+ Dodaj front" aby utworzyć nowy punkt sprzedaży — kreator pobiera listę kas z POS i pozwala wybrać
psiddla nowego frontu, - z każdej karty frontu możesz przejść do jego magazynu (kontekst natychmiast się przełącza).
W kontekście Magazynu ukryte są zakładki Telewizory, Playlist, Sekcje oraz headerowy link Editor — bo te funkcje mają sens tylko na konkretnym froncie sprzedaży. W kontekście Frontu zakładka Magazyn pokazuje produkty z magazynu grupy (tylko do odczytu dla operatora; CEO edytuje tylko w kontekście Magazynu).
Ukrywanie produktu na wybranym froncie
Produkty żyją w Magazynie, ale nie każdy produkt musi być sprzedawany na każdym froncie (np. „Kawa" nie potrzebuje piwa z magazynu, a „Restauracja" tak). W Magazynie każdy produkt ma przełącznik widoczności per front — to znaczy, że CEO może jednym kliknięciem schować piwo na „norblin_kawa", zachowując je na „norblin_resto". Operator widzi tylko produkty niezukryte na swoim froncie.
1. Zaloguj się, przełącz na Magazyn grupy. 2. Dodaj/zaimportuj produkt — dostępny we wszystkich frontach. 3. Wejdź w edycję produktu, odznacz widoczność na frontach, gdzie nie ma być sprzedawany. 4. Przełącz się na konkretny front (bar selector) → zakładka Krany → przypisz piwo do konkretnego kranu. Telewizory i playlisty konfiguruj per front.
8. Dashboard BMS
Po zalogowaniu widzisz główny panel z zakładkami. Zestaw zakładek zależy od kontekstu — pojedynczy bar / magazyn franczyzy / front sprzedaży pokazują różne podzbiory (patrz sekcja 7). Poniższa tabela listuje wszystkie możliwe zakładki; kolumna „Kontekst" mówi, gdzie zakładka jest dostępna.
| Zakładka | Opis | Ikona | Kontekst |
|---|---|---|---|
| Magazyn | Produkty (w magazynie grupy — edytowalne; na froncie — read-only dla operatora) | 📦 | wszędzie |
| Krany | Przypisywanie piw do fizycznych kranów | 🍺 | front / legacy |
| Telewizory | Zarządzanie ekranami wyświetlającymi menu | 📺 | front / legacy |
| Playlist | Kolekcje sekcji wyświetlane na TV | 🎬 | front / legacy |
| Sekcje | Grupy produktów (np. „Piwa Kraftowe") | 🔢 | front / legacy |
| Sync Status | Status synchronizacji z POS | 🔄 | wszędzie |
| Baza danych | Podgląd tabel bazy danych | 💾 | wszędzie |
| Historia | Dziennik zmian w systemie | 📜 | wszędzie |
| Fronty | Lista frontów grupy, dodawanie nowych punktów sprzedaży | 🛒 | Magazyn (CEO) |
W kontekście Magazynu (warehouse) zakładki Telewizory, Playlist i Sekcje są ukryte — magazyn nie ma fizycznych kranów ani ekranów. Te funkcje konfigurujesz po przełączeniu się na konkretny front (bar selector w headerze).
Nawigacja w headerze umożliwia szybki dostęp do:
- 🏠 Strona główna — powrót do strony głównej iBeer
- 🎛️ Editor — edytor szablonów TV (zaawansowany). Ukryty w kontekście Magazynu.
- ⚙️ Ustawienia — ustawienia baru
- 🚪 Wyloguj — wylogowanie z systemu
W nagłówku wyświetlana jest nazwa aktualnego baru/frontu oraz — jeśli masz dostęp do więcej niż jednego — lista rozwijana do przełączania kontekstu. Przycisk 🌙/☀️ przełącza motyw jasny/ciemny. W prawym pasku zakładek, dla CEO w kontekście Magazynu, pokazuje się dodatkowy link 🛒 Fronty (opisany w sekcji 7).
Widoczność i kolejność zakładek możesz dostosować w Ustawieniach (sekcja „Widoczność i kolejność zakładek"). Ukrywanie per-bar_role (np. zakładki per-front w Magazynie) dzieje się automatycznie i nie wymaga konfiguracji.
┌─ Header: 🏠 Home | ⚙️ Ustawienia | [▼ selector: magazyn/front] | 🚪 Wyloguj ─┐
├───────────────────────────────────────────────────────────────────────────────┤
│ 📦 Magazyn │ 🍺 Krany │ 🔄 Sync │ 💾 DB │ 📜 Historia 🛒 Fronty (CEO) │
├───────────────────────────────────────────────────────────────────────────────┤
│ Zawartość aktywnej zakładki │
└───────────────────────────────────────────────────────────────────────────────┘
┌─ Header: 🏠 Home | 🎛️ Editor | ⚙️ Ustawienia | [▼ selector] | 🚪 Wyloguj ─┐
├─────────────────────────────────────────────────────────────────────────────┤
│ 📦 Magazyn │ 🍺 Krany │ 📺 TV │ 🎬 Playlist │ 🔢 Sekcje │ 🔄 Sync │ 💾 DB │ 📜 Historia │
├─────────────────────────────────────────────────────────────────────────────┤
│ Zawartość aktywnej zakładki │
└─────────────────────────────────────────────────────────────────────────────┘
9. Magazyn
Zakładka Magazyn służy do zarządzania produktami lokalnymi dostępnymi w Twoim barze.
Dodawanie produktu
Kliknij przycisk „+ Dodaj Piwo"
Wypełnij formularz: nazwa, styl piwa, browar, ABV
Ustaw ceny (0.5L, 0.3L, 0.2L)
Opcjonalnie: wgraj ikonę/grafikę produktu
Zapisz produkt
Import z BeerBase
Zamiast ręcznie tworzyć produkt, możesz zaimportować piwo z bazy BeerBase:
Kliknij „🍺 Import z BeerBase"
Wyszukaj piwo po nazwie
Wybierz piwo z listy wyników
Produkt zostanie dodany do Twojego magazynu z danymi z BeerBase
Edycja produktu
Kliknij ✏️ przy produkcie, aby otworzyć modal edycji. Dostępne pola:
| Pole | Opis |
|---|---|
| Nazwa | Nazwa piwa wyświetlana na ekranach |
| Styl / Gatunek | Styl (np. IPA, Lager) i gatunek piwa |
| Browar | Nazwa browaru |
| ABV (%) | Zawartość alkoholu |
| Ceny (0.5L, 0.3L, 0.2L) | Ceny za poszczególne pojemności |
| Opis PL / EN | Opis produktu w dwóch językach |
| Kolor tła | Kolor tła produktu (hex, np. #FFFFFF) |
| Kolor tekstu (krany) | Kolor tekstu na wyświetlaczach ESP32 |
| Kolor tekstu (menu TV) | Kolor tekstu na ekranach TV |
| Dostępny | Przełącznik — nieaktywne produkty nie wyświetlają się na TV |
Dodatkowe akcje na każdym produkcie:
- 🔔 Zasugeruj zmiany — wyślij sugestię edycji do BeerBase (do zatwierdzenia przez admina)
- ⬇️ Nadpisz z BeerBase — pobierz aktualne dane piwa z bazy BeerBase
- 🗑️ — usuń produkt
Produkty w magazynie są oznaczone kolorami informującymi o statusie połączenia z centralną bazą BeerBase:
- Zielony — połączony z BeerBase, dane zsynchronizowane
- Żółty — nie połączony z BeerBase
- Czerwony — duplikat połączenia lub piwo usunięte z BeerBase
10. Krany
Zakładka Krany pozwala zarządzać fizycznymi kranami w barze i przypisywać do nich piwa.
Dodawanie kranu (na razie na sztywno)
Kliknij „➕ Dodaj kran"
Podaj numer kranu i nazwę
Kran pojawi się na liście jako pusty
Przypisywanie piwa do kranu
Znajdź pusty kran na liście
Kliknij „Podepnij beczkę"
Wybierz piwo z magazynu (lub wyszukaj)
Potwierdź wybór
Piwo pojawi się na kranie i na ekranach TV (na TV w sekcji "Krany")
Aby odpiąć piwo z kranu, kliknij przycisk „✕" na karcie kranu.
Tryby pracy kranów
Każdy kran może pracować w jednym z dwóch trybów:
- MANUAL (żółta etykieta) — piwo przypisane ręcznie, nie podlega automatycznej synchronizacji POS
- AUTO (szara etykieta) — piwo synchronizowane automatycznie z systemu POS
Przełącznik „🔄 POS Sync" w nagłówku zakładki włącza/wyłącza globalną synchronizację z systemem kasowym.
Statusy kranów
Karta kranu jest oznaczona kolorami informującymi o stanie:
- Zielona ramka — piwo poprawnie połączone z BeerBase
- Czerwona ramka — piwo nie połączone z BeerBase lub pusty kran w POS
- Żółta ramka — tryb manualny z rozbieżnością danych POS
Jeśli masz włączoną synchronizację POS, produkty na kranach aktualizują się automatycznie z systemu kasowego. W trybie AUTO ręczne zmiany mogą zostać nadpisane przy następnej synchronizacji.
Zamiana piwa z jednego kranu na drugi
Na kranach musi być włączony tryb MANUAL
Znajdź kran z piwem, które chcesz przenieść
Złap za numer kranu i przesuń (cały czas trzymając za numer) na kran, z tym drugim piwem
Upuść.
11. Telewizory & Signage
Zarządzanie ekranami TV wyświetlającymi menu piw w barze.
Dodawanie telewizora w edytorze
Przejdź do edytora TV
Kliknij „➕ Dodaj TV" w panelu po lewej stronie
Wymyśl nazwę i wybierz orientację i rozmiar ekranu, zapisz
Przypisz playlistę do telewizora w panelu po lewej stronie
Upewnij się że wybrana playlista, zawiara jakąś sekcję z jakimiś produktami
Zapisz i otwórz link wewnętrzny/publiczny TV na urządzeniu docelowym
Signage — publiczny link
Każdy telewizor może mieć publiczny link (URL), który wyświetla menu bez logowania. Przydatne do wyświetlania na fizycznych ekranach:
- Link wewnętrzny (signage) — wymaga sieci wewnętrznej
- Link publiczny — dostępny z internetu, nie wymaga logowania
Otwórz publiczny link TV w przeglądarce na urządzeniu Smart TV lub Raspberry Pi, aby wyświetlać menu na żywo. Zmiany w BMS automatycznie odświeżają się na ekranach (SSE).
12. Sekcje & Playlisty
Sekcje
Sekcja to grupa produktów wyświetlana na TV (np. „Piwa Kraftowe", „Cidry", „Bezalkoholowe").
Przejdź do zakładki Sekcje
Kliknij „➕ Dodaj sekcję" i podaj nazwę
Dodaj produkty do sekcji
Ustaw kolejność produktów (przeciągnij i upuść)
Skonfiguruj widoczność elementów (tytuł, grafika, ABV, cena)
Playlisty
Playlista to kolekcja sekcji wyświetlana na jednym telewizorze.
Przejdź do zakładki Playlist
Kliknij „➕ Dodaj playlistę"
Przypisz sekcje do playlisty
Przypisz playlistę do telewizora (w zakładce Telewizory lub Edytor)
Produkt → należy do Sekcji → sekcja należy do Playlisty → playlista przypisana do Telewizora
📺 Telewizor "Bar Main"
└── 🎬 Playlista "Menu Wieczorne"
├── 🔢 Sekcja "Piwa Kraftowe"
│ ├── 📦 Hazy Jane (IPA, 5%)
│ ├── 📦 Wrężel (APA, 5.2%)
│ └── 📦 Buntline (Stout, 6.5%)
└── 🔢 Sekcja "Bezalkoholowe"
├── 📦 Nanny State (0.5%)
└── 📦 Piwo Free (0.0%)
13. Edytor szablonów
Zaawansowany edytor do projektowania wyglądu ekranów TV. Dostępny w nawigacji jako 🎛️ Editor.
Interfejs edytora
| Element | Opis |
|---|---|
| Sidebar (lewo) | Wybór telewizora, zarządzanie sekcjami i playlistami, konfiguracja layoutu |
| Podgląd (środek/prawo) | Podgląd na żywo z kontrolkami zoomu (−, %, +, ⊡ dopasuj do ekranu) |
| Edytor kodu (dół) | Zakładki HTML Template i CSS Style z edytorem CodeMirror i auto-zapisem |
Projektowanie wyglądu TV
Wybierz telewizor z dropdown na sidebarze
Kliknij „Zarządzaj sekcjami" — przeciągnij sekcje do playlisty
Włącz „Edytor szablonów" — pojawi się panel z kodem
Edytuj HTML (struktura) i CSS (wygląd) w zakładkach
Podgląd aktualizuje się automatycznie
Kliknij „🔄 Odśwież TV" aby wysłać zmiany na podłączone ekrany
Konfiguracja layoutu (TV poziome)
Dla telewizorów w orientacji poziomej (1920x1080) możesz konfigurować układ osobno dla sekcji i produktów:
| Opcja | Wartości |
|---|---|
| Liczba kolumn — Sekcje | 1, 2 lub 3 |
| Kierunek wypełniania — Sekcje | Poziomy → lub Pionowy ↓ |
| Liczba kolumn — Produkty | 1, 2 lub 3 |
| Kierunek wypełniania — Produkty | Poziomy → lub Pionowy ↓ |
Włącz przełącznik „Tryb edycji" — kliknij bezpośrednio na element na podglądzie, aby edytować tekst lub wartości bez pisania kodu.
Szablony i pliki CSS
Możesz tworzyć wiele szablonów HTML i plików CSS:
- ➕ — nowy plik szablonu
- ✎ — zmień nazwę pliku
- ❐ — skopiuj jako nowy plik
- 🗑 — usuń plik
- Przypisz — przypisz wybrany CSS do sekcji
14. Ustawienia baru
Strona ustawień dostępna przez ⚙️ Settings w nawigacji. Pozwala skonfigurować wygląd i integracje baru.
Główne sekcje ustawień
| Sekcja | Co pozwala zrobić |
|---|---|
| 📑 Widoczność zakładek CMS | Wybierz które zakładki widać na dashboardzie, ustal ich kolejność, przywróć domyślne |
| 🎨 Custom CSS / 📝 Custom HTML | Zarządzaj plikami CSS sekcji i HTML playlist |
| 🖼️ Logo Baru | Wgraj logo baru (PNG, JPG, SVG, WEBP) |
| 👤 Zdjęcie Profilowe | Wgraj zdjęcie profilowe użytkownika |
| 🎨 Baner na BeerBase | Baner wyświetlany na stronie baru w BeerBase |
| 🎯 Ikony Baru | Wgraj ikony (PNG, SVG, WEBP, JPG) do użycia w szablonach TV |
| 📦 Zasoby Lokalne | Wgraj obrazy, GIF-y, filmy (PNG, JPG, GIF, MP4, WEBM) do szablonów TV |
| 🔄 Cache danych POS | Ustaw interwał odświeżania danych z POS (15–3600 sekund) |
| 💾 Zarządzanie pamięcią lokalną | Wyczyść cache przeglądarki (z zachowaniem preferencji lub całkowicie) |
| 🍺 Krany i endpointy zewnętrzne | Konfiguracja kranów i połączeń z zewnętrznymi systemami |
| 🔄 Synchronizacja z POS | Konfiguracja automatycznej synchronizacji z systemem kasowym |
Konfiguracja POS
Jeśli bar korzysta z systemu kasowego (np. iZZyRest), możesz skonfigurować automatyczną synchronizację:
Przejdź do Ustawienia → Synchronizacja z POS
Wybierz typ: iZZyRest API v3
Podaj URL API, login i hasło
Kliknij „🔗 Testuj połączenie" aby sprawdzić
Zaznacz „Włącz automatyczną synchronizację"
Kliknij „💾 Zapisz konfigurację"
Jeśli system działa wolno lub wyświetla stare dane, użyj sekcji „Zarządzanie pamięcią lokalną" i kliknij „🗑️ Wyczyść cache".
15. Integracja BeerBase + BMS
BeerBase i BMS współpracują ze sobą. Oto kluczowe scenariusze:
Scenariusz 1: Nowe piwo na kranie (zielony „+")
Gdy na kranie pojawia się piwo, którego nie ma jeszcze w BeerBase:
Przejdź na stronę baru w BeerBase (
/bars/nazwa-baru)Najedź kursorem na kran z nieznanym piwem — pojawi się zielony przycisk „+"
Kliknij „+" — system przekieruje do formularza nowego piwa
Piwo zostanie automatycznie utworzone w BeerBase (lub dopasowane do istniejącego, jeśli nazwa już istnieje)
Otwiera się modal edycji — dodaj zdjęcie, ABV, opis
Po zapisaniu piwo jest automatycznie przypisywane do kranu w BMS
Jeśli piwo o danej nazwie już istnieje w BeerBase, system automatycznie je dopasuje zamiast tworzyć duplikat.
Scenariusz 2: Import istniejącego piwa
W zakładce Magazyn kliknij „🍺 Import z BeerBase"
Wyszukaj piwo po nazwie
Wybierz — produkt trafi do Twojego magazynu z danymi z BeerBase
Przejdź do Krany i przypisz importowany produkt
Scenariusz 3: Synchronizacja barów
Dane o dostępności piw w barze (na kranach) są automatycznie widoczne na stronie baru w BeerBase. Klienci widzą, co aktualnie jest na kranie.
Zmiany w BMS (dodanie/usunięcie piwa z kranu) są widoczne w BeerBase po synchronizacji cache. Zwykle zajmuje to kilka minut.
16. Administracja systemu
Sekcja dla administratorów systemu iBeer.
Baza danych (zakładka 💾)
Zakładka „Baza danych" w dashboardzie BMS pozwala przeglądać strukturę i dane tabel. Każdy bar ma osobny schemat w PostgreSQL (bar_norblin, bar_X itd.).
Historia zmian (zakładka 📜)
Dziennik wszystkich zmian w systemie: kto, co i kiedy zmienił. Przydatne do audytu i debugowania.
Zarządzanie wieloma barami
Administratorzy mogą zarządzać wieloma barami. Każdy bar to osobny tenant z własnym schematem bazy danych (bar_{slug}).
| Schemat | Zawartość |
|---|---|
public | Dane wspólne: users, beers, breweries, bars, reviews |
bar_{slug} | Dane specyficzne baru: taps, sections, playlists, local_products, CSS, HTML templates |
iot | MQTT: mosquitto_users, mosquitto_acls |
Panel administratora (Admin Hub)
Panel admin (/admin/) zapewnia dostęp do:
- Zarządzania użytkownikami — tworzenie, edycja, weryfikacja, przypisywanie ról (
user,admin,bar_user) - Przypisywania użytkowników do barów (afiliacje z rolami:
member,owner,manager) - Zarządzania barami — tworzenie, edycja danych, ustawienia
- Wiadomości systemowych — tworzenie ogłoszeń widocznych dla użytkowników
Plany (free / premium / premium_plus) są automatycznie przypisywane na podstawie roli: admin → premium_plus, bar_user → premium, pozostali → free. Nie ma osobnego panelu do zarządzania planami.
BeerBase Admin
W BeerBase pod /beerbase/admin/ dostępne są:
- Zarządzanie bazą piw (dodawanie, edycja, konsolidacja duplikatów)
- Zarządzanie browarami i ich weryfikacja
- Zarządzanie barami i afiliacjami użytkowników
- Przeglądanie i zatwierdzanie sugestii użytkowników (sugestie z BMS i od użytkowników)
- Import piw z arkuszy kalkulacyjnych (wieloetapowy kreator: upload → mapowanie kolumn → podgląd → import)
- Eksport danych piw do CSV
- Logi audytu (pełna historia zmian z timestampami)
17. Rozwiązywanie problemów
Typowe problemy i rozwiązania
TV nie wyświetla zmian
Sprawdź czy TV jest podłączony (wskaźnik w edytorze)
Kliknij „🔄 Odśwież TV" w edytorze
Jeśli nie pomaga — odśwież stronę na fizycznym TV (F5)
Dane POS nie synchronizują się
Sprawdź zakładkę Sync Status — czy status jest „aktywny"?
Kliknij „⚡ Synchronizuj teraz"
Sprawdź Ustawienia → Synchronizacja POS — kliknij „🔗 Testuj połączenie"
Jeśli test się nie udaje — sprawdź URL API i dane logowania
Ten sam produkt na dwóch kranach / TV (konflikt aliasów POS)
W magazynie obok nazwy produktu pojawiają się dwa (lub więcej) badge'y kranów z czerwoną obwódką — oznacza to, że jeden lokalny produkt jest przypisany do wielu kranów, mimo że w POS na tych kranach stoją różne piwa/cydry. Auto‑sync w takiej sytuacji wykrywa konflikt, wypisuje ostrzeżenie w logach i pomija drugi kran (nie nadpisuje przypisania), ale TV/menu wciąż pokazuje ten sam produkt na obu miejscach.
Auto‑sync próbuje dopasować nazwę z POS do istniejącego produktu lokalnego po podobieństwie (wspólny prefix typu „Cydr Bursztynowy…" lub „ONINNI…"). Jeśli w magazynie istnieje tylko jeden wariant z danej serii, POS‑owe warianty o innych nazwach zostają do niego dopięte. Najczęstszy trigger: dodanie w POS nowego smaku/wariantu bez odpowiadającego mu produktu lokalnego.
Rozwiązanie — krok po kroku
W Magazyn znajdź produkt z dwoma (lub więcej) czerwonymi badge'ami kranów.
Ustal, który z tych kranów naprawdę należy do tego produktu (porównaj z tym, co stoi fizycznie / co POS pokazuje w zakładce Sync Status). Ten kran zostaw.
Dla pozostałych kranów (które POS raportuje pod inną nazwą) kliknij „➕ Nowy produkt" i utwórz osobny produkt o nazwie zgodnej z POS (np. Cydr Bursztynowy Jabłko). Uzupełnij browar / styl / ceny.
Otwórz edycję nowo utworzonego produktu. Przewiń do sekcji Aliasy POS i kliknij „+". Z listy wybierz nazwę POS, która ma być mapowana na ten produkt — albo wpisz ją ręcznie, jeśli POS akurat jej nie zwraca (np. piwo wyczerpane).
Poczekaj ~20 s na kolejny cykl auto‑sync — kran przełączy się na nowy produkt, czerwone obwódki znikną, konflikt zostanie rozwiązany.
+ alias na karcie produktuJeśli odpowiedni produkt już istnieje (np. Cydr Bursztynowy Jabłko jest w magazynie, ale bez aliasu), możesz pominąć tworzenie nowego. Na jego karcie w Magazyn, w kolumnie POS, jest przycisk + alias — klik otwiera dropdown z nie‑zaaliasowanymi nazwami z aktualnego POS. Wybierz właściwą i gotowe.
Dodanie Cydr Bursztynowy Jabłko jako aliasu do istniejącego Cydr Bursztynowy Gruszka „naprawi" konflikt na godzinę, ale utrwali błędne mapowanie: alias jest nadrzędny względem heurystyk matching'u, więc od teraz Jabłko zawsze trafi na kran z Gruszką. Alias dodajemy tylko do produktu, który faktycznie reprezentuje ten artykuł z POS.
Gdy konflikt wystąpi po raz pierwszy (po cutover 2026‑04‑20), na kanał Discord wpada powiadomienie „🟠 POS Beer Binding Conflict" z numerami obu kranów i nazwami z POS — tam od razu widać, co trzeba rozdzielić. Kolejne takie same konflikty są dedupowane i nie spamują przez 15 min.
System działa wolno / wyświetla stare dane
Przejdź do Ustawienia → Zarządzanie pamięcią lokalną
Kliknij „🗑️ Wyczyść cache"
Odśwież stronę (Ctrl+Shift+R)
Restart serwisów Docker
Poniższe komendy wymagają SSH do serwera i uprawnień Docker.
| Akcja | Komenda |
|---|---|
| Restart BMS | sudo docker compose restart bms_ts |
| Restart z przebudową | sudo docker compose up -d --build bms_ts |
| Logi BMS | sudo docker compose logs -f bms_ts |
| Status serwisów | docker compose ps |
| Restart bazy danych | sudo docker compose restart postgres_db |
Migracja bazy danych
Jeśli schemat bazy wymaga aktualizacji:
BeerBase:
sudo docker exec beerbase_dev npx drizzle-kit pushSprawdź schemat:
sudo docker exec postgres_db psql -U bms -d ibeer_db -c "\dn"
FAQ — Najczęściej zadawane pytania
Jak zmienić piwo na kranie?
Jak dodać nowe piwo, którego nie ma w bazie?
TV nie odświeża zawartości — co robić?
Jak dodać nowy telewizor?
Czy mogę wyświetlać menu na własnym urządzeniu?
Co to jest POS Sync?
Na dwóch kranach widzę ten sam produkt, a w POS są różne — co robić?
+ i wybierz odpowiednią nazwę z POS. Pełna instrukcja: sekcja 17 „Rozwiązywanie problemów → Ten sam produkt na dwóch kranach".