VulCode

Panel gastronomii Lokal

Panel, z którego właściciel i zespół prowadzą restaurację, bar, klub albo kawiarnię: pulpit dnia, rezerwacje na planie sali, rachunki stolików i na wynos, ekran kuchni i menu. Do tego wydarzenia, happy hours i zestawy, magazyn z zamówieniami u dostawców, grafik z kosztem zmian i raport zamknięcia dnia z napiwkami i anulacjami. Uprawnienia zespołu ustawia się osobno dla każdego obszaru.

TypPanel zarządzania lokalem
FrontendReact 19, TypeScript, Tailwind 4
BackendExpress, TypeScript, Prisma
BazaSQLite
LokaleRestauracje, bary, kluby, kawiarnie
Panel gastronomii Lokal

Wprowadzenie

Lokal to panel do prowadzenia restauracji, baru, klubu albo kawiarni: jeden ekran dnia, rezerwacje na planie sali, rachunki i kuchnia, menu i promocje, magazyn i zaopatrzenie, grafik zespołu i raporty. Właściciel kilku lokali przełącza się między nimi jednym wyborem u góry panelu.

Gastronomia nie wybacza wolnego oprogramowania. Kelner ma kilka sekund na dopisanie pozycji do rachunku, kuchnia musi zobaczyć zamówienie od razu, a kierownik na koniec dnia chce wiedzieć, ile było napiwków i co anulowano. Panel zbudowaliśmy pod ten rytm.

Dzień w lokalu na jednym ekranie

Ekran "Dziś w lokalu" pokazuje przychód z opłaconych rachunków, liczbę rezerwacji, otwarte rachunki z kwotą, zajęte stoliki i osoby na zmianie razem z wnioskami urlopowymi. Pod spodem są najbliższe rezerwacje z godziną, liczbą osób, stolikiem i statusem, lista osób pracujących w tej chwili z rolą i godzinami zmiany, niskie stany w magazynie i nadchodzące wydarzenia z liczbą zapisanych.

Kierownik, który wchodzi rano, wie w kilka sekund, kogo się spodziewać, kto jest na sali i czego zabraknie przed wieczorem.

Rezerwacje i żywy plan sali

Rezerwacje są rozpisane na oś godzin, stolik po stoliku i sala po sali, na przykład sala główna i ogródek. Podwójne kliknięcie w wiersz stolika zakłada rezerwację na tę godzinę, a zapis mimo kolizji czasowej wymaga świadomego potwierdzenia. Gość, który rezerwuje z numerem telefonu, sam pojawia się na liście gości.

Plan sali pokazuje lokal na żywo: kto siedzi przy którym stoliku, co zamówił i co jest zarezerwowane na później. Kliknięcie w stolik otwiera jego szczegóły i rachunek.

Rachunki, kuchnia i anulacje z powodem

Rachunek otwiera się dla stolika albo na wynos. Każda pozycja ma swój status: czeka, w kuchni albo wydana. Kuchnia widzi zamówienia na osobnym ekranie, na którym nowe pozycje pojawiają się same, a kliknięcie zmienia status pozycji. Pozycji, która jest już przygotowywana albo wydana, nie da się po cichu usunąć: anulacja wymaga powodu, tak samo jak anulowanie całego rachunku, a obie trafiają do raportu dnia.

Promocje, które liczą się same

Promocje obejmują rabaty procentowe i kwotowe, happy hours w wybrane dni i godziny oraz zestawy w stałej cenie. Promocja może dotyczyć całego rachunku, wybranych kategorii albo pozycji menu. Zestaw działa tylko wtedy, gdy na rachunku są wszystkie jego pozycje w wymaganych ilościach, a anulowane pozycje się nie liczą.

promotionEngine.ts · ts
function bundleDiscount(promotion: PromotionRow, lines: ScopedLine[]): number {
  const { bundleItems } = parseScope(promotion.scope);
  if (bundleItems.length === 0) return 0;
  const activeLines = lines.filter((line) => line.status !== 'voided');
  let regularTotal = 0;
  for (const bundleItem of bundleItems) {
    const matches = activeLines.filter((line) => line.menuItemId === bundleItem.menuItemId);
    const availableQty = matches.reduce((sum, line) => sum + line.qty, 0);
    if (availableQty < bundleItem.qty) return 0;
    regularTotal += matches[0].unitPrice * bundleItem.qty;
  }
  return Math.max(regularTotal - promotion.bundlePrice, 0);
}

Rabat zestawu to różnica między zwykłą ceną jego pozycji a ceną zestawu i nigdy nie jest ujemny. Gdyby zestaw wyszedł drożej niż pozycje osobno, gość po prostu płaci za pozycje.

Magazyn, zaopatrzenie i grafik

Każda pozycja magazynu ma jednostkę, koszt, dostawcę i próg niskiego stanu. Panel sam przygotowuje szkice zamówień u dostawców dla pozycji poniżej progu, a przyjęcie dostawy aktualizuje stany. Pozycja z niskim stanem bez przypisanego dostawcy jest oznaczona osobno, żeby nie wypadła z zamówienia.

Grafik rozpisuje zmiany i szacuje ich koszt z planu, a nie z przepracowanych godzin, więc kierownik widzi koszt tygodnia, zanim ten się zacznie. Wnioski urlopowe czekają na zatwierdzenie. Raport zamknięcia dnia zbiera przychód, płatności, napiwki i anulacje, a szersze raporty pokazują rotację stolików i szczegóły zamówień.

Zespół z dostępem do tego, czym się zajmuje

Grafik to jedno, a dostęp do panelu to drugie. Kto może się zalogować i czym zarządzać, właściciel ustawia osobno: rezerwacje, promocje, magazyn i pozostałe obszary mają własne uprawnienia, a rola właściciela ma pełny dostęp. Zmiana hasła wylogowuje pozostałe sesje, wyszukiwarka znajduje strony panelu, gości i rezerwacje, a zgłoszenie do nas lokal wysyła prosto z panelu.

Jaki jest finalny efekt?

Lokal ma jeden panel zamiast zeszytu, kasy, tablicy i arkusza. Rezerwacja, stolik, rachunek, kuchnia, magazyn i grafik znają się nawzajem, więc zamówienie z sali od razu trafia do kuchni, a niski stan zamienia się w szkic zamówienia u dostawcy.

Właściciel kilku lokali przełącza się między nimi bez wylogowania i widzi każdy dzień w tym samym układzie. Zespół widzi to, czym się zajmuje, a każda anulacja zostaje w dzienniku lokalu z osobą i powodem.

Pytania o Panel gastronomii Lokal

Więcej projektów

Inne realizacje z tej samej kategorii - zobacz, jak podchodzimy do podobnych wyzwań.

Masz podobny projekt?

Napisz do nas - wycena jest bezpłatna i wraca w godzinę.