- 1、资源链接
- 2、系统和数据库设计
- 2.1体系结构设计
- 2.2功能模块层次图
- 2.2.1 前台
- 2.2.2 后台
- 2.3ER分析
- 2.4表结构设计
- 2.5设计思路
- 3、类图、系统安全和权限设计
- 3.1类图
- 3.2系统安全
- 3.3权限设计
- 3.3.1前台用户权限设计说明
- 3.3.2后台管理员权限设计说明
- 3.4设计思路
- 4、改进分析
- 4.1 问题一:
- 4.2 问题二:
- 5、团队绩效
- 5.1 工作流程
- 5.1.1 作业一经发布,组长和组员查看作业内容,熟悉作业要求,组长提炼出所有的任务,进行分工,并制定ddl
- 5.1.2 组长以迅雷不及掩耳盗铃儿响叮当之势完善需求分析,并详细地在word文件中描述
- 5.1.3 组长快马加鞭制作最新版本的前台后台思维导图,方便组员根据思维导图设计接口和数据库等分工
- 5.1.4 组员分为前端和后端,各自再细分分配任务,并完成第一轮的分工
- 5.1.5 在周日的时候汇报完成情况,进而继续布置第二轮分工
- 5.1.6 撰写博客,汇总材料并上传(正是现在码字ing QAQ)
- 5.2 组员分工及其贡献度比例
- 5.3 分工每日进程
- 6、开发计划安排
- 6.1 开发时间安排
- 6.2 开发分工安排
1、资源链接
- 护林员团队GitCode项目仓库
- 《系统设计说明书》
- 《数据库设计说明书》
- 答辩PPT
2、系统和数据库设计
2.1体系结构设计
以下是福大树洞体系结构图,它描述了移动应用的三个主要层次:表现层、业务层和数据层。
表现层(Presentation Tier):
- 这一层负责处理用户界面(UI)和用户交互。它包含了用户在设备屏幕上看到的所有元素,如图形、按钮和文本。
- 表现层通过应用程序编程接口(API)与其它层次交互,负责向用户展示内容并接收用户输入。
业务层(Business Tier):
- 也称为应用层,这一层包含了应用的核心业务逻辑。它处理数据访问、业务规则执行、事务管理等。
- 业务层通常托管在服务器端,不直接是应用本身,但支持应用的功能执行。
数据层(Data Tier):
- 负责存储和管理应用的数据,包括数据库和数据访问层。
- 这一层处理所有数据交易,并通过API和数据访问组件、服务工具、实用程序与业务层交互。
此外,体系结构图还展示了一些辅助组件和服务,例如:
- 服务代理(Service Proxy):作为客户端和服务器之间的中介,处理网络连接和数据传输。
- 本地数据和缓存(Local Data & Cache):允许应用在本地存储数据,以提高性能和支持离线功能。
- 工具(Tools)和程序(Utilities):提供辅助功能,如日志记录、数据验证等。
整个体系结构的设计旨在确保应用的性能、兼容性、可扩展性、用户友好性以及安全性。通过分层,可以更好地组织代码,提高应用的可维护性和可测试性。

2.2功能模块层次图
2.2.1 前台
登录与账户管理模块:
- 用户登录:允许用户登录系统。
- 注册账号:新用户注册账户的流程。
- 找回密码:帮助用户找回或重置遗忘的密码。
个人设置模块:
- 更改信息:用户更新个人信息的选项。
- 展示个人信息:显示用户的个人信息。
- 重置密码:用户重置账户密码的功能。
- 切换主题颜色:允许用户改变界面的视觉主题颜色。
社交与互动模块:
- 查看我的树洞:用户查看个人帖子的功能。
- 查看历史记录:展示用户在平台上的查看过的帖子和课程评价历史活动记录。
- 查看通知详情:用户查看系统或他人发送的通知。
系统与主题设置模块:
- 推送设置:用户设置哪些通知可以推送到设备。
- 日间模式:切换到界面的日间显示模式。
- 深色设置:切换到界面的夜间或深色模式。
内容探索与评价模块:
- 课程搜索:用户搜索课程的功能。
- 课程评价:用户对课程进行评价的界面。
- 帖子搜索:用户搜索帖子的功能。
- 查看所有评价:展示所有用户评价的列表。
内容发布与互动模块:
- 发布帖子:用户创建和发布新帖子的界面。
- 收藏帖子:用户收藏感兴趣的帖子。
- 回复帖子:用户回复他人帖子的功能。
- 评论排序:对帖子下的评论进行排序。
课程与教师模块:
- 教师选择:用户选择或浏览教师的功能。
- 课程选择:用户选择或浏览课程的功能。
分享与反馈模块:
- 分享:用户分享帖子或课程到其他社交平台。
- 举报:用户举报不当内容的选项。
辅助功能模块:
- 回到顶部:快速跳回页面顶部的功能。
- 评价搜索:搜索特定评价的界面。
- 展示评价内容和评论:展示评价及其相关评论的界面。
用户协议与帮助模块:
- 用户协议:展示用户使用平台前需同意的协议。
- 个人中心:用户的个人账号管理区域。
- 退出登录:用户退出当前登录状态的功能。
前台展示模块:

