魏蒙蔚 王芳 梁思荷 楊煥蔚 羅佳龍
關(guān)鍵詞:微信小程序;課堂;選座;課堂選座;選座系統(tǒng)
0 引言
隨著移動(dòng)通信技術(shù)的日漸成熟和智能手機(jī)的普及,微信小程序受到大眾青睞并且廣泛運(yùn)用到眾多領(lǐng)域[1-2]。本文提出一種利用微信小程序進(jìn)行課堂選座的方案,學(xué)生通過(guò)微信小程序自主選擇課堂座位,教師可獲取學(xué)生在課堂上的座位表。教師點(diǎn)擊座位表上的位置就能看到對(duì)應(yīng)學(xué)生的名字,便于教師在授課時(shí)與學(xué)生進(jìn)行精確的互動(dòng)。教師通過(guò)課堂座位表認(rèn)識(shí)學(xué)生,學(xué)生得到關(guān)注,從心理上提升了雙方的教學(xué)體驗(yàn)。
1 系統(tǒng)需求分析
1.1 需求分析
為了更好地設(shè)計(jì)課堂選座系統(tǒng),項(xiàng)目團(tuán)隊(duì)采用訪談法收集了學(xué)生和教師的需求。教師需要導(dǎo)入課程和班級(jí)信息,生成課堂,查看學(xué)生的課堂座位表,統(tǒng)計(jì)歷史課堂入座信息。學(xué)生根據(jù)教師提供的課堂編號(hào)進(jìn)入課堂進(jìn)行選座,學(xué)生能夠查看自己的歷史課堂信息。
1.2 功能模塊劃分
通過(guò)需求分析可知,課堂選座系統(tǒng)的用戶可分為教師和學(xué)生兩種不同的角色。不同角色的用戶將在系統(tǒng)登錄模塊按照不同的要求進(jìn)行用戶綁定。教師的功能有:1) 設(shè)置課程和班級(jí)信息,2) 創(chuàng)建課堂,3) 查看實(shí)時(shí)課堂,4) 查看歷史課堂信息。學(xué)生的功能有:1) 進(jìn)入課堂,2) 選座,3) 查看個(gè)人歷史入座信息。
2 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
2.1 技術(shù)選型
微信小程序提供基于微信的表單、導(dǎo)航、地圖、媒體和位置等開(kāi)發(fā)組件,使開(kāi)發(fā)者在微信的網(wǎng)頁(yè)里構(gòu)建一個(gè)HTML5 應(yīng)用。同時(shí)還可以使用微信小程序云開(kāi)發(fā)中提供的許多云函數(shù)[3-4]。本系統(tǒng)分為以下3 個(gè)部分:
1) 客戶端??蛻舳瞬捎梦⑿判〕绦?,主要結(jié)構(gòu)為WXML+WXSS+JavaScript,其中WXML用來(lái)描述頁(yè)面結(jié)構(gòu),WXSS用來(lái)描述頁(yè)面的樣式和頁(yè)面的顯示。這兩者結(jié)合在一起實(shí)現(xiàn)頁(yè)面顯示,為用戶提供良好的體驗(yàn)效果。JavaScript 負(fù)責(zé)聲明并處理數(shù)據(jù),響應(yīng)頁(yè)面交互事件,對(duì)業(yè)務(wù)進(jìn)行邏輯處理[5]。
2) 服務(wù)器端。后端采用Spring Boot 框架,使用Redis作為緩存。為便于前后端分離的接口測(cè)試,還使用了Swagger作為接口文檔開(kāi)發(fā)工具。
3) 數(shù)據(jù)庫(kù)。為了能讓系統(tǒng)更便捷,采用了云上MySQL數(shù)據(jù)庫(kù)。
2.2 數(shù)據(jù)庫(kù)設(shè)計(jì)
根據(jù)需求分析和功能模塊,為本系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)了如下7個(gè)表,表與表之間的關(guān)系見(jiàn)圖1。
學(xué)生信息表(stu_account表),包含的屬性有:用戶登錄的微信賬號(hào)stu_wx_id ,學(xué)生姓名stu_name ,學(xué)生學(xué)號(hào)stu_id。
教師信息表(teacher_ac?count表),包含的屬性有:用戶登錄的微信賬號(hào)teacher_wx_id,教師姓名teacher_name,教師教職工號(hào)teacher_id。
學(xué)生班級(jí)表(classes) ,包含的屬性有:班級(jí)名稱class_name,課程名稱course_name,教師teacher_wx_id,行政班標(biāo)識(shí)符class_id, 學(xué)生專業(yè)stu_speciality,學(xué)生學(xué)號(hào)stu_id,學(xué)生姓名stu_name , 學(xué)生序號(hào)stu_num。
教師創(chuàng)建的課堂表(class_room_list表),包含的屬性有:課程class_id,教室密碼class_password,教師名稱class_name,課程開(kāi)啟時(shí)間start_time,課程結(jié)束時(shí)間end_time,教室標(biāo)識(shí)符class?room_id,教室尺寸classroom_size,教師的teacher_open_id,課程的行政班class_administrative,過(guò)道pas?sage1,過(guò)道passage2,過(guò)道passage3,入座時(shí)長(zhǎng)seat?ing_time。
過(guò)期的課堂表(class_room_list_expire表),結(jié)構(gòu)和class_room_list表一樣,用于歷史數(shù)據(jù)遷移。
學(xué)生課堂入座表(seating_record表),包含的屬性有:課程編號(hào)class_id,教室編號(hào)classroom_id,課程名稱class_name,學(xué)生名字stu_name,學(xué)生學(xué)號(hào)stu_id,學(xué)生座位的橫坐標(biāo)x,學(xué)生座位的縱坐標(biāo)y,學(xué)生入座時(shí)間join_time,學(xué)生表現(xiàn)分?jǐn)?shù)performance_score,學(xué)生表現(xiàn)良好次數(shù)good,學(xué)生表現(xiàn)不佳次數(shù)bad。
過(guò)期的學(xué)生課堂入座表(seating_record_expired表),結(jié)構(gòu)和seating_record 表一樣,用于歷史數(shù)據(jù)遷移。
2.3 模塊設(shè)計(jì)與實(shí)現(xiàn)
1) 用戶登錄模塊。當(dāng)用戶通過(guò)微信小程序進(jìn)入系統(tǒng)時(shí),系統(tǒng)調(diào)用云函數(shù)getOpenId()登錄,獲取用戶的openId、姓名、token、用戶類型等屬性值并將其保存在本地緩存中,以方便后續(xù)模塊的調(diào)用。如用戶是第一次登錄,則跳轉(zhuǎn)到綁定個(gè)人信息頁(yè)面,若不是則跳轉(zhuǎn)到學(xué)生主頁(yè)或教師主頁(yè)。
2) 用戶綁定信息模塊。當(dāng)用戶第一次登錄時(shí)會(huì)進(jìn)入到該模塊,用戶進(jìn)入到該模塊需要填相應(yīng)的表單信息。學(xué)生用戶填入自己的學(xué)號(hào)和姓名便可綁定;用戶教師需經(jīng)過(guò)郵箱驗(yàn)證,教師通過(guò)輸入教職工郵箱獲取驗(yàn)證碼并提交驗(yàn)證碼方可綁定。用戶綁定后跳轉(zhuǎn)到相應(yīng)的學(xué)生主頁(yè)或教師主頁(yè)。用戶綁定功能流程如圖2所示,用戶綁定頁(yè)面如圖3所示。
3) 教師導(dǎo)入班級(jí)模塊。此模塊用于教師第一次創(chuàng)建某個(gè)課程班級(jí)。教師首先填寫要?jiǎng)?chuàng)建的課程名稱和班級(jí)名稱,然后導(dǎo)入該課程班級(jí)的學(xué)生名單。在選擇文件時(shí)系統(tǒng)首先會(huì)判斷所選擇的文件是不是Ex?cel文件,如果是則把所選的文件渲染在頁(yè)面上,否則彈出選擇文件格式錯(cuò)誤的警告。在設(shè)置好課程班級(jí)并導(dǎo)入學(xué)生名單后,教師便可從已有的課程班級(jí)創(chuàng)建課堂了。選擇要?jiǎng)?chuàng)建課堂的課程班級(jí),點(diǎn)擊創(chuàng)建按鈕,系統(tǒng)會(huì)以表單的形式把數(shù)據(jù)發(fā)送給后端,同時(shí)會(huì)記錄創(chuàng)建本次課堂的教師wx_id。在成功創(chuàng)建課程班級(jí)之后會(huì)向后端再發(fā)一次請(qǐng)求,根據(jù)教師的wx_id請(qǐng)求創(chuàng)建的對(duì)應(yīng)課堂,然后存入緩存方便后續(xù)使用。教師導(dǎo)入班級(jí)后點(diǎn)擊創(chuàng)建按鈕的具體流程如圖4所示,教師導(dǎo)入班級(jí)頁(yè)面如圖5所示。
4) 教師創(chuàng)建課堂模塊。在創(chuàng)建課堂頁(yè)面可以選擇課堂的主題、課程、班級(jí)、開(kāi)始/結(jié)束時(shí)間、教室類型、教室過(guò)道位置、學(xué)生入座時(shí)間以及課堂密碼等信息,選擇好之后點(diǎn)擊創(chuàng)建。創(chuàng)建成功之后后端就把該教師創(chuàng)建的課堂信息存入數(shù)據(jù)庫(kù)。教師創(chuàng)建課堂功能流程如圖6所示,教師創(chuàng)建課堂頁(yè)面如圖7所示。
5) 學(xué)生加入課堂模塊。教師創(chuàng)建課堂并公布課堂ID和密碼后,學(xué)生便可根據(jù)教師提供的課堂ID和密碼加入課堂。若學(xué)生第一次加入課堂則會(huì)提醒學(xué)生確認(rèn)課堂信息,確認(rèn)無(wú)誤后跳轉(zhuǎn)到課堂頁(yè)面。若學(xué)生已加入該課堂則直接進(jìn)入課堂頁(yè)面。學(xué)生加入課堂及確認(rèn)課堂信息頁(yè)面如圖8所示。
6) 學(xué)生入座模塊。學(xué)生入座模塊是在學(xué)生加入課堂后進(jìn)行的。學(xué)生應(yīng)在規(guī)定的時(shí)間內(nèi)進(jìn)入課堂選座(入座),若超出規(guī)定時(shí)間將無(wú)法進(jìn)入課堂。學(xué)生根據(jù)自己所坐座位在課堂頁(yè)面選擇對(duì)應(yīng)座位,灰色表示已有其他同學(xué)入座,綠色表示可選座位,橙色表示學(xué)生已標(biāo)記自己的座位。圖9為學(xué)生入座功能流程圖,圖10為學(xué)生入座頁(yè)面。
7) 教師查看座位表模塊。教師可以在課堂頁(yè)面看到學(xué)生入座的實(shí)時(shí)情況。綠色表示已有同學(xué)入座,灰色表示空座位。教師可點(diǎn)擊綠色座位查看學(xué)生信息,被點(diǎn)擊后座位變成橙色,并彈出該學(xué)生的詳細(xì)信息,教師還可在上課過(guò)程中對(duì)學(xué)生的行為進(jìn)行標(biāo)記,如圖11。
3 結(jié)束語(yǔ)
學(xué)生課堂選座系統(tǒng)便于教師通過(guò)座位表認(rèn)識(shí)課堂上在座的學(xué)生。教師還可以根據(jù)班級(jí)、課程、課堂查看歷史選座數(shù)據(jù),可以對(duì)學(xué)生的課堂表現(xiàn)信息進(jìn)行統(tǒng)計(jì),為課程平時(shí)成績(jī)提供參考。在這款學(xué)生課堂選座系統(tǒng)的幫助下,教師更加了解學(xué)生,學(xué)生受到教師關(guān)注后更加自信,學(xué)生學(xué)習(xí)的主動(dòng)性增強(qiáng)。實(shí)踐表明,學(xué)生課堂選座系統(tǒng)能提高師生雙方的課堂積極性,使師生關(guān)系更加融洽,進(jìn)而間接地提高教學(xué)效果[6-7]。