Przeglądaj źródła

[user] add auth api

Bay 6 lat temu
rodzic
commit
a3742ad633
60 zmienionych plików z 37 dodań i 2926 usunięć
  1. 10 11
      README.md
  2. 0 20
      assignment/README.md
  3. 0 221
      assignment/api/Code-代码作业.md
  4. 0 226
      assignment/api/Document-文档作业.md
  5. 0 25
      assignment/serializer/AssignmentType.md
  6. 0 46
      assignment/serializer/CodeProcedureSerializer.md
  7. 0 23
      assignment/serializer/CodeResultSerializer.md
  8. 0 26
      assignment/serializer/CodeSerializer.md
  9. 0 13
      assignment/serializer/DocumentContentSerializer.md
  10. 0 13
      assignment/serializer/DocumentResultSerializer.md
  11. 0 26
      assignment/serializer/DocumentSerializer.md
  12. 0 14
      assignment/serializer/MirrorSerializer.md
  13. 0 24
      assignment/serializer/ProjectSerializer.md
  14. 0 12
      codeHomework/README.md
  15. 0 175
      codeHomework/api/index.md
  16. 0 12
      codeHomework/serializer/BuildSerializer.md
  17. 0 11
      codeHomework/serializer/DeploySerializer.md
  18. 0 23
      codeHomework/serializer/FunctionalTestSerializer.md
  19. 0 9
      codeHomework/serializer/MirrorSerializer.md
  20. 0 16
      codeHomework/serializer/ProjectSerializer.md
  21. 0 23
      codeHomework/serializer/UnitTestSerializer.1.md
  22. 0 12
      course/README.md
  23. 0 130
      course/api/Course-课程.md
  24. 0 97
      course/api/Group-小组.md
  25. 0 10
      course/serializer/CourseSerializer.md
  26. 0 10
      course/serializer/GroupSerializer.md
  27. 0 10
      exam/README.md
  28. 0 24
      exam/api/Commit-提交记录.md
  29. 0 124
      exam/api/Exam-考试.md
  30. 0 24
      exam/api/Record-运行记录.md
  31. 0 108
      exam/api/Result-考试结果.md
  32. 0 15
      exam/serializer/CommitSerializer.md
  33. 0 23
      exam/serializer/ExamSerializer.md
  34. 0 21
      exam/serializer/JoinedExamSerializer.md
  35. 0 24
      exam/serializer/RecordSerializer.md
  36. 0 18
      exam/serializer/ResultSerializer.md
  37. 0 216
      problem/api/Problem-题目.md
  38. 0 10
      question/README.md
  39. 0 235
      question/api/Question-题目.md
  40. 0 9
      question/serializer/FileSerializer.md
  41. 0 12
      question/serializer/QuestionDifficultLevel.md
  42. 0 17
      question/serializer/QuestionSerializer.md
  43. 0 26
      question/serializer/QuestionTypeSerializer.md
  44. 0 60
      resultstatistics/api/Resultstatistics-成绩统计.md
  45. 0 9
      resultstatistics/serializer/NestedScoreSerializer.md
  46. 0 9
      resultstatistics/serializer/PercentItemSerializer.md
  47. 0 10
      resultstatistics/serializer/ResultPercentSerializer.md
  48. 0 10
      resultstatistics/serializer/ResultstatisticsSerializer.md
  49. 0 12
      review/README.md
  50. 0 523
      review/api/Review-互评.md
  51. BIN
      review/api/Review-互评.pdf
  52. BIN
      review/seq.asta
  53. 0 0
      review/seq.asta.lock
  54. 0 11
      review/serializer/CheckListItemSerializer.md
  55. 0 17
      review/serializer/ResultSerializer.md
  56. 0 14
      review/serializer/ReviewDetailSerializer.md
  57. 0 12
      review/serializer/ReviewSimpleSerializer.md
  58. 24 6
      user/api/Auth-权限.md
  59. 0 86
      user/api/User-用户.md
  60. 3 3
      user/serializer/UserSerializer.md

+ 10 - 11
README.md

@@ -15,7 +15,7 @@
 
 1. README 声明负责人
 2. api 文件夹 (用于存放所有 api)
-3. serializer 文件夹 (用于存放所有 api 中提到的对象  细则)
+3. serializer 文件夹 (用于存放所有 api 中提到的对象 细则)
 
 #### example:
 
@@ -34,7 +34,7 @@ user
 
 1. 所有后端 api 务必至少添加前缀:/api
 2. restful 规范, 以数据为中心,每个数据 **务必** 返回 id
-3. 所有返回值均为 **对象** ,**禁止** 使用 bool string array等类型作为json返回值
+3. 所有返回值均为 **对象** ,**禁止** 使用 bool string array 等类型作为 json 返回值
 
 #### 数据定义
 
@@ -55,9 +55,9 @@ example: User-用户.md
 >
 > 示例:**https://xxxxxxxxx/api/user/xxxx**
 
-##  请求名称
+## 请求名称
 
-⬇️ 为路径参数格式 :userId 表示变量 
+⬇️ 为路径参数格式 :userId 表示变量
 
 ```http
 post /:userId
@@ -77,16 +77,15 @@ post /:userId
 
 ⬇️ 为问号传参格式 example: user?userId=1
 
-| Name   | Type   | Description       |
-| ------ | ------ | ----------------- |
-| userId | number | 查看用户的所有tag |
-
+| Name   | Type   | Description        |
+| ------ | ------ | ------------------ |
+| userId | number | 查看用户的所有 tag |
 
 ### Response
 
 ```json
 {
-  "data": UserSerializer
+  "res": UserSerializer
 }
 ```
 
@@ -95,12 +94,12 @@ see [UserSerializer](./user/serializer/UserSerializer.md)
 ## 请求名称
 
 etc...
-
 ````
 
-## serializer文件结构
+## serializer 文件结构
 
 example
+
 ```md
 # UserSerializer
 

+ 0 - 20
assignment/README.md

@@ -1,20 +0,0 @@
-### 负责人
-
-- 【后端】张怡
-- 【前端】张亚森
-
-### 修改记录
-
-| 修改人 | 修改内容             | 修改时间   |
-| ------ | -------------------- | ---------- |
-| 张怡 | 初始化作业 api           | 2018/12/20 |
-| 张怡 | 修改作业 api | 2018/12/25 |
-| 张亚森 | 修改部分url前缀 | 2018/12/25|
-| 张怡 | 修改团队代码作业展示信息 api | 2019/01/10|
-| 张亚森 | [新增]学生查看单个文档作业信息 | 2019/01/11|
-| 张亚森 | [修改]DocumentResultSerializer | 2019/01/12|
-| 张亚森 | [修改]老师查看文档作业列表 | 2019/01/12|
-| 张亚森 | [新增]文档作业已提交和未提交列表 | 2019/01/12|
-| 张亚森 | [新增]代码作业已提交和未提交列表 | 2019/01/12|
-| 张亚森 | [删除]失效接口和Serializer | 2019/01/19|
-| 张亚森 | [新增]老师查看学生文档作业内容接口 | 2019/01/19|

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

