目录
- GitCode团队仓库链接
- 游趣_系统设计说明书.pdf
- 游趣_数据库设计说明书.pdf
- 游趣_系统设计和数据库设计答辩PPT.pdf
- 1. 系统和数据库设计:
- 1.1 体系结构设计+功能模块层次图
- 1.1.1 系统分解
- 1.1.2 层次结构
- 1.1.3系统模块设计
- 1. 用户模块
- 2. 社交模块
- 3. 论坛模块
- 4. 语音模块
- 5. 层次图
- 1.2 ER分析+表结构设计
- 1.2.1 ER分析
- 1.2.2 表结构设计
- 表结构设计思路
- 2.类图、系统安全和权限设计
- 2.1 类图设计
- 2.1.1 类图
- 2.2 系统安全
- 2.3 权限设计
- 3.改进分析
- 4.团队绩效
- 4.1 团队绩效的工作流程
- 4.2 团队绩效的分工和贡献度
- 5.开发计划安排
- 5.1 开发计划
- 5.2 分工安排
1. 系统和数据库设计:
1.1 体系结构设计+功能模块层次图
1.1.1 系统分解
1.1.2 层次结构
- 界面层:用户与系统进行交互的工具,主要负责数据的输入和输出,不对数据进行逻辑处理。它负责显示信息,接收用户的操作请求,并展示系统对请求的反馈结果。
- 控制器层:控制器层接收和处理用户请求。当用户发起请求时,控制器层会根据请求的URL、HTTP方法等信息判断请求的目标,并调用相应的方法进行处理。它还可能调用业务逻辑层进行业务处理,并返回处理结果给前端页面进行显示。
- 业务逻辑层:主要负责业务规则的制定、业务流程的实现等与业务需求有关的系统设计。它位于界面层和数据访问层之间,作为客户端和数据库交互的桥梁。
- 数据访问层:主要负责数据库的访问,包括数据的查询、插入、更新和删除等操作。它实现了对象和数据表之间的映射,以及对象实体的持久化操作。
1.1.3系统模块设计
1. 用户模块
用户模块负责管理用户账号和信息。
- 登录注册:管理用户登录以及注册。
- 账号管理:管理用户账号,如修改密码、退出登录。
- 信息管理:管理用户信息,如编辑信息、展示信息。
2. 社交模块
社交模块负责管理用户之间的通信。
- 好友功能:管理用户的好友,如添加、删除好友。
- 聊天功能:负责用户之间的交流。
- 地图功能:地图上展示附近在线的用户。
- 系统消息推送:向用户推送好友的消息。
3. 论坛模块
论坛模块负责管理所有用户的帖子。
- 帖子功能:用户可以查看、发布帖子,也可以点赞、评论。
4. 语音模块
语音模块负责管理用户进行语音交流。
- 房间功能:用户可以创建房间、查找房间。
- 语音功能:用户在房间内可使用语音交流。
5. 层次图
1.2 ER分析+表结构设计
1.2.1 ER分析
1.2.2 表结构设计
字段名 | 数据类型 | 长度 | 主键 | 非空 | 描述 |
---|
用户id | 整数 | 8 | 是 | 是 | 自增 |
头像 | 字符串 | 128 | | | url字符串 |
昵称 | 字符串 | 32 | | 是 | |
邮箱 | 字符串 | 64 | | | |
账号 | 字符串 | 64 | | 是 | |
密码 | 字符串 | 256 | | 是 | MD5加密后的字符串 |
生日 | datetime | | | | |
性别 | 整数 | 1 | | | |
签名 | 字符串 | 64 | | | |
地址 | 字符串 | 256 | | 是 | |
经度 | 字符串 | 64 | | 是 | |
维度 | 字符串 | 64 | | 是 | |
字段名 | 数据类型 | 长度 | 主键 | 非空 | 描述 |
---|
角色id | 整数 | 8 | 是 | 是 | 自增 |
角色名 | 字符串 | 20 | | 是 | |
字段名 | 数据类型 | 长度 | 主键 | 非空 | 描述 |
---|
用户角色id | 整数 | 8 | 是 | 是 | 自增 |
用户id | 整数 | 8 | | 是 | |
角色id | 整数 | 8 | | 是 | |
字段名 | 数据类型 | 长度 | 主键 | 非空 | 描述 |
---|
资源id | 整数 | 8 | 是 | 是 | 自增 |
资源名 | 字符串 | 64 | | 是 | |
字段名 | 数据类型 | 长度 | 主键 | 非空 | 描述 |
---|
角色资源id | 整数 | 8 | 是 | 是 | 自增 |
角色id | 整数 | 8 | | 是 | |
资源id | 整数 | 8 | | 是 | |
字段名 | 数据类型 | 长度 | 主键 | 非空 | 描述 |
---|
角色社交id | 整数 | 8 | 是 | 是 | 自增 |
用户id | 整数 | 8 | | 是 | |
粉丝数 | 整数 | 8 | | | |
关注数 | 整数 | 8 | | | |
字段名 | 数据类型 | 长度 | 主键 | 非空 | 描述 |
---|
角色关注id | 整数 | 8 | 是 | 是 | 自增 |
用户id | 整数 | 8 | | 是 | |
被关注用户id | 整数 | 8 | | 是 | |
字段名 | 数据类型 | 长度 | 主键 | 非空 | 描述 |
---|
角色打分id | 整数 | 8 | 是 | 是 | 自增 |
打分用户id | 整数 | 8 | | 是 | |
被打分用户id | 整数 | 8 | | 是 | |
语音房间id | 整数 | 8 | | 是 | |
分数 | 整数 | 1 | | 是 | |
字段名 | 数据类型 | 长度 | 主键 | 非空 | 描述 |
---|
语音房间id | 整数 | 8 | 是 | 是 | 自增 |
创建者用户id | 整数 | 8 | | 是 | |
房间号 | 整数 | 4 | | 是 | |
房间最大成员数 | 整数 | 8 | | | |
房间成员数 | 整数 | 1 | | | |
标题 | 字符串 | 64 | | 是 | |
密码 | 字符串 | 16 | | | |
标签 | 字符串 | 128 | | | |
创建时间 | datetime | | | 是 | |
房主留言 | 字符串 | 256 | | 是 | |
字段名 | 数据类型 | 长度 | 主键 | 非空 | 描述 |
---|
语音房间记录id | 整数 | 8 | 是 | 是 | 自增 |
语音房间id | 整数 | 8 | | 是 | |
资源 | 文本 | | | 是 | |
表结构设计思路
- 1.对帖子表中的用户id建立单索引,快速查找用户下的所有帖子。
- 2.对评论表中的用户id建立单索引,快速查找用户下的所有评论。
- 3.对评论回复表中的评论id建立索引,快速查找评论下的回复。
- 4.对用户关注表中的关注用户id和被关注用户id建立联合索引,快速查找粉丝和关注以及好友(相互关注即为好友)。
2.类图、系统安全和权限设计
2.1 类图设计
2.1.1 类图
2.2 系统安全
用户在登录时,传输密码给后端时,采用AES加密,前后端共用一个密钥,保证了密码不进行明文传输,提高系统安全性,避免用户密码以明文形式泄露,同时,我们数据库在存储用户密码时采用MD5加密,避免了数据库受攻击时用户密码被窃取。
2.3 权限设计
- 服务器内部接口,在网关采用白名单机制,仅限服务器内部ip,避免了内部接口暴露给外网。
- 服务端给用户授权-鉴权-认证,用户登录后,服务器会返回一个token,用户在请求其他接口时,需要在请求头中携带token,服务器会校验token的有效性,保证了用户的合法性。
3.改进分析
- Q: 既然有了登录和注册的泳道图,那么为什么没有其他功能的泳道图呢?
- A:这是普通请求如查询帖子、查询评论、查询房间列表的泳道图,如下所示。
- Q: 类图是不是缺少了好友类,没有表示好友的关系类?
- A:确实,我们没有考虑周到。在类图中添加Friend类作为User和User之间好友关系的中间类。
- Q: 那有没有记录用户在房间行为?一个Room类足够说明房间相关类吗?
- 我们最初是没有考虑要记录用户在房间的行为,因为我们认为用户房间的行为不重要因此不记录。但是经过团队讨论,记录用户行为,是有用的,这样给平台管理员 提供必要审查支持。
- Q: 为什么开题有匹配功能,到需求分析这个功能就没了?
- A:用户在创建语音房间的时候可以设置房间标签以及用户可以根据房间标签灵活进行语音房间的筛选,我们理解的匹配就是筛选。用户可以在房间标签中任意标记自己房间的特点。比如,房间的标签可以是游戏及其游戏段位。
- Q: 为什么开题有评分功能,需求分析又没了?
- A:在我们的开题ppt不完善并没有评分功能,只是开题报告者口头上说有评分功能,因此在做需求分析的时候未考虑该功能,并不是我们app功能之一。但是我们决定实现开题报告者口头承诺的功能,并完善了如Q2相关类图。
4.团队绩效
4.1 团队绩效的工作流程
4.2 团队绩效的分工和贡献度
学号 | 姓名 | 工作内容 | 贡献度 |
---|
222100331 | 章瑞烨 | 编写系统设计说明书引言、概述部分 | 12% |
222100332 | 梁荫铭 | 编写数据库设计说明书其余部分 | 18% |
222100333 | 游宗建 | 编写系统设计说明书体系结构设计、功能模块层次设计、类图设计部分 | 14% |
222100334 | 谢鹏 | 编写系统设计说明书接口设计部分、数据库设计说明书物理结构设计、系统安全和权限设计部分,并创建GitCode仓库 | 18% |
222100309 | 许君毓 | 完成系统设计和数据库设计PPT | 15% |
222100310 | 许家榕 | 完成博客、PPT答辩 | 15% |
222100134 | 赛依旦木·艾合买提江 | 完善原型设计 | 8% |
5.开发计划安排
5.1 开发计划
时间 | 开发安排 |
---|
第9、10周 | 进行语音房间模块开发 |
第11周 | 实现地图模块,查看附近的人 |
第12周 | 进行好友功能模块开发 |
第13周 | 聊天模块开发 |
第14周 | 论坛帖子CRUD |
第15周 | 论坛帖子评论、回复功能开发 |
第16周 | 部署、测试、优化 |
5.2 分工安排
姓名 | 岗位 | 开发内容 |
---|
谢鹏 | 前端开发 | 语音房间开发、地图模块开发 |
梁荫铭 | 后端开发 | 用户部分模块开发、好友模块开发、好友聊天功能开发、系统消息推送功能开发 |
许家榕 | 后端开发 | 帖子模块开发、评论、回复功能开发、用户部分模块开发 |
游宗建 | 前端开发 | 登录页面开发、社交模块开发、首页开发 |
许君毓 | 前端开发 | 论坛模块开发、用户模块 |