KDS is a specialized system designed for the food service industry to receive, process, and display orders from various channels, improving kitchen efficiency and order processing accuracy. The system supports a master/slave architecture, allowing orders to be distributed to different displays based on food categories, with real-time order status updates.
- Multi-channel Order Reception: Support for receiving orders from online platforms, self-service kiosks, web, and more
- Master/Slave Architecture: Support for one master KDS and multiple slave KDS in a distributed setup
- Category-based Distribution: Orders are distributed to different displays based on food categories (drinks, hot food, cold food, desserts, etc.)
- Real-time Status Updates: Order status updates in real-time, including new orders, in-process, and completed
- Order Prioritization: Automatic ordering based on urgency and order time
- Inventory Management: Real-time tracking and updating of inventory, with support for low-stock alerts and sold-out marking
- Background Service: Support for Android devices to continuously receive orders even when the app is running in the background
- Multi-language Support: Interface available in Chinese and English
- Printing Functionality: Support for order receipt printing
- Data Statistics: Order data statistics and analysis features
- TCP Communication: Master-slave KDS communication based on TCP protocol, ensuring accurate order information transmission
The system uses a distributed architecture with the following components:
-
Master KDS:
- Receives orders from all channels
- Processes order categorization and distribution
- Manages slave KDS connections
- Synchronizes order status
-
Slave KDS:
- Receives specific category orders distributed from the master KDS
- Reports order status changes to the master KDS
- Focuses on processing orders for specific categories
-
Background Service:
- Maintains TCP server running continuously on Android devices
- Periodically checks for new orders
- Receives orders even when the app is in the background
-
Order Processing Flow:
- Order Reception → Order Formatting → Category Classification → Order Distribution → Status Updates → Order Completion
- Frontend: React Native + Expo
- Backend Communication: TCP Socket
- Storage: AsyncStorage
- State Management: React Context API
- UI Components: React Native Components + Custom Components
- Native Modules: Java/Kotlin (Android)
- Printing Support: Custom Printer Module
- Background Service: Android Foreground Service
- Node.js 14+
- npm 6+
- Android Studio (for Android development)
- Xcode (for iOS development, Mac only)
- Expo CLI
-
Install dependencies
npm install
-
Start development server
npm run android
-
Run on emulator or physical device (optional)
- Press
ato run on Android emulator - Press
ito run on iOS simulator (Mac only) - Scan QR code with Expo Go app to run on a physical device
- Press
-
Master KDS Setup:
- Select "Master Display" role in the settings page
- Configure TCP port (default 4322)
- Add IP addresses and categories for slave KDS devices
-
Slave KDS Setup:
- Select "Auxiliary Display" role in the settings page
- Enter the master KDS IP address
- Select the food category to display
-
Background Service Configuration (Android):
- Enable "Background Order Reception" option in the settings page