
KanpaiBook
KanpaiBook ist eine Full-Stack-Plattform für interaktive Tischreservierungen in der Gastronomie mit visueller Sitzplatzauswahl und umfassendem Management-Backend für Restaurantbetreiber.
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