这个作业属于哪个课程 | 至诚软工实践F班 |
---|---|
这个作业要求在哪里 | 第三次团队作业——项目系统设计与数据库设计 |
这个作业的目标 | 项目系统设计书与数据库设计书的编写 |
Gitee或Github仓库地址 | GitHub仓库地址 |
一、团队项目的预期开发计划时间安排与工作流程
- 风雨五组项目开发时间安排表:
周数 | 团队目标与产出 |
---|---|
第一周 | 前端完成基础页面设计 后端完成各模块代码 |
第二周 | 前端完成页面跳转及组件功能实现 后端补足各模块缺失接口代码 |
第三周 | 前端进行UI统一及美化界面 后端测试并完善基础功能接口 |
第四周 | 前端调用后端接口,完成效果调用 后端辅助前端完成调用,进行相应的修改 |
第五周 | 前端测试 后端根据测试,修改并完善功能 |
第六周 | 收尾工作,验收最后成功 Bug修改和后期维护 |
- 工作流程
二、团队项目的预期开发计划分工安排
- 风雨五组人员分工安排如下表:
组员 | 角色 | 负责的开发部分 |
---|---|---|
孟蕾 | 后端 | 1.管理员模块的设计 2.个人设置模块的设计 3.帮助模块的设计 |
郑欣怡 | 文档编写,测试 | 1.各类型文档的编写 2.阶段性的程序测试,找出bug并提出意见 |
林飞莹 | 后端 | 1.数据库设计,并创建数据库 2.反馈模块的设计 |
傅雪丹 | 前端 | 1.调用接口,和后端对接 2.协助设计css,js样式 |
林佳怡 | UI设计,测试 | 1.UI设计 2.阶段性程序测试,找出bug并提出意见 |
陈天平 | 后端 | 1.用户登录注册模块的设计 2.用户查询模块的设计3.用户订单模块的设计 |
杨鸿炜 | 前端 | 1.根据原型进行界面设计和排版 2.负责大部分css和js |
三、系统设计
1、体系结构设计
- 技术架构
小程序客户端采用 C/S(小程序客户端—服务器)架构,管理端采用 B/S 架构(浏览器—服务器)。
- 使用SSM框架集
Spring:轻量级的控制反转(IoC)和面向切面(AOP)的容器框架.它的的核心思想是IoC,即不再需要程序员去显式地new一个对象,而是让Spring框架帮你来完成这一切。
Spring MVC:通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术。易于跟其它View框架无缝集成。
MyBatis:对JDBC的封装,它让数据库底层操作变的透明。MyBatis的操作都是围绕一个sqlSessionFactory实例展开的。MyBatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的SQL语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行SQL命令。
页面发送请求给控制器(Controller),控制器调用业务层(Service)处理逻辑,逻辑层向持久层(DAO)发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据。
- 总体设计原则
安全设计:信息内部传输通过 MD5加密算法。
小程序架构方面:微信小程序的框架包含两部分View视图层(可能存在多个)、App Service逻辑层(一个),View层用来渲染页面结构,AppService层用来逻辑处理、数据请求、接口调用,它们在两个线程里运行。
视图层使用WebView渲染,逻辑层使用JSCore运行。
视图层和逻辑层通过系统层的 WeixinJsBridage 进行通信,逻辑层把数据变化通知到视图层,触发视图层页面更新,视图层把触发的事件通知到逻辑层进行业务处理。
小程序后台管理方面:后端编写使用 Java 8,数据库MYSQL 8.0.x,服务器Tomcat 9.0.x 。主要框架 Spring 5.3.15,MyBatis 3.5.9,开发工具IDEA 2020.1 x64,Navicat,
其它:版本管理Git,由Github托管。
2、功能模块层次图
- 功能模块层次图
-
风系统模块功能说明
- 用户注册登录模块有登录、注册微信登录以及找回密码四个功能。
- 用户搜索模块有用户搜索订单功能,根据关键字搜索出符合的订单。
- 用户订单模块有用户发布、取消、接受、完成、支付订单功能,处于待支付和已完成的订单不可取消。
- 用户个人设置模块有绑定邮箱和重置密码功能,重置密码需要新密码或者绑定的邮箱和验证码。
- 帮助模块有对应帮助信息。
- 帮助模块有反馈功能。
- 管理员模块的功能有冻结用户、搜索订单、搜索用户、重置密码和退出登录。
3、设计类图
- 用户界面
- 实体类
- 管理员界面
4、ER分析
- 局部E-R图
1、用户与反馈关系
2、用户与管理员关系
3、用户与订单关系
4、订单与帮助关系
- 全局E-R图
- E-R图设计思路
(1)用户关系模式
用户关系模式(用户编号,用户名,昵称,密码,用户头像,联系电话,邮箱,用户状态,openID);
(2)管理员关系模式
管理员关系模式(管理员编号,管理员账号,密码);
(3)订单关系模式
订单关系模式(订单编号,用户编号,联系人,联系电话,地址,价格,包裹大小,发布日期,备注,当前状态);
(4)反馈关系模式
反馈关系模式(反馈编号,用户编号,日期,用户IP,反馈内容,设备信息,系统版本);
(5)帮助关系模式
帮助关系模式(问题编号,问题内容,解决方法);
5、表结构设计
- 用户表
字段标识 | 字段名 | 数据类型 | 说明 |
---|---|---|---|
用户编号 | u_id | bigint | PK,NOT NULL |
用户名 | u_name | varchar(64) | NOT NULL |
密码 | u_pwd | varchar(64) | NOT NULL |
昵称 | u_nickname | varchar(64) | |
用户头像 | u_img | varchar(50) | |
联系电话 | u_phone | varchar(20) | |
邮箱 | u_email | varchar(64) | |
用户状态 | u_state | varchar(64) | |
OpenId | u_openid | varchar(64) |
- 管理员表
字段标识 | 字段名 | 数据类型 | 说明 |
---|---|---|---|
管理员编号 | m_id | int | PK,NOT NULL |
管理员账号 | m_account | varchar(64) | NOT NULL |
密码 | m_name | varchar(64) | NOT NULL |
- 订单表
字段标识 | 字段名 | 数据类型 | 说明 |
---|---|---|---|
订单编号 | o_id | bigint | PK,NOT NULL |
用户编号 | u_id | bigint | FK,NOT NULL |
接单用户编号 | a_id | bigint | |
联系人 | o_contacts | varchar(64) | NOT NULL |
联系电话 | o_phone | varchar(20) | NOT NULL |
地址 | o_address | varchar(64) | NOT NULL |
价格 | o_price | numeric(4,2) | NOT NULL |
包裹大小 | o_package | varchar(64) | NOT NULL |
发布日期 | o_date | date | NOT NULL |
当前状态 | o_state | varchar(64) | NOT NULL |
备注 | o_remark | varchar(64) |
- 反馈表
字段标识 | 字段名 | 数据类型 | 说明 |
---|---|---|---|
反馈编号 | f_id | bigint | PK,NOT NULL |
用户编号 | u_id | bigint | FK,NOT NULL |
日期 | f_date | date | NOT NULL |
用户IP | f_ip | varchar(50) | NOT NULL |
反馈内容 | f_content | varchar(64) | NOT NULL |
设备信息 | f_info | varchar(64) | NOT NULL |
系统版本 | f_version | varchar(64) | NOT NULL |
- 帮助表
字段标识 | 字段名 | 数据类型 | 说明 |
---|---|---|---|
问题编号 | h_id | bigint | PK,NOT NULL |
问题内容 | h_content | varchar(64) | NOT NULL |
解决方法 | h_method | varchar(64) | NOT NULL |
6、系统安全和权限设计
- 安全保密设计
数据库基本安全架构, 用户分类不同类型的用户授予不同的数据管理权限,分为两类,一类是数据库管理员权限类,还有时普通用户群体类。数据分类,同一类权限的用户对数据库中数据管理和使用的范围又可能是不同的。
四、问题答疑
助教的问题:对于已经存在的“飞鱼”小程序,存在人手不够分配,导致的配送较慢的问题,你们团队应该如何解决?
解决方案:我们的团队并不是以平台来负责配送到有需求的同学手上,而是采用一种新的方法:让有空,或者有意向兼职的同学自行在平台上接单。我们仅仅是提供了一个下单接单的平台,不会存在人手不够分配的情况。
傅老师的问题:团队是否考虑实现支付功能?
基于当前我们组的水平,可能无法做到支付接口的开发。会努力在后续的过程中进行拓展开发。
五、分工及贡献度
- 风雨五组全体成员贡献度如下表格:
学号 | 姓名 | 工作内容 | 贡献度 |
---|---|---|---|
212106774 | 孟蕾 | 1.任务分配 2.数据库设计说明书(第一章,第二章,第三章3.2部分,第五章) 3.审核内容 | 16% |
212106798 | 郑欣怡 | 1.博客编写2.PPT制作3.设计说明书书排版 | 13% |
212106769 | 林飞莹 | 1.数据库设计说明书(第三章3.3部分,第四章4.2部分)2.数据库创建 | 15% |
212106759 | 傅雪丹 | 1.数据库设计说明书(第三章3.1部分,第四章4.1部分) | 14% |
212106770 | 林佳怡 | 1.系统说明设计书(第一章,第七章) | 13% |
212106754 | 陈天平 | 1.系统说明设计书(第二章,第三章3.1.1、3.1.3部分,第五章5.2部分) | 16% |
212106789 | 杨鸿炜 | 1.系统说明设计书(第三章3.1.2部分,第四章,第五章5.1部分,第六章) | 13% |