2.2.2 后台

2.3ER分析

2.4表结构设计

2.5设计思路
- 需求分析:首先需要了解系统的需求。这包括确定系统中需要存储哪些数据,以及这些数据之间的关系。
- 确定实体:基于需求分析,确定系统中的主要实体。例如在本次福大树洞项目中,实体可能包括管理员、帖子、课程评价、用户、评论、教师和课程。
- 确定属性:为每个实体确定其属性。属性是实体所具有的数据项。例如,用户实体的属性可能包括用户ID、头像、密码、昵称等。
- 确定关系:确定实体之间的关系。这可以是一对一(1:1)、一对多(1:n)或多对多(m:n)的关系。关系定义了不同实体如何相互关联。
- 规范化:对数据库进行规范化以减少数据冗余并提高数据完整性。这通常涉及将表分解成更小的、更具体的表。
- 设计表结构:基于上述步骤,设计每个表的结构,包括表名、列名和数据类型。
- 定义主键和外键:为每个表定义一个主键,它是唯一标识表中每条记录的字段或字段组合。定义外键以建立表之间的关系。
3、类图、系统安全和权限设计
3.1类图

3.2系统安全
- 密码安全存储:使用强加密算法如SHA-256对用户密码进行加密,确保即便其他人通过非法手段获得数据库信息,也能确保密码的安全性,防止密码被轻易破解或还原。
- 权限控制:实施基于角色的访问控制(RBAC),通过为不同的用户分配不同的角色,并根据这些角色设定相应的访问权限,确保用户只能访问到他们被授权的数据。此外,对于涉及个人隐私的数据,采用水平权限校验的方法,以防止用户访问到其他用户的信息,从而保护用户隐私不被泄露。
- 数据脱敏:在展示和传输过程中,像电话号码、身份证号等敏感信息会被特殊处理,以确保即便在数据被意外泄露的情况下,用户的隐私也不会受到威胁。
- 防御SQL注入:对所有用户输入进行严格的验证和过滤,确保输入内容的合法性;使用参数化查询技术,避免将用户输入直接嵌入到SQL语句中,从而防止攻击者利用SQL注入的漏洞对数据库进行恶意操作。
- 访问频率控制:监测和限制用户的访问请求频率,一旦检测到某个用户的请求频率超出了正常使用的范围,系统将会自动进行限制或封禁,从而有效防止恶意攻击和滥用服务。
- 日志记录:日志包括操作的时间、操作的用户等详细信息,并且定期对这些日志进行备份。这样的做法不仅有助于事后的审计和追踪,也为我们提供了一种有效的手段来监控和分析用户行为,以便及时发现和处理异常情况。
- 内容过滤:建立违禁词列表,使用正则表达式、字符串匹配等技术,对用户生成的内容进行实时监控和过滤,防止不当信息的传播。
3.3权限设计
在设计权限系统时,我们需要为不同的用户角色分配适当的权限,以确保系统的安全性和数据的完整性。
3.3.1前台用户权限设计说明
- 个人信息管理:用户可以查看和更新自己的个人资料,包括昵称、签名、性别、出生日期等。
- 安全与隐私:用户能够通过密码重置功能保护其账户安全,并可以切换主题颜色以个性化体验。
- 内容互动:用户可以浏览、搜索、发布和收藏帖子和课程评价,以及参与树洞聊天和评论。
- 通知与推送:用户可以接收系统通知,并根据自己的偏好设置推送选项。
3.3.2后台管理员权限设计说明
- 用户管理:管理员可以查看用户列表,审核用户信息,以及在必要时修改或封禁用户。
- 内容监管:管理员负责审核和删除不当的帖子、评价和评论,确保平台内容的合规性。
- 系统维护:管理员可以处理用户的举报,维护社区的秩序和健康。
- 数据监控:管理员能够查看详细的用户、帖子、评价和评论信息,进行必要的数据管理和分析。
3.4设计思路
需求分析:
识别实体:
- 根据需求分析,识别出系统中的主要实体。
- 这些实体通常对应于现实世界中的对象或概念。
创建E-R图:
- 使用实体-关系(E-R)图来表示实体之间的关系。
- 确定实体的属性和实体间的联系。
定义类:
- 将E-R图中的实体转换为类。
- 每个类应该有一个唯一的名称,并且包含数据成员(属性)和方法(操作)。
确定属性:
- 为每个类定义属性,这些属性应该能够充分描述类的属性。
- 属性应该是私有的(private),并通过公共的(public)方法进行访问。
定义操作:
- 确定每个类应该具有的操作(方法),这些操作定义了可以对类的实例执行的行为。
- 操作可以是查询(获取信息)或更新(修改状态)。
确定关系:
封装和抽象:
- 确保类的实现细节被封装,只通过操作暴露必要的接口。
- 使用抽象类来定义一组相关操作的接口。
使用UML类图符号画图:
- 使用统一建模语言(UML)的类图符号来表示类、属性、操作和关系。
维护:
- 随着项目的发展,定期更新类图以反映新的或更改的需求。
4、改进分析
4.1 问题一:
Q(老师):你们有没有做手机通知功能?就是像微信一样有消息通知的时候,手机会有弹窗提示。
A(学生):由于消息通知功能是提升用户使用体验的,我们在项目的需求分析中,过于注重项目具有实用性的核心功能,而忽略了一部分的用户额外体验。再加上可能我们日常生活中都喜欢打开手机软件的免打扰模式,才得以清净,就没考虑到实现这部分的功能。但为了提高用户粘性,消息通知提示无疑是吸引用户打开软件使用的最好方式之一,我们会尝试使用一些插件,使用vue3+插件开发uni-app,来实现此功能。
4.2 问题二:
Q(老师):为什么你们导航栏是使用侧边栏而不是底部导航栏?
A(学生):首先是我们软件的特点是从下往上滑动屏幕浏览帖子,再加上目前市面上大部分手机是全面屏手机,即手机底部没有系统导航栏,我们希望可以增加用户使用界面的视野,即在软件中仍然保持全面屏(没有底部导航栏)的样式,可以增加用户的浏览体验。另外由于我们在页面顶部中间设计了页面标题,顶部右侧设计了通知按钮,顶部左边刚好空余,可以作为弹出式导航菜单,合理利用页面局部空间。但我们后期调查发现,国内绝大部分软件都是采用底部导航栏的形式,为了适应校内大学生,我们决定改成底部导航栏的形式,来方便用户上手使用。
5、团队绩效
5.1 工作流程
5.1.1 作业一经发布,组长和组员查看作业内容,熟悉作业要求,组长提炼出所有的任务,进行分工,并制定ddl


