Back to Projects
DineFlow
In-progress

DineFlow

A comprehensive restaurant management platform with multi-tenant architecture, featuring interactive floor plan design, drag-and-drop menu builder, and role-based access control for restaurant chains.

RoleFull Stack Developer

Key Challenges

  • Implementing a real-time interactive floor plan editor with Konva.js, handling complex drag-and-drop interactions, collision detection, and table positioning with visual feedback
  • Building a hierarchical drag-and-drop menu builder supporting nested sections, categories, and dishes with dynamic reordering and display order management using dnd-kit
  • Designing a multi-tenant architecture supporting restaurant chains with multiple outlets, each with independent menus, tables, and staff while sharing common resources
  • Implementing granular role-based access control (RBAC) with Admin, Owner, and Manager roles, each with different permissions across restaurants and outlets
  • Managing complex state synchronization between local UI state and server data, handling optimistic updates with pending changes tracking and bulk save operations

Key Learnings

  • Mastered canvas-based UI development with React-Konva for building interactive 2D floor plan editors with drag, rotate, and resize capabilities
  • Gained deep expertise in dnd-kit library for implementing complex nested drag-and-drop interfaces with custom collision detection algorithms
  • Learned effective patterns for RTK Query with automatic cache invalidation, optimistic updates, and efficient data fetching strategies
  • Developed skills in building scalable multi-tenant SaaS architectures with MongoDB, handling data isolation and shared resources
  • Improved understanding of form validation patterns using Zod schemas with React Hook Form for type-safe, reusable validation logic

Overview

DineFlow is a full-stack restaurant management platform designed for restaurant chains and multi-outlet operations. It provides a centralized dashboard for managing restaurants, outlets, staff, menus, tables, and orders with role-based access control ensuring the right people have access to the right features.

Built with a modern tech stack featuring React 19, TypeScript, Express 5, and MongoDB, DineFlow demonstrates advanced patterns in state management, real-time UI interactions, and multi-tenant architecture design.

Key Features

Interactive Floor Plan Designer

Canvas-based table layout editor using React-Konva with drag-and-drop positioning, collision detection, table shapes (circle/rectangle), rotation, and real-time status visualization (available, occupied, reserved, inactive).

Drag-and-Drop Menu Builder

Hierarchical menu construction with sections, categories, and dishes. Supports nested drag-and-drop reordering, custom pricing per menu, and dynamic display order management using dnd-kit.

Multi-Tenant Restaurant Management

Support for restaurant chains with multiple outlets. Each outlet has independent menus, floor plans, and staff while sharing dishes, categories, and addons at the restaurant level.

Role-Based Access Control

Granular permissions system with Admin, Owner, and Manager roles. Route-level guards and API-level authorization ensure secure access to features based on user roles and organizational hierarchy.

Comprehensive Dish & Addon Management

Full CRUD operations for dishes with support for dietary types (veg, non-veg, egg), preparation time, serving size, pricing, and customizable addons that can be attached to multiple dishes.

Technical Implementation

The application follows a clean architecture pattern with separate frontend (React + Vite), marketing site (Next.js), and backend (Express + MongoDB) applications. State management leverages Redux Toolkit with RTK Query for efficient API caching and automatic refetching.

  • Frontend Architecture: React 19 with TypeScript, Vite for fast HMR, shadcn/ui components built on Radix primitives, and Tailwind CSS for styling
  • State Management: Redux Toolkit with RTK Query for API state, custom slices for UI state, and optimistic updates with rollback support
  • Backend Design: Express 5 with service-layer architecture, Mongoose ODM for MongoDB, JWT authentication, and Joi validation
  • Canvas Rendering: React-Konva for 2D floor plan rendering with custom event handlers for drag, click, and collision detection
  • Drag-and-Drop: dnd-kit library with custom collision detection, sortable contexts, and drag overlays for visual feedback
  • Form Handling: React Hook Form with Zod schema validation for type-safe forms with reusable validators across frontend and backend
  • Theming: next-themes integration with system preference detection and persistent theme storage

Design & Developed by Kunj Detroja
© 2026. All rights reserved.

Command Palette

Search for a command to run...