Forráskód Böngészése

Merge remote-tracking branch 'origin/master'

Unknown 7 éve
szülő
commit
a0e1ad2acc

+ 2 - 1
assignment/README.md

@@ -9,4 +9,5 @@
 | ------ | -------------------- | ---------- |
 | 张怡 | 初始化作业 api           | 2018/12/20 |
 | 张怡 | 修改作业 api | 2018/12/25 |
-| 张亚森 | 修改部分url前缀 | 2018/12/25|
+| 张亚森 | 修改部分url前缀 | 2018/12/25|
+| 张怡 | 修改团队代码作业展示信息 api | 2019/01/10|

+ 20 - 0
assignment/api/Code-代码作业.md

@@ -164,6 +164,26 @@ see [ProjectSerializer](../serializer/ProjectSerializer.md)
 
 
 
+## (新增)老师查看单个代码作业下所有组的过程统计信息
+
+[TEACHER]
+
+```http
+get /teacher/code/:codeId/procedure
+```
+
+### Response
+
+```json
+{
+  "data": List<CodeProcedureSerializer>
+}
+```
+
+see [CodeProcedureSerializer](../serializer/CodeProcedureSerializer.md)
+
+
+
 ## 老师查看单个代码作业的成绩列表(所有组的)
 
 [TEACHER]

+ 35 - 0
assignment/serializer/CodeProcedureSerializer.md

@@ -0,0 +1,35 @@
+# CodeProcedureSerializer
+
+代码作业过程统计信息
+
+## Attributes
+
+- id:**Number** - 编号
+- code:**Number** - 所属代码作业 id
+- group:[**GroupSerializer**](../../course/serializer/GroupSerializer.md) - 所属小组
+- buildStatus:StatusSerializer - 构建情况
+- deployStatus:StatusSerializer - 部署情况
+- unitTestStatus:StatusSerializer - 单元测试情况
+- functionTestStatus:StatusSerializer - 功能测试情况
+
+
+# StatusSerializer
+
+情况条目
+
+## Attributes
+
+- key:**Number** - 情况编号,[0-未提交,1-成功,2-失败]
+
+
+# TestStatusSerializer
+
+测试情况条目
+
+## Attributes
+
+- key:**Number** - 情况编号,[0-未提交,1-成功,2-失败]
+- testCount:**Number** - 测试用例总数
+- passCount:**Number** - 通过测试用例数
+
+

+ 1 - 1
assignment/serializer/DocumentSerializer.md

@@ -24,4 +24,4 @@
 
 - id : **Number** - 代码题目 id
 - name: **String** - 题目名称
-- description: **String** - 题目描述
+- description: **String** - 题目描述

+ 14 - 4
assignment/serializer/ProjectSerializer.md

@@ -8,7 +8,17 @@
 - codeId:**Number** - 代码作业 id
 - url : **String** - 项目 git 地址
 - name : **String** - 项目名称
-- buildIdList:**`List<Number>`** - 构建 IDlist
-- deployIdList:**`List<Number>`** - 部署 IDlist
-- unitTestIdList:**`List<Number>`** - 单元测试 IDlist
-- functionTestIdList:**`List<Number>`** - 页面功能测试 IDlist
+- buildIdList:**`List<IDItemSerializer>`** - 构建 IDlist
+- deployIdList:**`List<IDItemSerializer>`** - 部署 IDlist
+- unitTestIdList:**`List<IDItemSerializer>`** - 单元测试 IDlist
+- functionTestIdList:**`List<IDItemSerializer>`** - 页面功能测试 IDlist
+
+
+# IDItemSerializer
+
+id条目
+
+## Attributes
+
+- id : **Number** - id
+- time : **timestamp** - 时间

+ 0 - 22
codeHomework/serializer/UnitTestSerializer.md

@@ -1,22 +0,0 @@
-# UnitTestSerializer
-
-代码作业一次单元测试的基本信息
-
-## Attributes
-
-- id : **Number** - 代码作业一次单元测试的 id
-- time: **TimeStamp** - 测试时间
-- buildId : **String** - 对应的部署 id
-- totalNumber: **Number** - 测试用例总个数
-- passNumber: **Number** - 通过的测试用例个数
-- detail: **`List<OneUnitTestSerializer>`** - 未通过的测试用例列表
-
-# OneUnitTestSerializer
-
-代码作业一次单元测试一个测试用例的基本信息
-
-## Attributes
-
-- id : **Number** - 一个测试用例的 id
-- isPass: **boolean** - 是否通过
-- message : **String** - 输出