@@ -1,221 +0,0 @@
-# Code - 代码作业
-
-> url 前缀:**/assignment**
->
-> 示例:**https://xxxxxxxxx/api/assignment/xxxx**
-
-## 新建代码作业
-
-[TEACHER]
-
-```http
-post /course/:courseId/code
-```
-
-### Parameters
-
-```json
-{
-  "type":作业类型,String [CODE - 代码作业]
-  "name":作业名称,String
-  "description":作业描述,String
-  "startAt":开始时间,timestamp
-  "endAt":开始时间,timestamp
-  "problem":题目,Number
-}
-```
-
-### Response
-
-```json
-{
-  "data": CodeSerializer
-}
-```
-
-see [CodeSerializer](../serializer/CodeSerializer.md)
-
-
-
-## 更新代码作业信息
-
-[TEACHER]
-
-```http
-put /code/:codeId
-```
-
-### RequestBody
-
-```json
-{
-  "name":作业名称,String
-  "description":作业描述,String
-  "startAt":开始时间,timestamp
-  "endAt":开始时间,timestamp
-}
-```
-
-### Response
-
-```json
-{
-  "data": CodeSerializer
-}
-```
-
-see [CodeSerializer](../serializer/CodeSerializer.md)
-
-
-
-## 删除代码作业
-
-[TEACHER]
-
-```http
-delete /code/:codeId
-```
-
-### Response
-
-```
-{}
-```
-
-
-
-## 老师查看代码作业列表
-
-[TEACHER]
-
-```http
-get /teacher/course/:courseId/code
-```
-
-### Response
-
-```json
-{
-  "data": List<CodeSerializer>
-}
-```
-
-see [CodeSerializer](../serializer/CodeSerializer.md)
-
-## 老师查看单个代码作业
-
-[TEACHER]
-
-```http
-get /teacher/code/:codeId
-```
-
-### Response
-
-```json
-{
-  "data": CodeSerializer
-}
-```
-
-see [CodeSerializer](../serializer/CodeSerializer.md)
-
-
-
-## 学生查看代码作业列表
-
-[STUDENT]
-
-```http
-get /student/course/:courseId/code
-```
-
-### Response
-
-```json
-{
-  "data": List<CodeSerializer>
-}
-```
-
-see [CodeSerializer](../serializer/CodeSerializer.md)
-
-
-
-## 学生查看单个代码作业
-
-[STUDENT]
-
-```http
-get /student/code/:codeId
-```
-
-### Response
-
-```json
-{
-  "data": CodeSerializer
-}
-```
-
-see [CodeSerializer](../serializer/CodeSerializer.md)
-
-
-
-## 老师查看单个代码作业下所有已提交组的过程统计信息
-
-[TEACHER]
-
-```http
-get /teacher/code/:codeId/submitted/procedure
-```
-
-### Response
-
-```json
-{
-  "data": List<CodeProcedureSerializer>
-}
-```
-
-see [**CodeProcedureSerializer**](../serializer/CodeProcedureSerializer.md) 
-
-
-
-## 老师查看单个代码作业下所有未提交组的信息
-
-[TEACHER]
-
-```http
-get /teacher/code/:codeId/unsubmitted/groups
-```
-
-### Response
-
-```json
-{
-  "data": List<GroupSerializer>
-}
-```
-
-see [**GroupSerializer**](../../course/serializer/GroupSerializer.md) 
-
-
-
-## 学生查看单个代码作业的成绩
-
-[STUDENT]
-
-```http
-get /student/code/:codeId/result
-```
-
-### Response
-
-```json
-{
-  "data": CodeResultSerializer
-}
-```
-
-see [CodeResultSerializer](../serializer/CodeResultSerializer.md)

+ 0 - 226
assignment/api/Document-文档作业.md

@@ -1,226 +0,0 @@
-# Document - 文档作业
-
-> url 前缀:**/assignment**
->
-> 示例:**https://xxxxxxxxx/api/assignment/xxxx**
-
-## 新建文档作业
-
-[TEACHER]
-
-```http
-post /course/:courseId/document
-```
-
-### Parameters
-
-```json
-{
-  "type":作业类型,String [DOCUMENT - 文档作业]
-  "name":作业名称,String
-  "description":作业描述,String
-  "startAt":开始时间,timestamp
-  "endAt":开始时间,timestamp
-  "problem":题目编号,Number
-}
-```
-
-### Response
-
-```json
-{
-  "data": DocumentSerializer
-}
-```
-
-see [DocumentSerializer](../serializer/DocumentSerializer.md)
-
-
-## 更新文档作业信息
-
-[TEACHER]
-
-```http
-put /document/:documentId
-```
-
-### RequestBody
-
-```json
-{
-  "name":作业名称,String
-  "description":作业描述,String
-  "startAt":开始时间,timestamp
-  "endAt":开始时间,timestamp
-}
-```
-
-### Response
-
-```json
-{
-  "data": DocumentSerializer
-}
-```
-
-see [DocumentSerializer](../serializer/DocumentSerializer.md)
-
-
-## 删除文档作业
-
-[TEACHER]
-
-```http
-delete /document/:documentId
-```
-
-
-## 老师查看文档作业列表
-
-[TEACHER]
-
-```http
-get /teacher/course/:courseId/document
-```
-
-### Response
-
-```json
-{
-  "data": List<DocumentSerializer>
-}
-```
-
-see [DocumentSerializer](../serializer/DocumentSerializer.md)
-
-
-
-## 老师查看单个文档作业
-
-[TEACHER]
-
-```http
-get /teacher/document/:documentId
-```
-
-### Response
-
-```json
-{
-  "data": DocumentSerializer
-}
-```
-
-see [DocumentSerializer](../serializer/DocumentSerializer.md)
-
-
-## 学生查看文档作业列表
-
-[STUDENT]
-
-```http
-get /student/course/:courseId/document
-```
-
-### Response
-
-```json
-{
-  "data": List<DocumentSerializer>
-}
-```
-
-see [DocumentSerializer](../serializer/DocumentSerializer.md)
-
-## 学生查看单个文档作业信息
-
-[STUDENT]
-
-```http
-get /student/document/:documentId
-```
-
-### Response
-
-```json
-{
-  "data": DocumentSerializer
-}
-```
-
-see [DocumentSerializer](../serializer/DocumentSerializer.md)
-
-
-## 老师查看文档作业的成绩列表(已提交小组)
-
-[TEACHER]
-
-```http
-get /teacher/document/:documentId/submitted/result
-```
-
-### Response
-
-```json
-{
-  "status":作业进行状态,String  
-  "data": List<DocumentResultSerializer>
-}
-```
-
-see [DocumentResultSerializer](../serializer/DocumentResultSerializer.md)
-
-## 老师查看未提交文档作业小组列表
-
-[TEACHER]
-
-```http
-get /teacher/document/:documentId/unsubmitted/groups
-```
-
-### Response
-
-```json
-{
-  "data": List<GroupSerializer>
-}
-```
-
-see [**DocumentContentSerializer**](../serializer/DocumentContentSerializer.md) 
-
-## [新增]老师查看已提交小组的文档作业内容
-
-[TEACHER]
-
-```http
-get /teacher/document/:documentId/content
-```
-
-### Response
-
-```json
-{
-  "data": DocumentContentSerializer
-}
-```
-
-see [**DocmentContentSerializer**](../serializer/DocumentContentSerializer.md) 
-
-
-## 学生查看文档作业的成绩
-
-[STUDENT]
-
-```http
-get /student/document/:documentId/result
-```
-
-### Response
-
-```json
-{
-  "data": DocumentResultSerializer
-}
-```
-
-see [DocumentResultSerializer](../serializer/DocumentResultSerializer.md)

+ 0 - 25
assignment/serializer/AssignmentType.md

@@ -1,25 +0,0 @@
-# AssignmentType
-- 团队作业类型
-- 属性:
-	- name:类型名,String
-	- value:类型值,String
-
-枚举值:
-```
-{
-	"name":"CODE",
-	"value":"团队代码作业"
-}
-{
-	"name":"DOCUMENT",
-	"value":"文档作业"
-}
-{
-	"name":"REVIEW",
-	"value":"互评作业"
-}
-{
-	"name":"ML",
-	"value":"机器学习作业"
-}
-```

+ 0 - 46
assignment/serializer/CodeProcedureSerializer.md

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

+ 0 - 23
assignment/serializer/CodeResultSerializer.md

@@ -1,23 +0,0 @@
-# CodeResultSerializer
-
-代码作业成绩的基本信息
-
-## Attributes
-
-- id : **Number** - 代码作业成绩 id
-- code:**Number** - 所属代码作业 id
-- group:[**GroupSerializer**](../../course/serializer/GroupSerializer.md) - 所属小组
-- unitTestScore:**```List<ScoreSerializer>```** - 单元测试分数(TBD)
-- functionTestScore:**```List<ScoreSerializer>```** - 功能测试分数(TBD)
-- score:**Number** - 总分
-
-
-# ScoreSerializer
-
-成绩条目
-
-## Attributes
-
-- id:**Number** - 条目编号
-- name:**String** - 条目名称
-- score:**String** - 得分

+ 0 - 26
assignment/serializer/CodeSerializer.md

@@ -1,26 +0,0 @@
-# CodeSerializer
-
-代码作业的基本信息
-
-## Attributes
-
-- id : **Number** - 代码作业 id
-- name : **String** - 代码作业名称
-- description : **String** - 代码作业描述
-- status:**String** - 作业状态 [ PREPARING - 准备中,UNAVAILABLE - 创建失败,READY - 创建成功(但未到作业开始时间),AVAILABLE - 作业开放中,FINISHED - 作业已经结束]
-- createAt:**timestamp** - 创建时间
-- startAt:**timestamp** - 开始时间
-- endAt:**timestamp** - 结束时间
-- problem:**NestedProblemSerializer** - 作业题目
-
-
-
-# NestedProblemSerializer
-
-代码作业中题目的简略信息
-
-## Attributes
-
-- id : **Number** - 代码题目 id
-- name: **String** - 题目名称
-- description: **String** - 题目描述

+ 0 - 13
assignment/serializer/DocumentContentSerializer.md