5.1.2 组长以迅雷不及掩耳盗铃儿响叮当之势完善需求分析,并详细地在word文件中描述


5.1.3 组长快马加鞭制作最新版本的前台后台思维导图,方便组员根据思维导图设计接口和数据库等分工


5.1.4 组员分为前端和后端,各自再细分分配任务,并完成第一轮的分工


5.1.5 在周日的时候汇报完成情况,进而继续布置第二轮分工

5.1.6 撰写博客,汇总材料并上传(正是现在码字ing QAQ)
5.2 组员分工及其贡献度比例
| 学号 | 工作内容 | 贡献度 |
|---|
| 222100434黄楠 | 任务分配、ER图补充、数据库的分析建立、接口文档校验、截图、数据库设计说明书第一二四五章、汇报 | 15.5 |
| 222100101卢雨纯 | 博客,接口文档前台登录模块、后台登录模块 | 8 |
| 222100128黄煦陶 | 系统设计说明书二三四章、接口文档前台树洞聊天模块、后台帖子内容管理模块 | 12.5 |
| 222100129梅明胜 | 博客,接口文档前台课程评价模块、后台课程评价模块、汇报 | 12.5 |
| 222100221林炳昌 | ER图的补充、数据库的分析、接口文档校验、数据库设计说明书第三章 | 13.5 |
| 222100304林雅婷 | 接口文档校验、文案任务规划分配、两份说明书框架、PPT | 14.5 |
| 222100404余诗怡 | 系统设计说明书二六七章、接口文档前台个人中心模块、后台用户管理模块 | 12.5 |
| 222100411刘畅 | 初版ER图、接口文档校验、部分PPT | 11 |
5.3 分工每日进程

