楊友法 郭城 汪浩源 許孝整 黃銀河 彭凱 章力成 林學(xué)志
關(guān)鍵詞:SpringBoot;Vue;學(xué)科競賽系統(tǒng)
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2023)10-0054-05
0 引言
學(xué)科競賽不僅是提高大學(xué)生綜合能力和專業(yè)技術(shù)的重要手段和方式,同時(shí)更能彌補(bǔ)傳統(tǒng)日常教學(xué)中的許多缺點(diǎn)和不足。比如在日常的教學(xué)中通過教師長時(shí)間的課堂授課,容易影響大學(xué)生對學(xué)科知識的探索欲望。但通過競賽這種新穎的第二課堂方式更能吸引學(xué)生的學(xué)習(xí)興趣。近幾年來,隨著各高校開始推動學(xué)科競賽的發(fā)展,學(xué)生報(bào)名人數(shù)越來越多,像這樣線下的方式使得組織和管理變得尤為繁重,這就間接要求組織者在組織管理方面能夠有一套解決這些不足的管理方案,所以,研發(fā)一個(gè)學(xué)科競賽管理系統(tǒng)就變得尤為重要。本文提出了以MySQL為數(shù)據(jù)存儲,Vue 和SpringBoot 為技術(shù)支撐設(shè)計(jì)并實(shí)現(xiàn)具有一體化、信息化的學(xué)科競賽管理系統(tǒng),管理者只需要通過線上對學(xué)科競賽進(jìn)行宣傳,對學(xué)生的報(bào)名進(jìn)行審核,對比賽結(jié)果進(jìn)行通告,對競賽資金報(bào)銷進(jìn)行核查,就可以很好地彌補(bǔ)傳統(tǒng)競賽方式中的缺點(diǎn)和不足,減輕工作人員的工作量,提高競賽數(shù)據(jù)的準(zhǔn)確性,推動國家人才教育機(jī)制的進(jìn)一步改革,更能提高學(xué)生報(bào)名的積極性。讓學(xué)科競賽變得更加規(guī)范、更加信息化。
1 系統(tǒng)總體設(shè)計(jì)
參照學(xué)科競賽管理系統(tǒng)軟件的研發(fā)目標(biāo)、項(xiàng)目可行性以及學(xué)科競賽的具體運(yùn)行流程,從中能夠分析出學(xué)科競賽管理系統(tǒng)的需求很是多樣化。根據(jù)需求文檔,競賽管理系統(tǒng)軟件總體可分為以下幾大模塊,五個(gè)主要的競賽系統(tǒng)模塊功能圖如圖1所示。
1.1 管理員及學(xué)生用戶模塊
自定義模塊能否設(shè)計(jì)得合理、科學(xué),從某種角度來看會阻礙整個(gè)管理系統(tǒng)的免費(fèi)推廣和更好的用戶體驗(yàn)。超級管理員有權(quán)對注冊后正在系統(tǒng)中的學(xué)生的相關(guān)信息進(jìn)行管理,這里的相關(guān)信息涵蓋了學(xué)生個(gè)人的基礎(chǔ)信息,學(xué)生的比賽信息以及學(xué)生所涵蓋的指導(dǎo)老師基礎(chǔ)信息等。完善的數(shù)據(jù)管理能夠?yàn)閿?shù)據(jù)的統(tǒng)計(jì)分析結(jié)果給予更有力的內(nèi)容支撐[1]。
高校學(xué)生在瀏覽器搜索該系統(tǒng)注冊后,能夠使用該學(xué)生在學(xué)校的賬號密碼登錄該系統(tǒng)。管理人員如忘記密碼,可參考管理系統(tǒng)登錄界面忘記密碼提示找回密碼。學(xué)校學(xué)生注冊后所有信息都將安全地保存在系統(tǒng)的數(shù)據(jù)庫里。超級管理員開通管理系統(tǒng)后,學(xué)校學(xué)生可在線預(yù)報(bào)名學(xué)科競賽。如不在指定時(shí)間范圍內(nèi),可自行修改本校學(xué)生的基礎(chǔ)信息和競賽報(bào)名相關(guān)信息。學(xué)校的學(xué)生是管理系統(tǒng)選擇的基本元素,自定義模塊有更好的用戶體驗(yàn)將決定管理系統(tǒng)的系統(tǒng)穩(wěn)定性和免費(fèi)推廣的容易程度。
1.2 用戶信息模塊
用戶模塊分別涵蓋了對學(xué)校和專業(yè)的相關(guān)數(shù)據(jù)管理。對學(xué)校的數(shù)據(jù)管理,其主要功能是對學(xué)校的相關(guān)信息進(jìn)行管理。對后來管理系統(tǒng)中可能會有多所高校信息以及在它們之間的競賽選拔情況,該系統(tǒng)都提供了較為強(qiáng)大了功能支持。對各高校的數(shù)據(jù)庫數(shù)據(jù)進(jìn)行分類管理和詳細(xì)分析,從而分析得出精確的競賽數(shù)據(jù)。對于專業(yè)的數(shù)據(jù)管理,主要內(nèi)容是專業(yè)方面的信息管理。每個(gè)專業(yè)都有自己獨(dú)有的特色,每個(gè)專業(yè)的具體情況也不完全相同。系統(tǒng)中對專業(yè)信息管理定制模塊進(jìn)行了針對性的設(shè)計(jì)和制作,能更好地讓用戶方便快捷地選出自己心儀的專業(yè)。
1.3 比賽處理模塊
該模塊涵蓋了競賽工程項(xiàng)目管理、學(xué)校學(xué)生報(bào)名后的考試信息管理和競賽官網(wǎng)公告信息管理、競賽工程項(xiàng)目管理。在學(xué)科競賽的用戶管理中,應(yīng)當(dāng)需要設(shè)置競賽和管理考生的工程,競賽工程項(xiàng)目管理還涵蓋對公共信息的管理。學(xué)科競賽借助這些相關(guān)信息的分級分類管理,有利于競賽數(shù)據(jù)的分析和統(tǒng)計(jì),更有利于學(xué)校學(xué)生在不同競賽項(xiàng)目之間進(jìn)行比較和分析。
學(xué)生學(xué)籍信息管理模塊中能滿足競賽信息化管理的要求。如果本校學(xué)生在學(xué)科競賽報(bào)名過程中仍存在遺漏,系統(tǒng)管理員可修改本校學(xué)生報(bào)名考試相關(guān)信息,在原有基礎(chǔ)上進(jìn)行完善、刪除等操作方式。在賽事公告欄目中,可以快捷地對公告信息進(jìn)增、刪、改、查的操作,實(shí)現(xiàn)信息管理的高效化[2]。
1.4 賽事得分模塊
此模塊涵蓋了對競賽成績的管理和對數(shù)據(jù)的精確分析。在對成績數(shù)據(jù)的管理中包括增加、修改、刪除、查詢考生參賽后的成績等操作。
2 項(xiàng)目設(shè)計(jì)目標(biāo)及原則
2.1 關(guān)于大學(xué)生競賽管理系統(tǒng)的基本要求
1)功能要求:分為系統(tǒng)首頁、個(gè)人中心、學(xué)生、競賽級別、指導(dǎo)老師、賽事預(yù)告、競賽信息管理等。
2)性能要求:能夠跨系統(tǒng)登錄和操作管理系統(tǒng),能夠保證無差別、更方便的操作。
3)安全方面:用戶必要通過注冊然后登錄系統(tǒng),并且不同的用戶給予不同的權(quán)限限定。
2.2 開發(fā)目標(biāo)
1)實(shí)現(xiàn)管理系統(tǒng)的規(guī)范化和自動化
2)減少管理人員對系統(tǒng)的維護(hù)和管理
3)方便用戶對比賽進(jìn)行查詢和修改操作
4)操作界面便捷高效,滿足用戶多樣化的需求
3 系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)
3.1 體系研發(fā)應(yīng)用環(huán)境
1)以JavaWeb技術(shù)為支撐的學(xué)科管理系統(tǒng)
2)采用B/S模式的架構(gòu)模式
3)數(shù)據(jù)庫技術(shù)采用MySQL存儲技術(shù)
3.2 MySQL 數(shù)據(jù)庫介紹
MySQL是一款關(guān)系型數(shù)據(jù)庫,它有著自己獨(dú)特的優(yōu)勢,這些優(yōu)勢使它成為目前最流行的關(guān)系型數(shù)據(jù)庫之一。MySQL與其他關(guān)系型數(shù)據(jù)庫相比有著體積小,速度快的特點(diǎn),其次是它符合本次該系統(tǒng)開發(fā)的最好選擇,成本低、開源這些特點(diǎn),也是選擇它的主要原因。
3.3 系統(tǒng)功能模塊設(shè)計(jì)
1)管理員和學(xué)生模塊
該軟件涵蓋了系統(tǒng)管理員和高校學(xué)生用戶模塊兩部分,第一部分是系統(tǒng)管理員部分,第二部分是高校學(xué)生用戶部分。
系統(tǒng)管理員,首先確認(rèn)在登錄界面,系統(tǒng)管理員能夠借助輸入賬號和密碼登錄管理系統(tǒng)后臺。如果忘記了賬號和密碼,能夠選用管理員權(quán)限忘記密碼功能,幫助找回密碼。其中一種形式是在系統(tǒng)菜單中,密碼找回功能非常強(qiáng)大。輸入賬號、出生日期、身份證號碼等相關(guān)信息找回密碼。系統(tǒng)管理員登錄管理系統(tǒng)成功后,系統(tǒng)管理員能夠在管理系統(tǒng)菜單中能夠一目了然地看到系統(tǒng)管理員所擁有的權(quán)限和功能,系統(tǒng)管理員是整個(gè)管理系統(tǒng)功能權(quán)限最齊全的管理員,而對于不同的管理員則掌握著整個(gè)系統(tǒng)模塊不同的權(quán)限。三級系統(tǒng)管理員管理權(quán)限最低,管理系統(tǒng)的權(quán)限最少。但有權(quán)管理來自其他系統(tǒng)管理員的信息,其中包含如何改進(jìn)、修改和刪除與系統(tǒng)管理員有所關(guān)聯(lián)的信息。從某個(gè)角度說,他們的權(quán)限高于其他的任何功能,在整個(gè)管理系統(tǒng)后臺,由不同的管理員擁有的不同權(quán)限一起維護(hù)整個(gè)系統(tǒng)后臺和系統(tǒng)的可用性、可擴(kuò)展性。
在校學(xué)生用戶在登錄界面可以進(jìn)行注冊、登錄、找回密碼等操作。在校學(xué)生在管理系統(tǒng)的登錄界面進(jìn)行注冊。注冊過程中,學(xué)生一定要填寫學(xué)生賬號、出生日期、身份證號、學(xué)生籍貫、學(xué)校位置等相關(guān)信息,以及與學(xué)生申請有所關(guān)聯(lián)的信息。
以學(xué)生賬號和密碼的方式登錄競賽管理系統(tǒng)。在登錄成功后,學(xué)生可以根據(jù)自己意愿修改個(gè)人的信息。學(xué)生可以自主選擇適合自己的競賽項(xiàng)目,在一定的時(shí)間內(nèi),學(xué)生也能夠修改學(xué)科競賽項(xiàng)目或取消。如果學(xué)生在登錄找回系統(tǒng)時(shí)忘記了賬號和密碼,能夠直接輸入自己的賬號、出生日期、身份證號等相關(guān)信息,借助系統(tǒng)在線找回密碼。最后一個(gè)是學(xué)校信息管理,在學(xué)校計(jì)算機(jī)信息管理系統(tǒng)的通用菜單中,系統(tǒng)管理員添加學(xué)校相關(guān)信息,也可修改和刪除學(xué)校信息[3]。
在專業(yè)信息管理中,管理員可以根據(jù)學(xué)生的專業(yè)增加相關(guān)的專業(yè)信息,學(xué)生可以使用查詢操作,使得專業(yè)信息展示在當(dāng)前頁面中。在頁面中展示的每一條記錄,管理員都可以進(jìn)行增刪改查等操作。在之前管理員設(shè)置好的專業(yè)信息后使得學(xué)生在報(bào)名時(shí)只能根據(jù)自己專業(yè)來選擇跟本專業(yè)相關(guān)聯(lián)的不同的競賽項(xiàng)目。
2)項(xiàng)目競賽管理模塊
該模塊涵蓋了學(xué)生競賽項(xiàng)目信息、各高校學(xué)生參賽項(xiàng)目信息和公告信息管理三個(gè)部分。
在系統(tǒng)管理員系統(tǒng)運(yùn)行的具體過程中,在管理學(xué)科賽事信息時(shí),能夠完善學(xué)科賽事的詳細(xì)信息,所有學(xué)科賽事的對比能夠借助公告展示出來。競賽項(xiàng)目能夠被相應(yīng)地修改或刪除。在競賽項(xiàng)目信息管理的管理中,系統(tǒng)管理員能夠隨時(shí)查看各個(gè)競賽項(xiàng)目的學(xué)校報(bào)名情況,也能夠在后臺中為學(xué)生報(bào)名學(xué)科比賽。在校生注冊系統(tǒng)后,系統(tǒng)管理員也能夠刪除與在校生注冊有所關(guān)聯(lián)的信息。在學(xué)科競賽管理系統(tǒng)軟件的登錄賬號首頁,充分予以了內(nèi)容展示框,用于展示學(xué)科競賽活動的宣傳信息。系統(tǒng)管理員可以編輯學(xué)科競賽的公告信息,其中包括官網(wǎng)公告中應(yīng)展示的學(xué)科競賽報(bào)名考試科目、學(xué)科競賽報(bào)名時(shí)間等相關(guān)信息,系統(tǒng)公告相關(guān)管理員在將編輯好的公告發(fā)布到官網(wǎng)后,學(xué)生可以在官網(wǎng)查看相關(guān)的比賽的具體內(nèi)容來進(jìn)行比較以選擇適合自己的競賽項(xiàng)目,學(xué)生也可以通過公告官網(wǎng)來查看競賽結(jié)果。
3)成績管理模塊
成績管理模塊涵蓋了競賽成績數(shù)據(jù)和對成績數(shù)據(jù)的分析結(jié)果展示兩個(gè)部分。學(xué)科競賽管理系統(tǒng),將競賽學(xué)生的成績導(dǎo)入檢索系統(tǒng),在成績管理系統(tǒng)模塊中,可查詢學(xué)生競賽成績,選擇不同的專業(yè),能夠查看不同專業(yè)的競賽數(shù)據(jù)。
3.4 數(shù)據(jù)庫表的設(shè)計(jì)
數(shù)據(jù)庫表存儲了競賽管理系統(tǒng)軟件中的數(shù)據(jù)庫數(shù)據(jù),這是對學(xué)科競賽數(shù)據(jù)進(jìn)行數(shù)據(jù)庫數(shù)據(jù)進(jìn)行了可視化分析,以下就是對管理系統(tǒng)軟件中存取數(shù)據(jù)庫表的設(shè)計(jì)與制作[4]。
一般情況下,往往根據(jù)E-R圖的基礎(chǔ)知識,將具體的概念分析模型導(dǎo)出到三維圖,然后對三維圖進(jìn)行標(biāo)準(zhǔn)化,得到數(shù)據(jù)庫表。
1)學(xué)校學(xué)生相關(guān)信息表如圖2所示,命名為“stu?dent”。一方面,該表用來存儲學(xué)生學(xué)號、姓名、出生年月日、所在學(xué)校、考試科目、年級等信息。在表結(jié)構(gòu)中,id的值是參照結(jié)合xkjs_stud表中stu_id的值,name 的值是xkjs_stu表中stu_name的值,project的值來自字段project_name 的值表名kj_project,年值來自xkjs_year表的years字段值,月值來自xkjs_month數(shù)據(jù)表中的month字段的值。
2)公告信息表具體情況表的基本結(jié)構(gòu)如圖3所示,并更名為“gonggao”?!癵onggao”的含義是指一方面存儲廣告主題、官網(wǎng)廣告具體內(nèi)容等相關(guān)信息。
3)項(xiàng)目表的基本結(jié)構(gòu)如圖4所示,命名“xkjs_proj?ect”。xkjs_project表存儲系統(tǒng)管理員名稱、不同年份、月中、學(xué)科考試科目分?jǐn)?shù)等信息。
4)學(xué)校信息表具體表結(jié)構(gòu)如圖5 所示,命名為“school”,school表主要存放學(xué)科競賽管理系統(tǒng)所屬的學(xué)校信息。
5)管理員信息表具體表結(jié)構(gòu)如圖6所示,命名為“user”,user表主要存放管理員用戶名、密碼等信息。
4系統(tǒng)設(shè)計(jì)
4.1 關(guān)鍵技術(shù)
本系統(tǒng)可以使用多種瀏覽器自行注冊登錄,在開發(fā)時(shí)采用了idea2022,以JDK8作為開發(fā)工具包,數(shù)據(jù)庫采用的是市面上最流行的MySQL,服務(wù)器仍然使用的是tomcat,前端靜態(tài)資源采用Nginx進(jìn)行部署,將前后端分離的優(yōu)勢進(jìn)行了最大化,項(xiàng)目開發(fā)環(huán)境部署簡單且易行[5]。
該系統(tǒng)設(shè)計(jì)主要使用SpringBoot+Vue進(jìn)行整合開發(fā),后端主要利用了三層架構(gòu),包含業(yè)務(wù)邏輯層,實(shí)體層以及數(shù)據(jù)訪問層。前端Web層用于靜態(tài)資源的展現(xiàn)和支持,Spring負(fù)責(zé)實(shí)體bean的業(yè)務(wù)邏輯處理,My?Baits負(fù)責(zé)數(shù)據(jù)庫和數(shù)據(jù)訪問層的交接。通過Spring?Boot+Vue前后端分離的架構(gòu),可以完美地使前端和后端代碼分離開來,對開發(fā)人員的門檻降低了很多,前端是前端,后端是后端招聘模式,服務(wù)端和客戶端進(jìn)行了分離,很好地解決了代碼的耦合度,方便以后對系統(tǒng)進(jìn)行維護(hù)和優(yōu)化[6]。
4.2 部分模塊實(shí)現(xiàn)
競賽模塊包括競賽模塊、新聞模塊、通知模塊、教學(xué)模塊等四部分內(nèi)容。競賽管理主要是系統(tǒng)的競賽模塊的相關(guān)的管理操作,比如新增賽事、修改賽事、刪除賽事等,便于以后發(fā)布賽事通知、新聞等內(nèi)容。下面是核心設(shè)計(jì)代碼:
@Service
@Slf4j
public class CompetitionItemServiceImpl imple?ments CompetitionItemService {
@Autowired
@Qualifier(value =“CompetitionItemDao”
private CompetitionItemDao CompetitionItemDao;//添加比賽項(xiàng)
public void addCompetitionItem( CompetitionIte?mEntity item){
if (checkField(item)){
item. setStauts(ItemStateType. ITEM_STATUS. get?Code()))
Integer result = CompetitionItemDao. addCompeti?tionItem(item);
if(result > 0 ){
log.info“( 添加賽事成功”,item.toString())
}else{
log.error“( 添加賽事失敗,未知異常請仔細(xì)查看”);
}}}
//修改比賽項(xiàng)
public void alterCompetitionItem(CompetitionIte?mEntity entity, String itemId){
if (checkFields(entity)){
entity.setId(itemId);
int result = CompetitionItemDao. alterCompetition?Item(entity);
if(result > 0 ){
log.info“( 通過賽事id{}修改成功”,entity.to?String())
}else{
log.error“( 通過賽事id{}修改賽事失敗,未知異常請仔細(xì)查看”);
}}}
//刪除賽事
public void removeCompetitionItem(String[] item?Lists) {
for (String itemId : itemLists) {
CompetitionItemEntity entity = CompetitionItemEn?tity.getInstance();
CompetitionItemEntity item = entity. getItemBy?ItemId(itemId);
if (!StringUtils.isEmpty(item)) {
int result = CompetitionItemDao.remove(item);
if(result > 0 ){
log.info“( 通過賽事id{}刪除成功”,entity.to?String())
}else{
log.error“( 通過賽事id{}刪除新聞失敗,未知異常請仔細(xì)查看”);
}
}
公告信息管理模塊是指系統(tǒng)的用戶可以自行查閱學(xué)科競賽的相關(guān)競賽資料,比如競賽的組織,管理方式和競賽的詳細(xì)信息,讓參賽選手得以準(zhǔn)確、及時(shí)地掌握信息。掌握學(xué)科技能比賽的相關(guān)規(guī)定和要求。核心部分的代碼如下[7]
@Slf4j
public class CompetitionAdviseServiceImpl imple?ments CompetitionAdviseService {
@Autowired
@Qualifier(value =“competitionAdviseDao”)
CompetitionAdviseDao competitionAdviseDao;
//添加通知
@Override
public void addCompetitionAdvise (CompetitionAd?vise advise) {
advise. setAdviseState(AdviseStateType. AD?VISE_ORDER.getCode());
int result = competitionAdviseDao. addAdvise(ad?vise);
if(result > 0 ){
log.info“( 通過通知id{}添加成功”,advise.to?String())
}else{
log.error“( 通過通知id{}添加失敗,未知異常請仔細(xì)查看”);
}}
//刪除通知
@Override
public void removeCompetitionAdvise(String[] advi?seIds) {
for (String adviseId: adviseIds) {
CompetitionAdviseEntity item = this. getNotice?ByNoticeId(adviseId);
if (!StringUtils.isEmpty(item)) {
int result = gameNoticeDao.removeAdvise(item);
if(result > 0 ){
log.info“( 通過通知id{}刪除通知成功”,item.to?String())
}else{
log.error“( 通過通知id{}刪除通知失敗,未知異常請仔細(xì)查看”);
}
}
}
// 修改通知
@Override
public void changeCompetitionAdvise (String Advi?seId) {
CompetitionAdviseEntity item = new MatchNo?ticeEntity();
item.setId(AdviseId);
int result = matchNoticeDao.changeCompetitionAd?vise(item);
if(result > 0 ){
log.info“( 通過通知id{}修改通知成功”,item.to?String())
}else{
log.error“( 通過通知id{}修改通知失敗,未知異常請仔細(xì)查看”);
}
}
}
5 結(jié)束語
本文采用前端Vue+后端SpringBoot的架構(gòu)設(shè)計(jì)選型模式,使用MySQL數(shù)據(jù)庫搭建賽事信息管理系統(tǒng)代理平臺,同時(shí)設(shè)計(jì)了用戶管理和賽事信息管理,解決了傳統(tǒng)學(xué)科競賽選拔模式中復(fù)雜和容易出錯(cuò)的問題,實(shí)踐中獲得了學(xué)校的好評。但在后期的完善開發(fā)中,還要繼續(xù)深挖和擴(kuò)展管理系統(tǒng)的功能和模塊,使系統(tǒng)給學(xué)生和教師使用起來體驗(yàn)感更好,功能更豐富,為社會的信息化事業(yè)貢獻(xiàn)一份微不足道的力量[8]。