7.1 KiB
7.1 KiB
立达中学食堂系统详细设计
一、系统架构设计
-
整体架构
- 系统采用B/S架构,分为前端、后端和数据库三层结构。
- 前端负责用户界面的展示和交互,后端负责业务逻辑的处理和数据存储。
-
技术选型
- 前端:Vue.js,HTML5,CSS3,JavaScript
- 后端:Spring Boot(Java)
- 数据库:MySQL
- 服务器:Linux,Nginx
二、数据库设计
-
数据库选型
- 采用MySQL数据库,具有高效性、可靠性和可扩展性。
-
数据库表设计
用户表(users)
- id:主键,自增
- username:用户名,唯一
- password:密码,哈希加密
- role:角色(学生、教职工、管理员)
- email:邮箱地址
- phone:联系电话
菜品表(dishes)
- id:主键,自增
- name:菜品名称
- price:价格
- description:描述
- image_url:图片地址
库存表(inventory)
- id:主键,自增
- item_name:食材名称
- quantity:数量
- unit:单位
- threshold:预警阈值
订单表(orders)
- id:主键,自增
- user_id:用户ID,外键
- dish_id:菜品ID,外键
- quantity:数量
- total_price:总价
- order_date:订单日期
采购表(purchases)
- id:主键,自增
- item_name:食材名称
- quantity:数量
- unit_price:单价
- supplier:供应商
- purchase_date:采购日期
三、前端设计
-
用户界面
- 首页:显示系统简介、导航栏,登录/注册按钮。
- 菜品列表:展示每日菜品,包含名称、价格、图片等信息。
- 订单管理:用户查看历史订单、当前订单状态。
- 个人信息:用户查看和修改个人信息。
-
管理员界面
- 用户管理:管理员查看、添加、修改、删除用户信息。
- 菜品管理:管理员管理菜品信息,包括添加、修改、删除。
- 库存管理:管理员查看库存情况,管理食材信息。
- 订单管理:管理员查看订单详情,处理订单。
- 报表管理:生成并查看销售报表、库存报表、用户报表。
四、后端设计
-
业务逻辑层
- 用户管理服务:处理用户注册、登录、信息管理等逻辑。
- 菜品管理服务:处理菜品的增删改查业务逻辑。
- 库存管理服务:处理库存信息的记录、预警、更新等逻辑。
- 订单管理服务:处理订单的创建、查询、统计等逻辑。
- 报表管理服务:生成销售报表、库存报表、用户报表等。
-
数据访问层
- 通过DAO(Data Access Object)模式与数据库交互,提供数据的增删改查接口。
-
接口设计
-
用户管理接口
- 注册接口:
POST /api/users/register - 登录接口:
POST /api/users/login - 获取用户信息接口:
GET /api/users/{id} - 更新用户信息接口:
PUT /api/users/{id}
- 注册接口:
-
菜品管理接口
- 获取菜品列表接口:
GET /api/dishes - 添加菜品接口:
POST /api/dishes - 修改菜品接口:
PUT /api/dishes/{id} - 删除菜品接口:
DELETE /api/dishes/{id}
- 获取菜品列表接口:
-
库存管理接口
- 获取库存列表接口:
GET /api/inventory - 添加库存接口:
POST /api/inventory - 修改库存接口:
PUT /api/inventory/{id} - 删除库存接口:
DELETE /api/inventory/{id}
- 获取库存列表接口:
-
订单管理接口
- 创建订单接口:
POST /api/orders - 获取订单列表接口:
GET /api/orders - 获取订单详情接口:
GET /api/orders/{id}
- 创建订单接口:
-
报表管理接口
- 获取销售报表接口:
GET /api/reports/sales - 获取库存报表接口:
GET /api/reports/inventory - 获取用户报表接口:
GET /api/reports/users
- 获取销售报表接口:
-
五、系统流程设计
-
用户注册与登录
- 用户通过前端界面填写注册信息,提交至
/api/users/register接口。 - 系统验证信息有效性后,保存用户信息至数据库,并返回注册成功。
- 用户登录时,提交用户名和密码至
/api/users/login接口,系统验证后返回登录状态。
- 用户通过前端界面填写注册信息,提交至
-
菜品管理
- 管理员登录后,通过菜品管理界面操作。
- 添加新菜品时,填写菜品信息,提交至
/api/dishes接口。 - 修改或删除菜品,通过对应接口更新数据库信息。
-
库存管理
- 管理员通过库存管理界面查看和管理库存。
- 添加新库存记录,提交至
/api/inventory接口。 - 修改或删除库存信息,通过对应接口更新数据库。
-
订单管理
- 用户通过前端界面选择菜品并提交订单,系统生成订单记录。
- 用户可以在订单管理界面查看历史订单和当前订单状态。
- 管理员通过后台查看并处理订单,确保订单信息准确。
-
报表生成
- 管理员通过报表管理界面选择报表类型,系统生成相应报表。
- 报表数据通过各个管理接口的统计结果生成,并展示在前端界面。
六、界面设计
-
用户界面
- 首页:简洁明了的导航栏,登录和注册入口。
- 菜品列表:卡片式布局,每个菜品显示图片、名称、价格,用户可以点击查看详情。
- 订单管理:表格布局,显示订单编号、菜品名称、数量、总价、订单状态等信息。
- 个人信息:表单布局,用户可以修改个人信息,点击保存更新。
-
管理员界面
- 用户管理:表格布局,显示用户列表,支持增删改查操作。
- 菜品管理:卡片式布局,显示菜品列表,支持增删改查操作。
- 库存管理:表格布局,显示库存列表,支持增删改查操作。
- 订单管理:表格布局,显示订单列表,支持查询和处理操作。
- 报表管理:图表展示销售、库存、用户数据,支持按时间段查询和导出。
七、安全设计
-
数据安全
- 使用HTTPS协议,保障数据传输的安全性。
- 用户密码采用哈希算法加密存储,防止泄露。
-
权限管理
- 根据用户角色分配不同的权限,确保数据的安全性和访问的合理性。
- 通过JWT(JSON Web Token)进行身份验证和权限校验。
-
防火墙和入侵检测
- 配置防火墙,防止外部攻击。
- 部署入侵检测系统,实时监控系统安全,发现异常及时处理。
八、总结
本详细设计文档从系统架构、数据库设计、前后端设计、接口设计、系统流程、界面设计和安全设计等方面进行了详细描述,为系统的开发提供了完整的指导和参考。通过严格按照设计文档进行开发,确保系统高效、稳定、安全地运行,满足立达中学食堂管理和服务的需求。