曹天澤* 潘家志
(杭州師范大學,浙江 杭州310000)
在杭州師范大學,最早基于數學建模的競賽培訓主要是數學類專業大二、大三的學生。近年,隨著學生綜合素質的提升和興趣的發展,吸引了相當多非數學類的學生參加,培訓的目標團體由最初的數學類專業的學生,擴展到包括物理、化學、生物、計算機、電子、經管等多學院和多專業的學生,成為一項覆蓋全校的學生競賽培訓活動。為了向全校普及數學建模的基礎知識,并且宣傳參加數學建模的益處,迫切需要一款流行的網絡媒介來整合這些信息。為解決這一需求,設計了一套小程序門戶系統,對系統進行了針對性的功能分析。
本系統采用的軟件開發模式為敏捷開發,不同于邊做邊改模型、瀑布模型、快速原型模型和增量模型等傳統軟件開發模型,敏捷開發在項目初期就將項目分割為很多的小項目,每個項目開發為2~6 周,每個項目都經過需求設計、評審、排期開發、測試以及發布上線等階段,在開發過程中系統一直保持可用的狀態,通過不斷的迭代升級系統功能和開發新特性。
首先基于需求進行概要設計,然后基于概要設計進行1.0系統的詳細設計,主要分析學生端和教師端的功能,基于需求分析實體間的關系,然后進行數據庫設計,建立系統數據庫,進行界面設計。然后進行后端的接口開發,接著基于界面進行小程序的前端開發,最后實現web 端的管理員界面。
本系統采用B/S 結構開發,數據庫使用流行的開源數據庫MySQL,服務端使用JAVA 編程語言開發,基于Git 進行源碼的版本管理,基于Maven 進行代碼的工程管理。在框架應用上,后端使用SpringBoot 及其附屬的生態系統各個庫包,前端Web 頁面基于Bootstrap 及其配套生態系統中的插件完成開發工作。
Spring[1]是JAVA 后端開發在業界最流行的框架,它提供控制反轉(IOC)特性和AOP 特性,在開發過程中簡化了事務配置和遠程訪問等功能的實現。有相當多的JAVA 框架提供了對Spring 的支持。但在以前,集成各種框架到Spring 往往需要很多額外的配置,而SpringBoot 就是為解決這一問題開發出的框架。通過其“開箱即用”和“約定大于配置”兩大策略,盡可能的自動化進行配置,簡化的安裝Spring 應用的難度。
Swagger 是一個開源的RESTful 風格在線文檔生成框架。在SpringBoot 中通過springfox-swagger2 和springfox-swagger-ui 的庫包,進行簡單配置后,就可以基于注解自動識別Spring MVC中的Controller 服務,生成在可在線調試的RESTful 服務。
Bootstrap 是基于HTML、CSS 和JavaScript 開發的前端框架,在引入Bootstrap 的CSS 和JavaScript 文件后,通過簡單的HTML片段模板就可以生成漂亮的頁面樣式。
在Web 開發中,經常要進行大量的表單設計,表單的內容基于業務需要添加不同限制,以此來規范用戶的輸入。Bootstrap-Validator 就是為解決這一需求而開發的JavaScript 庫包,它基于Bootstrap 開發,可以和Bootstrap 無縫集成,并且提供了本地化配置方案,對于中文的內容提示非常友好,如圖1。庫包內已經內置了base64、數值、日期、郵箱、文件、十六進制顏色值、IP 地址、MAC 地址、電話、正則、遠程驗證、字符串長度等驗證功能,并且支持自定義規則和提示內容。

圖1 Bootstrap-Validator 的中文提示功能
Markdown[2]是一種簡單標記語法,它通過配合定制的渲染規則可以得到良好排版的文章。在系統中經常中部分模塊需要實現發布文章的功能,對于使用該系統的教師和學生來說,Markdown 在日常教學中應用非常廣泛,教師和學生可以直接應用來編輯文章。因此系統在前端編輯文章頁面引入了Bootstrap-Markdown,它是一款基于Bootstrap 的富文本編輯器,支持在線編輯Markdown 文本和預覽功能。
學生子模塊的權限為學生輸入學號和密碼成功登陸后,學生可以瀏覽最新的通知,查看往年的試題和資料,查看教師發布的模擬練習題,提交模擬題的解答給系統。
3.1.1 新聞通知
學生登陸到小程序的默認首頁就是通知和新聞的列表,以日期從近到遠展示了通知的標題信息,學生可以通過上下滑屏來刷新和瀏覽不同時間的通知概要信息,通過點擊通知的標題查看通知的詳情信息。
3.1.2 學習資料
在小程序的第二個tab 展示的是歷年的試題和資料,學生通過點擊不同的標簽可以分別瀏覽“常見模型”、“經典算法”、“實用工具”“歷年真題”這幾個不同類別的資料。
3.1.3 我的信息
在小程序的第三個tab 展示的是學生個人相關的數據,一個是“我的模擬”,展示教師發布的模擬題信息,對于已提交和為提交解答文檔的模擬題,系統會有不同的信息標注。另一個是我的信息,學生可以通過該入口修改自己的密碼。
教師子模塊的權限為教師從web 端輸入賬號和密碼登錄后,教師可以發布靜態文件資源,編輯發布通知,發布模擬題,有超級管理員權限的教師,還可以添加教師,設置管理員。
3.2.1 新聞管理
教師登錄到系統后,默認首頁就是新聞管理的頁面,可以瀏覽已發布的新聞,修改、刪除、發布新的新聞。新聞內容的編輯支持Markdown 功能。
3.2.2 文件管理
通過文件管理的tab 進入此功能,教師可以上傳文件、音頻和視頻等資源。系統會生成對應文件在系統中的鏈接。
3.2.3 模擬題管理
通過模擬題管理的tab 進入此功能,可以按Markdown 格式編輯發布模擬題內容,選擇接受的學生,使得只有特定的學生可以查看到模擬題。
3.2.4 學生管理
通過學生管理的tab 進入此功能,可以通過頁面或者上傳excel 文件批量導入學生信息進入系統,可以對學生進行重置密碼操作。
3.2.5 教師管理
通過學生管理的tab 進入此功能,非超級管理員可以修改自身密碼。超級管理員可以添加和刪除教師,可以修改所有教師密碼。
通過docker 部署后端服務,使得運維更簡單。通過本系統為擴大數學建模的影響范圍,同時大大減輕了在組織競賽培訓時的人力和物力。