KanpaiBook

KanpaiBook is a full-stack platform for interactive restaurant table reservations with visual seat selection and comprehensive management backend for restaurant operators.

25 October, 2023

Project Overview

KanpaiBook was developed as a final project for Landesberufsschule 4 in Salzburg and transforms the traditional reservation process in the restaurant industry through a visual, interactive system. Inspired by the seat reservation system of cinema chains like Cineplexx, KanpaiBook enables customers to precisely select specific tables in restaurants.

System Architecture

The application is based on a modern microservices architecture with clear separation between frontend and backend:

Frontend

  • NextJS with server-side rendering for optimal performance and SEO
  • Reactive UI components with React Hooks and Context API
  • Interactive table selection through SVG-based room visualization
  • Responsive design with adaptive layouts for various devices

Backend

  • ExpressJS REST API with structured middleware architecture
  • Authentication system with JWT and role-based access control
  • Transaction-safe database operations with Prisma ORM
  • Event-based architecture for real-time updates on reservation changes

Data Model

The core of the application is a relational data model that includes the following main entities:

  • Restaurants: With metadata, opening hours, and configuration options
  • Tables: With position data, capacity, and availability status
  • Reservations: With time slots, customer data, and special requirements
  • Users: With differentiated roles (guest, restaurant staff, administrator)

Data integrity is ensured through foreign key relationships and transactions, while indices provide optimal query performance.

Technical Challenges

Several complex technical challenges were solved during development:

  • Collision Avoidance: Implementation of a locking mechanism to prevent double bookings
  • Dynamic Room Visualization: Development of a flexible system for displaying different restaurant layouts
  • Scalable Availability Calculation: Optimized algorithms for calculating free time slots considering opening hours, existing reservations, and table capacities

Technologies Used

  • NextJS for the frontend
  • ExpressJS for the backend
  • MySQL (MariaDB) with Prisma ORM
  • Docker for containerization and deployment
  • Redis for caching and temporary data
  • Jest for automated tests

Development Status

The project is under active development with the following implemented features:

  • Complete authentication and authorization system
  • User management with profile editing
  • Dashboard for restaurant operators
  • Basic CRUD operations for all core entities

The next development steps include implementing the visual table selection interface and extending the reservation system with additional features such as waitlists and automatic notifications.

Future Development

Based on the original concept, the project has evolved into a comprehensive management solution for restaurant businesses. Future extensions include:

  • Integration of payment systems for reservation fees
  • Advanced analytics for restaurant operators
  • Staff planning based on reservation data
  • Mobile app for iOS and Android

Visual Representation

Dashboard with reservation overview and utilization statistics Configuration area for restaurant settings and table layout