陈成 广东南方网络信息科技有限公司510623
在这个移动互联网时代下,在线问卷调查和网络投票活动日趋流行。对于一些新的产品、新的观点的调查范围更加广泛,得到的消息也能够及时的反馈给发起调查问卷的单位。还有,网络投票已经成为评选活动的重要方式。很多竞赛活动,比如视频大赛,讲解比赛等,都离不开民主投票,以保证尽量公平。
基于以上背景,本文结合互联网技术设计了“问卷投票自动化管理系统”,主要基于Laravel和Angular框架。问卷投票系统不仅扩大了信息反馈的范围、节省了人力资源,而且使得企业在竞争激烈的市场中拥有更强大的资本。该系统为用户提供自主发起问卷或投票,在线设计内容,设定问卷或投票模板,采集数据,调查或投票结果展示,多种技术手段防范作弊刷票。
为实现Web应用的快速开发和版本迭代,本文采用技术框架的方式对常用的功能提供通用的解放方案,将更多的精力放在业务逻辑的实现上,从而缩短开发周期,避免大量重复劳动。
Laravel是目前最流行的PHP开发框架之一,它使用IoC(依赖注入容器)结构和MVC(Model-View-Controller)架构模式。Laravel自带了强大的Eloquent ORM和迁移工具,能够完美的与多种数据库协同工作,使用PDO(PHP Data Object)参数绑定避免SQL注入攻击。支持请求的RESTful路由,通过简单的闭包就能响应HTTP请求,能够方便地实现RESTful API。
随着互联网应用的发展,友好的用户界面、良好的用户体验、统一的界面风格、复杂的逻辑交互等要求,大量优秀的前端技术框架随之产生。其中AngularJS是一款优秀的前端JavaScript框架。AngularJS是一种 MVC 的前端框架,以数据和逻辑为驱动核心,它有着诸多特性,最重要的是:模块化,双向数据绑定,语义化标签,依赖注入等。
为了使用户界面能够兼容PC端、Android端、苹果手机等多个终端,系统还采用了Bootstrap框架。它是目前流行的用于前端开发的开源工具包,它简洁灵活,使Web开发更加快捷。它有很多特点,跨设备、跨浏览器,兼容多个终端的响应式布局,提供全面的组件。基于Laravel框架的问卷投票系统采用了Angular和Bootstrap前端框架,形成了功能完备、兼容多终端、风格统一的网站。
模型-视图-控制器(Model-View-Controller)架构模式分为Model,View和Controller三个组件。其中,Model层负责如何为数据建模;View层负责用户界面生成,如何向终端呈现从Model层得到的数据以及提供交互;Controller层负责Model层和View层的对接,对接主要是对应连个端:一端是向模型请求处理需要的数据来源,另一端则是把处理结果用某种方式传递给视图,中间的具体过程就是控制器负责的层面。使用这样的设计模式就是为了解耦,使3个组件相互之间不存在依赖,有利于代码可维护性、可读性、灵活性,有益于系统管理和维护。
整个系统分为问卷管理和投票管理两部分。在问卷管理中,用户对某个主题或热门话题编辑和发布调查问卷,设置问卷模板,通过系统编辑可以将指定的统计结果实时生成统计图,其中统计图形有折线图、柱状图、饼状图,方便用户在统计报告中使用。在投票管理中,用户对投票进行设置和发起,可以设定投票模板,修改投票选项信息,设置防刷票手段。网民可以访问发布后的地址进行填写或投票。整个系统的功能模块如图1所示。
(1)登录模块:为了系统的安全考虑,用户需输入相应的用户名和密码登录后台管理系统,且用户名和密码是和管理员预先设定的一样。
(2)问卷投票管理:用户可查看相应的问卷投票项目列表;新建新问卷或者投票;设置展示模板;录入和修改内容,根据题目类型(单选、多选、填空、投票单选、投票多选)设计题目内容;点击发布,即创建完成;可以删除和停止发布问卷或投票项目;可以设置投票活动的防范刷票功能。
图1 系统功能模块
(3)统计模块:可查看问卷提交或投票时间,来自IP,来源等;以图表的方式展示问卷投票结果,下载统计报表。
(4)个人资料修改:用户可以对个人资料进行修改和密码修改。
(5) 权限角色管理:管理员可查看、创建和修改系统权限和角色。不同的角色拥有不同的权限,方便用户的权限设置。
(6)用户管理:管理员可查看和搜索用户信息;创建、修改用户;给用户授予角色对应的权限。
(7)日志管理:用户在管理后台的登录和对问卷投票项目的操作都被记录在日志中,管理员可以查看所有操作的日志。
在线投票具有快捷高效、成本低廉等优势,但容易作弊刷票一直是其缺陷。为了投票的公平公正,本系统采用多种技术手段结合防范作弊刷票,用户可以根据不同的需求在管理后台设置多种防范刷票功能的组合。
(1)IP限制;可限制每个IP在一定时间内只能对一个选项投票一次或数次,因IP很难伪造,可靠性较高。 需要注意是如果在同一个局域网下,则可能存在不同终端IP相同的情况。
(2)设备限制:投票系统使用Cookie、Session等技术标记已投票过的设备(电脑、手机等),但技术上Cookie很容易丢失和被删除(例如清空浏览器缓存等)。
(3)图形验证码:图形验证码要求投票者需输入一些机器较难识别的图形验证码,可有效防止利用电脑程序进行模拟自动投票。
(4)日志分析:所有投票人次的时间、IP、所选选项、浏览器信息都会一一记录,管理员可通过对日志的人工分析,发现可疑的投票行为。
(5)自定义用户输入项:自定义输入项用于让投票者提交更多信息,常用于信息收集,例如要求录入联系方式、地址等,可在一定程度上防范刷票。
经过实际运用,基于以上各种功能和技术手段,均能在一定程度上防范作弊刷票,或增加作弊刷票的成本。
本文研究在移动互联网时代下,实现智能问卷投票系统。该系统的特点是同时支持手机、电脑端投票或提交问卷,然后统计和显示结果,简单、快捷;有多种不同风格的问卷投票模板和类型,满足不同项目的要求;并且采用技术手段防范作弊刷票,可设置多种防范刷票功能的组合,方便操作和管理。本系统还有许多方面需要完善,比如提高系统性能,丰富问题类型。