Celer测试

介绍

Celer测试包括多个数据库和服务

执行流程如下:

  1. 教师创建问题并存储到problems.db中
  2. 教师创建试卷模板并存储在templates.db中
  3. 教师生成试卷并存储在examines.db中
  4. 学生做题,并将答案存储在examresults.db中

problems.db

problems.db存储问题,dict如下:

            
  id:i,knowledgeNode,difficulity:B,complexity:B,type:B,question,body:j,ownerId:l,created:t,lastUpdated:t

可以添加额外的字段。

这个DB可以使用http://www.xmlpipe.org/xpe/exam/problems/update服务进行更新

这个服务应该定义在其他的所有服务之前。

更新服务的数据如下列JSON:

            
      {
        "knowledgeNode":"1232",
        "difficulity":1,
        "complexity":1,
        "type":1,
        "question":"the question itself",
        "body":{
           "choices":[
            "choice 1",
            "choice 2",
            "choice 3",
            "choice 4"
           ]
           "answer":[0,1]
         }
      }
  

每个字段的描述如下:

字段 描述
knowledgeNode 知识点的ID, 用于生成试卷
difficulity 由易到难依次为1到100
complexity 由简单到复杂依次为1到100
type 问题类型
question 问题题目
body 问题题干,如果是自由类型,这个字段将为空

问题类型

类型 描述
0 单选题
1 多选题
2 填空题
3 自由类型

templates.db

存储试卷模板,dict如下:


    id:i,created:t,lastUpdated:t,ownerId:i,title,body
    

可以添加额外的字段。

这个DB可以使用http://www.xmlpipe.org/xpe/exam/template/update服务进行更新

这个服务应该定义在其他的所有服务之前。

更新服务的数据如下列JSON:

            
      {"exam":[
        {
          "description":"description of the part",
          "questions":[
            "points":1,
            "knowledgeNode":"070103",
            "type":0
          ]
        }
        ]
      }
  

一个试卷模板包含几个部分,每个部分包含一个描述和一个问题的集合。

试卷生成服务

执行服务http://www.xmlpipe.org/xpe/exam/generate来生成试卷。

需要传递试卷模板的ID到此服务中。

返回结果中包含了试卷的ID


    {"code":"0","id":"1","msg":"No erros"}

考试

考试服务需要调用http://www.xmlpipe.org/xpe/exam/get服务。

参数中需要包含试卷的ID。

返回结果是一个JSON类型试卷。

存储临时结果

可以调用shopping cart服务来存储临时结果

计算得分服务

可执行http://www.xmlpipe.org/xpe/exam/score服务来生成考试成绩


      {"exam":[
          "questions":[
            "id":1,
            "answer":""
          ]
      }