文/曹欣然 劉天時
利用微信公眾號開發(fā)高校點名系統(tǒng)
文/曹欣然 劉天時
互聯(lián)網(wǎng)相關(guān)技術(shù)的高速發(fā)展,給我們生活的方方面面帶來了積極的影響。傳統(tǒng)的高校課堂點名方式浪費時間的同時,仍然無法避免學(xué)生代簽到現(xiàn)象。本文在研究了網(wǎng)絡(luò)中現(xiàn)存的點名系統(tǒng)后,設(shè)計了一款基于微信公眾號的高校點名系統(tǒng)。該系統(tǒng)借助定位服務(wù),利用網(wǎng)頁開發(fā)技術(shù)和數(shù)據(jù)庫存儲技術(shù)而完成。
為了檢查學(xué)生是否按時上課,教師會在上課過程中不定時發(fā)起點名。目前,在高校中普遍存在的點名方式是教師通過紙質(zhì)版學(xué)生花名冊,按照順序點名。因為本科教學(xué)主要以大班授課為主,人數(shù)較多,大多數(shù)超過60人,完成一次點名會耗費大量時間,占用上課時間。另外,很多教師無法做到認(rèn)識全體學(xué)生,滋生了學(xué)生代簽到的現(xiàn)象。
在此背景下,網(wǎng)絡(luò)中涌現(xiàn)了很多基于微信的教學(xué)輔助系統(tǒng),這些系統(tǒng)通過微信公眾平臺,利用網(wǎng)頁開發(fā)技術(shù)和數(shù)據(jù)庫存儲技術(shù)完成高校教學(xué)輔助系統(tǒng)的開發(fā)。有的從公眾號內(nèi)自定義菜單入手,實現(xiàn)了多種教學(xué)輔助功能的融合;有的引入帶參數(shù)的二維碼實現(xiàn)點名功能,用戶掃描二維碼進入指定的URL,完成簽到;有的是根據(jù)用戶擁有唯一的openid設(shè)計點名系統(tǒng),有效地防止了學(xué)生代簽到現(xiàn)象的存在。
本文是在研究網(wǎng)絡(luò)上現(xiàn)存的點名系統(tǒng)后,提出一款基于微信公眾號的點名系統(tǒng)。該系統(tǒng)分為教師端和學(xué)生端,當(dāng)教師發(fā)布點名后,學(xué)生可以根據(jù)教師提供的關(guān)鍵字完成簽到,教師可以根據(jù)學(xué)生簽到時的位置來檢查學(xué)生是否來到教室。隨后,教師可以在后臺數(shù)據(jù)庫中直接導(dǎo)出Excel文件,對于學(xué)生是否按時前來上課情況一目了然,實現(xiàn)了點名系統(tǒng)的便捷化和信息化。
點名系統(tǒng)是應(yīng)用于受眾群體數(shù)量較大,且不適合使用傳統(tǒng)點名方式實現(xiàn)考勤的系統(tǒng)。網(wǎng)絡(luò)上現(xiàn)存的點名系統(tǒng)分為基于Android平臺和基于微信公眾號兩種,前者往往受用戶終端設(shè)備不一致的困擾。
借助微信公眾平臺開發(fā)的點名系統(tǒng)保證了用戶隨時隨地可以實現(xiàn)考勤,不僅局限于課堂教學(xué)。對于教師來說,首次關(guān)注微信公號時需要進行注冊,填寫姓名與工號,微信服務(wù)器接收到信息時會將其與微信號進行綁定,再次登錄時輸入工號后即可直接登錄。教師發(fā)布點名后,系統(tǒng)會自動跳轉(zhuǎn)界面,界面中央有輸入框,教師可自行規(guī)定輸入的指令,可由數(shù)字、字母、字符隨機組成,到達規(guī)定時間后教師可手動操作,關(guān)閉簽到功能。
對于學(xué)生來說,首次關(guān)注微信公號時需要進行注冊,填寫姓名與學(xué)號,微信服務(wù)器接收到信息時會將其與微信號進行綁定,再次登錄時輸入學(xué)號后即可直接登錄。在教師發(fā)布點名后,系統(tǒng)會自動跳轉(zhuǎn)界面,學(xué)生需要在輸入框內(nèi)填寫教師告知的命令并在規(guī)定時間內(nèi)填寫完畢,完成簽到。
教師和學(xué)生的工作流程圖1、圖2所示。
本文介紹的系統(tǒng)是在微信公眾號的基礎(chǔ)上,通過騰訊自帶的定位服務(wù),設(shè)計的一款高校課堂點名系統(tǒng)。主要有幾個優(yōu)勢,一,本系統(tǒng)在點名結(jié)束后,教師可以從后臺獲取Excel表格,便于直觀了解學(xué)生到堂情況;二,隨時隨地使用,不局限于教室授課的固定模式,可以應(yīng)用于集體活動的便捷化簽到;三,設(shè)計過程中不局限于系統(tǒng)自動生成數(shù)字完成簽到,實現(xiàn)了教師當(dāng)堂設(shè)置關(guān)鍵字,其中包含數(shù)字和字母的隨機組合,有效避免了學(xué)生在規(guī)定時間內(nèi)使用多臺終端設(shè)備實現(xiàn)作弊簽到。