@@ -1,13 +0,0 @@
-# DocumentContentSerializer
-
-文档作业的内容
-
-## Attributes
-
-- id : **Number** - 文档作业 id
-- name : **String** - 文档作业名称 | `{2-100}`
-- group : [**GroupSerializer**](../../course/serializer/GroupSerializer.md) - 所属小组
-- result: **String** - 成绩
-- lastUpdateAt:**timestamp** - 上次修改时间
-- content : **String** - 作业内容
-

+ 0 - 13
assignment/serializer/DocumentResultSerializer.md

@@ -1,13 +0,0 @@
-# DocumentResultSerializer
-
-文档作业成绩
-
-## Attributes
-
-- id : **Number** - 文档作业成绩 id
-- document:[**DocumentSerializer**](./DocumentSerializer.md) - 所属文档作业
-- group:[**GroupSerializer**](../../course/serializer/GroupSerializer.md) - 所属小组
-- state: String - 当前作业状态
-- result:**String** - 成绩等级(TBD) 注:如果无成绩,返回 -1(Number)
-- url:**String** - 作业git地址
-- reviewGroup: List<id>- 互评小组

+ 0 - 26
assignment/serializer/DocumentSerializer.md

@@ -1,26 +0,0 @@
-# DocumentSerializer
-
-文档作业的基本信息
-
-## Attributes
-
-- id : **Number** - 文档作业 id
-- name : **String** - 文档作业名称 | `{2-100}`
-- description : **String** - 文档作业描述 | `{1-256}`
-- status:**String** - 作业状态 [ PREPARING - 准备中,UNAVAILABLE - 创建失败,READY - 创建成功(但未到作业开始时间),AVAILABLE - 作业开放中,FINISHED - 作业已经结束]
-- createAt:**timestamp** - 创建时间
-- startAt:**timestamp** - 开始时间
-- endAt:**timestamp** - 结束时间
-- problem:**NestedProblemSerializer** - 作业题目
-
-
-
-# NestedProblemSerializer
-
-代码作业中题目的简略信息
-
-## Attributes
-
-- id : **Number** - 代码题目 id
-- name: **String** - 题目名称
-- description: **String** - 题目描述

+ 0 - 14
assignment/serializer/MirrorSerializer.md

@@ -1,14 +0,0 @@
-# ProjectSerializer
-
-代码作业项目的基本信息
-
-## Attributes
-
-- id : **Number** - 代码作业项目 id
-- codeId:**Number** - 代码作业 id
-- url : **String** - 项目 git 地址
-- name : **String** - 项目名称
-- buildIdList:**`List<Number>`** - 构建 IDlist
-- deployIdList:**`List<Number>`** - 部署 IDlist
-- unitTestIdList:**`List<Number>`** - 单元测试 IDlist
-- functionTestIdList:**`List<Number>`** - 页面功能测试 IDlist

+ 0 - 24
assignment/serializer/ProjectSerializer.md

@@ -1,24 +0,0 @@
-# ProjectSerializer
-
-代码作业项目的基本信息
-
-## Attributes
-
-- id : **Number** - 代码作业项目 id
-- codeId:**Number** - 代码作业 id
-- url : **String** - 项目 git 地址
-- name : **String** - 项目名称
-- 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 - 12
codeHomework/README.md

@@ -1,12 +0,0 @@
-### 负责人
-
-- 【后端】徐翔哲
-- 【前端】吴新宇
-
-### 修改记录
-
-| 修改人 | 修改内容          | 修改时间   |
-| ------ | ----------------- | ---------- |
-| 吴新宇 | 初始化api         | 2018/12/18 |
-| 吴新宇 | 新增很多问题TODO  | 2018/12/24 |
-| 吴新宇 | fix todo 新增异常 | 2018/12/28 |

+ 0 - 175
codeHomework/api/index.md

@@ -1,175 +0,0 @@
-# - 代码作业
-
-> url 前缀:**codehw**
->
-> 示例:**https://xxxxxxxxx/api/codehw/xxxx**
-
-## 获得某个 Homework 的 Project 列表(应该只有一个)
-
-```http
-post /projects
-```
-
-### Parameters
-
-```json
-{
-  "homeworkId": string
-}
-```
-
-### Response
-
-```json
-{
-  "data": [{ "projectId": string, "name": string }]
-}
-```
-
-## 获得 Project 的详细信息
-
-```http
-get /project/:id
-```
-
-### Response
-
-```json
-{
-  "id": string,
-  "data": ProjectSerializer
-}
-```
-
-see [ProjectSerializer](../serializer/ProjectSerializer.md)
-
-## 获得一次构建的详细信息
-
-```http
-get /build/:id
-```
-
-### Response
-
-```json
-{
-  "id": string,
-  "data": BuildSerializer
-}
-```
-
-see [BuildSerializer](../serializer/BuildSerializer.md)
-
-## 获得一次部署的详细信息
-
-```http
-get /deploy/:id
-```
-
-### Response
-
-```json
-{
-  "id": string,
-  "data": DeploySerializer
-}
-```
-
-see [DeploySerializer](../serializer/DeploySerializer.md)
-
-## 获得一次单元测试的详细信息
-
-```http
-get /unit/:id
-```
-
-### Response
-
-```json
-{
-  "id": string,
-  "data": UnitTestSerializer
-}
-```
-
-see [UnitTestSerializer](../serializer/UnitTestSerializer.md)
-
-## 获得一次页面功能测试的详细信息
-
-```http
-get /functional/:id
-```
-
-### Response
-
-```json
-{
-  "id": string,
-  "data": FunctionalTestSerializer
-}
-```
-
-see [FunctionalTestSerializer](../serializer/FunctionalTestSerializer.md)
-
-## 获得可用镜像的 ID
-
-```http
-get /mirrors/:homeworkId/:projectId
-```
-
-### Response
-
-```json
-{
-  "data": MirrorSerializer[]
-}
-```
-
-## 触发一次部署
-
-```http
-post /deploy
-```
-
-### Parameters
-
-```json
-{
-  "homeworkId": string,
-  "projectId": string,
-  "mirrorId": string,
-  "arguments": { TBD }
-}
-```
-
-### Response
-
-```json
-{
-  "data": { "success": boolean }
-}
-```
-
-## 触发一次页面功能测试
-
-```http
-post /functional
-```
-
-### Parameters
-
-```json
-{
-  "homeworkId": string,
-  "projectId": string,
-  "deployId": string
-}
-```
-
-### Response
-
-```json
-{
-  "data": { "success": boolean }
-}
-```

+ 0 - 12
codeHomework/serializer/BuildSerializer.md

@@ -1,12 +0,0 @@
-# BuildSerializer
-
-代码作业一次构建的基本信息
-
-## Attributes
-
-- id : **Number** - 代码作业一次构建的 id
-- branchId:**String** - 分支 id
-- buildState : **Number** - 构建状态[0:"构建中",1:"构建成功",-1:"构建失败"]
-- buildMessage : **String** - 构建输出的信息
-- mirrorId: **String** - 镜像 id (构建成功之后产生)
-- commitMessage **String** commit 信息

+ 0 - 11
codeHomework/serializer/DeploySerializer.md

@@ -1,11 +0,0 @@
-# DeploySerializer
-
-代码作业一次部署的基本信息
-
-## Attributes
-
-- id : **Number** - 代码作业一次部署的 id
-- deployState : **Number** - 部署状态[0:"部署中",1:"部署成功",-1:"部署失败"]
-- deployMessage : **String** - 部署输出的信息
-- config: **Json** - 配置信息{TBD}
-- pageUrl **String** - 项目部署的 url

+ 0 - 23
codeHomework/serializer/FunctionalTestSerializer.md

@@ -1,23 +0,0 @@
-# FunctionalTestSerializer
-
-代码作业一次功能测试的基本信息
-
-## Attributes
-
-- id : **Number** - 代码作业一次功能测试的 id
-- time: **TimeStamp** - 测试时间
-- deployId : **Number** - 对应的部署 id
-- isPassAll : **Boolean** - 是否全部通过
-- consoleOutput : **String** - 控制台输出
-- detail: **`List<OneFunctionalTestSerializer>`** - 所有测试用例列表
-
-# OneFunctionalTestSerializer
-
-代码作业一次页面功能测试一个测试用例的基本信息
-
-## Attributes
-
-- id : **Number** - 一个测试用例的 id
-- isPass: **boolean** - 是否通过
-- message : **String** - 输出(当测试用例失败才有)
-- trace : **String** - 错误栈信息(当测试用例失败时才有)

+ 0 - 9
codeHomework/serializer/MirrorSerializer.md

