# zust-software-test
**Repository Path**: gavin0505/zust-software-test
## Basic Information
- **Project Name**: zust-software-test
- **Description**: 本小组期末课程设计的后端
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2022-11-10
- **Last Updated**: 2022-12-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 开发事项
## 1. 模块解释
### 1.1 zust-software-test
根模块,所有的模块创建都要以此模块作为父模块。
### 1.2. zust-software-test-web
后端接口模块。负责暴露接口,供外部调用。
### 1.3. zust-software-test-arrange-lesson
排课管理模块。负责排课管理功能。
### 1.4. zust-software-test-choose-lesson
选课模块,负责选课管理功能。
### 1.5. zust-software-test-exam
考务管理模块,负责考务管理功能。
### 1.6. zust-software-test-score
成绩管理模块,负责成绩管理功能。
### 1.7. zust-software-test-student-status
学籍管理模块,负责学籍管理功能。
### 1.8. zust-software-test-teacher
教师管理模块,负责教师管理功能。
### 1.9. zust-software-test-dao
数据库连接模块,负责上层服务对数据库的调用。
### 1.10 zust-software-test-common
基本模块,负责相关基本功能。
## 2. 使用
在本地启动项目之前,先进zust-software-test-web模块下的resources的application.yml把数据库相关信息修改了。
端口号:8085!
MySQL8+用的驱动包:com.mysql.cj.jdbc.Driver!
MySQL5就把上面的cj去掉。
启动:进入zust-software-test-web模块下的WebApplication,启动它。
### 2.1 swagger2
#### 2.1.1 接口文档查看
http://localhost:8085/swagger-ui.html
#### 2.1.2 使用
在web模块暴露的Controller上添加@Api注解,用于说明该类的作用,例如:
```
@Api(tags = "排课测试接口")
public class TestArrangeController {}
```
在该类下面的方法@ApiOperation注解,用于说明该方法对应的功能,例如:
```
@PostMapping("/delete")
@ApiOperation(value = "删除指定用户编号的用户")
@ApiImplicitParam(name = "id", value = "用户编号", paramType = "query", dataTypeClass = Integer.class, required = true, example = "1024")
public Boolean delete(@RequestParam("id") Integer id) {
// 删除用户记录
Boolean success = false;
// 返回是否更新成功
return success;
}
```
注意,如果该方法有参数,应添加@ApiImplicitParam注解,如上例,具体用法自行查询。
在POJO类上,使用@ApiModel注解,例如:
```
@ApiModel("用户 VO")
public class UserVO {
// ... 省略
}
```
在POJO类的成员变量上,使用@ApiModelProperty注解,例如:
```
@ApiModel("用户 VO")
public class UserVO {
@ApiModelProperty(value = "用户编号", required = true, example = "1024")
private Integer id;
@ApiModelProperty(value = "账号", required = true, example = "yudaoyuanma")
private String username;
}
```
具体使用时,至少要使用到方法级的文档注解。
### 2.2 开发事项
- 【强制】每人必须**在自己的分支中开发!**
- 【强制】每开发完成一个功能,必须提交一次git,尽管该功能可能只有几行代码。
- 【建议】开发过程中,完成一个功能前,简单测试一下,再提交,确认没什么问题,合并到master,再push。
- 【强制】每个人在自己负责的模块中完成开发。如果遇到需要调用其他人的模块的,则自行协商。
- 【强制】每人完成模块的一项功能后,应在**zust_software-test-web**中的controller包的对应子包创建对应类,负责调用相应的功能,以及定义对外的接口(可参考初始示例)。
- 【建议】有问题,在gitee仓库提issue,供大家解答,以及记录问题。
- 【强制】2022/11/29,在common包下的dto和web包的controller,要使用相关validation注解,保证传入参数的有效性。相关使用方法如下:https://blog.csdn.net/Session_s/article/details/125733377
### 2.3 开发流程
#### 2.3.1 业务与前端页面定义
根据文档的业务,创建相应的前端界面,并定义相关接口,连接后端。
**注意,已经登录的用户必须要携带token进行请求!**
#### 2.3.2 创建后端接口
后端创建对应的接口,对接前端调用。
**注意,需要在暴露的接口进行token认证(@HttpAuthChecker和@HttpRoleChecker,灵活使用。如果遇到问题,提issue,因为是自建的注解,可能某些场景下会有问题)!**
#### 2.3.3 后端服务编写
基于2.3.2的接口,进行后端业务逻辑编写。
#### 2.3.4 大致流程图如下
## 3. 架构
### 4. 里程碑