码迷,mamicode.com
首页 > 其他好文 > 详细

考试系统设计

时间:2017-12-12 15:13:13      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:base   方便   质量   概念   修改   msu   xxx   集中   也有   

试系统设计

基本思路是由总负责人规划领域
每个领域的负责人规划范围(Exteindex1),及其他
每个出题人规划考点。

设计思路

  • 1 控制性
    • 1.1 质量控制
    • 1.2 过程控制
    • 1.3 版本控制
  • 2 协同性
  • 3 便捷性

流程

流程图
技术分享图片

功能

考试体系

框架

采用原系统中的字典管理,数据库中的表不变,但是在control加一个过滤的函数动作,和一个view ,另外还需要添加一些逐级获取子类的函数。
因为涉及到索引,所以这里还是我先来建立一个基本的框架,然后制定一个根据这个框架的基本的维护规则。再由用户自己来维护。
但是依然需要给普通的出题用户一个增加考点的的维护界面,所以还是需要有一个维护的dataitem的界面。

上面的这个维护还是不是很好,决定自己写一个体系维护模块。先来完成出题的两个界面。主要是传值和保存。

出题

题目体系

  • 领域
  • 依据(标准法规?)
  • 考点

领域规范

题型规范

考点规范

依据规范(标准等)

范围规范

有些题目可能不要了,所以需要标记题目是否有效

审题

审题目前是有两个场景,一个是在每一各阶段(指一审,二审。。),由审题的人进行意见的添加。这个阶段主要是单个人提出意见。另外一个场景就是大家坐在一起进行会审。集中起来对意见进行确认,并形成最终的修改意见。并且需要有一个修改后的集中查看,以便反馈修改的是否符合要求。

也就是说在每一个阶段,其实包含了四个子阶段

  • 大家提出意见
  • 对意见进行会审,形成最终的修改意见
  • 按照最终的修改意见进行修改。
  • 形成修改结果报告或者汇总,以便审核修改的情况。

审题进度

  • 一审
  • 二审
  • 三审
  • 四审
  • 终审

单审的基本流程

  • 审题
  • 会审
  • 修改
  • 确认

每个审题进度的环节内都需要这样的一个流程。虽然都是审题,但是在不同的环节内,侧重点是不一样的,并且可能是完成的主体也是不一样的,

  • 审题:所有出题的人员,可能需要交叉进行审题,但是这个时候基本上是一个个人行为,也就是大家是各自为战的。这个时候主要是审核题目,当然也可能会关注其他人提的意见。
  • 会审:大家坐在一起进行审题。这时候的侧重点是对大家提出的意见进行讨论,并形成最终的意见,也可以是采纳此环节中某个人形成的意见。当然也需要看题。
  • 修改:则是针对在该流程中,根据会审形成的意见,或者是采纳的意见。进行题目的修改。
  • 确认:根据修改的情况进行,修改情况的检查。

审题的进度应该由管理员来,统一管理,即现在属于哪一个进度是一个总体进度,而不应该让用户自己去选择。这样大家在添加的意见的时候,经不用自己去选择是在哪一个审题的进度。
但是还有一个问题,就是第一批审完了,可能还需要添加新题目的时候,又需要进行一轮审核。这一批的审核状态和第一批的审核状态是不一样的。所以这里最好还是,让用户自己去选择比较好。

每一个审题进度都是需要重新捋一遍,即每一个题目都需要重新审核,

聚焦

领域索引

考点索引

题型索引

审题意见

单题审题界面

左侧是题目,有修改题目按钮。
右侧是添加的意见。右侧上方是一个grid,有新增意见按钮。意见的表格对应状态按钮,可以只显示目前未处理的意见。
原型图:
技术分享图片
实际效果图:

中间需要主意的几个地方:

  • 不打开信息窗口,只是在当前页面中进入下一题(当前界面的题目审完后提示,翻页)
  • 新增加的意见,只是更新了左上方的表,并不更新整个界面,用户体验会好很多
新增意见

因为如果是在一个新的页面中新增的话,对于复制,查看描述等都不方便,因此还是在一个页面中显示,因为每次都是新增,所以对于获取的话不成问题。只是获取两个意见,记录是哪一个流程的即可。只获取三个信息,也就不需要getWebcontrol了。
现在的问题就是页面的左右布局了。

  • 意见会对应几个状态:
    • 哪个进度中的状态(一审、二审、三审、四审、...,终审)
    • 是否被处理
    • 是否被采用
    • 如被采用,还需要有一个采用后处理进度(未被采用的,可以在不采用的时候,就在采用后处理用添加)
  • 意见内容
    • 意见内容,不当之处
    • 建议修改的意见

审题意见处理进度

会审

此阶段的对象,还是审题,但是侧重点是对提出的意见进行核实,要产出该阶段的采纳意见或者是新提出意见。然后采纳。总之这个阶段就是确定采纳意见。,给出两个界面:

  • 题目的逐一会审
  • 聚焦审题意见的界面。

 

需完成的两个工作:

  • 点击意见列表时,在下方显示相应的意见
  • 在意见中增加一个按钮,标记为采纳该意见
  • 修改原来新增意见,增加一个参数,标识该意见为会审意见。

不单独增加状态呢栏标识是会审意见了。只是标记为采纳,就作为会审意见了。
会审的单页面完成。
题目应该加一个状态,标识题目处在什么状态(以便标识题目是否已经审核了,万一有没审的呢)