@@ -1,9 +0,0 @@
-# MirrorSerializer
-
-代码作业镜像的基本信息
-
-## Attributes
-
-- id : **Number** - 镜像的 id
-- gitUrl: **String** - git 仓库地址
-- downloadUrl : **String** - 镜像下载地址

+ 0 - 16
codeHomework/serializer/ProjectSerializer.md

@@ -1,16 +0,0 @@
-# ProjectSerializer
-
-代码作业项目的基本信息
-
-## Attributes
-
-- id : **Number** - 代码作业项目 id
-- codeId:**Number** - 代码作业 id
-- url : **String** - 项目 git 地址
-- name : **String** - 项目名称
-- buildList:**`List<BuildSerializer>`** - 构建 list
-- deployList:**`List<DeploySerializer>`** - 部署 list
-- unitTestList:**`List<UnitTestSerializer>`** - 单元测试 list
-- functionTestList:**`List<FunctionalTestSerializer>`** - 页面功能测试 list
-
-see [ProjectSerializer](../assignment/serializer/ProjectSerializer.md)

+ 0 - 23
codeHomework/serializer/UnitTestSerializer.1.md

@@ -1,23 +0,0 @@
-# UnitTestSerializer
-
-代码作业一次单元测试的基本信息
-
-## Attributes
-
-- id : **Number** - 代码作业一次单元测试的 id
-- time: **TimeStamp** - 测试时间
-- buildId : **Number** - 对应的构建 id
-- isPassAll : **Boolean** - 是否全部通过
-- consoleOutput : **String** - 控制台输出
-- detail: **`List<OneUnitTestSerializer>`** - 所有测试用例列表
-
-# OneUnitTestSerializer
-
-代码作业一次单元测试一个测试用例的基本信息
-
-## Attributes
-
-- id : **Number** - 一个测试用例的 id
-- isPass: **boolean** - 是否通过
-- message : **String** - 输出(当测试用例失败才有)
-- trace : **String** - 错误栈信息(当测试用例失败时才有)

+ 0 - 12
course/README.md

@@ -1,12 +0,0 @@
-### 负责人
-
-- 【后端】徐翔哲
-- 【前端】吴新宇
-
-### 修改记录
-
-| 修改人 | 修改内容             | 修改时间   |
-| ------ | -------------------- | ---------- |
-| 吴新宇 | 初始化 api           | 2018/12/18 |
-| 吴新宇 | 新增查看课程详情 api | 2018/12/19 |
-| 吴新宇 | fix todo 新增异常    | 2018/12/28 |

+ 0 - 130
course/api/Course-课程.md

@@ -1,130 +0,0 @@
-# Course - 课程
-
-> url 前缀:**course**
->
-> 示例:**https://xxxxxxxxx/api/course/xxxx**
-
-## 老师获得所有自己的课程
-
-[TEACHER]
-
-```http
-get /teacher
-```
-
-### Response
-
-```json
-{
-  "data":Array<CourseSerializer>
-}
-```
-
-see [CourseSerializer](../serializer/CourseSerializer.md)
-
-## 学生获得所有自己的课程
-
-[STUDENT]
-
-```http
-get /student
-```
-
-### Response
-
-```json
-{
-  "data":Array<CourseSerializer>
-}
-```
-
-see [CourseSerializer](../serializer/CourseSerializer.md)
-
-## 老师创建自己的课程
-
-[TEACHER]
-
-```http
-post /teacher
-```
-
-### Parameters
-
-```json
-{
-  "name": string,
-  "code": string
-}
-```
-
-### Response
-
-```json
-{
-  "data": CourseSerializer
-}
-```
-
-see [CourseSerializer](../serializer/CourseSerializer.md)
-
-### Error
-
-```json
-{
-  "code": 400,
-  "message": "课程名重复" | "课程选课码重复"
-}
-```
-
-## 学生通过选课码加入课程
-
-[STUDENT]
-
-```http
-post /register
-```
-
-### Parameters
-
-```json
-{
-  "code": string
-}
-```
-
-### Response
-
-```json
-{
-  "data": CourseSerializer
-}
-```
-
-see [CourseSerializer](../serializer/CourseSerializer.md)
-
-### Error
-
-```json
-{
-  "code": 400,
-  "message": "选课码不存在" | "已经加入课程"
-}
-```
-
-## 获得课程详情
-
-[STUDENT,TEACHER]
-
-```http
-get /course/:courseId
-```
-
-### Response
-
-```json
-{
-  "data": CourseSerializer
-}
-```
-
-see [CourseSerializer](../serializer/CourseSerializer.md)

+ 0 - 97
course/api/Group-小组.md

@@ -1,97 +0,0 @@
-# Group - 小组
-
-> url 前缀:**group**
->
-> 示例:**https://xxxxxxxxx/api/group/xxxx**
-
-## 学生创建小组
-
-[STUDENT]
-
-```http
-post /
-```
-
-### Parameters
-
-```json
-{
-  "name": string,
-  "courseId": number
-}
-```
-
-### Response
-
-```json
-{
-  "data": GroupSerializer
-}
-```
-
-see [GroupSerializer](../serializer/GroupSerializer.md)
-
-## 学生通过选组码加入小组
-
-[STUDENT]
-
-```http
-put /
-```
-
-### Parameters
-
-```json
-{
-  "code": string
-}
-```
-
-### Response
-
-```json
-{
-  "data": GroupSerializer
-}
-```
-
-see [GroupSerializer](../serializer/GroupSerializer.md)
-
-## 学生查看自己的小组
-
-[STUDENT]
-
-```http
-get /
-```
-### Parameters
-
-| Name     | Type   | Description      |
-| -------- | ------ | ---------------- |
-| courseId | number | 根据课程查看小组 |
-
-### Response
-
-```json
-{
-  "data": Array<GroupSerializer>
-}
-```
-
-see [GroupSerializer](../serializer/GroupSerializer.md)
-
-## 查看小组详情
-
-[STUDENT,TEACHER]
-
-```http
-get /:groupId
-```
-
-### Response
-
-```json
-{
-  "data": GroupSerializer
-}
-```

+ 0 - 10
course/serializer/CourseSerializer.md

@@ -1,10 +0,0 @@
-# CourseSerializer
-
-课程的基本信息
-
-## Attributes
-
-- id : **Number** - 课程 id
-- name : **String** - 课程名称 | `{2-100}`
-- code : **String** - 选课码 | `[a-zA-Z0-9]{1-10}`
-- teacher : [**UserSerializer**](../../user/serializer/UserSerializer.md) - 老师信息

+ 0 - 10
course/serializer/GroupSerializer.md

@@ -1,10 +0,0 @@
-# GroupSerializer
-
-小组的基本信息
-
-## Attributes
-
-- id : **Number** - 小组 id
-- name : **String** - 小组名称 | `[a-zA-Z0-9\-]{2-50}`
-- code : **String** - 选课码 | `[a-zA-Z0-9]{1-10}`
-- members : Array<[**UserSerializer**](../../user/serializer/UserSerializer.md)> - 组员信息

+ 0 - 10
exam/README.md

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

+ 0 - 24
exam/api/Commit-提交记录.md

@@ -1,24 +0,0 @@
-# Commit - 提交记录
-
-> url 前缀:**commit**
->
-> 示例:**https://xxxxxxxxx/api/commit/xxxx**
-
-## 查看考试提交记录
-
-```http
-get /commit/{commitId:\d+}
-```
-
-### PathVariable
-
-- commitId: **number**,考试提交记录编号
-
-### Response
-
-```json
-{
-  "res": CommitSerializer,
-}
-```
-see [CommitSerializer](./CommitSerializer.md)

+ 0 - 124
exam/api/Exam-考试.md

