基于Node.js技术的综合测评系统的设计与实现

2014-08-14 00:16赵正凯杨烁李欧
电脑知识与技术 2014年19期

赵正凯 杨烁 李欧

摘要:该文采用Node.js+Mongodb+Bootstrap开发技术,设计并实现一个B/S结构的大学生综合测评系统,实现了综合测评、测评信息查询与管理、测评规则设置与管理、活动管理、用户管理及系统配置等功能。

关键词:综合测评;Node.js;B/S

中图分类号:TP311.52 文献标识码:A 文章编号:1009-3044(2014)19-4466-03

1 概述

目前许多高校都采用综合测评来对学生综合素质进行考核和评估,传统的综合测评方式主要是手工评测,这导致信息收集率普遍偏低、大部分数据集不能充分利用,学生不能收到及时的反馈信息和缺少公平公开的查询平台等缺点,因此开发一个公平公开、稳定、可靠的网上测评系统势在必行。经过对现有大学生综合测评方法的调研,该文采用Node.js + MongoDB +Bootstrap技术,设计并实现了大学生综合测评系统,该系统能有效的提高评测效率,使信息录入快捷和有效,同时使学生综合信息管理更加规范、学生信息得到极大限度的共享与透明,并能科学的统计与分析学生的综合素质,快速方便的查询评测结果。

2 相关技术简介

2.1 Node.js

Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的, 易于扩展的网络应用,Node.js 借助事件驱动,非阻塞 I/O 模型,使所构建的应用变得轻量和高效。

2.2 MongoDB

MongoDB是一个基于分布式文件存储的数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案。它的特点是高性能、易部署、易使用,存储数据非常方便。它支持的数据结构类似json的bson格式可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

2.3 Bootstrap

Bootstrap是Twitter推出的一个开源的用于前端开发的工具包,用于创建网站和Web应用程序。它包含了HTML和CSS为基础的设计模板排版,表格,按钮,导航等界面组件,以及可选的JavaScript扩展,使用LESS来编写CSS,拥有很强大的可配置性。

3 系统需求分析

经过项目组成员对国内大学现有的纸质综合测评方式进行的分析可知,本系统应能满足以下需求:

1) 支持学生、测评小组和系统管理员三类用户,每类用户具有不同的权限,系统为每类用户提供不同的操作界面。

2) 应能根据不同需求制定相应的综合测评标准,依据规范的测评标准实现公正客观的学生综合素质评价,并提供对综合测评信息的有效管理。

3) 应具有较为强大的公共数据收集能力和相对完善的后台数据库管理,基于实现学校建立数字化信息管理平台的目的,能使该系统与学校现有的教务管理系统进行有机的结合。

4) 支持并发操作,能满足用户大规模同时在线进行登录和查询操作,同时具备一定的信息系统安全性和传输信息的稳定性,来确保系统运行过程中数据传输的可靠性和业务流程的规范性。

4 系统设计

4.1 综合测评计算方式

系统中设计的一些概念:

1) 规则:它定义了综合测评的计算方式,一般记录在学校的相关文件中。

2) 加分项:它代表了所有符合规则中加分要求的项目,如“参加了某某活动”是加分项,“某某学年的平均分”也是加分项。

系统中,根据学校的制定的综合测评加分规则,在管理员的规则管理中构建出相应的规则模型。然后再由测评小组人员配置自己权限范围内所有加分项应该对应的具体规则。最后再由学生用户对自己拥有的加分项进行添加。用户添加完自己的加分项后,系统就可以通过加分项对应的规则计算出每个加分项的分数,最后计算出综合测评的总分。

4.2 系统功能模块设计

根据系统需求分析结果,将系统划分成个3大模块,即学生、测评小组和管理员模块。系统功能模块如图1所示。

图1 系统功能结构图

1) 学生模块

学生模块是综合测评数据的核心,它又可细分成以下几个模块:

综合测评模块,学生用户可以通过综合测评模块获得自己的综合测评信息以及进行综合测评。学生综合测评模块主界面如图2所示。

图2 学生综合测评界面