+ 0 - 10
problem/README.md

@@ -1,10 +0,0 @@
-### 负责人
-
-- 【后端】曹姝玥
-- 【前端】周玮璐
-
-### 修改记录
-
-| 修改人 | 修改内容  | 修改时间   |
-| ------ | --------- | ---------- |
-| 周玮璐 | 初始化api | 2018/12/19 |

+ 0 - 9
problem/serializer/FileSerializer.md

@@ -1,9 +0,0 @@
-# FileSerializer
-
-文件的基本信息
-
-## Attributes
-- filename: **String** - 文件名 | `{2-100}`
-- content:  **Array<String>** -  文件内容
-- size: **number** -  文件大小 | `[0-9]*`
-- uploader: **number**, 上传者ID  

+ 0 - 16
problem/serializer/ProblemSerializer.md

@@ -1,16 +0,0 @@
-# ProblemSerializer
-
-题目的基本信息
-
-## Attributes
-- AssignmentType : **String** - 题目所属作业类型 | `{1-10}`
-- type: **String** - 题目类型 | `{1-10}`
-- name: **String** - 题目名称 | `{2-100}`
-- description: **String** - 题目描述
-- creator: **number** - 创建者ID
-- expectTime: **number** - 预计完成时间 `[0-9]{1-3}`
-- difficulty: **number** - 题目难度 `[0-9]`
-- file:
-[**FileSerializer**](./FileSerializer.md) - 文件信息
-
-<!-- TBD:题目难度、预计完成时间数据类型 -->

+ 293 - 108
review/api/Review-互评.md

@@ -4,7 +4,22 @@
 >
 > 示例:**https://xxxxxxxxx/api/review/xxxx**
 
-## 新建互评作业
+## 术语表
+
+| 用词           | 术语     | 含义                                       |
+| -------------- | -------- | ------------------------------------------ |
+| review         | 互评     | -                                          |
+| reviewHomework | 互评作业 | 一次互评作业与一次文档作业相关联           |
+| document       | 文档     | 在一次互评作业中通常需要互评多个小组的文档 |
+|                |
+
+
+
+
+## TEACHER
+
+
+### 新建互评作业
 
 [TEACHER]
 
@@ -12,298 +27,468 @@
 post /review
 ```
 
-### Parameters
+#### Parameters
 
 ```json
 {
-  "homeworkId": Number, //作业id,
-  "beginAt": Number, //开始时间,
-  "endAt": Number, //结束时间,
-  "taskNumber": Number //互评任务数
+  "documentHwId": Number, //文档作业id,
+  "taskNumber": Number, //互评任务数
+  "startAt" : Number, //互评开始时间
+  "reviewDdl" : **Number** - 互评结束时间 | `timestamp`,
+  "argueDdl" : **Number** - argue结束时间 | `timestamp`,
+  "endDdl" : **Number** - 最后结束时间 | `timestamp`
 }
 ```
 
-### Response
+
+### 老师查看互评作业列表
+
+[TEACHER]
+
+```http
+get /teacher/course/:courseId/review
+```
+
+#### Response
 
 ```json
 {
-  "data": ReviewSimpleSerializer
+    "data": Array<互评作业概况>
 }
 ```
 
-see [ReviewSimpleSerializer](../serializer/ReviewSimpleSerializer.md)
-
-## 学生申请解释互评作业
+### 老师查看互评作业详情
 
-[STUDENT]
+[TEACHER]
 
 ```http
-post /argue
+get /teacher/review/:reviewId
 ```
 
-### Parameters
+#### Response
 
 ```json
 {
-  "homeworkId": Number, //作业id,
-  "checkListItemId": Number, //某个checkList的id,
-  "judgeItemId": Number, //某个小组在某个checkList的评价id
-  "remark": String //`{0-100}`
+  "data": 互评作业详情
 }
 ```
 
-### Response
+### 老师查看互评作业汇总结果
 
-```json
-{}
+[TEACHER]
+
+```http
+get /sum/:reviewId
 ```
 