@@ -1,124 +0,0 @@
-# Exam - 题目
-
-> url 前缀:**exam**
->
-> 示例:**https://xxxxxxxxx/api/exam/xxxx**
-
-## 创建考试
-
-[TEACHER]
-
-```http
-post /exam
-```
-
-### Parameters
-
-```json
-{
-  "name": string,
-  "startAt": timestamp,
-  "endAt": timestamp,
-  "problem": Array<ProblemSerializer>,
-}
-```
-
-see [ProblemSerializer](../../problem/serializer/ProblemSerializer.md)
-
-### Response
-
-```json
-{
-  "res": ExamSerializer,
-}
-```
-see [ExamSerializer](../serializer/ExamSerializer.md)
-
-
-## 查询某状态下考试
-
-```http
-get /exam
-```
-
-### Parameters
-
-| Name     | Type   | Description      |
-| -------- | ------ | ---------------- |
-| status | string | 考试状态 |
-| page | number | 当前页数 |
-| limit | number | 考试状态 |
-
-
-### Response
-
-```json
-{
-  "res": Array<ExamSerializer>,
-}
-```
-
-see [ExamSerializer](../serializer/ExamSerializer.md)
-
-## 查询单个考试
-
-```http
-get /exam/{examId:\d+}
-```
-
-### PathVariable
-
-- examId: **number**,考试编号
-
-### Response
-
-```json
-{
-  "res": ExamSerializer,
-}
-```
-
-see [ExamSerializer](../serializer/ExamSerializer.md)
-
-## 更新考试信息
-
-[TEACHER]
-
-```http
-put /exam/{examId:\d+}
-```
-
-### Parameters
-
-```json
-{
-  "name": string,
-  "startAt": timestamp,
-  "endAt": timestamp,
-  "problems": Array<ProblemSerializer>,
-}
-```
-
-see [ProblemSerializer](../../problem/serializer/ProblemSerializer.md)
-
-## 删除考试
-
-[TEACHER]
-
-```http
-delete /exam/{examId:\d+}
-```
-
-### PathVariable
-
-- examId: **number**,考试编号
-
-## 参加考试
-
-```http
-post /exam/{examId:\d+}/join
-```
-
-### PathVariable
-
-- examId: **number**,考试编号

+ 0 - 24
exam/api/Record-运行记录.md

@@ -1,24 +0,0 @@
-# Record - 提交记录
-
-> url 前缀:**record**
->
-> 示例:**https://xxxxxxxxx/api/record/xxxx**
-
-## 查看考试提交记录中某个题目的运行情况
-
-```http
-get /record/{recordId:\d+}
-```
-
-### PathVariable
-
-- recordId: **number**,提交记录中某题目的运行记录编号
-
-### Response
-
-```json
-{
-  "res": RecordSerializer,
-}
-```
-see [RecordSerializer](./RecordSerializer.md)

+ 0 - 108
exam/api/Result-考试结果.md

@@ -1,108 +0,0 @@
-# Result - 考试结果
-
-> url 前缀:**result**
->
-> 示例:**https://xxxxxxxxx/api/result/xxxx**
-
-## 根据resultId查询考试结果
-
-```http
-get /result/{resultId:\d+}
-```
-
-### PathVariable
-
-- resultId: **number**,考试结果编号
-
-### Response
-
-```json
-{
-  "res": ResultSerializer,
-}
-```
-see [ResultSerializer](./ResultSerializer.md)
-
-
-## 根据用户查询考试结果
-
-```http
-get /result
-或 get /user/{userId:\d+}/result
-```
-
-### PathVariable
-
-- userId: **number**,用户编号
-
-### Response
-
-```json
-{
-  "res": Array<ResultSerializer>,
-}
-```
-see [ResultSerializer](./ResultSerializer.md)
-
-## 根据考试查询所有考试结果
-
-```http
-get /exam/{examId:\d+}/result
-```
-
-### PathVariable
-
-- examId: **number**,考试编号
-
-### Response
-
-```json
-{
-  "res": Array<ResultSerializer>,
-}
-```
-
-see [ResultSerializer](./ResultSerializer.md)
-
-## 更新考试信息
-
-[TEACHER]
-
-```http
-put /exam/{examId:\d+}
-```
-
-### Parameters
-
-```json
-{
-  "name": string,
-  "startAt": timestamp,
-  "endAt": timestamp,
-  "problems": Array<ProblemSerializer>,
-}
-```
-
-see [ProblemSerializer](../../problem/serializer/ProblemSerializer.md)
-
-## 删除考试
-
-[TEACHER]
-
-```http
-delete /exam/{examId:\d+}
-```
-
-### PathVariable
-
-- examId: **number**,考试编号
-
-## 参加考试
-
-```http
-post /exam/{examId:\d+}/join
-```
-
-### PathVariable
-
-- examId: **number**,考试编号

+ 0 - 15
exam/serializer/CommitSerializer.md

@@ -1,15 +0,0 @@
-# CommitSerializer
-
-考试提交记录基本信息
-
-## Attributes
-- id: **number** - 提交记录编号
-- hash: **String** - ?
-- finished: **boolean** - 是否运行结束
-- deleted: **boolean** - 考试是否删除
-- createdAt: **timestamp** - 提交时间
-- result: {
-  id: **number** - 编号
-  score: **number** - 成绩
-} - 结果
-- records: [**Array<RecordSerializer>**](./RecordSerializer.md) - 一次提交中各题的运行情况

+ 0 - 23
exam/serializer/ExamSerializer.md

@@ -1,23 +0,0 @@
-# ExamSerializer
-
-考试的基本信息
-
-## Attributes
-
-- examId: **number** - 考试编号
-- name:  **String** -  考试名称 | `{2-20}`
-- createdAt: *timestamp* - 创建时间
-- startAt: **timestamp** -  开始时间
-- endAt: **timestamp** -  结束时间
-- status: **enum** - 考试状态 | `{2-10}`
-- creator: [**UserSerializer**](../../User/serializer/UserSerializer.md) - 创建者
-- joined: *boolean* - 当前用户是否参加
-
-### ExamStatus
-
-- **PREPARING**:正在准备试题,
-- **UNAVAILABLE**:考试不可用,
-- **READY**:考试已准备好,在考试尚未开始时使用,
-- **AVAILABLE**:考试可用,表示考试正在进行,
-- **FINISHED**:考试已完成,
-- **CLOSED**:考试已关闭,

+ 0 - 21
exam/serializer/JoinedExamSerializer.md

@@ -1,21 +0,0 @@
-# JoinedExamSerializer
-
-参加考试后,即joined为true时,会返回JoinedExamSerializer
-对于学生来说,考试进行中,才会返回试卷地址(url)和试题(problems)
-
-## Attributes
-
-- examId: **number** - 编号
-- name:  **String** -  考试名称 | `{2-20}`
-- createdAt: *timestamp* - 创建时间
-- startAt: **timestamp** -  开始时间
-- endAt: **timestamp** -  结束时间
-- status: **enum** - 考试状态 | `{2-10}`
-- creator: [**UserSerializer**](../../User/serializer/UserSerializer.md) - 创建者
-- joined: *boolean* - 当前用户是否参加
-- url: **string** - 试卷地址
-- problems: [**Array<ProblemSerializer>**](../../problem/serializer/PProblemSerializer.md)
-- result: {
-  id:  编号
-  score: 分数
-} - 考试结果

+ 0 - 24
exam/serializer/RecordSerializer.md

@@ -1,24 +0,0 @@
-# RecordSerializer
-
-题目运行记录基本信息
-
-## Attributes
-- id: **number** - 题目运行记录编号
-- number: **number** - jenkins项目中的运行编号
-- status: **BuildStatus** - 构建状态
-- consoleOutput: **string** - 控制台输出
-- score: **number** - 题目该次运行的分数 | [0-100]
-- failures: {
-  name: **String** - 测试用例名 | [1-10]
-  details: **String** - 错误信息
-  trace: **String** - 错误栈
-} - 错误用例
-
-## BuildStatus
-
-- **SUCCESS**:构建成功
-- **UNSTABLE**:有测试用例错误
-- **FAILURE**:构建失败(有编译错误等)
-- **TIMEOUT**:构建超时
-- **WAITING**:等待构建
-- **RUNNING**:正在构建

+ 0 - 18
exam/serializer/ResultSerializer.md

@@ -1,18 +0,0 @@
-# ResultSerializer
-
-考试结果基本信息
-
-## Attributes
-- resultId: **number** - 考试结果编号
-- score: **number** - 考试成绩 | `[0-100]`
-- lastCommitAt: **timestamp** - 最后提交时间
-- deleted: **boolean** - 考试是否删除
-- exam: [**ExamSerializer**](./ExamSerializer.md) - 考试信息
-- owner: [**UserSerializer**](../../user/serializer/UserSerializer.md) - 拥有者
-- commits:
-{
-  id:编号
-  finished:是否运行结束
-  score:本次提交的成绩
-  createdAt:提交时间,timestamp
-} - 提交记录

+ 0 - 216
problem/api/Problem-题目.md

