戴麗麗 朱妤
摘要:針對(duì)傳統(tǒng)的課堂點(diǎn)名方式不僅浪費(fèi)寶貴的時(shí)間,而且加重了教師的工作量,因此,借助微信平臺(tái)為入口,基于微信小程序建立一個(gè)課堂考勤系統(tǒng)。文章采用Java語(yǔ)言編寫,用SpringBoot框架實(shí)現(xiàn),選擇MySql作為后臺(tái)數(shù)據(jù)庫(kù),前端用微信開(kāi)發(fā)工具開(kāi)發(fā),后臺(tái)使用IntelliJ idea,在降低系統(tǒng)成本的同時(shí)并未降低系統(tǒng)的穩(wěn)定性和可靠性。基于微信小程序開(kāi)發(fā)的課堂考勤系統(tǒng)可以大大節(jié)省了課堂和教師的時(shí)間成本,并且該系統(tǒng)開(kāi)發(fā)周期短,軟件升級(jí)、維護(hù)方便。實(shí)測(cè)結(jié)果表明,本系統(tǒng)運(yùn)行穩(wěn)定可靠,達(dá)到了快速組建班級(jí)、簽到、請(qǐng)假等要求。
關(guān)鍵詞:微信小程序;課堂考勤;Java語(yǔ)言;MySql數(shù)據(jù)庫(kù)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)19-0055-03
1 背景
課堂考勤是學(xué)校教學(xué)管理的重要組成部分,是智能校園系統(tǒng)的核心模塊之一。學(xué)生課堂考勤與企業(yè)單位的考勤的不同之處在于:1)出勤頻率不同。2)學(xué)校的學(xué)生數(shù)量大,班級(jí)多。3)課堂時(shí)間有不同的可能性。例如,臨時(shí)調(diào)課會(huì)使學(xué)生考勤變得更加復(fù)雜。因此,學(xué)生課堂考勤系統(tǒng)設(shè)計(jì)時(shí)應(yīng)注意:1)考勤系統(tǒng)應(yīng)該能以不同課時(shí)的上課時(shí)間為依據(jù)準(zhǔn)確的劃分考勤時(shí)間;2)實(shí)現(xiàn)自動(dòng)考勤,從而提高效率;3)考勤系統(tǒng)必須穩(wěn)定,識(shí)別精度高;4)學(xué)生群體是考勤對(duì)象,系統(tǒng)不應(yīng)只向?qū)W校員工展示考勤信息[1]。同時(shí),考勤的結(jié)果應(yīng)該反饋給學(xué)生,提高他們的自律意識(shí)。
而該系統(tǒng)就是針對(duì)考勤系統(tǒng)的特點(diǎn)設(shè)計(jì)了一款基于微信小程序的課堂考勤管理系統(tǒng),只要用戶安裝了微信客戶端,即可方便地獲取應(yīng)用程序,同時(shí)小程序又有與APP 相當(dāng)?shù)挠押玫挠脩趔w驗(yàn)。
2 微信小程序
微信小程序于2017年1月9日,由騰訊公司正式發(fā)布。它是一種全新的連接用戶與服務(wù)的方式,它可以在微信內(nèi)被便捷地獲取和傳播,同時(shí)具有出色的用戶使用體驗(yàn)[2]。微信小程序的框架采用mvc開(kāi)發(fā)思想,包括邏輯層、視圖層和基礎(chǔ)層。主要采用WXML( HTML5) 、WXSS( CSS) 和JavaScript 技術(shù)。用戶無(wú)須下載或安裝便可快捷地獲取服務(wù),功能強(qiáng)大,用戶體驗(yàn)出色,并且提供了一系列的組件和接口,開(kāi)發(fā)快速。微信小程序的開(kāi)發(fā)流程如下:
1) 登錄到微信小程序的開(kāi)發(fā)網(wǎng)站,注冊(cè)微信小程序;
2) 完善主要信息,包括程序的名稱、簡(jiǎn)介和服務(wù)范圍等;
3) 綁定微信小程序開(kāi)發(fā)者,開(kāi)發(fā)者可以使用官網(wǎng)提供的開(kāi)發(fā)工具編寫代碼和調(diào)試;
4) 微信小程序開(kāi)發(fā)結(jié)束后,向微信團(tuán)隊(duì)提交代碼,審核通過(guò)即可發(fā)布。
3 基于微信小程序的課堂管理系統(tǒng)的設(shè)計(jì)
3.1 系統(tǒng)功能
該課堂考勤管理系統(tǒng)主要包括教師和學(xué)生兩類用戶,主要功能如圖1所示。
1)教職工用戶
教師是考勤過(guò)程的主要參與者。除了系統(tǒng)的組建班級(jí)以及添加課程外,教師還可以查看每個(gè)人的到課率。課程信息管理展示了本周所要教的課程信息。學(xué)生請(qǐng)假時(shí)可以在線審核請(qǐng)假申請(qǐng),并可以利用系統(tǒng)來(lái)監(jiān)控學(xué)生的學(xué)習(xí)狀態(tài)以及根據(jù)學(xué)生到課情況統(tǒng)計(jì)平時(shí)成績(jī)。
2)學(xué)生用戶
學(xué)生是考勤簽到人員,需要在考勤系統(tǒng)上注冊(cè)個(gè)人信息以及進(jìn)行簽到,可以在考勤管理系統(tǒng)上察看自己的出勤信息和進(jìn)行請(qǐng)假的申請(qǐng)和查詢。學(xué)生的主要用例包括課程管理、查看考勤和管理請(qǐng)假[3-5]。
3.2 數(shù)據(jù)模型的設(shè)計(jì)
依據(jù)系統(tǒng)功能模塊設(shè)計(jì),得到本系統(tǒng)數(shù)據(jù)庫(kù)的實(shí)體:教師、學(xué)生、課程、班級(jí)、請(qǐng)假單等實(shí)體信息。這些實(shí)體之間又相互聯(lián)系。系統(tǒng)總體ER圖如圖2所示。
4 基于微信小程序的課堂管理系統(tǒng)的實(shí)現(xiàn)
4.1 注冊(cè)模塊
首先,該課堂管理系統(tǒng)無(wú)論是教師還是學(xué)生在首次訪問(wèn)該程序時(shí),都需要進(jìn)行注冊(cè),教師(學(xué)生)注冊(cè)時(shí)應(yīng)填寫工號(hào)(學(xué)號(hào))、姓名、密碼、確認(rèn)密碼,并且下面包含學(xué)生和教師兩個(gè)角色的選擇。值得注意的是已注冊(cè)過(guò)的工號(hào)(學(xué)號(hào))不可以再進(jìn)行注冊(cè),密碼為6-8位且不能為空。注冊(cè)界面實(shí)現(xiàn)結(jié)果如圖3所示:
4.2 教師信息管理模塊實(shí)現(xiàn)
教師信息管理模塊主要實(shí)現(xiàn)該模塊的查詢、添加、啟用、編輯功能。老師注冊(cè)并登錄進(jìn)入教師考勤系統(tǒng)界面,其中設(shè)計(jì)了幾個(gè)按鈕:“簽到”“請(qǐng)假”“我的”。在“我的”按鈕中,有如下幾項(xiàng):“個(gè)人資料” “請(qǐng)假單審批”“班級(jí)”“課程”“退出”。其中“個(gè)人資料”中有老師工號(hào)、姓名。老師還可以添加其郵箱和手機(jī)號(hào)碼,完善個(gè)人信息?!罢?qǐng)假單審批”中,老師可以看到學(xué)生請(qǐng)假信息從而進(jìn)行審批。主界面如圖4所示:
下面是創(chuàng)建班級(jí)和課程的具體實(shí)現(xiàn):
1)在“班級(jí)”選項(xiàng)中,老師可以組建授課班級(jí),以及填寫班級(jí)名和人數(shù),這樣學(xué)生注冊(cè)登錄時(shí)就可以顯示該老師的課程從而進(jìn)行簽到。創(chuàng)建班級(jí)界面如圖5所示:
相關(guān)代碼實(shí)現(xiàn)如下:
@RequestMapping(“createClass”)//映射URL
public JSONObject createClass(String id,String gradeName,String gradeNumAll){//封裝一個(gè)類
Grade grade=new Grade();
grade.setTeacherId((long) Integer.parseInt(id));
grade.setCreateTime(new Date());//設(shè)置grade的創(chuàng)建時(shí)間
grade.setGradeName(gradeName);//設(shè)置grade的班級(jí)名稱
grade.setGradeNumAll(Integer.parseInt(gradeNumAll));//設(shè)置grade的班級(jí)人數(shù)
User user=userService.find((long) Integer.parseInt(id));
grade.setTeacherName(user.getUsername());//設(shè)置grade的老師姓名
grade.setGradeNumNow(0);
gradeService.save(grade);//將grade保存在數(shù)據(jù)庫(kù)中
return JsonHandler.jsonSuccess(“”);//返回結(jié)果
}
2)在“課程”選項(xiàng)中,老師可以添加所授課程,其中包括課程名,開(kāi)始時(shí)間,結(jié)束時(shí)間,選擇星期幾和班級(jí),即可添加成功。值得注意的是開(kāi)始時(shí)間和結(jié)束時(shí)間的冒號(hào)是英文狀態(tài)下的冒號(hào),若填中文狀態(tài)的就會(huì)添加失敗[6-8]。添加課程信息如圖6所示:
添加完畢后,老師就可查看所添加的課程信息,從而方便學(xué)生簽到。查看添加課程信息如圖7所示:
老師發(fā)布完課程,學(xué)生可以進(jìn)行簽到。學(xué)生簽到完后老師查看學(xué)生簽到信息,實(shí)現(xiàn)結(jié)果如圖8所示:
4.3 學(xué)生信息管理模塊實(shí)現(xiàn)
學(xué)生信息管理模塊同樣實(shí)現(xiàn)的是該模塊的查詢、添加、啟用和編輯功能。學(xué)生注冊(cè)并登錄后進(jìn)入考勤系統(tǒng)界面。和老師相似的有“簽到”“請(qǐng)假”和“我的”三個(gè)按鈕。“請(qǐng)假”中可以向老師提交請(qǐng)假申請(qǐng)。“我的”中如下幾項(xiàng):個(gè)人資料、我的簽到、請(qǐng)假單和退出。進(jìn)入考勤系統(tǒng)界面如圖9所示:
下面是學(xué)生簽到和請(qǐng)假的具體實(shí)現(xiàn):
1)“簽到”中有顯示的需要 簽到的課程,當(dāng)學(xué)生在開(kāi)始時(shí)間準(zhǔn)時(shí)簽到就顯示簽到成功,在結(jié)束時(shí)間之后才簽到就顯示逃課,在開(kāi)始時(shí)間之后,結(jié)束時(shí)間之前簽到顯示遲到。實(shí)現(xiàn)結(jié)果如圖所示:
“我的簽到”中可以顯示學(xué)生已經(jīng)簽到的信息。包括已簽的課程、簽到日期、簽到時(shí)間和指導(dǎo)老師。其中,設(shè)置的狀態(tài)1為遲到、2為簽到、3為曠課。簽到信息如圖10所示:
2)“請(qǐng)假”選項(xiàng)為學(xué)生若有特殊情況未能按時(shí)出席,就必須請(qǐng)假,學(xué)生提交請(qǐng)假單時(shí)需要填寫請(qǐng)假時(shí)間,老師以及請(qǐng)假課程,并寫明請(qǐng)假內(nèi)容,方便老師查閱。注意的是請(qǐng)假時(shí)間必須格式為xxxx-xx-xx或xxxx-x-x,例如2018-05-01或2018-5-1,否則提交失敗[9-11]。請(qǐng)假信息如圖11所示:
相關(guān)代碼實(shí)現(xiàn)如下所示:
@RequestMapping(“saveLeave”)
public JSONObject saveLeave(Leave leave,String time) throws ParseException {
leave.setState(1);
SimpleDateFormat simpleDateFormat=new SimpleDateFormat(“yyyy-MM-dd”);//設(shè)置請(qǐng)假時(shí)間
Date date = simpleDateFormat.parse(time);
leave.setLeaveTime(date);//設(shè)置請(qǐng)假時(shí)間
leaveService.save(leave);//將leave保存在數(shù)據(jù)庫(kù)中
return JsonHandler.jsonSuccess(“”);//返回結(jié)果
}
5 系統(tǒng)測(cè)試
系統(tǒng)測(cè)試需要遵循相關(guān)的原則。需要進(jìn)行各種重復(fù)性的操作測(cè)試,需要考慮各種各樣的錯(cuò)誤情況,并盡可能多地進(jìn)行同一問(wèn)題的反復(fù)測(cè)試。下面以請(qǐng)假失誤為代表進(jìn)行測(cè)試,如表1所示為請(qǐng)假界面的測(cè)試用例:
請(qǐng)假單測(cè)試結(jié)果如圖12所示:
該文分析了請(qǐng)假測(cè)試界面,實(shí)際還進(jìn)行了登錄、注冊(cè)、老師添加課程等這些功能,都能得以實(shí)現(xiàn),與此相對(duì)應(yīng)的非空校驗(yàn)和格式校驗(yàn)也都已進(jìn)行測(cè)試。其他功能與之相類似,該文就不做詳細(xì)描述。
6 結(jié)束語(yǔ)
該文設(shè)計(jì)的是基于微信小程序的課堂考勤管理系統(tǒng),該系統(tǒng)易于維護(hù)和升級(jí),使用方便、簡(jiǎn)單。經(jīng)過(guò)測(cè)試,該系統(tǒng)可靠、穩(wěn)定,達(dá)到了課堂考勤管理的需求?,F(xiàn)如今,微信已經(jīng)是我們生活中必不可少的一部分。隨著微信小程序的日益發(fā)展,利用微信平臺(tái)實(shí)現(xiàn)學(xué)生考勤管理必將成為一種趨勢(shì)。微信平臺(tái)以其巨大的便利,在學(xué)生管理方面有著廣泛的應(yīng)用前景。
參考文獻(xiàn):
[1] 蔣夢(mèng)浩.基于指紋識(shí)別的分布式考勤系統(tǒng)研究[D].重慶:重慶大學(xué),2010.
[2] 張小龍.微信小程序入口在哪?有什么用?[J].計(jì)算機(jī)與網(wǎng)絡(luò),2017,548(4):50.
[3] 王冬波.基于B/S架構(gòu)的考勤管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].青島:中國(guó)海洋大學(xué),2011.
[4] 楊民峰.基于J2EE的學(xué)生考勤系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].北京工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報(bào),2015,14(1):45-50.
[5] 何曉昀.基于校園網(wǎng)的學(xué)生考勤系統(tǒng)的設(shè)計(jì)[J].長(zhǎng)江大學(xué)學(xué)報(bào): 自然科學(xué)版,2010,9(3):285-286.
[6] 張惠娟.基于人臉識(shí)別的考勤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢: 華中科技大學(xué),2011.
[7] 趙晉萍.基于LAMP框架的通用數(shù)據(jù)測(cè)試平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京交通大學(xué),2015.
[8] 王冬波.基于B/S架構(gòu)的考勤管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].青島:中國(guó)海洋大學(xué),2011.
[9] 江治.基于ASP.NET的學(xué)生考勤管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2012,35(5):56-58.
[10] 李勝,殷杰,郭超沛,等.基于RFID的課堂考勤系統(tǒng)的設(shè)計(jì)[J].電子制作,2015(6):23,38.
[11] 李旭,田文凱,何雷.智能感應(yīng)卡考勤管理系統(tǒng)設(shè)計(jì)[J].產(chǎn)業(yè)與科技論壇,2015(3):66,75.