YOROZUYA 第二次团队作业——原型设计+概要设计
| 作业所属课程 | 班级的链接 |
|---|---|
| 作业要求 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/14580 |
| 作业的目标 | 提交原型设计,系统设计,数据库设计以及相关需求分析的文档 |
| 团队名称 | YOROZUYA |
| 团队成员学号-名字 | 102301323吴金超 102301413余思衡 102301420吴限 102301421翁思铖 102301317余佳兴 082300141吴昕昀 102301325王浩楠 102301433李响 102301423魏昀 102301415叶禹瞳 102301422翁俊龙 |
1、原型设计
原型设计使用 Figma 进行原型设计,我们提供了 设计图 以及 原型图 供参考。
2、UML 设计
2.1、需求分析
首先是整个项目的整体需求分析,我们具体将其分为 5 个模块,如下:
- 个人信息管理模块
- 博客模块
- 学习路径模块
- 模拟面试模块
- 付费咨询模块
以下是我们的模块化的需求分析的用例图

2.2、核心功能分析
我们使用活动图,时序图以及协作图对我们的一系列核心功能进行了可视化,如下:
首先是付费咨询的协作图:

接着是 AI 面试的时序图

接着是博客模块的活动图

2.3、类图

3、数据库设计
数据库 ER 图具体如下,我们使用 drawsql 进行绘制。详细连接:

以下是我们的数据库表和 Java 中的对象的具体映射
@TableName(value ="users")
@Data
public class Users implements Serializable {
@TableId
private Long id;
private String phone;
private String nickname;
private String password;
private String avatar;
private String bio;
private Object userData;
private Integer status;
private Date createdAt;
private Date updatedAt;
}
@TableName(value ="posts")
@Data
public class Posts implements Serializable {
@TableId
private Long id;
private Long userId;
private String category;
private String tags;
private String title;
private String content;
private String summary;
private Integer status;
private Integer viewCount;
private Date createdAt;
private Date updatedAt;
}
@TableName(value ="post_likes")
@Data
public class PostLikes implements Serializable {
@TableId
private Long id;
private Long userId;
private Long postId;
private Date createdAt;
}
@TableName(value ="comments")
@Data
public class Comments implements Serializable {
@TableId
private Long id;
private Long postId;
private Long userId;
private Long parentId;
private String content;
private Date createdAt;
}
@TableName(value = "consultation_relation")
@Data
public class ConsultationRelation implements Serializable {
private Long id;
private Long userId;
private Double price;
private String domains;
private Date createdAt;
}
@TableName(value = "consultation_payments")
@Data
public class ConsultationPayments implements Serializable {
private Long id;
private Long consultationId;
private java.math.BigDecimal amount;
private Integer status;
private String provider;
private String transactionId;
private Date createdAt;
}
@TableName(value = "consultation_messages")
@Data
public class ConsultationMessages implements Serializable {
private Long id;
private Long consultationId;
private Long senderId;
private String content;
private String messageType;
private Date createdAt;
}
@TableName(value ="consultations")
@Data
public class Consultations implements Serializable {
@TableId
private Long id;
private Long expertId;
private Long seekerId;
private Integer status;
private Date createdAt;
}
@TableName(value ="mock_interviews")
@Data
public class MockInterviews implements Serializable {
@TableId
private Long id;
private Long userId;
private String domain;
private String style;
private String recordingUrl;
private Date createdAt;
}
@TableName(value ="study_path_recommendations")
@Data
public class StudyPathRecommendations implements Serializable {
@TableId
private Long id;
private Long userId;
private String content;
private Date createdAt;
}
4、团队协作记录
在团队协作方面,我们使用飞书提供的多维表格的项目管理模板来辅助我们的团队协作。
首先是项目的预期计划以及每位成员的分工,我们使用多维表格提供的看板功能来描述了每一个成员的对应的工作,如下:

我们预期计划如下:
- 14 - 15 周:完成基本的前后端开发,以及前后端联调
- 16 周:项目进行测试以及上线部署
项目开发日历如下:

协作过程:
5、后端设计图
我们的后端采用基本的 MVC 架构,基本的技术栈如下:
- 基于 SpringBoot 和 SpringWeb 进行开发
- MySQL 作为数据库,MyBatis/MyBatisPLUS 提供高级数据库 API 接口
- SaToken 作为安全框架负责鉴权认证
- Redis 作为内存数据库处理高并发业务

浙公网安备 33010602011771号