KDS (Kitchen Display System) Application
Overview
A real-time kitchen menu display application supporting both WebSocket and HTTP polling, with a demo mode.
Main Features
1. Hybrid Connection
WebSocket: Real-time updates immediately upon new order.
HTTP Polling: Fallback every 30 seconds when WebSocket becomes unresponsive.
Auto-reconnect: Automatically reconnects when connection is lost.
2. Order Card Display
Responsive Layout: Adjusts the number of columns according to screen size (1-7+ columns).
Time-based alert colors: Green → Yellow → Orange → Red (depending on cooking time).
Complete information: Table number, quantity, options, notes, image.
Status: In progress / Completed / Cancelled.
3. Timer & Warning System
Real-time cooking time tracking.
Displays alert icons based on cooking speed (⚡ → ⚠️ → 🔥).
Audio alert when an order is delayed by more than 5 minutes.
4. Text-to-Speech
1. Reading New Items Aloud (Menu Name, Quantity, Notes)
Slow Order Reminder every 5 minutes
On/Off from button on AppBar
5. Printing
Automatically sends to print when finished
Supports thermal printers
6. Demo Mode
Test the app without connecting to a real POS
Add/reset orders
Switch states with a tap
7. Settings
Adjust order card size (140-300px)
On/Off: Sound, Image, Printing
Change kitchen/printer
UI/UX Design
Theme: Ban Chiang (Earth-Cream-Terracotta colors)
Card Design: Rounded corners, shadows, gradient according to state
Typography: Large 2-line menu name, prominent quantity
Badges: Go Home 🎁, Done ✅, Cancel ❌
Technical Stack
State Management: BLoC Pattern
Network: WebSocket + Dio (HTTP)
Image Caching: cached_network_image
Keep Alive: wakelock_plus