也就是说这里还有一个工作:

  • 添加一个按钮,没有问题的话,例如没有意见,就通过当前审核了。(但是题目感觉真的不应该添加类似于审题进度的条目),但是这里有这样一个问题需要解决:一天审不完,审到一个地方,第二天假设没有记住这个号,怎么找到昨天审到哪里了。所以这里还是应该有一个标记,在这一轮审核过了,但是审核结果可能有同,所以题目也应该有两个状态,一个是审核阶段(一审,二审,终审),一个是在审核阶段内的阶段状态(审核、会审、修改、确认,通过)。那这样,在审题和会审中,其实还都是应该根据题目来进行索引。这样的话,就可以有一个看似工作流的流程,没有通过一审的题目,在二审中看不到。一次类推。在会审阶段,看不到没有审核过的题目,只要有一个人审了,这个题目就可以进入会审阶段。不过难道到了会审阶段,就不需要再审了吗?不是,因为一个人审完,别人还是要审的,所以,在审核阶段,还是索引全部题目。,但是可以建一个单独的索引,查找没有任何人审核过的题目。
  • 但是这里如果卡死流程的话,如果有一个流程没过,后面的流程就实现不了了,对于批量的情况,会影响整个进度:

先完成第一个功能:逐一会审:
这个界面和审题的界面会很像,只需要加一个区域,这个区域在点击意见表时候,会显示该意见,并有一个按钮:采纳,点击以后,作为修改的依据。(所以看起来比较好处理),还有一个折叠起来的区域,这个区域用来添加新的意见(万一在会审阶段发现新的问题,以便添加新的意见。)

修改

此界面的index,列出了该审题阶段(一审、二审。。。)最终采纳的意见,修改人员选择条目展开以后,左侧采纳的审题意见,右侧是题目,还有一个折叠全部审题意见。方便进行其他意见的查看。修改的时候会记录修改的历史版本。以方便在确认阶段进行核查。

再来完成修改的页面。
修改的逻辑是,在index页面中聚焦该阶段(一审、二审、终审),然后显示采纳的意见,
单击以后,大致仍然是原来的界面,只不过现在是左侧是意见,右侧是修改题目。并且修改题目需要增加版本控制的概念。最好是再在意见中反馈修改的情况。也就是说会有一个小小的信息冗余,在题目

 
左侧是采纳的修改意见,右侧是修改的题目

 

界面完成

下面是需要完成版本控制,和信息冗余存储:

  • 题目的版本控制:题目在创建的时候,会根据时间形成自复制,在修改时候,形成新的自复制,然后在之前的版本上增加一个版本。也就是说历代的版本都会存在,如果该题目被删除,实际在数据库中,仍然存在,只是标记为删除,这样万一在需要启用的时候,可以快速启用。
  • 在采纳的审题意见中,也会有一个和版本控制相关的分析和所以,也就是说这里并不是去记录题目的版本,而是记录一个题目修改过程分析的结果。模板:用户:xx,于 xxxx年xx月xx日1、对 题干进行了修改:修改之前为:"",修改之后为:"";2、对选项A进行了修改,修改之前为:"",修改之后为:"".
  • 如果在确认步骤中发现,对修改的效果不满意,那么返回以后确认意见,需要用户重新修改。这个时候就会有多条的修改过程,而且应该特别标注对修改结果添加的意见,这个时候可以用一个隐藏的textrear,当这个值为空时候,隐藏,当不为空时显示,可能会有多条,所以这个,应该,要不然,这里不用这么麻烦,当发现修改的不符合的时候,即提出新的会审意见即可。也就是说,在会审意见、修改和确认(也有一个添加会审意见的接口,还有一个通过的接口,如果通过,则标注这个题目的该阶段审核完成,并且该意见的修改完成,如果修改不满意,则新加一个会审意见,重新修改,OK,这样就不需要再去增加相应的字段和环节了,在自身内部就解决问题了)之间形成一个循环。

确认

在index界面其实还是索引的采纳的修改意见。用颜色标记修改人员对采纳的修改意见的执行情况(控制论的反馈机制?,不看那半部控制论基础的基础书籍,估计后面的这几个模块可能会没有了,至少不会这么流畅。所以有空还是系统的学习下控制论和信息论的只是),不过话说回来,其实这些还都是一些状态的标注,也就是说实现了设计上的流,但是IT中的工作流技术还是没有加入进来,或许采用了工作流的技术以后,实现的会更好?这是不是说说,我又做了一些工作流的底层工作,不过也好,自己造一下轮子,也还是可以。

采纳意见的几种修改状态:

  • 待修改(此时可以是空,为空,同时又标记为采纳是,标识此为待修改)
  • 修改完毕
  • 确认完毕
  • 重新修改,需要添加备注,对不满意的修改,添加说明(remarks),要求其重新修改。

当确认完成后,说明此条意见修改完。

新增意见提醒

新增题目提醒

统计

工作量统计

  • 添加的题目数
  • 审核的题目数
  • 编辑的字数
  • 编辑的图片数。

出卷

便捷性

将危化、打火机、烟花爆竹放在一个系统里,整合完成。

版本控制

先讨论下实现方案:

  • 形成新的entity?
  • 在题目中 通过json保存历史版本?
    • 那么删除的怎么办?:通过标记无效来选择如何?

版本控制决定采用json的方式来实现,具体实现过程如下:

  • 将题目的一个字段长度变为max,承接相应的版本控制数据,初步定为:ExtIndex3
  • 本来想在entity中实现自复制和自增长,但是entity中的需要添加新的引用才能实现,为了不破坏原来的结构,觉得还是在外面来实现。

考试系统设计

标签:base   方便   质量   概念   修改   msu   xxx   集中   也有   

原文地址:http://www.cnblogs.com/fighter23/p/8027312.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!