-### Error
+#### Response
 
 ```json
 {
-  "code": 400,
-  "message": "已评审,不可重复评审"
+  "data": see 互评作业结果汇总
 }
 ```
 
-## 老师查看互评作业列表
+### 老师查看某次互评作业所有小组
 
 [TEACHER]
 
 ```http
-get /teacher/course/:courseId/review
+get /sum/:reviewId/group
 ```
 
-### Response
+#### Response
 
 ```json
 {
-    "data": Array<ReviewSimpleSerializer>
+  "data": Array<GroupSerializer>
 }
 ```
 
-see [ReviewSimpleSerializer](../serializer/ReviewSimpleSerializer.md)
+### 老师查看某次互评作业一个小组的详细结果
+
+[TEACHER]
 
-## 老师查看互评作业详情
+```http
+get /sum/:reviewId/group/:groupId
+```
+
+#### Response
+
+```json
+{
+  "data": 某次互评作业中自己的文档&别的组的互评结果
+}
+```
+
+//TODO
+### 老师开始对某次互评作业一个小组进行评价
 
 [TEACHER]
 
 ```http
-get /teacher/review/:reviewId
+get /sum/:reviewId/argue/:groupId
 ```
 
-### Response
+#### Response
 
 ```json
 {
-  "data": ReviewDetailSerializer
+  "data": 一次文档评价实例的详情
 }
 ```
 
-see [ReviewDetailSerializer](../serializer/ReviewDetailSerializer.md)
 
-## 学生查看互评作业列表
 
-[STUDENT]
+### 老师提交对某次互评作业一个小组的评价结果
+
+[TEACHER]
 
 ```http
-get /student/course/:courseId/review
+post /sum/:reviewId/argue/:groupId
 ```
 
-### Response
+#### Parameters
 
 ```json
 {
-    "data": Array<ReviewSimpleSerializer>
+  "checkList": Array<checkListItem>
 }
 ```
 
-see [ReviewSimpleSerializer](../serializer/ReviewSimpleSerializer.md)
+#### Response
 
-## 学生查看互评作业详情
+```json
+{
+  "checkList": Array<checkListItem>
+}
+```
 
-[STUDENT]
+### 老师更新作业评分标准
+
+[TEACHER]
 
 ```http
-get /student/review/:reviewId
+post /sum/:reviewId/level
 ```
 
-### Response
+#### Parameters
 
 ```json
 {
-  "data": ReviewDetailSerializer
+  [level(A,B,C,D,E,F)]: [studentNum(学生通过数)]
 }
 ```
 
-see [ReviewDetailSerializer](../serializer/ReviewDetailSerializer.md)
+#### Response
+
+```json
+{}
+```
+
+
+## STUDENT
 
-## 学生做互评作业
+### 学生查看老师发布的互评作业列表
 
 [STUDENT]
 
 ```http
-post /student/review/:reviewId
+get /student/course/:courseId/review
 ```
 
-### Parameters
+#### Response
 
 ```json
 {
-  "data": Array<CheckListItemSerializer>
+    "data": Array<互评作业概况>
 }
 ```
 
-### Response
+### 学生查看互评作业详情
+
+[STUDENT]
+
+```http
+get /student/review/:reviewId
+```
+
+#### Response
 
 ```json
 {
-    "data": Array<CheckListItemSerializer>
+  "data": 互评作业详情
 }
 ```
 
-see [CheckListItemSerializer](../serializer/CheckListItemSerializer.md)
-
-## 学生查看互评结果
+### 学生获取某次互评作业中某个文档
 
 [STUDENT]
 
 ```http
-get /student/course/:courseId/result
+get /student/review/:reviewId/doc-review/:docReviewId
 ```
 
-### Response
+#### Response
 
 ```json
 {
-    "data": Array<ReviewSimpleSerializer>
+  "data": 一次文档评价实例的详情
 }
 ```
