文/曹欣然 劉天時(shí)
利用微信公眾號(hào)開發(fā)高校點(diǎn)名系統(tǒng)
文/曹欣然 劉天時(shí)
互聯(lián)網(wǎng)相關(guān)技術(shù)的高速發(fā)展,給我們生活的方方面面帶來了積極的影響。傳統(tǒng)的高校課堂點(diǎn)名方式浪費(fèi)時(shí)間的同時(shí),仍然無法避免學(xué)生代簽到現(xiàn)象。本文在研究了網(wǎng)絡(luò)中現(xiàn)存的點(diǎn)名系統(tǒng)后,設(shè)計(jì)了一款基于微信公眾號(hào)的高校點(diǎn)名系統(tǒng)。該系統(tǒng)借助定位服務(wù),利用網(wǎng)頁開發(fā)技術(shù)和數(shù)據(jù)庫存儲(chǔ)技術(shù)而完成。
為了檢查學(xué)生是否按時(shí)上課,教師會(huì)在上課過程中不定時(shí)發(fā)起點(diǎn)名。目前,在高校中普遍存在的點(diǎn)名方式是教師通過紙質(zhì)版學(xué)生花名冊(cè),按照順序點(diǎn)名。因?yàn)楸究平虒W(xué)主要以大班授課為主,人數(shù)較多,大多數(shù)超過60人,完成一次點(diǎn)名會(huì)耗費(fèi)大量時(shí)間,占用上課時(shí)間。另外,很多教師無法做到認(rèn)識(shí)全體學(xué)生,滋生了學(xué)生代簽到的現(xiàn)象。
在此背景下,網(wǎng)絡(luò)中涌現(xiàn)了很多基于微信的教學(xué)輔助系統(tǒng),這些系統(tǒng)通過微信公眾平臺(tái),利用網(wǎng)頁開發(fā)技術(shù)和數(shù)據(jù)庫存儲(chǔ)技術(shù)完成高校教學(xué)輔助系統(tǒng)的開發(fā)。有的從公眾號(hào)內(nèi)自定義菜單入手,實(shí)現(xiàn)了多種教學(xué)輔助功能的融合;有的引入帶參數(shù)的二維碼實(shí)現(xiàn)點(diǎn)名功能,用戶掃描二維碼進(jìn)入指定的URL,完成簽到;有的是根據(jù)用戶擁有唯一的openid設(shè)計(jì)點(diǎn)名系統(tǒng),有效地防止了學(xué)生代簽到現(xiàn)象的存在。
本文是在研究網(wǎng)絡(luò)上現(xiàn)存的點(diǎn)名系統(tǒng)后,提出一款基于微信公眾號(hào)的點(diǎn)名系統(tǒng)。該系統(tǒng)分為教師端和學(xué)生端,當(dāng)教師發(fā)布點(diǎn)名后,學(xué)生可以根據(jù)教師提供的關(guān)鍵字完成簽到,教師可以根據(jù)學(xué)生簽到時(shí)的位置來檢查學(xué)生是否來到教室。隨后,教師可以在后臺(tái)數(shù)據(jù)庫中直接導(dǎo)出Excel文件,對(duì)于學(xué)生是否按時(shí)前來上課情況一目了然,實(shí)現(xiàn)了點(diǎn)名系統(tǒng)的便捷化和信息化。
點(diǎn)名系統(tǒng)是應(yīng)用于受眾群體數(shù)量較大,且不適合使用傳統(tǒng)點(diǎn)名方式實(shí)現(xiàn)考勤的系統(tǒng)。網(wǎng)絡(luò)上現(xiàn)存的點(diǎn)名系統(tǒng)分為基于Android平臺(tái)和基于微信公眾號(hào)兩種,前者往往受用戶終端設(shè)備不一致的困擾。
借助微信公眾平臺(tái)開發(fā)的點(diǎn)名系統(tǒng)保證了用戶隨時(shí)隨地可以實(shí)現(xiàn)考勤,不僅局限于課堂教學(xué)。對(duì)于教師來說,首次關(guān)注微信公號(hào)時(shí)需要進(jìn)行注冊(cè),填寫姓名與工號(hào),微信服務(wù)器接收到信息時(shí)會(huì)將其與微信號(hào)進(jìn)行綁定,再次登錄時(shí)輸入工號(hào)后即可直接登錄。教師發(fā)布點(diǎn)名后,系統(tǒng)會(huì)自動(dòng)跳轉(zhuǎn)界面,界面中央有輸入框,教師可自行規(guī)定輸入的指令,可由數(shù)字、字母、字符隨機(jī)組成,到達(dá)規(guī)定時(shí)間后教師可手動(dòng)操作,關(guān)閉簽到功能。
對(duì)于學(xué)生來說,首次關(guān)注微信公號(hào)時(shí)需要進(jìn)行注冊(cè),填寫姓名與學(xué)號(hào),微信服務(wù)器接收到信息時(shí)會(huì)將其與微信號(hào)進(jìn)行綁定,再次登錄時(shí)輸入學(xué)號(hào)后即可直接登錄。在教師發(fā)布點(diǎn)名后,系統(tǒng)會(huì)自動(dòng)跳轉(zhuǎn)界面,學(xué)生需要在輸入框內(nèi)填寫教師告知的命令并在規(guī)定時(shí)間內(nèi)填寫完畢,完成簽到。
教師和學(xué)生的工作流程圖1、圖2所示。
本文介紹的系統(tǒng)是在微信公眾號(hào)的基礎(chǔ)上,通過騰訊自帶的定位服務(wù),設(shè)計(jì)的一款高校課堂點(diǎn)名系統(tǒng)。主要有幾個(gè)優(yōu)勢(shì),一,本系統(tǒng)在點(diǎn)名結(jié)束后,教師可以從后臺(tái)獲取Excel表格,便于直觀了解學(xué)生到堂情況;二,隨時(shí)隨地使用,不局限于教室授課的固定模式,可以應(yīng)用于集體活動(dòng)的便捷化簽到;三,設(shè)計(jì)過程中不局限于系統(tǒng)自動(dòng)生成數(shù)字完成簽到,實(shí)現(xiàn)了教師當(dāng)堂設(shè)置關(guān)鍵字,其中包含數(shù)字和字母的隨機(jī)組合,有效避免了學(xué)生在規(guī)定時(shí)間內(nèi)使用多臺(tái)終端設(shè)備實(shí)現(xiàn)作弊簽到。
圖1 教師流程圖
圖2 學(xué)生流程圖
該系統(tǒng)依托微信公眾平臺(tái)建立,首先申請(qǐng)個(gè)人公眾號(hào),然后,以自定義菜單為中介,將設(shè)計(jì)好的網(wǎng)頁嵌套進(jìn)后臺(tái),再結(jié)合數(shù)據(jù)管理系統(tǒng),實(shí)現(xiàn)點(diǎn)名結(jié)果可以在數(shù)據(jù)庫中查詢的功能,手機(jī)端點(diǎn)名完成后的結(jié)果會(huì)上傳至服務(wù)器端,并且可以生成表格供教師自行導(dǎo)出,最終完成一款課堂點(diǎn)名系統(tǒng)。
系統(tǒng)開發(fā)環(huán)境
系統(tǒng)的開發(fā)方面,主要是基于Windows系統(tǒng)下,使用XAMPP搭建WEB服務(wù)器,采用PHP語言開發(fā)界面與服務(wù)器之間的接口,利用HTML+CSS完成前臺(tái)界面的編輯,采用MYSQL作為數(shù)據(jù)存儲(chǔ)系統(tǒng),使用Eclipse作為開發(fā)和調(diào)試環(huán)境。
PHP獨(dú)特的語法混合了C、Java、Perl以及PHP自創(chuàng)的語法。PHP是將程序嵌入到HTML文檔中去執(zhí)行,很好地實(shí)現(xiàn)了和前臺(tái)界面編輯的無縫連接。MYSQL是一款關(guān)系型數(shù)據(jù)庫系統(tǒng),其將數(shù)據(jù)保存在不同的表中,方便用戶查看在數(shù)據(jù)庫中存放的數(shù)據(jù)。HTML是用于描述網(wǎng)頁文檔的一種標(biāo)記語言,它通過標(biāo)記符號(hào)來標(biāo)記要顯示的網(wǎng)頁中的各個(gè)部分。CSS,定義如何顯示HTML元素,用于控制Web頁面的外觀。
系統(tǒng)設(shè)計(jì)
(1) 微信公眾平臺(tái)開發(fā)接口實(shí)現(xiàn)了用戶和服務(wù)器間的聯(lián)系。對(duì)于關(guān)注了微信公眾平臺(tái)的用戶,他們?cè)谖⑿殴娞?hào)內(nèi)發(fā)出一次請(qǐng)求,微信服務(wù)器會(huì)使用HTTP請(qǐng)求轉(zhuǎn)給Web服務(wù)器,響應(yīng)后將處理結(jié)果回傳給微信服務(wù)器,此時(shí)用戶便可在微信公眾號(hào)內(nèi)收到回復(fù)。這一系列過程就是用戶使用客戶端完成一次完整的會(huì)話。具體工作流程如圖3所示。
(2) 系統(tǒng)是基于微信APP設(shè)計(jì)并實(shí)現(xiàn)的,用戶通過多種方式關(guān)注公眾號(hào)后,系統(tǒng)后臺(tái)會(huì)自動(dòng)獲取用戶個(gè)人信息,用戶通過注冊(cè)功能,就可以將工號(hào)(學(xué)號(hào))與微信賬號(hào)進(jìn)行一對(duì)一綁定。系統(tǒng)接受到用戶輸入的數(shù)據(jù)后,將工號(hào)(學(xué)號(hào))和姓名存入數(shù)據(jù)庫,再次登錄時(shí)只需輸入工號(hào)(學(xué)號(hào))即可完成登錄,此過程實(shí)現(xiàn)了精確定位用戶信息。
(3)教師發(fā)布點(diǎn)名后,學(xué)生在簽到界面的輸入框內(nèi)填寫教師隨機(jī)編寫的命令。該命令由教師自行決定,可以包含數(shù)字,字母,符號(hào)等。開發(fā)者編寫程序時(shí)加入正則表達(dá)式,限定命令的長度。教師可以規(guī)定簽到時(shí)間,大約在10秒左右,學(xué)生在規(guī)定時(shí)間內(nèi)完成點(diǎn)名,若未按時(shí)完成簽到,教師可根據(jù)情況手動(dòng)修改學(xué)生到課情況,分為:遲到、請(qǐng)假、早退、未到等。
(4)系統(tǒng)采用MYSQL作為數(shù)據(jù)存儲(chǔ)系統(tǒng),在用戶登錄時(shí),系統(tǒng)會(huì)將用戶輸入的工號(hào)(學(xué)號(hào))和姓名的信息存入數(shù)據(jù)庫,下次登錄時(shí)只需輸入工號(hào)(學(xué)號(hào))即可。另外,數(shù)據(jù)庫與系統(tǒng)服務(wù)器相連,課后教師可以登錄后臺(tái),在數(shù)據(jù)庫中下載系統(tǒng)生成的Excel表格,通過表格教師可以直觀地看到學(xué)生按時(shí)到堂情況。
圖3 具體工作流程圖
在使用數(shù)據(jù)庫MYSQL時(shí),需要在安裝文件中改變并發(fā)用戶數(shù),安裝文件中默認(rèn)為100,可手動(dòng)修改數(shù)值。本系統(tǒng)在調(diào)試階段將數(shù)值更改為1000。一般情況下,對(duì)于一般高校課堂教學(xué)來說人數(shù)為200左右,設(shè)計(jì)的數(shù)值足夠應(yīng)付系統(tǒng)需求。
(5)因?yàn)樵撓到y(tǒng)是基于微信APP開發(fā)的,所以可以直接調(diào)用騰訊自帶的騰訊地圖來實(shí)現(xiàn)學(xué)生簽到的監(jiān)督,在學(xué)生進(jìn)入簽到頁面時(shí)系統(tǒng)會(huì)詢問學(xué)生是否開啟定位服務(wù)。在學(xué)生完成簽到后系統(tǒng)會(huì)顯示學(xué)生完成簽到時(shí)的位置,可以有效監(jiān)督學(xué)生作弊簽到情況。
目前,信息化校園的建設(shè)逐漸走入正軌,廣泛使用的信息化平臺(tái)有:教務(wù)管理系統(tǒng)、圖書管理系統(tǒng)、實(shí)驗(yàn)室預(yù)約系統(tǒng)等,但這些系統(tǒng)都是基于各自的平臺(tái)進(jìn)行開發(fā),單獨(dú)開發(fā)一個(gè)整合系統(tǒng)成本過高,實(shí)用性不強(qiáng)。
西安石油大學(xué)在2017-2018第二學(xué)期的“分布式數(shù)據(jù)庫”課堂中,共有30名學(xué)生及一名教師使用筆者提到的系統(tǒng)。在實(shí)踐中發(fā)現(xiàn),本系統(tǒng)借助微信公眾號(hào)實(shí)現(xiàn)各系統(tǒng)的融合方便師生的使用,其普及率高、易上手、零資費(fèi)的優(yōu)點(diǎn)受到廣大用戶群的認(rèn)可。然而,在使用過程中發(fā)現(xiàn)了如下問題:
1. 個(gè)別學(xué)生注冊(cè)時(shí)未按真實(shí)信息填寫,與教務(wù)處提供的花名冊(cè)有出入;
2. 存在學(xué)生在教室中同時(shí)使用兩臺(tái)終端設(shè)備進(jìn)行代簽到現(xiàn)象。
針對(duì)如上問題,筆者做出了相應(yīng)的改進(jìn)。在用戶登錄系統(tǒng)時(shí)會(huì)輸入學(xué)號(hào)和姓名等個(gè)人信息來進(jìn)行注冊(cè)登錄,系統(tǒng)會(huì)為每位用戶生成唯一標(biāo)識(shí)符openid,管理員會(huì)調(diào)用教務(wù)系統(tǒng)中學(xué)生名單,與學(xué)生注冊(cè)信息進(jìn)行比對(duì),實(shí)現(xiàn)與教務(wù)系統(tǒng)數(shù)據(jù)的統(tǒng)一。在學(xué)生完成簽到后,系統(tǒng)會(huì)生成Excel表單,此表單會(huì)和紙質(zhì)版學(xué)生花名冊(cè)統(tǒng)一格式,方便學(xué)校統(tǒng)一存檔。另外,在學(xué)生進(jìn)行簽到時(shí),要求每位學(xué)生手拿終端設(shè)備放置課桌上,使得教師可以直觀看到是否存在代簽到行為。
(責(zé)編:陶春)
(作者單位為西安石油大學(xué)計(jì)算機(jī)學(xué)院)