@@ -1,216 +0,0 @@
-# Problem - 题目
-
-> url 前缀:**problem**
->
-> 示例:**https://xxxxxxxxx/api/problem/xxxx**
-
-## 获取全部题目分类
-
-[TEACHER]
-
-```http
-get /teacher/problemType
-```
-
-### Response
-
-```json
-{
-  "data": Array<String>
-}
-```
-
-## 按题目分类获得题目(分页)
-
-[TEACHER]
-
-```http
-get /teacher/problems
-```
-
-### Parameters
-
-| Name  | Type   | Description    |
-| ----- | ------ | -------------- |
-| type  | String | 题目类型       |
-| page  | number | 当前页数       |
-| limit | number | 每页的题目数量 |
-
-
-### Response
-
-```json
-{
-  "data": Array<ProblemSerializer>,
-  "pageNum": number,
-}
-```
-- pageNum: 总页数
-
-see [ProblemSerializer](../serializer/ProblemSerializer.md)
-
-## 根据作业类型获得题目(分页)
-
-[TEACHER]
-
-```http
-get /teacher/problems
-```
-
-### Parameters
-
-| Name           | Type   | Description    |
-| -------------- | ------ | -------------- |
-| assignmenttype | String | 作业类型       |
-| page           | number | 当前页数       |
-| limit          | number | 每页的题目数量 |
-
-### Response
-
-```json
-{
-  "data": Array<ProblemSerializer>,
-  "pageNum": number,
-}
-```
-- pageNum: 总页数
-
-see [ProblemSerializer](../serializer/ProblemSerializer.md)
-
-## 根据关键字进行模糊查找
-
-[TEACHER]
-
-```http
-get /teacher/keyword
-```
-
-### Parameters
-
-| Name    | Type   | Description    |
-| ------- | ------ | -------------- |
-| keyword | String | 用户查找关键字 |
-
-### Response
-
-```json
-{
-  "data": Array<ProblemSerializer>
-}
-```
-
-see [ProblemSerializer](../serializer/ProblemSerializer.md)
-
-## 根据题目ID查看单个题目
-
-```http
-get /problem/:problemId
-```
-
-### Response
-
-```json
-{
-  "data": ProblemSerializer,
-}
-```
-see [ProblemSerializer](../serializer/ProblemSerializer.md)
-
-
-***
-## 以下为二期开发内容
-
-## 上传单个题目
-
-[TEACHER]
-
-```http
-post /teacher/problem
-```
-###Parameters
-
-```json
-{
-  "data": ProblemSerializer,
-}  
-```
-
-###Response
-
-```json
-{
-  "msg": string,
-  "id": number,
-}
-```
-
-see [ProblemSerializer](../serializer/ProblemSerializer.md)
-
-### Error
-
-```json
-{
-  "code": 400,
-  "message": "题目名称重复",
-}
-```
-
-## 更新题目
-
-[TEACHER]
-
-```http
-put /teacher/problem
-```
-
-###Parameters
-
-```json
-{
-  "data": ProblemSerializer,
-}  
-```
-
-###Response
-
-```json
-{
-  "msg": string,
-}
-```
-
-see [ProblemSerializer](../serializer/ProblemSerializer.md)
-
-## 删除题目
-
-[TEACHER]
-
-```http
-delete /teacher/problemDelete
-```
-
-### Parameters
-
-| Name      | Type   | Description |
-| --------- | ------ | ----------- |
-| problemId | number | 题目ID      |
-
-###Response
-
-```json
-{
-  "msg": string,
-}
-```
-
-
-## 更新文件(待定)
-
-[TEACHER]
-
-```http
-put /teacher/fileUpdate
-```
-
-
-see [FileSerializer](../serializer/FileSerializer.md)

+ 0 - 10
question/README.md

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

+ 0 - 235
question/api/Question-题目.md

@@ -1,235 +0,0 @@
-# Problem - 题目
-
-> url 前缀:**question**
->
-> 示例:**https://xxxxxxxxx/api/question/xxxx**
-
-## 获取全部题目分类
-
-[TEACHER]
-
-```http
-get /teacher/questionType
-```
-
-### Response
-
-```json
-{
-  "data": Array<QuestionTypeSerializer>
-}
-```
-see [QuestionTypeSerializer](../serializer/QuestionTypeSerializer.md)
-
-## 按题目分类获得题目(分页)
-
-[TEACHER]
-
-```http
-get /teacher/questions/type?type="xxx"&
-get /teacher/questions/assignmenttype?type="xxx
-```
-
-### Parameters
-
-| Name     | Type   | Description      |
-| -------- | ------ | ---------------- |
-| type | String | 题目类型 |
-| page | number | 当前页数 |
-| limit | number | 每页的题目数量 |
-
-
-### Response
-
-```json
-{
-  "data": Array<QuestionSerializer>,
-  "pageNum": number,
-}
-```
-- pageNum: 总页数
-
-see [QuestionSerializer](../serializer/QuestionSerializer.md)
-
-### Error
-
-```json
-{
-  "code": 400,
-  "message": "当前页码超过总页数",
-}
-```
-
-## 根据作业类型获得题目(分页)
-
-[TEACHER]
-
-```http
-get /teacher/questions
-```
-
-### Parameters
-
-| Name     | Type   | Description      |
-| -------- | ------ | ---------------- |
-| type | String | 作业类型|
-| page | number | 当前页数 |
-| limit | number | 每页的题目数量 |
-
-### Response
-
-```json
-{
-  "data": Array<QuestionSerializer>,
-  "pageNum": number,
-}
-```
-- pageNum: 总页数
-
-see [QuestionSerializer](../serializer/QuestionSerializer.md)
-
-### Error
-
-```json
-{
-  "code": 400,
-  "message": "当前页码超过总页数",
-}
-```
-
-## 根据关键字进行模糊查找
-
-[TEACHER]
-
-```http
-get /teacher/keyword
-```
-
-### Parameters
-
-| Name     | Type   | Description      |
-| -------- | ------ | ---------------- |
-| keyword | String | 用户查找关键字 |
-
-### Response
-
-```json
-{
-  "data": Array<QuestionSerializer>
-}
-```
-
-see [QuestionSerializer](../serializer/QuestionSerializer.md)
-
-## 根据题目ID查看单个题目
-
-```http
-get /question/:questionId
-```
-
-### Response
-
-```json
-{
-  "data": QuestionSerializer,
-}
-```
-see [QuestionSerializer](../serializer/QuestionSerializer.md)
-
-
-***
-## 以下为二期开发内容
-
-## 上传单个题目
-
-[TEACHER]
-
-```http
-post /teacher/question
-```
-### Parameters
-
-```json
-{
-  "data": QuestionSerializer,
-}  
-```
-
-### Response
-
-```json
-{
-  "msg": string,
-  "id": number,
-}
-```
-### Error
-
-```json
-{
-  "code": 400,
-  "message": "题目名称不能重复",
-}
-```
-
-see [QuestionSerializer](../serializer/QuestionSerializer.md)
-
-## 更新题目
-
-[TEACHER]
-
-```http
-put /teacher/question
-```
-
-###Parameters
-
-```json
-{
-  "data": QuestionSerializer,
-}  
-```
-
-###Response
-
-```json
-{
-  "msg": string,
-}
-```
-
-see [QuestionSerializer](../serializer/QuestionSerializer.md)
-
-## 删除题目
-
-[TEACHER]
-
-```http
-delete /teacher/questionDelete
-```
-
-### Parameters
-
-| Name     | Type   | Description      |
-| -------- | ------ | ---------------- |
-| questionId | number | 题目ID |
-
-###Response
-
-```json
-{
-  "msg": string,
-}
-```
-
-
-## 更新文件(待定)
-
-[TEACHER]
-
-```http
-put /teacher/fileUpdate
-```
-
-
-see [FileSerializer](../serializer/FileSerializer.md)

+ 0 - 9
question/serializer/FileSerializer.md

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

+ 0 - 12
question/serializer/QuestionDifficultLevel.md

@@ -1,12 +0,0 @@
-# QuestionDifficultLevel
-
-- 题目难度定义
-
-```
-{
-  "0": -,
-  "1": 简单,
-  "2": 中等,
-  "3": 困难,
-}
-```

+ 0 - 17
question/serializer/QuestionSerializer.md

@@ -1,17 +0,0 @@
-# QuestionSerializer
-
-题目的基本信息
-
-## Attributes
-- id: **number** - 题目ID
-- 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:题目难度、预计完成时间数据类型 -->

+ 0 - 26
question/serializer/QuestionTypeSerializer.md

@@ -1,26 +0,0 @@
-# QuestionType
-
-- 题目类型
-- 属性:
-	- name:类型名,String
-	- value:类型值,String
-
-枚举值:
-```
-{
-	"name":"JAVA",
-	"value":"JAVA语言"
-}
-{
-	"name":"C",
-	"value":"C语言"
-}
-{
-	"name":"C++",
-	"value":"C++语言"
-}
-{
-	"name":"Python",
-	"value":"Python语言"
-}
-```

+ 0 - 60
resultstatistics/api/Resultstatistics-成绩统计.md

