劉賀濱 侯超鈞
摘 ?要: 本文針對(duì)高校師生作業(yè)的管理需求,開(kāi)發(fā)了基于Spring Boot框架與MySQL數(shù)據(jù)庫(kù)的作業(yè)管理系統(tǒng)。該系統(tǒng)有教師端、學(xué)生端和管理員端,教師端提供課程建立,作業(yè)發(fā)布與網(wǎng)上批改、作業(yè)打包下載等功能,學(xué)生端提供作業(yè)查看,作業(yè)附件下載,作業(yè)上傳和作業(yè)分?jǐn)?shù)查看等功能,管理員端提供用戶(hù)管理和課程管理等功能。系統(tǒng)前端基于Bootstrap框架并結(jié)合JavaScript和jQuery進(jìn)行開(kāi)發(fā),系統(tǒng)后端采用Spring Boot架構(gòu)整合開(kāi)發(fā),使用結(jié)果表明能有效提高作業(yè)管理效率,可為其他高校的作業(yè)管理系統(tǒng)的設(shè)計(jì)提供有益的參考。
關(guān)鍵詞:?Spring Boot;MySQL;作業(yè)管理系統(tǒng)
中圖分類(lèi)號(hào): TP311.52????文獻(xiàn)標(biāo)識(shí)碼:?A????DOI:10.3969/j.issn.1003-6970.2019.09.012
本文著錄格式:劉賀濱,侯超鈞.?基于Java EE在線作業(yè)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 軟件,2019,40(9):55-58
Design and Implementation of Online Assignment Management System Based on Java EE
LIU He-bin, HOU Chao-jun*
(College of Computational Science, Zhongkai University of Agriculture and Engineering, Guangzhou 510225,?China)
【Abstract】: This paper is aim to fulfill the demand from the homework management in university. The assignment management system based on Spring Boot framework and MySQL database is developed. The system is composed of teacher platform, student platform, and administrator platform. In particular, the teacher platform provides functional such as publishing a course, publishing an assignment, packaging a download assignment, and scoring assignments. The student platform provides functional such as applying for a course, downloading a job attachment, uploading an assignment, and viewing an assignment score. The administrator platform provides functional such as adding, deleting users, and deleting courses. The front-end client is developed via the Bootstrap framework together with JavaScript and jQuery. The back-end is implemented with Spring Boot architecture. The system presented an effectively improvement of the efficiency of assignment management, and provided useful reference for the other universities.
【Key words】: Spring boot; MySQL; Assignment management system
在學(xué)校日常教學(xué)活動(dòng)中,管理學(xué)生作業(yè)是必不可少的一個(gè)環(huán)節(jié)。在現(xiàn)有教育技術(shù)模式下,使用網(wǎng)絡(luò)提交電子版作業(yè)已經(jīng)相當(dāng)普及,學(xué)生不再需要把紙質(zhì)的作業(yè)遞交給老師批改[1]。不少高校都開(kāi)始使用課程中心或作業(yè)管理系統(tǒng)來(lái)提供學(xué)生作業(yè)管理[2-3],如我校由上海卓越睿星數(shù)碼科技有限公司開(kāi)發(fā)的課程中心,但普遍存在一些問(wèn)題,如只提供了簡(jiǎn)單的作業(yè)發(fā)布與上傳功能,沒(méi)有給予老師完善的網(wǎng)上作業(yè)批改功能,其中批改反饋不靈活、成績(jī)錄入和統(tǒng)計(jì)不方便、較少提供作業(yè)批量下載功能、學(xué)生在線答疑交流等方面不完善,沒(méi)有充分考慮教師對(duì)電子作業(yè)批改和反饋等實(shí)際需求[4]。
本文開(kāi)發(fā)一個(gè)作業(yè)管理系統(tǒng),系統(tǒng)分為教師端,學(xué)生端和管理員端,實(shí)現(xiàn)了課程管理,學(xué)生管理,作業(yè)管理,自定義考試和課程討論等功能。軟件界面靈活,操作簡(jiǎn)單。系統(tǒng)采用Java EE技術(shù)和MySQL數(shù)據(jù)庫(kù),運(yùn)用Spring Boot + MyBaits進(jìn)行項(xiàng)目開(kāi)發(fā),其中,前端采用Bootstrap框架實(shí)現(xiàn)Web頁(yè)面設(shè)計(jì),運(yùn)用jQuery框架庫(kù)來(lái)簡(jiǎn)化JavaScript編碼設(shè)計(jì),提高編程效率,采用Ajax用于實(shí)時(shí)異步交互數(shù)據(jù),提高了用戶(hù)的操作友好。
1.1系統(tǒng)框架設(shè)計(jì)
本系統(tǒng)架構(gòu)分為視圖UI層,控制器層(Controller層)、業(yè)務(wù)層、數(shù)據(jù)持久層以及邏輯組件層。學(xué)生提交作業(yè)時(shí),在瀏覽器發(fā)起一個(gè)業(yè)務(wù)請(qǐng)求,經(jīng)過(guò)Controller層對(duì)請(qǐng)求進(jìn)行處理,將作業(yè)的URL保存至MySQL中。教師下載作業(yè)時(shí),在瀏覽器發(fā)起一個(gè)業(yè)務(wù)請(qǐng)求,Controller層讀取該作業(yè)對(duì)應(yīng)學(xué)生提交作業(yè)的URL并打包下載對(duì)應(yīng)的文件。系統(tǒng)相應(yīng)流程圖如圖1所示。
1.2技術(shù)實(shí)現(xiàn)
系統(tǒng)后臺(tái)采用Java EE技術(shù),Spring Boot框架和MyBatis整合實(shí)現(xiàn),前端采用Bootstrap框架與HTML5+CSS3+jQuery技術(shù)實(shí)現(xiàn)Web頁(yè)面設(shè)計(jì),以IntelliJ IDEA為后臺(tái)開(kāi)發(fā)工具,?MySQL為后臺(tái)數(shù)據(jù)庫(kù),使用Ajax進(jìn)行實(shí)時(shí)數(shù)據(jù)異步更新。
(1)Spring Boot框架
Spring框架被稱(chēng)為“配置煉獄”,開(kāi)發(fā)者會(huì)花費(fèi)大量時(shí)間去理解和編寫(xiě)各種配置文件。為此,Spring Boot采用“約定優(yōu)先配置”的思想,把Spring框架中許多原本由開(kāi)發(fā)者編寫(xiě)的配置文件自動(dòng)生成默認(rèn)配置文件[5]。開(kāi)發(fā)者在Spring Boot規(guī)定的默認(rèn)配置下開(kāi)發(fā),可專(zhuān)心開(kāi)發(fā)業(yè)務(wù)邏輯,使開(kāi)發(fā)效率更高[6]。
(2)MyBatis框架
MyBatis是一款優(yōu)秀的持久層框架,支持定制化SQL、存儲(chǔ)過(guò)程以及高級(jí)映射,避免了JDBC代碼和手動(dòng)設(shè)置參數(shù)以及獲取結(jié)果集[7],可使用XML或者注解用于配置和原始映射,通過(guò)其內(nèi)部方法將一個(gè)Java接口和普通Java對(duì)象映射成數(shù)據(jù)庫(kù)中的一個(gè)記錄,大大提升了軟件開(kāi)發(fā)效率。
(3)Thymeleaf
Thymeleaf是一個(gè)基于XML/XHTML/HTML5模板引擎,能極大地便利前端與后端程序員之間工作交接。前端程序員在瀏覽器查看HTML,則是有瀏覽器解析的結(jié)果;后端程序員在服務(wù)器端訪問(wèn)頁(yè)面,Thymeleaf標(biāo)簽會(huì)更換其中的靜態(tài)數(shù)據(jù),展示帶著數(shù)據(jù)的動(dòng)態(tài)頁(yè)面。此外,Spring Boot對(duì)Thymeleaf也有非常好的集成,只需簡(jiǎn)單配置相應(yīng)的包,則可進(jìn)行頁(yè)面開(kāi)發(fā)。
(4)MySQL
MySQL是Web應(yīng)用開(kāi)發(fā)中常用的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)[8]。MySQL使用了標(biāo)準(zhǔn)SQL語(yǔ)言形式,支持混合多種編程語(yǔ)言,同時(shí)支持大型數(shù)據(jù)庫(kù),可存儲(chǔ)超過(guò)上萬(wàn)條記錄的數(shù)據(jù)倉(cāng)庫(kù)。
(5)Bootstrap
Bootstrap框架是一組用于網(wǎng)站和網(wǎng)絡(luò)應(yīng)用程序開(kāi)發(fā)的HTML、CSS和JavaScript框架,提供了相當(dāng)豐富的組件,可以快速地開(kāi)發(fā)網(wǎng)站的前端界面,通過(guò)柵格系統(tǒng)與table表格等組件,可以讓界面的布局設(shè)計(jì)更加簡(jiǎn)便[9]。
(6)數(shù)據(jù)庫(kù)設(shè)計(jì)
本文采用ER圖來(lái)涉及系統(tǒng)數(shù)據(jù)庫(kù),通過(guò)ER圖表示實(shí)體類(lèi)型、屬性和聯(lián)系,用以描述作業(yè)管理系統(tǒng)的概念模型[10-11]。圖2是對(duì)系統(tǒng)設(shè)計(jì)的E-R圖,對(duì)應(yīng)有10個(gè)實(shí)體,分別是管理員、學(xué)生、教師、課程、學(xué)生選課表、學(xué)生考試成績(jī)表、學(xué)生作業(yè)成績(jī)表、教師任課表、試卷、作業(yè)等實(shí)體。
系統(tǒng)分教師端、學(xué)生端和管理員端。教師端提供學(xué)生管理、作業(yè)管理和考試管理等功能,學(xué)生端提供學(xué)生完成作業(yè)和參加考試等功能,教師和學(xué)生可以通過(guò)本系統(tǒng)可以進(jìn)行在線互相交流,學(xué)生能通過(guò)與老師和同學(xué)之間的交流及時(shí)解決在學(xué)習(xí)過(guò)程中遇到的問(wèn)題,有效提高教學(xué)效果。
2.1教師端
教師端有如下七大功能,教師端用例圖如圖3所示。
(1)課程定義功能
教師可以建立多門(mén)授課課程,每門(mén)課程需要定義相應(yīng)課程代碼、課程名稱(chēng)、課程性質(zhì)、課程簡(jiǎn)介、課程學(xué)時(shí)和課程學(xué)分等基本信息。
(2)學(xué)生管理功能
課程新建后,教師可根據(jù)課程性質(zhì)進(jìn)行學(xué)生選課管理。如果課程是必修課,老師需要設(shè)定其授課的專(zhuān)業(yè)班級(jí),將該專(zhuān)業(yè)的班級(jí)學(xué)生統(tǒng)一歸入該課程;如果課程是選修課,老師可以通過(guò)手動(dòng)信息錄入與Excel批量導(dǎo)入兩種方式設(shè)置授課學(xué)生。對(duì)于批量導(dǎo)入,系統(tǒng)提供Excel導(dǎo)入模板,教師根據(jù)要求在Excel文件中準(zhǔn)備好學(xué)生名單信息即可。
(3)作業(yè)發(fā)布功能
教師可以在課程中發(fā)布作業(yè),可以輸入作業(yè)要求,并附加該作業(yè)所需的圖片資源與文件材料等,并設(shè)置參與作業(yè)的學(xué)生班級(jí)。教師可以設(shè)定作業(yè)發(fā)布時(shí)間與結(jié)束提交時(shí)間,可以對(duì)過(guò)期提交的作業(yè)進(jìn)行設(shè)置,如,是否允許學(xué)生補(bǔ)交,補(bǔ)交作業(yè)可以設(shè)置扣減分?jǐn)?shù)等。參與該課程的學(xué)生都會(huì)收到作業(yè)通知。對(duì)于超過(guò)期限且不容許遲交的作業(yè),學(xué)生將無(wú)法提交,需要老師重新設(shè)置該學(xué)生的提交。
(4)作業(yè)下載功能
以課程的其中一次作業(yè)為單位,提供收集參與該課程的學(xué)生作業(yè)的功能,對(duì)逾期未提交作業(yè)的學(xué)生統(tǒng)一發(fā)出通知。教師可以查看每次作業(yè)的收集情況,可以修改學(xué)生提交作業(yè)的時(shí)間,對(duì)某次作業(yè),可以對(duì)指定學(xué)生提交的作業(yè)進(jìn)行統(tǒng)一打包下載。
(5)作業(yè)批改功能
老師對(duì)作業(yè)進(jìn)行批閱之后,可以給作業(yè)打分,并能反饋意見(jiàn)給該同學(xué),對(duì)達(dá)不到要求作業(yè)可以退回學(xué)生。還提供老師自定義批改評(píng)語(yǔ),方便教師作業(yè)批改。同時(shí),老師可以發(fā)布優(yōu)秀作業(yè),供學(xué)生參考借鑒。
(6)試卷發(fā)布功能
每個(gè)課程均可發(fā)布單元考試,考試類(lèi)型均為選擇題形式,教師可以選擇不同的章節(jié)與知識(shí)點(diǎn)來(lái)組卷,并設(shè)置選擇題的組題個(gè)數(shù),定義考試時(shí)間、截至?xí)r間等信息。教師可以在網(wǎng)頁(yè)界面錄入題庫(kù),也可以使用Excel模板導(dǎo)入,導(dǎo)入的試題可以設(shè)置其所屬的章節(jié)與知識(shí)點(diǎn)。
2.2學(xué)生端
學(xué)生端有如下五個(gè)功能,學(xué)生端用例圖如圖4所示。
(1)作業(yè)通知功能
提示學(xué)生查看未完成作業(yè),讓學(xué)生能準(zhǔn)時(shí)完成作業(yè)。學(xué)生提交完作業(yè)后,學(xué)生可以查看教師批改的作業(yè)分?jǐn)?shù)與批改評(píng)語(yǔ),如果作業(yè)被教師退回,可以重新提交作業(yè)。學(xué)生可以在網(wǎng)站上查看老師選出的優(yōu)秀作業(yè),通過(guò)學(xué)習(xí)優(yōu)秀作業(yè),促進(jìn)學(xué)生之間互相學(xué)習(xí)與交流。
(2)作業(yè)提交功能
提供了附件上傳的方式,學(xué)生可以添加圖片和附件,作業(yè)發(fā)布時(shí)設(shè)定了提交期限,超過(guò)提交期限且不允許遲交的作業(yè),學(xué)生將無(wú)法提交。對(duì)于設(shè)置了允許遲交的作業(yè),學(xué)生提交后,系統(tǒng)會(huì)做出相應(yīng)記錄,并設(shè)置相應(yīng)的扣分項(xiàng)。
(3)考試參與功能
學(xué)生需要參加課程發(fā)布的考試,要在規(guī)定時(shí)間內(nèi)完成。超出試卷的截止時(shí)間,學(xué)生該次考試的分?jǐn)?shù)為0分,考試試題都是選擇題,考試提交后能直接顯示分?jǐn)?shù)。考試成績(jī)由系統(tǒng)自動(dòng)打分,學(xué)生提交考試答案后,可查看到考試分?jǐn)?shù)。
(4)交流功能
學(xué)生之間、學(xué)生和教師之間均可通過(guò)交流區(qū)進(jìn)行交流,主要通過(guò)發(fā)帖的方式進(jìn)行,其他人都可以對(duì)帖子進(jìn)行回復(fù)或增加評(píng)論。
2.3管理員端
管理員端具有管理權(quán)限和檢索功能,管理員端用例圖如圖5所示。
(1)用戶(hù)管理功能
管理員一般為學(xué)校的教務(wù)員,具有對(duì)用戶(hù)和課
程管理的權(quán)限,能夠?qū)τ脩?hù)進(jìn)行管理,如管理教師與學(xué)生的個(gè)人信息,可以批量導(dǎo)入學(xué)生賬號(hào)。
(2)課程管理功能
管理員可以通過(guò)教師、班級(jí)或課程來(lái)搜索學(xué)生信息,可查看同一個(gè)班級(jí)的學(xué)生,可查看選修了某一個(gè)課程的所有學(xué)生??梢詫?duì)課程相關(guān)信息進(jìn)行設(shè)置與修改。
2.4系統(tǒng)界面
圖6是教師端作業(yè)管理的界面。左邊是系統(tǒng)的導(dǎo)航欄,里面是系統(tǒng)功能的導(dǎo)航。在教師作業(yè)管理界面,教師可以查看自己發(fā)布的所有作業(yè)。在作業(yè)信息顯示部分,“操作”欄有“下載作業(yè)”按鈕,點(diǎn)擊后邊“下載作業(yè)”按鈕,系統(tǒng)會(huì)下載打包成壓縮包的形式的學(xué)生提交的所有作業(yè)。
教師把學(xué)生提交的作業(yè)批閱之后,可以在作業(yè)打分界面給作業(yè)打分,作業(yè)打分界面如圖7所示。在作業(yè)打分界面,可以看到學(xué)生提交的作業(yè)。教師在最后一欄點(diǎn)擊“評(píng)分”按鈕,系統(tǒng)回彈出分?jǐn)?shù)輸入框,輸入相應(yīng)分?jǐn)?shù),便可為該作業(yè)打分,再次點(diǎn)擊該按鈕可修改分?jǐn)?shù),打分結(jié)果實(shí)時(shí)更新在該界面。
圖8是學(xué)生端作業(yè)查看的界面。左邊是系統(tǒng)的導(dǎo)航欄,里面是各種功能的導(dǎo)航。在學(xué)生作業(yè)管理界面,學(xué)生能夠下載老師上傳的附件,當(dāng)作業(yè)完成時(shí),學(xué)生能將作業(yè)上傳。在作業(yè)上傳管理界面,“操作”欄中有兩個(gè)按鈕,分別為“下載附件”和“上傳作業(yè)”。點(diǎn)擊前一個(gè)按鈕即可下載附件,點(diǎn)擊后一個(gè)按鈕選中作業(yè)即可上傳。
作業(yè)管理系統(tǒng)是根據(jù)我校教師和學(xué)生的作業(yè)管理需求,以及現(xiàn)有作業(yè)管理系統(tǒng)的一些問(wèn)題,從易用性和高效性的角度去設(shè)計(jì)和開(kāi)發(fā)。系統(tǒng)的主要目的是方便教師發(fā)布作業(yè),下載作業(yè)和作業(yè)打分,同時(shí)方便學(xué)生查看作業(yè),提交作業(yè)和查看作業(yè)分?jǐn)?shù)。本系統(tǒng)在開(kāi)發(fā)中,使用了目前流行的Spring Boot、MyBatis和BootStrap等開(kāi)源框架,提供給仲愷的教師和學(xué)生一個(gè)方便快捷的作業(yè)管理平臺(tái),同時(shí)本系
統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)也作為其他高校學(xué)生作業(yè)管理系統(tǒng)的改進(jìn)提供一個(gè)有益參考。
參考文獻(xiàn)