查看综测模块,该模块实现了查看综合测评成绩的功能,学生可以通过该模块可查看自己的综合测评成绩,同时还可以查看所在班级的所有学生的综合测评成绩及排名。

加分项管理模块,该模块实现了对测评加分项的管理。加分项管理模块界面如图3所示。

图3 加分项管理界面

2) 测评小组模块

测评小组模块,用于对综合测评的规则进行部分配置,同时管理综合测评数据和加分项数据。该模块又可细分为以下几个模块:

规则分配模块,系统的基础规则是由管理员进行配置,测评小组用户无法修改,此处的规则分配是对加分项的加分方式规则进行分配。 规则分配模块界面如图4所示。

图4 规则分配界面

加分项管理模块,用于对学生用户添加的加分项进行添加、删除和审核。

查看综合测评模块,用于查看他所管理的范围内的所有综合测评信息。

3) 管理员模块

管理员模块实现了对所有信息的管理,该模块又可细分为以下几个模块:

用户信息管理模块,当系统连接到用户信息数据库后,管理员可以对用户信息进行增加、删除及修改操作。

综合测评规则管理模块,用于管理综合测评规则。管理员可以根据各个学期学校对学生的不同素质要求以及不同活动的重要性对综合测评规则进行一定的调整。综合测评规则计算程序可以通过解析管理员修改规则后生成的对应文本来计算审核合格后的学生信息数据。综合测评规则管理模块界面如图5所示。

图5 综合测评规则管理界面

系统设置模块,包括测评时间的设置和数据源的设置。数据源的设置又包括人员管理数据源的设置,活动管理数据源的设置,成绩管理数据源的设置和基本素质测评数据源的设置。管理员通过设置测评时间可以控制综合测评的开始时间和结束时间;数据源的设置可以使用系统内部的数据库也可以使用外部的数据源,这样可以使系统管理员能够灵活地控制系统数据源的引用。

活动管理模块,主要用于管理学校举办的各种活动,记录各种活动的举办信息。

成绩管理模块,主要用于对学生课程成绩的添加、删除和修改。

4.3 数据库设计

系统数据库设计了9张数据表,各数据表名称及用途如下:

1) User用户表,用来储存用户的id,用户各阶段的综合测评总分以及加分项管理模块最后同步的时间。

2) UserYAct用户与加分项的关系表,用来储存用户id,加分项id,加分项分数以及加分项所属的测评时间。

3) TimeTable测评时间表,用来定义各个测评时间所涵盖的范围,以及对这个范围的测评时间的描述。

4) ActYPath加分项与规则关系表,用来定义各个加分项对应的评分规则。

5) Rule评分规则表,用来储存综合测评评分规则。

6) Activity活动表,用来储存活动的基本信息。

7) ActManange活动管理表,用来储存用户和活动的关系,记录用户参加的活动。 (下转第4475页)

(上接第4468页)

8) UserManage人员管理表,用来储存用户的基本信息。

9) ScoreManage课程成绩管理表,用来储存用户的成绩信息,记录了每个用户每个学期的课程成绩情况。

4.4 系统实现关键技术

1) 异步的代码调用。在Node.js中,可以通过是用process.nextTick(callback)语句,将callback异步调用,不必等callback运行完成,程序就能继续执行后面的语句。这样能充分的利用计算机的资源,处理更多的并发请求。

2) 响应式布局。通过使用响应式布局网站能够兼容多个终端,而不是为每个终端做一个特定的版本的页面,能够优化移动端对网页的访问,同时减少冗余的代码。

3) 非关系型数据库。本系统使用非关系型数据作为持久化的解决方案,松散的数据方式能够给程序更大的设计空间,同时拥有更好的拓展性。

5 结束语

大学生综合测评系统解决了传统纸质测评方式中信息传递不便捷、易遗漏、不易进行统计、分析和查询等问题,实现了学生测评信息网络化管理,使学生综合信息管理更加规范,也大大提高了工作效率。

参考文献:

[1] 高原.服务器端 javascript 技术研究[J].信息与电脑:理论版,2012(1):50.