-
-see [ReviewSimpleSerializer](../serializer/ReviewSimpleSerializer.md)
-
-## 学生查看某次互评结果
+### 学生提交某次互评作业中的某个文档
 
 [STUDENT]
 
 ```http
-get /student/review/:reviewId/result
+post /student/review/:reviewId/doc-review/:docReviewId
 ```
 
-### Response
+#### Response
 
 ```json
 {
-  "data": ResultSerializer
+  "data": Array<CheckListItem>
 }
 ```
 
-see [ResultSerializer](../serializer/ResultSerializer.md)
 
-## 老师查看互评作业汇总结果
+### 学生选择查看某次互评作业中自己的文档
 
-[TEACHER]
+[STUDENT]
 
 ```http
-get /sum/:reviewId
+get /student/review/:reviewId/result
 ```
 
-### Response
+#### Response
 
 ```json
 {
-  "detail": ReviewDetailSerializer,
-  "finishPercentage": Double, //完成比例
-   // 学生id和checkList通过数给前端
-   "studentIdCheckListAcceptNumMap": { [groupId]: [checkListNum]},
-   "
+  "data": 某次互评作业中自己的文档&别的组的互评结果
 }
 ```
 
-see [ReviewDetailSerializer](../serializer/ReviewDetailSerializer.md)
+### 学生对某个组的某条checklist提出argue
 
-## 老师更新作业评分标准
-
-[TEACHER]
+[STUDENT]
 
 ```http
-post /sum/:reviewId/level
+post /student/argue
 ```
 
-### Parameters
+#### Parameters
 
 ```json
 {
-  [level]: [studentNum(学生通过数)]
+  "reviewId": Number, //作业id,
+  "id": Number, //某个checkList的id,
+  "groupId": Number, //某个小组的id
+  "remark": String //`{0-100}`
 }
 ```
 
-### Response
+#### Response
 
 ```json
 {}
 ```
 
-see [ReviewSimpleSerializer](../serializer/ReviewSimpleSerializer.md)
+#### Error
+
+```json
+{
+  "code": 400,
+  "message": "已评审,不可重复评审"
+}
+```
 
-## 老师获得需要人工复核的文档列表
 
-[TEACHER]
+
+### 学生(评审方)判断是否愿意处理argue
+
+[STUDENT]
 
 ```http
-get /sum/:reviewId/argue
+post /student/review/:reviewId/checklist/:checkListId/argue/acceptation
 ```
 
-### Response
+#### Parameters
 
 ```json
 {
-  "data": Array<ReviewSimpleSerializer> // 需要人工复核的文档
+  "accept": Boolean
 }
 ```
 
-see [ReviewSimpleSerializer](../serializer/ReviewSimpleSerializer.md)
+#### Response
 
-## 老师获得需要人工复核的文档详情
+```json
+{
+    "data": Array<checkListItem> // 整个 
+}
+```
 
-[TEACHER]
+### 学生(评审方)提交argue [标记为已处理完成]
 
-// **reviewId** 作业 id
-// **groupId** 作业小组 id
+[STUDENT]
 
 ```http
-get /sum/:reviewId/argue/:groupId
+post /student/review/:reviewId/checklist/:checkListId/argue/end
 ```
 
-### Response
+#### Parameters
 
 ```json
 {
-  "data": ResultSerializer // 需要人工复核的文档
+    "data": checkListItem
 }
 ```
 
-see [ResultSerializer](../serializer/ResultSerializer.md)
+#### Response
 
-## 老师提交需要复核文档的结果
+```json
+{
+    "data": Array<checkListItem>
+}
+```
 
-[TEACHER]
+see [ReviewSimpleSerializer](../serializer/ReviewSimpleSerializer.md)
 
-```http
-post /sum/:reviewId/argue/:groupId
-```
 
