陳成 廣東南方網(wǎng)絡(luò)信息科技有限公司510623
在這個(gè)移動(dòng)互聯(lián)網(wǎng)時(shí)代下,在線問卷調(diào)查和網(wǎng)絡(luò)投票活動(dòng)日趨流行。對(duì)于一些新的產(chǎn)品、新的觀點(diǎn)的調(diào)查范圍更加廣泛,得到的消息也能夠及時(shí)的反饋給發(fā)起調(diào)查問卷的單位。還有,網(wǎng)絡(luò)投票已經(jīng)成為評(píng)選活動(dòng)的重要方式。很多競(jìng)賽活動(dòng),比如視頻大賽,講解比賽等,都離不開民主投票,以保證盡量公平。
基于以上背景,本文結(jié)合互聯(lián)網(wǎng)技術(shù)設(shè)計(jì)了“問卷投票自動(dòng)化管理系統(tǒng)”,主要基于Laravel和Angular框架。問卷投票系統(tǒng)不僅擴(kuò)大了信息反饋的范圍、節(jié)省了人力資源,而且使得企業(yè)在競(jìng)爭(zhēng)激烈的市場(chǎng)中擁有更強(qiáng)大的資本。該系統(tǒng)為用戶提供自主發(fā)起問卷或投票,在線設(shè)計(jì)內(nèi)容,設(shè)定問卷或投票模板,采集數(shù)據(jù),調(diào)查或投票結(jié)果展示,多種技術(shù)手段防范作弊刷票。
為實(shí)現(xiàn)Web應(yīng)用的快速開發(fā)和版本迭代,本文采用技術(shù)框架的方式對(duì)常用的功能提供通用的解放方案,將更多的精力放在業(yè)務(wù)邏輯的實(shí)現(xiàn)上,從而縮短開發(fā)周期,避免大量重復(fù)勞動(dòng)。
Laravel是目前最流行的PHP開發(fā)框架之一,它使用IoC(依賴注入容器)結(jié)構(gòu)和MVC(Model-View-Controller)架構(gòu)模式。Laravel自帶了強(qiáng)大的Eloquent ORM和遷移工具,能夠完美的與多種數(shù)據(jù)庫(kù)協(xié)同工作,使用PDO(PHP Data Object)參數(shù)綁定避免SQL注入攻擊。支持請(qǐng)求的RESTful路由,通過簡(jiǎn)單的閉包就能響應(yīng)HTTP請(qǐng)求,能夠方便地實(shí)現(xiàn)RESTful API。
隨著互聯(lián)網(wǎng)應(yīng)用的發(fā)展,友好的用戶界面、良好的用戶體驗(yàn)、統(tǒng)一的界面風(fēng)格、復(fù)雜的邏輯交互等要求,大量?jī)?yōu)秀的前端技術(shù)框架隨之產(chǎn)生。其中AngularJS是一款優(yōu)秀的前端JavaScript框架。AngularJS是一種 MVC 的前端框架,以數(shù)據(jù)和邏輯為驅(qū)動(dòng)核心,它有著諸多特性,最重要的是:模塊化,雙向數(shù)據(jù)綁定,語(yǔ)義化標(biāo)簽,依賴注入等。
為了使用戶界面能夠兼容PC端、Android端、蘋果手機(jī)等多個(gè)終端,系統(tǒng)還采用了Bootstrap框架。它是目前流行的用于前端開發(fā)的開源工具包,它簡(jiǎn)潔靈活,使Web開發(fā)更加快捷。它有很多特點(diǎn),跨設(shè)備、跨瀏覽器,兼容多個(gè)終端的響應(yīng)式布局,提供全面的組件。基于Laravel框架的問卷投票系統(tǒng)采用了Angular和Bootstrap前端框架,形成了功能完備、兼容多終端、風(fēng)格統(tǒng)一的網(wǎng)站。
模型-視圖-控制器(Model-View-Controller)架構(gòu)模式分為Model,View和Controller三個(gè)組件。其中,Model層負(fù)責(zé)如何為數(shù)據(jù)建模;View層負(fù)責(zé)用戶界面生成,如何向終端呈現(xiàn)從Model層得到的數(shù)據(jù)以及提供交互;Controller層負(fù)責(zé)Model層和View層的對(duì)接,對(duì)接主要是對(duì)應(yīng)連個(gè)端:一端是向模型請(qǐng)求處理需要的數(shù)據(jù)來源,另一端則是把處理結(jié)果用某種方式傳遞給視圖,中間的具體過程就是控制器負(fù)責(zé)的層面。使用這樣的設(shè)計(jì)模式就是為了解耦,使3個(gè)組件相互之間不存在依賴,有利于代碼可維護(hù)性、可讀性、靈活性,有益于系統(tǒng)管理和維護(hù)。
整個(gè)系統(tǒng)分為問卷管理和投票管理兩部分。在問卷管理中,用戶對(duì)某個(gè)主題或熱門話題編輯和發(fā)布調(diào)查問卷,設(shè)置問卷模板,通過系統(tǒng)編輯可以將指定的統(tǒng)計(jì)結(jié)果實(shí)時(shí)生成統(tǒng)計(jì)圖,其中統(tǒng)計(jì)圖形有折線圖、柱狀圖、餅狀圖,方便用戶在統(tǒng)計(jì)報(bào)告中使用。在投票管理中,用戶對(duì)投票進(jìn)行設(shè)置和發(fā)起,可以設(shè)定投票模板,修改投票選項(xiàng)信息,設(shè)置防刷票手段。網(wǎng)民可以訪問發(fā)布后的地址進(jìn)行填寫或投票。整個(gè)系統(tǒng)的功能模塊如圖1所示。
(1)登錄模塊:為了系統(tǒng)的安全考慮,用戶需輸入相應(yīng)的用戶名和密碼登錄后臺(tái)管理系統(tǒng),且用戶名和密碼是和管理員預(yù)先設(shè)定的一樣。
(2)問卷投票管理:用戶可查看相應(yīng)的問卷投票項(xiàng)目列表;新建新問卷或者投票;設(shè)置展示模板;錄入和修改內(nèi)容,根據(jù)題目類型(單選、多選、填空、投票單選、投票多選)設(shè)計(jì)題目?jī)?nèi)容;點(diǎn)擊發(fā)布,即創(chuàng)建完成;可以刪除和停止發(fā)布問卷或投票項(xiàng)目;可以設(shè)置投票活動(dòng)的防范刷票功能。
圖1 系統(tǒng)功能模塊
(3)統(tǒng)計(jì)模塊:可查看問卷提交或投票時(shí)間,來自IP,來源等;以圖表的方式展示問卷投票結(jié)果,下載統(tǒng)計(jì)報(bào)表。
(4)個(gè)人資料修改:用戶可以對(duì)個(gè)人資料進(jìn)行修改和密碼修改。
(5) 權(quán)限角色管理:管理員可查看、創(chuàng)建和修改系統(tǒng)權(quán)限和角色。不同的角色擁有不同的權(quán)限,方便用戶的權(quán)限設(shè)置。
(6)用戶管理:管理員可查看和搜索用戶信息;創(chuàng)建、修改用戶;給用戶授予角色對(duì)應(yīng)的權(quán)限。
(7)日志管理:用戶在管理后臺(tái)的登錄和對(duì)問卷投票項(xiàng)目的操作都被記錄在日志中,管理員可以查看所有操作的日志。
在線投票具有快捷高效、成本低廉等優(yōu)勢(shì),但容易作弊刷票一直是其缺陷。為了投票的公平公正,本系統(tǒng)采用多種技術(shù)手段結(jié)合防范作弊刷票,用戶可以根據(jù)不同的需求在管理后臺(tái)設(shè)置多種防范刷票功能的組合。
(1)IP限制;可限制每個(gè)IP在一定時(shí)間內(nèi)只能對(duì)一個(gè)選項(xiàng)投票一次或數(shù)次,因IP很難偽造,可靠性較高。 需要注意是如果在同一個(gè)局域網(wǎng)下,則可能存在不同終端IP相同的情況。
(2)設(shè)備限制:投票系統(tǒng)使用Cookie、Session等技術(shù)標(biāo)記已投票過的設(shè)備(電腦、手機(jī)等),但技術(shù)上Cookie很容易丟失和被刪除(例如清空瀏覽器緩存等)。
(3)圖形驗(yàn)證碼:圖形驗(yàn)證碼要求投票者需輸入一些機(jī)器較難識(shí)別的圖形驗(yàn)證碼,可有效防止利用電腦程序進(jìn)行模擬自動(dòng)投票。
(4)日志分析:所有投票人次的時(shí)間、IP、所選選項(xiàng)、瀏覽器信息都會(huì)一一記錄,管理員可通過對(duì)日志的人工分析,發(fā)現(xiàn)可疑的投票行為。
(5)自定義用戶輸入項(xiàng):自定義輸入項(xiàng)用于讓投票者提交更多信息,常用于信息收集,例如要求錄入聯(lián)系方式、地址等,可在一定程度上防范刷票。
經(jīng)過實(shí)際運(yùn)用,基于以上各種功能和技術(shù)手段,均能在一定程度上防范作弊刷票,或增加作弊刷票的成本。
本文研究在移動(dòng)互聯(lián)網(wǎng)時(shí)代下,實(shí)現(xiàn)智能問卷投票系統(tǒng)。該系統(tǒng)的特點(diǎn)是同時(shí)支持手機(jī)、電腦端投票或提交問卷,然后統(tǒng)計(jì)和顯示結(jié)果,簡(jiǎn)單、快捷;有多種不同風(fēng)格的問卷投票模板和類型,滿足不同項(xiàng)目的要求;并且采用技術(shù)手段防范作弊刷票,可設(shè)置多種防范刷票功能的組合,方便操作和管理。本系統(tǒng)還有許多方面需要完善,比如提高系統(tǒng)性能,豐富問題類型。