[2] 李晶.NodeJS——服务器端 JavaScript 运行环境[J].程序员,2010(12):20.

[3] 田永强.Node. js 的核心与红利[J].程序员,2012(10):116-119.

[4] 潘凡.从 MySQL 到 MongoDB——视觉中国的 NoSQL 之路[J].程序员,2010(6):79-81.

[5] 廖伟华.Twitter Bootstrap: 前端框架利器[J].程序员,2012(4):114-117.

图4 规则分配界面

加分项管理模块,用于对学生用户添加的加分项进行添加、删除和审核。

查看综合测评模块,用于查看他所管理的范围内的所有综合测评信息。

3) 管理员模块

管理员模块实现了对所有信息的管理,该模块又可细分为以下几个模块:

用户信息管理模块,当系统连接到用户信息数据库后,管理员可以对用户信息进行增加、删除及修改操作。

综合测评规则管理模块,用于管理综合测评规则。管理员可以根据各个学期学校对学生的不同素质要求以及不同活动的重要性对综合测评规则进行一定的调整。综合测评规则计算程序可以通过解析管理员修改规则后生成的对应文本来计算审核合格后的学生信息数据。综合测评规则管理模块界面如图5所示。

图5 综合测评规则管理界面

系统设置模块,包括测评时间的设置和数据源的设置。数据源的设置又包括人员管理数据源的设置,活动管理数据源的设置,成绩管理数据源的设置和基本素质测评数据源的设置。管理员通过设置测评时间可以控制综合测评的开始时间和结束时间;数据源的设置可以使用系统内部的数据库也可以使用外部的数据源,这样可以使系统管理员能够灵活地控制系统数据源的引用。

活动管理模块,主要用于管理学校举办的各种活动,记录各种活动的举办信息。

成绩管理模块,主要用于对学生课程成绩的添加、删除和修改。

4.3 数据库设计

系统数据库设计了9张数据表,各数据表名称及用途如下:

1) User用户表,用来储存用户的id,用户各阶段的综合测评总分以及加分项管理模块最后同步的时间。

2) UserYAct用户与加分项的关系表,用来储存用户id,加分项id,加分项分数以及加分项所属的测评时间。

3) TimeTable测评时间表,用来定义各个测评时间所涵盖的范围,以及对这个范围的测评时间的描述。

4) ActYPath加分项与规则关系表,用来定义各个加分项对应的评分规则。

5) Rule评分规则表,用来储存综合测评评分规则。

6) Activity活动表,用来储存活动的基本信息。

7) ActManange活动管理表,用来储存用户和活动的关系,记录用户参加的活动。 (下转第4475页)

(上接第4468页)

8) UserManage人员管理表,用来储存用户的基本信息。

9) ScoreManage课程成绩管理表,用来储存用户的成绩信息,记录了每个用户每个学期的课程成绩情况。

4.4 系统实现关键技术

1) 异步的代码调用。在Node.js中,可以通过是用process.nextTick(callback)语句,将callback异步调用,不必等callback运行完成,程序就能继续执行后面的语句。这样能充分的利用计算机的资源,处理更多的并发请求。

2) 响应式布局。通过使用响应式布局网站能够兼容多个终端,而不是为每个终端做一个特定的版本的页面,能够优化移动端对网页的访问,同时减少冗余的代码。

3) 非关系型数据库。本系统使用非关系型数据作为持久化的解决方案,松散的数据方式能够给程序更大的设计空间,同时拥有更好的拓展性。

5 结束语

大学生综合测评系统解决了传统纸质测评方式中信息传递不便捷、易遗漏、不易进行统计、分析和查询等问题,实现了学生测评信息网络化管理,使学生综合信息管理更加规范,也大大提高了工作效率。

参考文献:

[1] 高原.服务器端 javascript 技术研究[J].信息与电脑:理论版,2012(1):50.

[2] 李晶.NodeJS——服务器端 JavaScript 运行环境[J].程序员,2010(12):20.

[3] 田永强.Node. js 的核心与红利[J].程序员,2012(10):116-119.

