CUH405 Group 10. A MQTT based restaurant-system
This project intend to develop a initial version of restaurant system that uses MQTT to facilitate communication between various components of the system. It includes four clients: the control center, customer app, waiter app, and chef app, and uses EMQX as the MQTT broker.
The MQTT broker is configured to restrict publishing capabilities based on client roles:
- Control Center can only publish to
control_center/*
. - Chef App can only publish to
chef/*
. - Customer App can only publish to
customer/*
. - Waiter App can only publish to
waiter/*
.
Developer: Hongtian Wang
The control center is structured into five layers, facilitating streamlined operations and message handling:
- Transmission Layer: Manages outgoing and incoming messages.
- Buffer Layer: Temporarily stores outgoing and incoming messages.
- Central Layer: Processes messages fetched from the buffer layer and invokes appropriate actions in helper layer. It also handle message generated by helper layer and pass it to buffer layer.
- Helper Layer: Called by central layer to execute task, and generate response after task is executed, the response will be passed to central layer.
- Data Layer: Manages database operations through
Database Manager
.
Please notice that control center is only regarded as a client when using MQTT protocol, its implementation make it protocol-irrelevant, modify Message Manager
could change its role in the future version of project.
Developer: Enyang Gong
- Features:
- Displays the menu to users.
- Wraps user orders into messages for transmission.
Developer: Zheng Yang
- Features:
- Receives customer requests for assistance.
- Responds to customer help requests.
Developer: Yancheng Chen
- Features:
- Monitors current tasks.
- Marks tasks as completed (
dish done
). - Cancels tasks if necessary (
dish cancel
).