魏蒙蔚 王芳 梁思荷 楊煥蔚 羅佳龍





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