-### Parameters
+
+## 数据定义
+
+### 互评作业概况
+
+- reviewId: **Number**, // 老师布置一次互评作业id
+- name : **String** - 对应的文档作业名称 | {2-100}
+- reviewDdl : **Number** - 互评结束时间 | `timestamp`
+- argueDdl : **Number** - argue结束时间 | `timestamp`
+- endDdl : **Number** - 最后结束时间 | `timestamp`
+- state : **Enum<STRING>** - ["DEFAULT","REVIEWING","ARGUING","SOLVING","END"]
+
+
+### 互评作业详情
+
+- reviewId: **Number**, // 老师布置一次互评作业id
+- name : **String** - 对应的文档作业名称 | {2-100}
+- documents: **Array<一次文档评价的实例概况>**,
+- reviewDdl : **Number** - 互评结束时间 | `timestamp`
+- argueDdl : **Number** - argue结束时间 | `timestamp`
+- endDdl : **Number** - 最后结束时间 | `timestamp`
+- state : **Enum<STRING>** - ["DEFAULT","REVIEWING","ARGUING","SOLVING","END"]
+
+
+### 一次文档评价的实例概况
+
+- docReviewId: **Number** - 一次文档评价的实例id
+- group : [**GroupSerializer**](../../course/serializer/GroupSerializer.md)
+
+
+### 一次文档评价实例的详情
+
+- docReviewId: **Number** - 一次文档评价的实例id
+- review: **互评作业详情**
+- docContent : **String** - 作业内容
+- checkList : Array<[**CheckListItemSerializer**](./CheckListItemSerializer.md)>
+- group : [**GroupSerializer**](../../course/serializer/GroupSerializer.md)
+
+### checklistItems
+
+#### 评价方 checkListItem-DEFAULT
+
+- id : **Number** - checkListItem id
+  
+// 评价方id
+// 被评价方 id
+
+- content : **String** - 名称 | {2-100}
+- level : **Boolean** - 用户的评级
+- comment : **String** - 用户的备注 | {0-200}
+- explain : **String** - 老师的说明 | {0-200}
+- state : **Enum<String>** - ["DEFAULT","SUBMITTED","PENDING","SOLVING","ARGUED"]
+
+#### 评价方 checkListItem-SUBMITTED
+
+see DEFAULT
+
+#### 评价方 checkListItem-PENDING
+
+[R]
+
+see DEFAULT
+
+- remark : **String** - 学生申请argue的备注
+
+#### 评价方 checkListItem-SOLVING
+
+[RW]
+
+see PENDING
+
+#### 评价方 checkListItem-ARGUED
+
+[R]
+
+see DEFAULT
+
+
+### 某次互评作业中自己的文档&别的组的互评结果
 
 ```json
 {
-  "score": double // 分数
+"reviewId" : Number ,// 互评作业ID,
+"review" : ,//[互评作业详情],
+"level" : String|Null,// 文档等级(可能还未生成),
+"docContent" : String, // 文档内容
+"checkListResult" : // 详细评价结果,
+[
+ {
+    "id" : Number ,// checkListItem id,
+    "content" : String ,// 名称 | {2-100},
+    "explain" : String ,// 老师的说明 | {0-200},
+    "results" : // 各个小组的评价,
+  [
+    {
+      "groupId" : Number,// 某个小组的评价 id
+      "level" : Boolean,// 小组作出的评价
+      "comment" : String,// 小组做出的备注 |
+    },...
+  ]
+ },...
+]
 }
 ```
 
-### Response
+### 互评作业结果汇总
+
+>用于老师查看某次互评作业结果
 
 ```json
-{}
-```
+{
+  "reviewId": Number, // // 老师布置一次互评作业id
+  "name" : String, // - 对应的文档作业名称 | {2-100}
+  "reviewDdl" : Number, // - 互评结束时间 | `timestamp`
+  "argueDdl" : Number, // - argue结束时间 | `timestamp`
+  "endDdl" : Number, // - 最后结束时间 | `timestamp`
+  "state" : String,//Enum<STRING>** - ["DEFAULT","REVIEWING","ARGUING","SOLVING","END"]
+  "completeRate": Number,//(int)(完成率*100)
+  "passedCDF": [ 
+    {
+      "passedNumber": Number,
+      "passedRatio": Number //(int)
+    },...
+  ],
+  "checklistItems":[//按通过数降序排序
+    {
+      "id" : Number ,// checkListItem id,
+      "content" : String ,// 名称 | {2-100},
+      "explain" : String ,// 老师的说明 | {0-200},
+      "passedNum" : Number // number of passed
+    },...
+  ]
+
+}
+
+```

BIN
review/api/Review-互评.pdf


BIN
review/seq.asta


+ 0 - 0
review/seq.asta.lock