@@ -1,60 +0,0 @@
-# Resultstatistics - 成绩统计
-
-> url 前缀:**resultstatistics**
->
-> 示例:**https://xxxxxxxxx/api/resultstatistics/xxxx**
-
-## 获得所有学生所有作业的统计
-
-[TEACHER]
-
-```http
-post /course/:courseId
-```
-
-### Response
-
-```json
-{
-  "data": List<ResultstatisticsSerializer>
-}
-```
-see [ResultstatisticsSerializer](./serializer/ResultstatisticsSerializer.md)
-
-
-## 获得所有作业成绩比例
-
-[TEACHER]
-
-```http
-get /course/:courseId/percent
-```
-
-### Response
-
-```json
-{
-  "data": ResultPercentSerializer
-}
-```
-see [ResultPercentSerializer](./serializer/ResultPercentSerializer.md)
-
-
-## 设置作业成绩比例
-
-[TEACHER]
-
-```http
-post /course/:courseId/percent
-```
-
-### Parameters
-
-```json
-{
-  documents: List<PercentItemSerializer>,
-  reviews: List<PercentItemSerializer>,
-  codes: List<PercentItemSerializer>
-}
-```
-see [PercentItemSerializer](./serializer/PercentItemSerializer.md)

+ 0 - 9
resultstatistics/serializer/NestedScoreSerializer.md

@@ -1,9 +0,0 @@
-# NestedScoreSerializer
-
-作业成绩的基本信息
-
-## Attributes
-- id: **number** - 作业id
-- name: **String** - 作业名称
-- percent: **int** - 作业分数百分比
-- score: **number** - 作业成绩 | `[0-100]`

+ 0 - 9
resultstatistics/serializer/PercentItemSerializer.md

@@ -1,9 +0,0 @@
-# PercentItemSerializer
-
-单个作业成绩占比的基本信息
-
-## Attributes
-
-- id: **Number** - 作业id
-- name: **String** - 作业名称
-- percent: **Number** - 百分比的整数部分(例如:15%,percent为15)

+ 0 - 10
resultstatistics/serializer/ResultPercentSerializer.md

@@ -1,10 +0,0 @@
-# ResultPercentSerializer
-
-作业成绩统计的基本信息
-
-## Attributes
-- documents: [**```List<PercentItemSerializer>```**](./PercentItemSerializer.md) - 各文档作业成绩占比
-- reviews: [**```List<PercentItemSerializer>```**](./PercentItemSerializer.md) - 各互评作业成绩占比
-- codes: [**```List<PercentItemSerializer>```**](./PercentItemSerializer.md) - 各代码作业成绩占比
-
-

+ 0 - 10
resultstatistics/serializer/ResultstatisticsSerializer.md

@@ -1,10 +0,0 @@
-# ResultstatisticsSerializer
-
-作业成绩统计的基本信息
-
-## Attributes
-- id: **number** - 成绩统计id
-- user: [**UserSerializer**](../../user/serializer/UserSerializer.md) - 学生信息
-- documents: [**Array<NestedScoreSerializer>**](./NestedScoreSerializer.md) - 文档作业成绩
-- reviews: [**Array<NestedScoreSerializer>**](./NestedScoreSerializer.md) - 互评作业成绩
-- codes: [**Array<NestedScoreSerializer>**](./NestedScoreSerializer) - 代码作业成绩

+ 0 - 12
review/README.md

@@ -1,12 +0,0 @@
-### 维护负责人
-
-- 【后端】徐翔哲
-- 【前端】吴新宇
-
-### 修改记录
-
-| 修改人 | 修改内容                                          | 修改时间   |
-| ------ | ------------------------------------------------- | ---------- |
-| 吴新宇 | 初次提交Review api                                | 2018/12/23 |
-| 吴新宇 | 更新resultSerializer的定义,修改申请评审参数      | 2018/12/28 |
-| 吴新宇 | 新增老师查看评审结果的api,评审列表参数增加小组id | 2018/12/28 |

+ 0 - 523
review/api/Review-互评.md

@@ -1,523 +0,0 @@
-# Review - 互评
-
-> url 前缀:**review**
->
-> 示例:**https://xxxxxxxxx/api/review/xxxx**
-
-## 术语表
-
-| 用词           | 术语     | 含义                                       |
-| -------------- | -------- | ------------------------------------------ |
-| review         | 互评     | -                                          |
-| reviewHomework | 互评作业 | 一次互评作业与一次文档作业相关联           |
-| document       | 文档     | 在一次互评作业中通常需要互评多个小组的文档 |
-|                |
-
-
-
-
-## TEACHER
-
-
-### 新建互评作业
-
-[TEACHER]
-
-```http
-post /review
-```
-
-#### Parameters
-
-```json
-{
-  "courseId": Number, // 课程id
-  "documentHwId": Number, //文档作业id,
-  "taskNumber": Number, //互评任务数
-  "startAt" : Number, //互评开始时间
-  "reviewDdl" : **Number** - 互评结束时间 | `timestamp`,
-  "argueDdl" : **Number** - argue结束时间 | `timestamp`,
-  "endDdl" : **Number** - 最后结束时间 | `timestamp`
-}
-```
-
-
-### 老师查看互评作业列表
-
-[TEACHER]
-
-```http
-get /teacher/course/:courseId/review
-```
-
-#### Response
-
-```json
-{
-    "data": Array<互评作业概况>
-}
-```
-
-### 老师查看互评作业详情
-
-[TEACHER]
-
-```http
-get /teacher/review/:reviewId
-```
-
-#### Response
-
-```json
-{
-  "data": 互评作业详情
-}
-```
-
-### 老师提交互评作业checklist
-
-[TEACHER]
-
-```http
-post /teacher/review/:reviewId/checklist
-```
-
-#### Response
-
-```json
-{
-	"checkListRules": [
-      {
-        "content":"是否有目录",
-        "explanation":"是否有目录explanation"
-      },{
-        "content":"是否有标题",
-        "explanation":"是否有标题explanation"
-      }
-    ]
-}
-```
-
-### 老师查看互评作业汇总结果
-
-[TEACHER]
-
-```http
-get /sum/:reviewId
-```
-
-#### Response
-
-```json
-{
-  "data": see 互评作业结果汇总
-}
-```
-
-### 老师查看某次互评作业所有小组
-
-[TEACHER]
-
-```http
-get /sum/:reviewId/group
-```
-
-#### Response
-
-```json
-{
-  "data": Array<GroupSerializer>
-}
-```
-
-### 老师查看某次互评作业一个小组的详细结果
-
-[TEACHER]
-
-```http
-get /sum/:reviewId/group/:groupId
-```
-
-#### Response
-
-```json
-{
-  "data": 某次互评作业中自己的文档&别的组的互评结果
-}
-```
-
-//TODO
-### 老师开始对某次互评作业一个小组进行评价
-
-[TEACHER]
-
-```http
-get /sum/:reviewId/argue/:groupId
-```
-
-#### Response
-
-```json
-{
-  "data": 一次文档评价实例的详情
-}
-```
-
-
-
-### 老师提交对某次互评作业一个小组的评价结果
-
-[TEACHER]
-
-```http
-post /sum/:reviewId/argue/:groupId
-```
-
-#### Parameters
-
-```json
-{
-  "checkList": checkListItem
-}
-```
-
-#### Response
-
-```json
-{
-  "checkList": checkListItem
-}
-```
-
-### 老师更新作业评分标准
-
-[TEACHER]
-
-```http
-post /sum/:reviewId/level
-```
-
-#### Parameters
-
-```json
-{
-  [level(A,B,C,D,E,F)]: [studentNum(学生通过数)]
-}
-```
-
-#### Response
-
-```json
-{}
-```
-
-
-## STUDENT
-
-### 学生查看老师发布的互评作业列表
-
-[STUDENT]
-
-```http
-get /student/course/:courseId/review
-```
-
-#### Response
-
-```json
-{
-    "data": Array<互评作业概况>
-}
-```
-
-### 学生查看互评作业详情
-
-[STUDENT]
-
-```http
-get /student/review/:reviewId
-```
-
-#### Response
-
-```json
-{
-  "data": 互评作业详情
-}
-```
-
-### 学生获取某次互评作业中某个文档
-
-[STUDENT]
-
-```http
-get /student/review/:reviewId/doc-review/:docReviewId
-```
-
-#### Response
-
-```json
-{
-  "data": 一次文档评价实例的详情
-}
-```
-### 学生提交某次互评作业中的某个文档
-
-[STUDENT]
-
-```http
-post /student/review/:reviewId/doc-review/:docReviewId
-```
-
-#### Response
-
-```json
-{
-  "data": Array<CheckListItem>
-}
-```
-
-
-### 学生选择查看某次互评作业中自己的文档
-
-[STUDENT]
-
-```http
-get /student/review/:reviewId/result
-```
-
-#### Response
-
-```json
-{
-  "data": 某次互评作业中自己的文档&别的组的互评结果
-}
-```
-
-### 学生对某个组的某条checklist提出argue
-
-[STUDENT]
-
-```http
-post /student/argue
-```
-
-#### Parameters
-
-```json
-{
-  "reviewId": Number, //作业id,
-  "id": Number, //某个checkList的id,
-  "groupId": Number, //某个小组的id
-  "remark": String //`{0-100}`
-}
-```
-
-#### Response
-
-```json
-{}
-```
-
-#### Error
-
-```json
-{
-  "code": 400,
-  "message": "已评审,不可重复评审"
-}
-```
-
-
-
-### 学生(评审方)判断是否愿意处理argue
-
-[STUDENT]
-
-```http
-post /student/review/:reviewId/checklist/:checkListId/argue/acceptation
-```
-
-#### Parameters
-
-```json
-{
-  "accept": Boolean
-}
-```
-
-#### Response
-
-```json
-{
-    "data": Array<checkListItem> // 整个 
-}
-```
-
-### 学生(评审方)提交argue [标记为已处理完成]
-
-[STUDENT]
-
-```http
-post /student/review/:reviewId/checklist/:checkListId/argue/end
-```
-
-#### Parameters
-
-```json
-{
-    "data": checkListItem
-}
-```
-
-#### Response
-
-```json
-{
-    "data": Array<checkListItem>
-}
-```
-
-see [ReviewSimpleSerializer](../serializer/ReviewSimpleSerializer.md)
-
-
-
-## 数据定义
-
-### 互评作业概况
-
-- 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
-{
-"reviewId" : Number ,// 互评作业ID,
-"review" : ,//[互评作业详情],
-"level" : String|Null,// 文档等级(可能还未生成),
-"docContent" : String, // 文档内容
-"checkListResult" : // 详细评价结果,
-[
- {
-    "id" : Number ,// checkListItem id,
-    "content" : String ,// 名称 | {2-100},
-    "teacherLevel" : Boolean,// 老师作出的评价
-    "teacherComment" : String,// 老师做出的备注 |
-    "explain" : String ,// 老师的说明 | {0-200},
-    "results" : // 各个小组的评价,
-  [
-    {
-      "groupId" : Number,// 某个小组的评价 id
-      "level" : Boolean,// 小组作出的评价
-      "comment" : String,// 小组做出的备注 |
-      "isArgued": Boolean // 是否已经提过argue  只在查看自己的结果时有效
-    },...
-  ]
- },...
-]
-}
-```
-
-### 互评作业结果汇总
-
->用于老师查看某次互评作业结果
-
-```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


