


摘要:在調研國內用戶對移動學習需求的基礎上,利用Moodle系統在課程管理和教學管理中豐富完善的功能,綜合考慮國內用戶的實際使用需求與現有技術,設計了基于微信公眾平臺的微課堂系統。通過使用微信公眾平臺的開放接口和WEB開發技術,應用MVC框架和B/S架構進行系統實現,與Moodle系統進行了對接,良好的擴展了Moodle系統PC端的功能,滿足了用戶通過微信在移動端對Moodle系統的便利化使用的需求。
關鍵詞:微課堂系統;Moodle微信端;微信公眾平臺;Moodle與微信整合;
中圖分類號:TP311.5 文獻標識碼:B DOI:10.3969/j.issn.1003-6970.2017.08.018
本文著錄格式:高曼如.基于微信公眾平臺和Moodle的微課堂系統的設計與實現[J].軟件,2017,38(8):88-92
引言
近年來,隨著高性能智能手機和平板電腦等移動終端設備的迅速普及,人們可以隨時隨地進行社交化的移動學習。
Moodle是一個開源課程管理系統(CMS),以免費、開源、基礎功能完善的特點,在全球的e-learning系統市場中具有較高的占有率。Moodle可以實現在各種學習情境中創建在線學習,包含測試、論壇、作業、聊天等模塊,并具有大量功能豐富的第三方插件。PC端瀏覽器一直是Moodle的
各功能使用的最佳體驗端,Moodle2.2版本開始,對移動設備訪問的支持進行了提升,可以根據訪問終端的不同呈現出不同的界面布局,后續推出了APP應用,但由于IOS的APP更新限制,以及國內用戶與西方用戶的使用習慣不同,在移動端的使用仍然不便利,使得Moodle在國內用戶的移動端中一直無法得到很好的應用。
微信是騰訊公司在2011年1月推出的在手機、平板、PC等設備端使用的即時通訊軟件,目前在國內的同類軟件中市場占有率最大。微信已不單單只是一個充滿創新功能的手機應用,它已成為中國電子革命的代表,覆蓋90%以上的智能手機,并成為人們生活中不可或缺的日常使用工具。微信公眾平臺是建立在微信基礎上的一種全新的自媒體和服務平臺,利用微信提供的功能可以實現信息的推送及與用戶多種形式的交互功能,實現微信與其他應用的對接。
微信在人們生活中使用的便利性早已深入人心,微信公眾號的數量已超過百萬級,同時微信公眾平臺的各類功能接口越發完善和創新,服務領域也在不斷拓展,因此,基于Moodle系統,整合微信公眾平臺,充分利用兩者的優勢,研究和開發出服務于移動學習領域的一體化系統,具有很高的價值。
1 系統支撐平臺
Moodle系統作為全球市場占有率最大的E-LEARNING系統,它在PC瀏覽器端的功能是非常全面強大的,不僅擁有完善的基礎功能,還擁有大量行業內領先的教學相關插件,如,在線考試插件、論文查重插件、流媒體應用插件等等,在行業里都被廣泛應用。
微信公眾平臺為開發者提供了第三方開發接口,基于此平臺,企業和個人均可根據自身功能需求制定適合自身的公眾號,可開發出媒體傳播、電子商務或企業信息化管理等多種類型的第三方應用,進而實現以文字、圖片、語音、視頻、圖文消息對其特定群體的管理,并可與其進行有效的互動與溝通。
基于微信公眾平臺和Moodle系統研發的課程學習平臺的優勢:
(1)易用性強。微信近幾年已成為了我們中國人最為熟悉的應用,在微信公眾平臺中呈現Moodle系統中的各類教學資源與交互式的教學活動,對學習者來說,是非常的習慣與便利的。又由于我們中國人幾乎每天,甚至時時刻刻都開啟著微信,將Moodle系統中各類消息提醒通過微信公眾平臺進行信息推送提醒,它們能夠及時的提醒到用戶。
(2)跨平臺性。目前微信支持iOS、Android、Windows Phone、Symbian、Black Berry等智能手機操作系統,這幾乎囊括了全球用戶所使用的各種移動終端設備,因此,通過微信內置瀏覽器來使用微課平臺,能夠保障學習內容在不同移動終端上呈現出基本相同的結果和操作方式,這為用戶帶來方便,也節省了為不同操作系統開發單獨軟件的大量成本和時間。
(3)優秀的可擴展性。基于微信公眾平臺的應用,其核心使用的是微信內置瀏覽器,并結合微信公眾平臺第三方接口提供的豐富的用戶交互功能,所開發的B/S結構的系統,因此可以充分利用移動Web技術對平臺的功能進行擴展,實現更加強大的功目巨。
(4)對現有資源的充分利用。鑒于Moodle作為一款開源的移動學習平臺己經在各種領域得到了廣泛的利用,在Moodle的基礎上己經有了很多高質量的教學資源。因此在開發移動學習平臺的過程中,必須對現有資源進行有效的利用,避免重復勞動。
(5)便于運維、更新升級。對于手機APP應用來說,一旦系統功能需求變動,用戶就必須要進行下載更新升級,雖然目前用戶可以在進入APP時就能夠自動進行更新,但仍然需要一定的等待時間,特別是對于用戶量較大的IOS系統,APP的每一次更新,都需要開發者先提交更新代碼到蘋果公司官網進行審核,這都需要一定的周期,運維成本較大。而基于微信公眾平臺的應用,采用的是B/S結構,只需要對自己的服務器端進行更新,很大限度的節省了運維管理上的成本。
2 系統總體設計
2.1 系統整體框架
如圖1所示,本系統由微信客戶端、微信公眾平臺、系統WEB服務端、Moodle系統服務端、Moodle數據庫五部分構成。微信客戶端作為用戶使用本系統的統一入口,以微信內置瀏覽器對系統進行訪問使用,同時向公眾平臺發送和接收各類超媒體信息(文字、圖片、音頻、視頻);系統WEB服務器主要功能有,展示和操作Moodle的資源、活動和信息,調用和接收微信公眾平臺的接口,完成相應的功能,調用和接收Moodle服務端的Mobile接口,對Moodle數據庫做相應的操作。
2.2 系統體系結構
系統采用B/S三層架構,服務器采用LAMP(Lmux+Apache+My SQL+PHP)環境,三層架構如圖2所示。
表示層:通過采用Bootstrap+jquery+Html+JS等
相關技術,為用戶提供友好便利的交互式操作界面。
業務邏輯層:主要在服務器端使用PHP語言完成業務邏輯的處理,部分在微信內置瀏覽器端使用JavaScript技術進行處理。響應表示層的業務操作請求,調用數據訪問層的構件來操作相關數據,對返回的結果數據通過表示層展現。
數據訪問層:本系統采用MySQL數據庫來實現數據的存取。
2.3 系統功能
根據用戶需求、Moodle系統的業務操作邏輯和微信公眾平臺提供的開發接口,本系統可分為四大功能模塊,如圖3所示:用戶帳戶模塊、課程與資源活動處理模塊、消息處理模塊、學生考勤模塊。
用戶帳戶模塊包含微信授權登錄(即綁定登錄)、解綁、退出,個人信息的獲取、修改等功能;課程與資源活動處理模塊主要對Moodle系統中的各類教學資源和活動按移動端的界面進行展示,并接收處理用戶的相應操作;消息處理模塊主要利用微信公眾平臺的消息管理類別中的接口,通過微信端向用戶推送消息,和接收用戶在微信端的超媒體消息;學生考勤模塊主要用于在微信端實現對學生上課的自動考勤,包含通過微信公眾平臺的GPS定位考勤和掃碼考勤,以及直接通過本系統實現的密碼考勤。
3 關鍵模塊實現
3.1 課程與資源活動處理模塊
Moodle系統將教學中的各種電子材料按照文件、音頻、視頻、URL、網頁、SCORM課件等資源進行分類或在課程首頁混合展示,同時提供了測驗、作業、討論區、互動評價、問卷、投票等豐富的活動。課程與資源活動處理模塊按照移動端的用戶操作習慣,對各類資源、活動進行展示,包含①課程列表界面;②進入課程后的首頁界面;③課程資源、活動的分類界面;④進入活動后的各操作界面。以作業活動為例,教師可先在PC端建立作業活動,系統向學生微信端發送相關提醒,學生則可通過PC端或微信端瀏覽,然后提交自己的作業,則教師在PC端Moodle系統中查看列表和進行批改,相應的批改結果提醒將推送到學生微信端,該過程的時序圖如圖4所示:
3.2 消息處理模塊
消息處理模塊主要利用微信公眾平臺的消息管理類別中的接口,通過微信端向用戶推送消息,以及接收用戶在微信端的超媒體消息。當Moodle系統接收到相應的消息推送業務時,向消息處理構件服務器提交相應數據,消息處理構件服務器儲存并調用微信公眾平臺相應的消息推送接口,并記錄調用結果,然后微信公眾平臺會向用戶微信端推送提醒,這是本系統向用戶推送提醒的過程;而接收用戶信息的過程是,當用戶向微信公眾平臺發送超媒體消息時,微信公眾平臺會主動向消息處理構件提交用戶的信息,消息處理構件再根據這些信息去調用Moodle系統相應接口完成業務處理,其時序圖如圖5所示:
3.3 考勤模塊
考勤模塊用于師生在課堂教學時,通過手機等移動端設備快速的完成考勤。該模塊包含GPS定位考勤、掃碼考勤、限時密碼考勤功能塊。以GPS定位考勤為例,教師通過微信進入微課堂系統,新建學生考勤,微課堂系統則通過消息處理模塊調用微信公眾平臺的消息推送接口,向學生微信端發送考勤提醒,學生通過消息鏈接或直接登錄系統進入考勤界面,考勤界面通過調用微信公眾平臺的GPS定位接口,進行位置的對比判斷完成考勤,教師最后查看整體的考勤情況,時序圖如圖6所示。
4 關鍵技術實現
4.1 微信接口的調用憑據獲取
公眾號的全局唯一接口調用憑據的變量名為access_token,每次的接口調用都需要使用access_token,應用系統需要預留512個字符空間進行妥善保存。access_token的有效期目前為2個小時,需要定時的刷新,新獲取的將導致上一次獲取的access_token失效。
本系統通過curl擴展調用HTTPS的GET請求,來獲取access_token,核心代碼如下:
$url=
https://api.weixin.qq.com/cgi-bin/token7grant—type=client_credential&appid;=APPID&secret;=APPSECRET?f;$ch=curl_init();
curl_setopt($ch,CURLOPTURL,$url);
curl_setopt($ch,CURLOPT—RETURNTTRANSFER^1);curl_setopt($ch?CURLOPTHEADER,0);
$res=curl_exec($ch);curl_close($ch);
代碼中用到的兩個參數APPLD、APPSECRET,
在“微信公眾平臺--開發--基本配置”頁中獲取,同時,需要提前將服務器IP地址添加到IP白名單中。
調用獲取access_token成功時,微信公眾平臺
服務器會返回下述JSON包:
{ffaccesstoken":ffACCESSTOKENn;fexpiresinM:7200}
access_token為獲取到的憑證,expires_in為憑證有效時間(單位:秒);獲取失敗時則有相應的錯誤代碼和錯誤信息。
本系統按照微信公眾號的開發要求與建議,采用中控服務器統一獲取和刷新access_token,來避免各自的調用刷新,同時考慮到極少數由于網絡穩定性問題而無法獲取到access_token的情況,加入了多次嘗試獲取與故障提醒,整體的代碼邏輯實現流程如圖7所示。
4.2 GPS定位考勤的實現
該功能需要通過微信公眾平臺的JS-SDK來實現,微信JS-SDK是微信公眾平臺面向WEB開發提供的基于微信的開發工具包。使用JS-SDK,需要按以下步驟進行:1.綁定域名2.引入JS文件3.通過config接口注入權限驗證配置。成功通過后,即可開始使用JS-SDK相應的功能。
獲取地理位置與位置提交的前端代碼如下:
wx.getLocation({type:wgs84,//默認為wgs84的gps坐標,如果要返
回直接給openLocation用的火星坐標,可傳入gcj02success:function(res){
varlatitude=res.latitude;//諱度,浮點數,范圍為90?-90
varlongitude=res.longitude;//經度,浮點數,
范圍為180?-180。
varspeed=res.speed;//速度,以米/每秒計
varaccuracy=res.accuracy;//位置精度$.ajax({
method:POSTurl:/index.php/locat/handle,data:{latitude:latitude,longitude:longitude,speed:speed?accuracy:accuracy}
});
}
});
代碼中的success函數中,加入JQUERYAJAX,
以提交前端獲取到的坐標數據到服務器。服務器端接收位置數據,并與相應教師開啟的GPS考勤的位置數據進行經緯度的對比驗證,從而完成考勤驗證。
5 結語
本系統是基于微信公眾平臺和Moodle系統設計實現的移動端微課堂系統,利用Moodle系統在課程管理和教學管理中豐富完善的功能和微信公眾平臺強大的開放接口,為用戶在進行移動學習時提供了便利化的方式。同時系統實現了基于微信公眾平臺的消息推送收取和定位考勤等功能,擴展了Moodle系統的功能,使得師生用戶能夠及時的接收相關的提醒、快捷的參與教學活動,極大地提升了師生對學習系統的使用效果。該系統在某高校實施后,運行良好,完成了項目初期的需求,未來以期加入對師生教與學的大數據分析預測、課程評價、人工智能教學等模塊功能,進一步挖掘移動端師生行為數據的價值。