KanpaiBook

KanpaiBook ist eine Full-Stack-Plattform für interaktive Tischreservierungen in der Gastronomie mit visueller Sitzplatzauswahl und umfassendem Management-Backend für Restaurantbetreiber.

25 Oktober, 2023

Projektübersicht

KanpaiBook wurde als Abschlussprojekt für die Landesberufsschule 4 in Salzburg entwickelt und transformiert den traditionellen Reservierungsprozess in der Gastronomie durch ein visuelles, interaktives System. Inspiriert vom Sitzplatzreservierungssystem von Kinoketten wie Cineplexx, ermöglicht KanpaiBook Kunden die präzise Auswahl spezifischer Tische in Restaurants.

Systemarchitektur

Die Anwendung basiert auf einer modernen Microservices-Architektur mit klarer Trennung zwischen Frontend und Backend:

Frontend

  • NextJS mit Server-Side Rendering für optimale Performance und SEO
  • Reaktive UI-Komponenten mit React Hooks und Context API
  • Interaktive Tischauswahl durch SVG-basierte Raumvisualisierung
  • Responsive Design mit adaptiven Layouts für verschiedene Endgeräte

Backend

  • ExpressJS REST-API mit strukturierter Middleware-Architektur
  • Authentifizierungssystem mit JWT und rollenbasierter Zugriffskontrolle
  • Transaktionssichere Datenbankoperationen mit Prisma ORM
  • Ereignisbasierte Architektur für Echtzeit-Updates bei Reservierungsänderungen

Datenmodell

Das Kernstück der Anwendung ist ein relationales Datenmodell, das folgende Hauptentitäten umfasst:

  • Restaurants: Mit Metadaten, Öffnungszeiten und Konfigurationsoptionen
  • Tische: Mit Positionsdaten, Kapazität und Verfügbarkeitsstatus
  • Reservierungen: Mit Zeitfenstern, Kundendaten und Spezialanforderungen
  • Nutzer: Mit differenzierten Rollen (Gast, Restaurantmitarbeiter, Administrator)

Die Datenintegrität wird durch Fremdschlüsselbeziehungen und Transaktionen gewährleistet, während Indizes für optimale Abfrageleistung sorgen.

Technische Herausforderungen

Bei der Entwicklung wurden mehrere komplexe technische Herausforderungen gelöst:

  • Kollisionsvermeidung: Implementierung eines Locking-Mechanismus, um Doppelbuchungen zu verhindern
  • Dynamische Raumvisualisierung: Entwicklung eines flexiblen Systems zur Darstellung unterschiedlicher Restaurantlayouts
  • Skalierbare Verfügbarkeitsberechnung: Optimierte Algorithmen zur Berechnung freier Zeitfenster unter Berücksichtigung von Öffnungszeiten, bestehenden Reservierungen und Tischkapazitäten

Verwendete Technologien

  • NextJS für das Frontend
  • ExpressJS für das Backend
  • MySQL (MariaDB) mit Prisma ORM
  • Docker für Containerisierung und Deployment
  • Redis für Caching und temporäre Daten
  • Jest für automatisierte Tests

Entwicklungsstand

Das Projekt befindet sich in aktiver Entwicklung mit folgenden implementierten Funktionen:

  • Vollständiges Authentifizierungs- und Autorisierungssystem
  • Nutzerverwaltung mit Profilbearbeitung
  • Dashboard für Restaurantbetreiber
  • Grundlegende CRUD-Operationen für alle Kernentitäten

Die nächsten Entwicklungsschritte umfassen die Implementierung des visuellen Tischauswahl-Interfaces und die Erweiterung des Reservierungssystems um zusätzliche Funktionen wie Wartelisten und automatische Benachrichtigungen.

Weiterentwicklung

Basierend auf dem ursprünglichen Konzept hat sich das Projekt zu einer umfassenden Management-Lösung für Gastronomiebetriebe entwickelt. Zukünftige Erweiterungen umfassen:

  • Integration von Zahlungssystemen für Reservierungsgebühren
  • Erweiterte Analytik für Restaurantbetreiber
  • Personalplanung basierend auf Reservierungsdaten
  • Mobile App für iOS und Android

Visuelle Darstellung

Dashboard mit Reservierungsübersicht und Auslastungsstatistiken Konfigurationsbereich für Restauranteinstellungen und Tischlayout