+ 0 - 11
review/serializer/CheckListItemSerializer.md

@@ -1,11 +0,0 @@
-# CheckListItemSerializer
-
-互评作业详细实体类
-
-## Attributes
-
-- fid : **Number** - 类型 id
-- content : **String** - 名称 | {2-100}
-- level : **Number** - 用户的评级 | 0 or 1
-- comment : **String** - 用户的备注 | {0-200}
-- explain : **String** - 老师的说明 | {0-200}

+ 0 - 17
review/serializer/ResultSerializer.md

@@ -1,17 +0,0 @@
-### ReviewResultSerializer
-
-互评作业的结果
-
-#### Attributes
-
-- id : **Number** - 结果 id
-- detail : [**ReviewDetailSerializer**](./ReviewDetailSerializer)
-- level : **String** - 文档等级
-- score : **Number** - 文档分数
-- checkListResult : **Array<Object>** - 详细评价结果
-  - id : **Number** - checkListResult id
-  - checkListItem : [**CheckListItemSerializer**](./CheckListItemSerializer) - 对应的 checkListItem
-  - results : **Array<Object>** - 各个小组的评价
-    - judgeItemId : **Number** - 某个小组的评价 id
-    - level : **Number** - 小组作出的评价 | 0 或 1
-    - comment : **String** - 小组做出的备注 |

+ 0 - 14
review/serializer/ReviewDetailSerializer.md

@@ -1,14 +0,0 @@
-# ReviewDetailSerializer
-
-互评作业详细实体类
-
-## Attributes
-
-- id : **Number** - 互评 id
-- name : **String** - 对应的文档作业名称 | {2-100}
-- course : [**CourseSerializer**](../../course/serializer/CourseSerializer.md) - 所属课程
-- beginAt : **Number** - 开始时间 | `timestamp`
-- endAt : **Number** - 结束时间 | `timestamp`
-- docContent : **String** - 作业内容
-- checkList : Array<[**CheckListItemSerializer**](./CheckListItemSerializer.md)>
-- group : [**GroupSerializer**](../../course/serializer/GroupSerializer.md)

+ 0 - 12
review/serializer/ReviewSimpleSerializer.md

@@ -1,12 +0,0 @@
-# ReviewSimpleSerializer
-
-互评作业列表实体类
-
-## Attributes
-
-- id : **Number** - 互评 id
-- name : **String** - 对应的文档作业名称 | {2-100}
-- course : [**CourseSerializer**](../../course/serializer/CourseSerializer.md) - 所属课程
-- beginAt : **Number** - 开始时间 | `timestamp`
-- endAt : **Number** - 结束时间 | `timestamp`
-- group : [**GroupSerializer**](../../course/serializer/GroupSerializer.md)

+ 24 - 6
user/api/Auth-权限.md

@@ -23,7 +23,8 @@ post /login
 
 ```json
 {
-  "data": UserSerializer
+  "err": 0,
+  "res": UserSerializer
 }
 ```
 
@@ -31,6 +32,21 @@ post /login
 
 see [UserSerializer](../serializer/UserSerializer.md)
 
+## 手機號驗證碼
+
+```http
+post /verification
+```
+
+### Parameters
+
+```json
+{
+  "phoneNumber": string,
+  "token": string
+}
+```
+
 ## 注册
 
 ```http
@@ -41,9 +57,11 @@ post /register
 
 ```json
 {
-  "nickname": string | null,
   "username": string,
-  "password": string
+  "password": string,
+  "phoneNumber": string,
+  "token": string,
+  "email": string
 }
 ```
 
@@ -51,7 +69,8 @@ post /register
 
 ```json
 {
-  "data": UserSerializer
+  "err": 0,
+  "res": UserSerializer
 }
 ```
 
@@ -61,7 +80,6 @@ see [UserSerializer](../serializer/UserSerializer.md)
 
 ```json
 {
-  "code": 400,
-  "message": "用户名重复"
+  "err": 400
 }
 ```

+ 0 - 86
user/api/User-用户.md

@@ -1,86 +0,0 @@
-# User - 用户
-
-> url 前缀:**user**
->
-> 示例:**https://xxxxxxxxx/api/user/xxxx**
-
-## 获得用户信息
-
-[STUDENT,TEACHER]
-
-```http
-get /:userId
-```
-
-### Response
-
-```json
-{
-  "data": UserSerializer
-}
-```
-
-see [UserSerializer](../serializer/UserSerializer.md)
-
-## 修改用户信息
-
-[STUDENT,TEACHER]
-
-```http
-post /:userId
-```
-
-### Parameters
-
-```json
-{
-  "nickname": "nickname",
-  "bio": "小白白白白白白白白白白白"
-}
-```
-
-### Response
-
-```json
-{
-  "data": UserSerializer
-}
-```
-
-see [UserSerializer](../serializer/UserSerializer.md)
-
-## 修改密码
-
-[STUDENT,TEACHER]
-
-```http
-post /:userId/password
-```
-
-### Parameters
-
-```json
-{
-  "oldPassword": string,
-  "newPassword": string
-}
-```
-
-### Response
-
-```json
-{
-  "data": UserSerializer
-}
-```
-
-see [UserSerializer](../serializer/UserSerializer.md)
-
-### Error
-
-```json
-{
-  "code": 400,
-  "message": "旧密码错"
-}
-```

+ 3 - 3
user/serializer/UserSerializer.md

@@ -6,6 +6,6 @@
 
 - id : **Number** - 用户 id
 - role : **String** - 身份类型 `[ STUDENT - 学生用户, TEACHER - 教师用户]`
-- username : **String** - 用户名 | `email`
-- nickname : **String** - 昵称 | `[a-zA-Z0-9]{4-16}`
-- bio : **String** - 用户自我描述 | `{0-100}`
+- username : **String** - 用户名 | `[a-zA-Z0-9]{4-16}`
+- emall : **String** - 郵箱 | `email`
+- phoneNumber : **String** - 手機號 | `phoneNumber`