爱是用心码——项目系统设计与数据库设计

这个作业属于哪个课程 软件工程
这个作业要求在哪里 项目系统设计与数据库设计
这个作业的目标 项目系统设计与数据库设计
作业正文 爱是用心码——项目系统设计与数据库设计
github链接 项目地址
其他参考文献

一、预期开发计划时间安排

周数 团队目标与产出 当前进度
第一周 1、前端完成基础页面设计。
2、后端完成各模块的php代码。
已完成
第二周 1、前端进行跳转页面以及组件功能实现。
2、后端补足各模块缺失接口代码。
3、代码测试修改bug。
未完成
第三周 1、前端进行UI统一以及美化界面。
2、后端测试并完善基础功能接口。
未完成
第四周 1、前端调用后端小组的接口,并尝试完成页面渲染和效果调用。
2、后端辅助前端小组调用,并进行相应的修改调整。
未完成
第五周 1、前端组合成功后进行前端测试。
2、后端进行完整性校验,根据小程序不足,编写新的接口,进而完善功能。
未完成
第六周 1、前后端收尾,保证小程序基本功能运行正常,页面效果对用户友好。
2、bug修改和后期维护。
未完成

二、预期开发计划分工安排

学号 姓名 角色 预期任务分配
211706206 吴秋悦 后端 1、学生模块接口功能实现。
2、辅助前端进行接口调用。
3、API接口文档及测试。
211706130 王孟玉 前端 1、学生模块中“我的”全部功能。
2、UI统一以及美化界面。
3、前端测试。
211706205 吴娉婷 前端 1、学生模块中“首页”全部功能。
2、UI统一以及美化界面。
3、前端测试。
211706152 张露 前端 1、登录页面、辅导员模块中的功能主页、个人页面部分。
2、UI统一以及美化界面。
3、前端测试。
211706161 蔡雨婷 前端 1、辅导员模块中的忘记密码部分、查看查寝结果。
2、UI统一以及美化界面。
3、前端测试。
211706197 汪钰莹 前端 1、宿舍管理功能、抽取宿舍功能。
2、UI统一以及美化界面。
3、前端测试。
211706187 林连坤 后端 1、辅导员模块接口功能实现。
2、辅助前端进行接口调用。
3、API接口文档及测试。
211706174 洪成龙 后端 1、登录模块与辅导员模块接口功能实现。
2、数据库建立。
3、API接口文档及测试。

三、设计图和设计思路

1、体系结构图

2、功能模块图

该功能模块图分为两个模块:学生端与辅导员端。学生端拥有登录功能、查看功能、拍照上传功能以及个人信息管理功能,辅导员端拥有登录功能、抽取功能、查看功能、宿舍管理功能以及个人信息管理功能,每个功能都带有子功能。

查看原图

3、类图

我们设计了用户、辅导员、学生、照片、宿舍类,各类所拥有的属性、操作以及各类之间的关系如下图,辅导员和学生都继承于用户类,辅导员与照片、宿舍类关联,学生实现照片类、依赖宿舍类。

4、ER图

我们有辅导员、学生、宿舍、记录四个实体,分别以id为主键,辅导员与宿舍之间为一对多,学生与宿舍之间为一对多,辅导员、学生与记录之间为多对多。
辅导员【学工号,性别,用户名(姓名),密码,电子邮箱,手机号,头像地址,年级,系别】
学生【学号,性别,用户名(宿舍号),密码,电子邮箱,手机号,头像地址,年级,系别】
宿舍【ID,宿舍号,舍长学号】
记录【ID,照片地址,宿舍号,随机号码,开始时间,上传时间,结束时间】

5、数据库设计图

设计思路:

  • student表、counselor表用来存储学生、辅导员的个人、登陆信息
  • dorm表用来存储宿舍的相关信息
  • record表用来存储用户的查寝记录

6、系统安全和权限设计

系统安全

  1. 数据库不直接存储用户的密码,而是以MD5或其它等方式加密后存入数据库,避免密码明文传输过程中被截获;
  2. 防止SQL注入:在后台代码中以预编译SQL语句等方式防止SQL注入,降低通过原生SQL语句攻击数据库的风险;
  3. 定期备份数据库中的数据到其他地方,防止数据丢失、损坏等意外;
  4. 审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人,时间和内容等;
  5. 用户标识符和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才能提供系统的使用权。

用户权限设计

系统首先对用户发出的访问请求进行身份和授权认证,具有合法权限的用户才能进入系统操作环境,对数据库进行权限范围内的访问。本系统主要面向辅导员和学生两种角色,系统会根据角色授予具体的功能权限。

四、Q&A与改进

1、Q&A

Q:只有一个辅导员用户吗?
A:如果其他辅导员愿意使用,我们可以为他提供账号,并帮助他将学生宿舍信息批量导入数据库。

Q:如何对宿舍进行管理?
A:我们增加了宿舍管理功能,辅导员可以自己增删宿舍,或是联系后台管理员进行批量导入。

Q:抽签采用什么规则?怎么随机?
A:使用MySQL的rand()函数随机抽取宿舍和号码,如
select dormNumber, round(rand()*999 + 1) as randNumber from dorm order by rand() limit 4;

Q:需求报告中提到的用户重要信息指哪些,加密方式采用什么?
A:用户重要信息指的是密码,采用MD5算法加密。

Q:后端应该会备有相应的数据库,这应该会有相应的通讯需求的。搜索采用关键字完全搜索,如果数据量大了之后会不会性能出现严重降低?
A:如果数据量大了会性能会降低。但我们总的数据量不会太大,如果我们系的所有辅导员都在使用,也大概只有300间宿舍,所以在设计数据库时暂时不考虑性能问题。

2、改进

  1. 新增辅导员宿舍管理、查看等功能。辅导员可查看或增删自己名下管理的宿舍名单,也可联系后台管理员批量增删。为了解决单个辅导员可能兼职其他年级或系的辅导员,因而加上年级与系的选择框(注:只显示自己管理的年级与系的宿舍),为了方便查看宿舍,辅导员可通过宿舍楼进行分量查看。
  2. 新增用户的用户名、系、年级、宿舍号显示及修改。用户可登陆至修改个人信息界面,修改自己的信息至数据库中,方便宿舍楼调动的情况的修改。
  3. 新增登录中忘记密码的验证身份模块,及手机验证与邮箱验证。增加了用户使用的安全性。

五、此次工作流程与贡献度比例

工作流程

分工及贡献度

学号 工作内容 贡献度
211706206 分配任务、画数据流图、《系统设计说明书》接口设计、整合说明书、编辑博客 13%
211706130 画体系结构图、《系统设计说明书》验收标准及引言、审查博客和ppt 12%
211706205 画功能模块图、《系统设计说明书》验收标准及引言、审查博客和ppt 12%
211706187 画泳道图、《系统设计说明书》输入输出格式、审查博客和ppt 12%
211706152 画类图、编写《数据库设计说明书》、PPT制作、演讲、审查博客 13.5%
211706161 画ER图、编写《数据库设计说明书》、PPT制作、审查博客 12%
211706197 画ER图、编写《数据库设计说明书》、PPT制作、审查博客 12%
211706174 画类图、数据库设计、编写《数据库设计说明书》、PPT制作、审查博客 13.5%

六、commit提交记录

七、github地址与文档下载地址

github地址

系统设计说明书PDF

数据库设计说明书PDF

系统设计和数据库设计答辩PPT 提取码:6jw8

posted @ 2020-04-19 18:06  爱是用心码  阅读(1361)  评论(0编辑  收藏  举报