银河护胃队——项目原型设计+概要设计
作业所属课程 | https://edu.cnblogs.com/campus/fzu/SE2024/ |
---|---|
作业要求 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13297 |
作业的目标 | 原型设计+概要设计 |
团队名称 | 银河护胃队 |
团队成员学号-名字 | 072208130-曹星才(组长) 052205144-张诗悦 102201120-陈康培 102201342-潘宇晴 102202108-王露洁 102202111-刘哲睿 102202128-林子豪 102202142-黄悦佳 102202149-詹镇壕 102202153-来再提·叶鲁别克 |
一、原型设计
前台应用原型
1.首页模块
• 功能描述:首页展示有食谱查询,排行榜,红黑榜,随心配,配料解读,打卡,搜索,食物排行榜,食谱推荐的功能
• 点击食谱查询,可查看各种食物的成分,健康指数和价格
• 点击食物榜单,可查看各种食物的卡路里等成分的排行榜
• 点击红黑榜,可查看在各种情况下(如减肥,糖尿病)的推荐食用的和谨慎食用的食物与相关信息
• 点击随心配,可随心搭配当日的食谱
• 点击配料解读和搜索都会跳转到小助手界面
• 点击食物排行榜可查看各个方面的食物排行
• 点击食谱推荐可直接查看系统推荐的更适合用户的食谱
• 原型界面展示:
2.小助手模块
• 功能描述:用户能够与小助手对话,小助手通过分析用户的需求和用户本身的身体情况,智能回答用户的问题,用户还可查看聊天的历史记录
• 点击搜索框,提出问题,得到答案
• 点击查看历史记录,查看之前的聊天记录
• 原型界面展示:
3.记录模块
• 功能描述:记录展示有体重管理和健康记录,其中健康记录有热量记录,体重,喝水记录,维度,睡眠。
• 点击体重管理,可记录当前体重和设定目标体重
• 点击热量记录,可记录一天中所摄入的热量
• 点击喝水记录,可记录今日饮水量和设定今日饮水目标
• 点击围度,可记录自己的六围
• 点击睡眠可记录自己一天中的睡眠时间
• 原型界面展示:
4.我的模块
• 功能描述:我的展示有基本信息,我的食物,我的收藏,健康计划,上周小结,本周食谱,体检档案,帮助与反馈功能
• 点击基本信息,可记录个人的基本信息
• 点击我的食物,可查看我收藏食物,自定义食物,上传食物,我的菜肴
• 点击我的收藏,可查看和添加收藏食物
• 点击健康计划,可让小助手生成健康计划
• 点击上周小结,可让小助手生成小结
•点击本周食谱,可查看本周的全部食谱
•点击体检档案,可修改查看自己的健康与生活与体检情况
•点击帮助与反馈,用户能提交使用遇到的问题,让我们进行改进
• 原型界面展示:
后台管理原型
1.登陆界面
2.饮食管理
3.后台操作日志
4.数据分析
5.设置与维护
6.用户管理
二、概要设计
(一)UML设计
1.用例图
2.活动图
3.类图
4.时序图
1、用户登录时序图
2、用户注册时序图
3、用户忘记密码时序图
4、用户搜索功能时序图
5、用户打卡功能时序图
6、用户健康管理时序图
7、给用户推荐食物、食谱功能时序图
8、用户与养养交互时序图
5.协作图
1、用户登录协作图
2、用户注册协作图
3、用户忘记密码协作图
4、用户搜索功能协作图
5、用户打卡功能协作图
6、用户健康管理协作图
7、给用户推荐食物、食谱功能协作图
8、用户与养养交互协作图
(二)数据库设计
1.ER图
2.关系数据模型
(1).用户账号信息表
(2).用户身体信息表
(3).用户健康信息表
(4).体重记录表
(5).用户饮食习惯表
(6).菜品信息表
(7).商家信息表
(8).用户打卡表
(9).用户AI推荐历史(聊天记录)
(10).用户评价表
(11).食材表
(12).每日摄入表
(13).身体维度记录
3.对象映射关系
(1). 用户账号信息表
public class UserAccount {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long userId; // 用户id
private String account; // 账号
private String password; // 密码
private Long phoneNum; // 手机号码
private String avatarUrl; // 头像url
private String nickname; // 昵称
private LocalDateTime createdAt; // 创建时间
private LocalDateTime updatedAt; // 更新时间
}
(2). 用户身体信息表
public class UserHealthInfo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long userId; // 用户id
private Integer age; // 年龄
private String sex; // 性别
private Float height; // 身高(m)
private Float weight; // 体重(kg)
private Float weightTarget; // 目标体重(kg)
private LocalDateTime createdAt; // 创建时间
private LocalDateTime updatedAt; // 更新时间
}
(3). 用户健康信息表
public class UserHealthInfo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long userId; // 用户id
private String bloodSugar; // 血糖(XX/XX mmol/L)
private String bloodPressure; // 血压 (XX/XX mmHg)
private String allergens; // 过敏源
private String recentMedications; // 近期用药记录
private String pastMedicalHistory; // 既往病史
private LocalDateTime createdAt; // 创建时间
private LocalDateTime updatedAt; // 更新时间
}
(4). 体重记录表
public class WeightRecord {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long weightRecordId; // 体重记录id
private Long userId; // 用户id
private Float newWeight; // 更新体重
private LocalDateTime createdAt; // 创建时间
private LocalDateTime updatedAt; // 更新时间
}
(5). 用户饮食习惯表
public class UserDietHabit {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long userId; // 用户id
private String dietGoals; // 饮食目标
private String tastePreference; // 喜好口味
private String avoidCertainFood; // 忌口
private String fitnessPlanning; // 健身规划
private String exerciseHabits; // 运动习惯
private LocalDateTime createdAt; // 创建时间
private LocalDateTime updatedAt; // 更新时间
}
(6). 菜品信息表
public class DishInfo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long dishId; // 菜品id
private String dishName; // 菜品名称
private String ingredients; // 食材
private String ingredientsDetails; // 食材及含量
private String nutrition; // 营养成分及含量
private String flavor; // 口味
private String cuisine; // 菜系
private BigDecimal price; // 价格
private Long merchantId; // 所属商家id
private String dishImage; // 菜品图片url
private Float score; // 用户评分
private String allergens; // 过敏成分
private LocalDateTime createdAt; // 创建时间
private LocalDateTime updatedAt; // 更新时间
}
(7). 商家信息表
public class MerchantInfo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long merchantId; // 商家id
private String merchantName; // 商家名称
private String address; // 地址
private String menu; // 菜单
private String icon; // 商家图标
private LocalDateTime createdAt; // 创建时间
private LocalDateTime updatedAt; // 更新时间
}
(8). 用户打卡表
public class UserCheckIn {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long logId; // 打卡记录id
private Long userId; // 用户id
private LocalDate year; // 打卡年份
private LocalDate month; // 打卡月份
private String logDays; // 打卡日期
private LocalDateTime createdAt; // 创建时间
private LocalDateTime updatedAt; // 更新时间 }
(9). 用户AI推荐历史表
public class UserAIHistory {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long userId; // 用户id
private String contain; // 聊天内容
private LocalDateTime createdAt; // 创建时间
private String initiatingObject; // 发起对象
}
(10).用户评价表
public class UserReview {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long appraiseId; // 评价id
private Long userId; // 用户id
private Long dishId; // 菜品id
private Float score; // 评分
private String appraise; // 评价
private LocalDateTime createdAt; // 创建时间
private LocalDateTime updatedAt; // 更新时间
}
(11). 食材表
public class IngredientInfo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long ingredientId; // 食材id
private String ingredientName; // 食材名称
private String efficacy; // 功效
private String contraindications; // 禁忌
private String types; // 食材类型
private String nutritions; // 营养成分
private Integer unitHeat; // 单位热量
private LocalDateTime createdAt; // 创建时间
private LocalDateTime updatedAt; // 更新时间
}
(12). 每日摄入表
public class DailyIntake {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; // 摄入表id
private Long userId; // 用户id
private LocalDateTime date; // 日期
private Integer waterTarget; // 饮水目标(ml)
private Integer haveDrunk; // 已喝水量(ml)
private Integer powerTarget; // 能量摄入目标(kcal)
private Integer haveEaten; // 已摄入能量(kcal)
private LocalDateTime createdAt; // 创建时间
private LocalDateTime updatedAt; // 更新时间
}
(13)身体维度记录表
public class BodyMeasurement {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; // 围度记录id
private Long userId; // 用户id
private Float waist; // 腰围(cm)
private Float thigh; // 大腿围(cm)
private Float calf; // 小腿围(cm)
private Float bust; // 胸围(cm)
private Float hips; // 臀围(cm)
private Float arm; // 臂围(cm)
private LocalDateTime createdAt; // 创建时间
private LocalDateTime updatedAt; // 更新时间
三、团队协作记录
(一)开发计划
任务 | 时间 | 备注 |
---|---|---|
项目预热 | 11.03-11.10 | 前端熟悉编程形式以及完成基本的框架,后端完成AI接口的调试以及服务器的基本搭建 |
项目中期 | 11.11-11.17 | 完成服务器和数据库的搭建,API接口调试成果并进行前后端的对接,最终将项目部署到云服务器上 |
项目验收 | 11.18-11.20 | 项目测试 |
(二)分工安排
(三)协作记录
(四)专业项目管理平台协作
使用飞书进行专业的项目管理,链接:https://gxle9as9y8l.feishu.cn/wiki/space/7426016235244978179?ccm_open_type=lark_wiki_spaceLink&open_tab_from=wiki_home
(五)github贡献记录
四、下载链接
事项 | 链接 |
---|---|
github团队仓库链接 | healthyFZU/team: 原型设计和概要设计仓库 |
银河护胃队_系统设计说明书.pdf | https://pan.baidu.com/s/1c67YvI_C_KHo3UP6FyNlBA 提取码: 1234 |
银河护胃队_数据库设计说明书.pdf | https://pan.baidu.com/s/1eSHgOVLVgbCuh4f8pOukHQ 提取码: 1234 |
银河护胃队_原型设计+概要设计答辩PPT.pdf | https://pan.baidu.com/s/1jEIolNq_6qgOdhFQ-3qz3w 提取码: 1234 |