How to design an online voting system

近些年微信上的网络投票系统比较多,那么如何设计一个在线的网络投票系统呢?今天,我们就给大家简要梳理一下。

  • 安全性控制

由于因特网本身的开放性,使得网上投票面临种种危险,由此也引出了相应的安全控制性要求。

(1)信息保密性,投票者有保密的要求,如果用户名及投票内容被人知悉,就对用户的隐私权构成了侵害,因此网上投票系统中一般均有匿名投票的要求。

(2)投票者身份的有效性,在投票前,首先要确认投票者身份的合法性,这样才能保证统计结果的真实可靠。

(3)投票唯一性,一个投票者,其投票次数应当只一次,如果投票者可进行多次投票,这将对调查内容的可靠性构成严重的威胁。投票唯一性实质上也是投票者身份有效性。只有在确认身份有效的前提下,才能保证用户投票的唯一性。

  • 基本功能

How to design an online voting system
图 1.0 在线投票

  • 技术实现

(1)基于短信验证码实现用户身份验证。

对于普通的在线投票系统,基于短信验证码实现用户身份校验基本上可以了,但是对于一些对用户身份要求非常严格的在线投票系统,还要对用户身份证或者用户人脸进行识别,进一步排除一个用户有多个手机号码的情况。

(2)基于Apache Echarts实现数据可视化展示。

Apache Echarts是百度在Apache上孵化的一个开源项目,支持多维度、多设备、动态展示数据。

参考文献
开发者突击:JSP网络开发经典模块实现集/程伟,汪孝宜编者,ISBN 978-7-121-04406-9