本项目是一个多人同时点餐系统,主要实现的功能是让多位顾客在扫码后得到一个菜单页面,所有的顾客点餐的内容都会实时同步在菜单页上,每位顾客都可以看到其他人点的内容。前端包括顾客访问的菜单页和商户的后台管理,负责订单的处理、菜品上下架、价格修改、折扣计算等功能。
本项目前端使用 Vue3 + TypeScript + Vite + webSocket 实现,并配置了自动导入来优化重复导入带来的心智负担。服务端使用 Node JS,采用 express 框架,express-ws 建立 websocket 的方式, 数据库采用读写本地 json 文件的方法来实现。
-
克隆本项目到本地:
git clone [email protected]:you-hengh/multi-person-order-restaurant.git
-
进入项目目录,安装依赖:
顾客端:
cd multi-person-order-restaurant/client pnpm install
商户端:
cd multi-person-order-restaurant/admin pnpm install
服务端:
cd multi-person-order-restaurant/server pnpm install
-
启动服务端:
cd multi-person-order-restaurant/server pnpm devServ
-
在另一个终端窗口启动前端:
cd multi-person-order-restaurant/client pnpm dev
-
打开浏览器,访问
http://localhost:5173
,即可看到菜单页。
-
顾客点餐 顾客扫码后进入菜单页,可以看到所有菜品的列表,包括菜品名称、价格、描述等信息。顾客可以选择自己喜欢的菜品,点击“加入购物车”按钮,已选菜品会显示在购物车列表中。顾客可以修改菜品数量或删除已选菜品。
-
实时同步 所有顾客的点餐内容会实时同步在菜单页上,每位顾客都可以看到其他人点的内容。当有新的点餐信息时,页面会自动更新。
-
商户后台管理 商户可以通过后台管理页面查看所有订单信息,包括订单号、顾客名称、点餐内容、总价等。商户可以对菜品进行上下架、价格修改、折扣计算等操作。
multi-person-order-restaurant/
├─ admin // 商户端
│ ├─ public
│ ├─ src
│ └─ package.json
├─ client // 顾客端
│ ├─ public
│ ├─ src
│ └─ package.json
├─ server // 服务端
│ ├─ database // 数据库文件
│ ├─ public
│ ├─ routes // 路由文件
│ ├─ utils // 工具文件
│ └─ package.json
├─ package.json
└─ README.md
- 本项目仅供学习交流使用,请勿用于商业用途。
- 本项目采用读写本地 json 文件的方法实现数据库功能,实际项目中建议使用更稳定的数据库系统,如 MySQL、MongoDB 等。
- 本项目前端使用 Vue3 + TypeScript + Vite 实现,如需调整技术栈,请自行修改。
如有任何问题或建议,请通过以下方式联系我们:
感谢您的使用!