6、开发计划安排
6.1 开发时间安排
| 时间 | 任务 | 产出 | 里程碑 |
|---|
| 4.18 ~ 4.23 | 完成《数据库设计说明书》的撰写 完成《系统设计说明书》的撰写 确认项目开发时间安排 确认项目开发分工安排 确认项目开发技术栈 | 《数据库谁说明书》 《系统设计说明书》 | 完成了项目开发前的基础准备工作 |
| 4.24 ~ 4.30 | 进行成员间的磨合 熟悉项目开发流程 总结合作过程中遇到的问题 共同讨论解决办法 | | 组员磨合完成,可以随时进行代码编写 |
| 5.1 ~ 5.7 | 完成服务器数据库的部署 完成账号登录模块的开发 考虑代码架构以便功能复用 完成树洞聊天模块主界面的开发 | 服务器的部署 登录功能 菜单栏 树洞聊天主界面 | 前台基本框架搭建完成 |
| 5.8 ~ 5.14 | 完成树洞聊天模块帖子详情的开发 完成课程评价模块的开发 | 树洞聊天功能 课程评价功能 | 前台最基本功能完成开发 |
| 5.15 ~ 5.21 | 完成个人中心模块的开发 对前台功能进行单元测试和集成测试 完成前台 APP 打包 | 个人中心查看 软件 v1.0.0 | 前台开发完成 软件 Alpha 版本完成 |
| 5.22 ~ 5.28 | 完成管理员登录模块的开发 完成用户信息管理模块的开发 完成帖子内容管理模块的开发 完成课程评价管理模块的开发 进行前后台系统测试,并修改前后台遗留 Bug | 管理员登录功能 用户信息管理功能 帖子内容管理功能 课程评价管理功能 软件 v1.1.0 | 后台开发完成 |
| 5.29 ~ 6.4 | 进行验收测试 进行性能测试 进行压力测试 解决测试中发现的问题 | 软件 v1.1.1 | 软件功能完成度得到确保 软件性能得到确保 |
| 6.5 ~ 6.11 | 进行稳定性测试 进行安全性测试 进行可用性测试 进行回归测试 解决测试中发现的问题 | 软件 v1.1.2 | 软件安全性得到确保 软件可用性得到确保 软件 Beta 版本完成 |
6.2 开发分工安排
| 职务 | 成员 |
|---|
| 项目经理 | 222100434 黄楠 |
产品经理 前端开发负责人 | 222100129 梅明胜 |
| 后端开发负责人 | 222100221 林炳昌 |
| 前端开发团队 | 222100409 梅明胜 222100101 卢雨纯 222100128 黄煦陶 222100404 余诗怡 |
| 后端开发团队 | 222100221 林炳昌 222100304 林雅婷 222100411 刘畅 222100434 黄楠 |
| 时间 | 工作人员 | 任务 | 具体描述 |
|---|
| 第一周 | 前端开发团队 | 系统设计说明书 | 完成类图、用况图、接口文档等内容 |
| 后端开发团队 | 数据库设计说明书 | 完成 ER 图、完成数据库的设计等内容 |
| 第二周至第六周 | 前端开发团队 | 前端界面开发 | 根据文档中的要求,完成各个模块的前端界面,并正确向后端发送请求 对自己开发部分功能进行测试 |
| 后端开发团队 | 后端数据处理 | 根据文档中的内容,完成各个接口的数据处理,并转换为前端要求的格式 对自己开发部分功能进行测试 |
| 第七周至第八周 | 全体团队 | 应用测试 | 针对不同测试要求,对软件进行充分的测试,将问题以测试报告的形式发出 针对测试报告修改各自负责的代码 |