241
社区成员
这个作业属于哪个课程 | 2024软件工程实践 |
---|---|
这个作业要求在哪里 | 团队作业--概要设计和数据库设计 |
团队名称 | 能跑就行队 |
这个作业的目标 | 系统设计与数据库设计 |
其他参考文献 | 《构建之法》、数据库设计说明书、UML类图详解 |
系统设计说明书
数据库设计说明书
系统设计和数据库设计答辩PPT
表 user 的结构
表 task 的结构
表 note 的结构
表 message 的结构
表 friend 的结构
表 file 的结构
表 chat 的结构
主要设计了6个表结构,其中用户表用于记录用户的个人信息和密码等,待办事项表用于记录待办的详细内容和起始日期,笔记表用于记录用户创建的笔记的标题、内容等,聊天记录表用于记录用户的聊天记录和相关信息,好友表用于记录用户的好友,文件表用于记录用户上传的文件和相关信息,会话表记录用户发起的所有会话和参与用户
因为笔记和文件可以关联到一个待办事项,因此为一对多的关联关系完善了笔记、待办和文件之间的关系增加了聊天协作功能相关的类,增加了聊天记录相关的类新增了拉黑功能相关的类
随机数生成:在用户注册时生成一个安全的随机数,使用如 SecureRandom 的算法确保其不可预测性。
拼接处理:将生成的随机数与用户输入的密码进行拼接(如用户密码+随机数),生成一个新的字符串。
哈希处理:对新字符串应用强哈希算法(如 bcrypt、argon2),生成安全的新密码。哈希算法具有不可逆性,确保原始密码无法恢复。
数据存储:将用户ID、新密码和随机数安全地存储到数据库中,确保数据库连接是安全的,并使用参数化查询防止SQL注入。
信息获取:用户输入ID和密码后,服务端从数据库中获取该用户的新密码和随机数。
拼接处理:将用户输入的密码与数据库中的随机数拼接,生成新的字符串。
哈希处理:对新的字符串使用相同的哈希算法处理,得到处理结果。
验证结果:比较处理后的结果与数据库中存储的新密码。如果相同,则登录成功;否则,登录失败。
(1)前后端分离
前后端分离架构允许独立开发与部署,提升系统的灵活性和可维护性。前端负责用户界面,后端处理业务逻辑与数据管理。
(2)Token 鉴权
在用户登录成功后,生成一个token,返回给前端。后续请求需携带该 token 进行身份验证,减少对数据库的频繁访问。
(3)密码安全存储
使用加盐和强哈希算法,确保用户密码在数据库中存储的安全性。加盐能够有效防止彩虹表攻击,提高破解难度。
(4)防护措施
登录尝试限制:实现登录失败次数限制,避免暴力破解攻击,例如,超过一定次数后锁定账户或启用验证码。
(5)用户教育与提示:
提供密码强度提示,鼓励用户设置复杂密码。
在敏感操作(如密码重置)中,增加多因素认证,提升安全性。
A:我们对目前的项目的需求分析只确定了大概的方向,所以类图做的可能会比较简单,后续还会讨论添加新类,删除部分多余类
A:就目前的user类与其他类图可以实现一些简单的需求,我们的类图类确实有些少,要实现其他一些需求后续还是要增加一些类,并且改变user类与其他类的关联方式
因为笔记和文件可以关联到一个待办事项,因此为一对多的关联关系完善了笔记、待办和文件之间的关系增加了聊天协作功能相关的类,增加了聊天记录相关的类,新增了拉黑功能相关的类
1.仔细阅读博客,根据作业要求梳理工作任务,并进行分工
2.拟定《系统设计说明书》和《数据库设计说明书》的大纲
3.针对上周评审中老师、助教和其他队伍对项目的需求分析阶段提出的问题,对项目的类图及其他现有内容进行优化
4.按分工进行《系统设计说明书》和《数据库设计说明书》的撰写
5.制作答辩PPT
6.撰写博客
以下是部分沟通交流图,主要以qq群形式,由于各组员宿舍较近也会线下宿舍串门交流
成员 | 工作内容 | 贡献度 |
---|---|---|
222200211李成功 | 数据库设计说明书部分,组织团队工作 | 14% |
162204204郭丰华 | 数据库设计说明书部分 | 14.5% |
222200204邓志豪 | 系统设计说明书部分 | 15.5% |
222200213肖祖鑫 | ppt制作,答辩记录,博客撰写 | 14.5% |
222200202王子豪 | 系统设计说明书部分 | 14% |
222200118张宇城 | 系统设计说明书部分及ppt部分 | 13.5% |
222200120陈潇涵 | ppt美化,答辩演讲 | 14% |
里程碑 | 时间 | 具体事项 |
---|---|---|
开发初步阶段 | 10.23-10.30 | 对之前的数据库设计和系统安全,权限设计进一步完善,成员间进行任务分配,进行技术栈的学习 |
Alpha冲刺 | 10.31-11.5 | 完成小程序和web端部分界面的开发,后端完成数据库编写,数据库部分接口设计,并做好基础的交互功能 |
Alpha冲刺 | 11.6-11.15 | 进行前后端整合测试,完成小程序和web端文件模块和通讯录功能的开发 |
Alpha冲刺 | 11.16-11.17 | 完善功能,修复已知bug, 反思Alpha版本存在的问题 |
Beta冲刺 | 11.18-11.25 | 对Alpha版本出现的问题进行解决,进一步完善功能 ,进一步进行开发学习 |
Beta冲刺 | 11.25-12.2 | 进一步完善小程序和web端的功能,进行外部测试,根据反馈适当调整完善功能,准备 Beta版本的发布 |
成员 | 分工 | 具体内容 |
---|---|---|
222200211李成功 | 前端 | web端项目模块,笔记模块,讨论模块,任务模块 |
162204204郭丰华 | 后端/测试 | 模板管理模块,账号管理模块,笔记模块,讨论模块,编制测试计划、设计测试用例 |
222200204邓志豪 | 前端 | web端登录,模板,通讯录,文件模块 |
222200120陈潇涵 | 后端 | 登录模块,模板模块,文件夹模块 |
222200202王子豪 | 前端 | 小程序端项目模块,笔记模块,讨论模块 ,任务模块 |
222200118张宇城 | 前端 | 小程序端登录,模板,通讯录,文件模块 |
222200213肖祖鑫 | 后端 | 笔记模块,项目模块,任务模块 |