[4] 潘凡.从 MySQL 到 MongoDB——视觉中国的 NoSQL 之路[J].程序员,2010(6):79-81.

[5] 廖伟华.Twitter Bootstrap: 前端框架利器[J].程序员,2012(4):114-117.

图4 规则分配界面

加分项管理模块,用于对学生用户添加的加分项进行添加、删除和审核。

查看综合测评模块,用于查看他所管理的范围内的所有综合测评信息。

3) 管理员模块

管理员模块实现了对所有信息的管理,该模块又可细分为以下几个模块:

用户信息管理模块,当系统连接到用户信息数据库后,管理员可以对用户信息进行增加、删除及修改操作。

综合测评规则管理模块,用于管理综合测评规则。管理员可以根据各个学期学校对学生的不同素质要求以及不同活动的重要性对综合测评规则进行一定的调整。综合测评规则计算程序可以通过解析管理员修改规则后生成的对应文本来计算审核合格后的学生信息数据。综合测评规则管理模块界面如图5所示。

图5 综合测评规则管理界面

系统设置模块,包括测评时间的设置和数据源的设置。数据源的设置又包括人员管理数据源的设置,活动管理数据源的设置,成绩管理数据源的设置和基本素质测评数据源的设置。管理员通过设置测评时间可以控制综合测评的开始时间和结束时间;数据源的设置可以使用系统内部的数据库也可以使用外部的数据源,这样可以使系统管理员能够灵活地控制系统数据源的引用。

活动管理模块,主要用于管理学校举办的各种活动,记录各种活动的举办信息。

成绩管理模块,主要用于对学生课程成绩的添加、删除和修改。

4.3 数据库设计

系统数据库设计了9张数据表,各数据表名称及用途如下:

1) User用户表,用来储存用户的id,用户各阶段的综合测评总分以及加分项管理模块最后同步的时间。

2) UserYAct用户与加分项的关系表,用来储存用户id,加分项id,加分项分数以及加分项所属的测评时间。

3) TimeTable测评时间表,用来定义各个测评时间所涵盖的范围,以及对这个范围的测评时间的描述。

4) ActYPath加分项与规则关系表,用来定义各个加分项对应的评分规则。

5) Rule评分规则表,用来储存综合测评评分规则。

6) Activity活动表,用来储存活动的基本信息。

7) ActManange活动管理表,用来储存用户和活动的关系,记录用户参加的活动。 (下转第4475页)

(上接第4468页)

8) UserManage人员管理表,用来储存用户的基本信息。

9) ScoreManage课程成绩管理表,用来储存用户的成绩信息,记录了每个用户每个学期的课程成绩情况。

4.4 系统实现关键技术

1) 异步的代码调用。在Node.js中,可以通过是用process.nextTick(callback)语句,将callback异步调用,不必等callback运行完成,程序就能继续执行后面的语句。这样能充分的利用计算机的资源,处理更多的并发请求。

2) 响应式布局。通过使用响应式布局网站能够兼容多个终端,而不是为每个终端做一个特定的版本的页面,能够优化移动端对网页的访问,同时减少冗余的代码。

3) 非关系型数据库。本系统使用非关系型数据作为持久化的解决方案,松散的数据方式能够给程序更大的设计空间,同时拥有更好的拓展性。

5 结束语

大学生综合测评系统解决了传统纸质测评方式中信息传递不便捷、易遗漏、不易进行统计、分析和查询等问题,实现了学生测评信息网络化管理,使学生综合信息管理更加规范,也大大提高了工作效率。

参考文献:

[1] 高原.服务器端 javascript 技术研究[J].信息与电脑:理论版,2012(1):50.

[2] 李晶.NodeJS——服务器端 JavaScript 运行环境[J].程序员,2010(12):20.

[3] 田永强.Node. js 的核心与红利[J].程序员,2012(10):116-119.

[4] 潘凡.从 MySQL 到 MongoDB——视觉中国的 NoSQL 之路[J].程序员,2010(6):79-81.

[5] 廖伟华.Twitter Bootstrap: 前端框架利器[J].程序员,2012(4):114-117.