圖1 教師流程圖

圖2 學(xué)生流程圖
該系統(tǒng)依托微信公眾平臺建立,首先申請個人公眾號,然后,以自定義菜單為中介,將設(shè)計好的網(wǎng)頁嵌套進后臺,再結(jié)合數(shù)據(jù)管理系統(tǒng),實現(xiàn)點名結(jié)果可以在數(shù)據(jù)庫中查詢的功能,手機端點名完成后的結(jié)果會上傳至服務(wù)器端,并且可以生成表格供教師自行導(dǎo)出,最終完成一款課堂點名系統(tǒng)。
系統(tǒng)開發(fā)環(huán)境
系統(tǒng)的開發(fā)方面,主要是基于Windows系統(tǒng)下,使用XAMPP搭建WEB服務(wù)器,采用PHP語言開發(fā)界面與服務(wù)器之間的接口,利用HTML+CSS完成前臺界面的編輯,采用MYSQL作為數(shù)據(jù)存儲系統(tǒng),使用Eclipse作為開發(fā)和調(diào)試環(huán)境。
PHP獨特的語法混合了C、Java、Perl以及PHP自創(chuàng)的語法。PHP是將程序嵌入到HTML文檔中去執(zhí)行,很好地實現(xiàn)了和前臺界面編輯的無縫連接。MYSQL是一款關(guān)系型數(shù)據(jù)庫系統(tǒng),其將數(shù)據(jù)保存在不同的表中,方便用戶查看在數(shù)據(jù)庫中存放的數(shù)據(jù)。HTML是用于描述網(wǎng)頁文檔的一種標(biāo)記語言,它通過標(biāo)記符號來標(biāo)記要顯示的網(wǎng)頁中的各個部分。CSS,定義如何顯示HTML元素,用于控制Web頁面的外觀。
系統(tǒng)設(shè)計
(1) 微信公眾平臺開發(fā)接口實現(xiàn)了用戶和服務(wù)器間的聯(lián)系。對于關(guān)注了微信公眾平臺的用戶,他們在微信公眾號內(nèi)發(fā)出一次請求,微信服務(wù)器會使用HTTP請求轉(zhuǎn)給Web服務(wù)器,響應(yīng)后將處理結(jié)果回傳給微信服務(wù)器,此時用戶便可在微信公眾號內(nèi)收到回復(fù)。這一系列過程就是用戶使用客戶端完成一次完整的會話。具體工作流程如圖3所示。
(2) 系統(tǒng)是基于微信APP設(shè)計并實現(xiàn)的,用戶通過多種方式關(guān)注公眾號后,系統(tǒng)后臺會自動獲取用戶個人信息,用戶通過注冊功能,就可以將工號(學(xué)號)與微信賬號進行一對一綁定。系統(tǒng)接受到用戶輸入的數(shù)據(jù)后,將工號(學(xué)號)和姓名存入數(shù)據(jù)庫,再次登錄時只需輸入工號(學(xué)號)即可完成登錄,此過程實現(xiàn)了精確定位用戶信息。
(3)教師發(fā)布點名后,學(xué)生在簽到界面的輸入框內(nèi)填寫教師隨機編寫的命令。該命令由教師自行決定,可以包含數(shù)字,字母,符號等。開發(fā)者編寫程序時加入正則表達式,限定命令的長度。教師可以規(guī)定簽到時間,大約在10秒左右,學(xué)生在規(guī)定時間內(nèi)完成點名,若未按時完成簽到,教師可根據(jù)情況手動修改學(xué)生到課情況,分為:遲到、請假、早退、未到等。
(4)系統(tǒng)采用MYSQL作為數(shù)據(jù)存儲系統(tǒng),在用戶登錄時,系統(tǒng)會將用戶輸入的工號(學(xué)號)和姓名的信息存入數(shù)據(jù)庫,下次登錄時只需輸入工號(學(xué)號)即可。另外,數(shù)據(jù)庫與系統(tǒng)服務(wù)器相連,課后教師可以登錄后臺,在數(shù)據(jù)庫中下載系統(tǒng)生成的Excel表格,通過表格教師可以直觀地看到學(xué)生按時到堂情況。

