# 智能餐饮管理系统 ## 项目简介 这是一个功能完整的智能餐饮管理系统,支持餐厅管理员、服务员和顾客三种角色,实现了从点餐、库存管理到数据分析的全流程管理。 ## 技术栈 ### 后端 - **框架**: Node.js + Express 4.18+ - **数据库**: MySQL 8.0+ - **身份认证**: JWT (jsonwebtoken) - **密码加密**: bcryptjs - **文件上传**: multer - **跨域处理**: cors ### 前端 - **框架**: Vue.js 3 - **UI组件库**: Element Plus - **状态管理**: Pinia - **HTTP客户端**: Axios - **路由**: Vue Router - **构建工具**: Vite ## 项目结构 ``` restaurant_system/ ├── backend/ # 后端代码 │ ├── config/ # 配置文件 │ ├── models/ # 数据库模型 │ ├── routes/ # API路由 │ ├── controllers/ # 控制器 │ ├── middleware/ # 中间件 │ ├── utils/ # 工具函数 │ ├── uploads/ # 上传文件目录 │ ├── server.js # 应用入口 │ ├── package.json # 后端依赖 │ ├── .env # 环境变量配置 | ├── package-lock.json # 后端依赖的具体版本 | ├── server.js # 后端核心接口 | └── test-db.js # 数据库连接测试脚本 ├── frontend/ # 前端代码 │ ├── src/ │ │ ├── components/ # Vue组件 │ │ ├── views/ # 页面视图 │ │ ├── router/ # 路由配置 │ │ ├── stores/ # 状态管理 │ │ ├── api/ # API接口 │ │ └── utils/ # 工具函数 │ ├── public/ # 公共资源 │ └── package.json # 前端依赖 ├── node_modules # 前端依赖 └── docs/ # 项目文档 ├── database_design.md # 数据库设计文档 └── api_docs.md # API接口文档 ``` ## 功能模块 ### 1. 用户管理 - ✅ 用户注册(管理员/服务员/顾客) - ✅ 用户登录(JWT令牌认证) - ✅ 角色权限控制 ### 2. 菜品管理 - ✅ 添加/修改/删除菜品 - ✅ 菜品信息(名称、价格、图片、口味、原材料) - ✅ 菜品分类 ### 3. 菜单管理 - ✅ 按时段设置菜单(午餐/晚餐) - ✅ 特殊节日菜单 - ✅ 电子菜单展示 ### 4. 订单管理 - ✅ 接收点餐请求 - ✅ 订单详情记录 - ✅ 订单状态跟踪 ### 5. 库存管理 - ✅ 食材进货记录 - ✅ 食材消耗追踪 - ✅ 库存不足提醒 - ✅ 过期食材警告 ### 6. 预订管理 - ✅ 在线预订座位 - ✅ 外卖预订 - ✅ 查看/修改/取消预订 ### 7. 会员管理 - ✅ 会员信息管理 - ✅ 积分累积 - ✅ 优惠券发放 - ✅ 会员专享优惠 ### 8. 数据分析 - ✅ 销售统计报表 - ✅ 顾客行为分析 - ✅ 菜品受欢迎度排行 ### 9. 支付结算 - ✅ 多种支付方式(模拟) - ✅ 订单结算 - ✅ 电子发票生成 ## 环境要求 - Node.js >= 16.0.0 - MySQL >= 8.0 - npm >= 8.0.0 ## 快速开始 ### 1. 安装依赖 #### 后端 ```bash cd backend npm install ``` #### 前端 ```bash cd frontend npm install ``` ### 2. 配置环境变量 编辑 `backend/.env` 文件,配置数据库连接信息: ```env PORT=5000 DB_HOST=localhost DB_USER=root DB_PASSWORD=你的数据库密码 DB_NAME=restaurant_db JWT_SECRET=your_super_secret_key ``` ### 3. 初始化数据库 ```bash # 登录MySQL mysql -u root -p # 创建数据库 CREATE DATABASE restaurant_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` ### 4. 启动项目 #### 后端 ```bash cd backend npm run dev ``` 后端将运行在: `http://localhost:5000` #### 前端 ```bash cd frontend npm run dev ``` 前端将运行在: `http://localhost:3000` ### 5. 访问系统 打开浏览器访问: `http://localhost:3000` ## 开发进度 - [x] 步骤1:项目初始化与环境配置 - [ ] 步骤2:数据库设计 - [ ] 步骤3:基础架构搭建 - [ ] 步骤4:用户认证系统 - [ ] 步骤5:菜品管理功能 - [ ] 步骤6:菜单管理功能 - [ ] 步骤7:订单管理功能 - [ ] 步骤8:库存管理功能 - [ ] 步骤9:预订管理功能 - [ ] 步骤10:会员管理功能 - [ ] 步骤11:支付结算功能 - [ ] 步骤12:数据分析与报表 - [ ] 步骤13:前端界面开发 - [ ] 步骤14:测试与优化 ## 默认账户 系统初始化后会创建以下测试账户: - **管理员**: admin / admin123 - **服务员**: waiter / waiter123 - **顾客**: customer / customer123 ## 作者 课程作业项目 ## 许可证 MIT License