圖3 具體工作流程圖
在使用數(shù)據(jù)庫MYSQL時,需要在安裝文件中改變并發(fā)用戶數(shù),安裝文件中默認(rèn)為100,可手動修改數(shù)值。本系統(tǒng)在調(diào)試階段將數(shù)值更改為1000。一般情況下,對于一般高校課堂教學(xué)來說人數(shù)為200左右,設(shè)計的數(shù)值足夠應(yīng)付系統(tǒng)需求。
(5)因為該系統(tǒng)是基于微信APP開發(fā)的,所以可以直接調(diào)用騰訊自帶的騰訊地圖來實現(xiàn)學(xué)生簽到的監(jiān)督,在學(xué)生進入簽到頁面時系統(tǒng)會詢問學(xué)生是否開啟定位服務(wù)。在學(xué)生完成簽到后系統(tǒng)會顯示學(xué)生完成簽到時的位置,可以有效監(jiān)督學(xué)生作弊簽到情況。
目前,信息化校園的建設(shè)逐漸走入正軌,廣泛使用的信息化平臺有:教務(wù)管理系統(tǒng)、圖書管理系統(tǒng)、實驗室預(yù)約系統(tǒng)等,但這些系統(tǒng)都是基于各自的平臺進行開發(fā),單獨開發(fā)一個整合系統(tǒng)成本過高,實用性不強。
西安石油大學(xué)在2017-2018第二學(xué)期的“分布式數(shù)據(jù)庫”課堂中,共有30名學(xué)生及一名教師使用筆者提到的系統(tǒng)。在實踐中發(fā)現(xiàn),本系統(tǒng)借助微信公眾號實現(xiàn)各系統(tǒng)的融合方便師生的使用,其普及率高、易上手、零資費的優(yōu)點受到廣大用戶群的認(rèn)可。然而,在使用過程中發(fā)現(xiàn)了如下問題:
1. 個別學(xué)生注冊時未按真實信息填寫,與教務(wù)處提供的花名冊有出入;
2. 存在學(xué)生在教室中同時使用兩臺終端設(shè)備進行代簽到現(xiàn)象。
針對如上問題,筆者做出了相應(yīng)的改進。在用戶登錄系統(tǒng)時會輸入學(xué)號和姓名等個人信息來進行注冊登錄,系統(tǒng)會為每位用戶生成唯一標(biāo)識符openid,管理員會調(diào)用教務(wù)系統(tǒng)中學(xué)生名單,與學(xué)生注冊信息進行比對,實現(xiàn)與教務(wù)系統(tǒng)數(shù)據(jù)的統(tǒng)一。在學(xué)生完成簽到后,系統(tǒng)會生成Excel表單,此表單會和紙質(zhì)版學(xué)生花名冊統(tǒng)一格式,方便學(xué)校統(tǒng)一存檔。另外,在學(xué)生進行簽到時,要求每位學(xué)生手拿終端設(shè)備放置課桌上,使得教師可以直觀看到是否存在代簽到行為。
(責(zé)編:陶春)
(作者單位為西安石油大學(xué)計算機學(xué)院)