李特 孫大松



摘要: 現有的紙質課表難以滿足高校師生對教室信息的獲取與管理的需求。設計一個基于二維碼掃碼技術、B/S結構,運用MVC設計模式,采取SSM框架設計實現的智能教室管理系統。實現了教室課表信息實時更新,提供了空閑教室查詢、教室活動查詢、教室預約、故障報修、教室管理等功能,解決了傳統教室信息獲取難這一問題,并就技術難點進行了探討,系統良好實用性和創新性。
關鍵詞:二維碼;SSM框架;教室課表;管理系統
中圖分類號:TP311 ? ? ? ?文獻標識碼:A
文章編號:1009-3044(2019)13-0097-04
Abstract: The existing paper curriculum is difficult to meet the needs of teachers and students in the acquisition and management of classroom information. Design a smart classroom management system based on QR code scanning code technology, B/S structure, MVC design pattern and SSM framework design. Realize the real-time update of classroom class information, provide free classroom query, classroom activity query, classroom appointment, fault repair, classroom management and other functions, solve the problem of difficult access to traditional classroom information, and discuss technical difficulties, the system is good Practical and innovative.
Key words: QR code; SSM framework; classroom schedule; management system
信息化高速發展的今天,手工管理系統的方式已被信息管理系統取代。信息化技術也早已在高校教務管理有了成熟的應用.但其中的教室管理在這方面建設仍有不足.如教室課表的展示,大多數高校仍使用紙質課表張貼在教室門上,導致了無法實時更新不適應課表調整,不能反映借用信息,不能查詢教室活動等一系列問題,給師生的日常使用帶來不便. 圍繞這些問題,本文設計實現了一種整合教室資源信息并方便師生獲取的信息服務系統。
1 問題背景
設計開發系統的初衷是本人與同學在大學生活中切身體會到現有的教室紙質課表的不便,主要體現在以下幾個情境:
教室實際課表變更,但紙質課表難以更新,造成困擾。
提前選定自習的教室,但使用時發現教室被借用,造成不便。
教室門口張貼的紙質課表存在部分破損,更換時難以清除,造成不美觀。
學校多姿多彩的學術、文娛活動,只能通過海報獲取,無法直觀地在教室上看到。
為了提高教室的利用率,整合教室資源,為師生提供便利的服務這就是開發智能教室管理系統的目的。
2 需求分析
系統預期的主要使用者有學生、教師、教務管理人員、教室維護人員和系統管理員。學生與教師的功能需求相似,為系統的普通用戶,僅能使用系統中無需權限的基礎功能并且無需登錄;其余角色為系統的管理用戶,除基礎功能外登錄后臺管理系統后能夠根據自身權限操作相應功能。以下將從角色的角度詳細分析使用系統的功能需求。
2.1 學生與教師使用系統的功能需求
學生與教師無需登錄即可使用系統的基礎功能,包括查看教室課表,查詢空閑教室、教室實際用途等功能。
學生與教師可對課程進行檢索,根據課程名稱或授課教師模糊查詢。
學生與教師在教室課表頁面可以查看由教務管理人員審批發布的教室借用信息與公告通知。
學生與教師可以預約借用教室,借用時段該教室需為空閑狀態,最少提前三天申請,需要在申請網頁提交相關材料。
學生與教師可以查詢教室的基本信息。如座位數,多媒體設備,是否有空調等。
學生可以進行故障報修,選擇預先定義的故障類型并輸入說明即可。
2.2 教務管理人員使用系統的功能需求
教務管理人員需要登錄后才能使用后臺管理功能。
教務管理人員可以設置賬戶的個人信息,如聯系方式與郵箱等。
教務管理人員可以修改自己的后臺管理系統登錄密碼。
教務管理人員可以審批教室的預約借用申請。
2.3 教室維護人員使用系統的功能需求
教室維護人員需要登錄后才能使用后臺管理功能。
教室維護人員可以設置賬戶的個人信息,如聯系方式與郵箱等。
教室維護人員可以修改自己的后臺管理系統登錄密碼。
教室維護人員可以查看普通用戶提交的故障報修信息,并指派維修人員進行維修。
2.4 系統管理員使用系統的功能需求
根據以上從角色角度分析的功能需求,設計系統用例圖如下圖1所示。
除以上按角色分析的功能需求外,系統為了在接收預約申請和故障報修時及時通知相關管理人員還需要實現消息推送功能;為了保證課程信息的及時有效還需要實現定時同步數據庫功能(從學校教務系統數據庫同步數據)。
3 系統設計
3.1技術選型及工具介紹
根據當今主流開發技術的發展,本系統選用Java為服務端開發語言,使用MySQL數據庫,Tomcat作為服務端容器。系統具體開發時,采用SSM技術實現WEB框架,使用Spring Boot快速構建并配置系統,具有穩健易用的特點。
為了提升系統開發速度,提高組件可復用性,減少各層之間的耦合度與提升系統的穩健性,安全性,系統的服務端開發與前端開發選用了一些主流成熟框架. 服務端選用了Spring、SpringMVC、Mybatis、Mybatis等框架,前端采用了bootstrap、Vue.js、axios等框架。此外,為了管理系統的開發進度和依賴,使用了git版本控制工具和maven項目管理工具。
3.2系統架構
系統架構采用分層設計,自上而下分為前端UI、展示層、業務層、數據層、數據庫、運行環境,如下圖2所示。
展示層對外暴露模版引擎渲染后的網頁與Restful接口.其中模板引擎主要負責渲染高頻訪問頁面中的重復部分(如教室課表信息),這部分信息在短期內對所有用戶是相同的。再結合頁面靜態化技術,可以提高網頁訪問速度,利于搜索引擎收錄與SEO。而Restful接口提供JSON格式的數據,前端通過Ajax技術取得所需的數據即可更新局部頁面數據而無須刷新整個頁面,提高系統響應速度。
業務層在系統中的作用是處理業務相關部分的邏輯,包含了系統所需要的所有業務功能上的算法和計算過程,并與數據層和展示層進行數據交互。
數據層為業務層提供訪問位于持久化容器中數據的接口,在分層設計中,所有從介質化讀取數據或寫入數據的工作都屬于這一層的任務。
3.3 Web技術框架
前文介紹了系統的總體分層架構設計,其中服務端web技術框架具體結構則如圖3所示。
控制器Controller處于web技術結構中最外層,負責接受并處理用戶的請求,在這里使用了Spring MVC框架,它通過核心類DispatcherServlet分發請求。模板引擎渲染的情況下,控制器接收分發的請求后把用戶請求的數據由業務邏輯層處理后封裝到Model中,并返回到相應的視圖進行顯示。提供Restful接口的情況下,則返回由對象轉換成的Json字符串。兩種方式通過注解都可以方便地實現,前者通過@Controller注解標記類,后者則通過@RestController注解標記類(或在方法上標記@ResponseBody)。然后通過@RequestMapping注解可以定義Controller映射的URL請求,Spring MVC的Controller不直接依賴HttpServletRequest與HttpServletResponse對象但可以在方法參數中簡便地獲取。
3.4模塊分析
按照需要實現的功能,系統分為前臺與后臺。前臺功能服務普通用戶,包含了查詢展示、預約借用、故障報修模塊;后臺功能服務管理人員,包含了教室管理、用戶管理、系統功能。模塊具體模塊設計如下圖4所示。
4 功能實現
4.1教室課表查詢功能
實時課表查詢是本系統的基本功能,用戶通過本功能可以查詢任意教室的實時課表信息,展示界面除了課程信息,教室借用、設備故障等情況也會有所反映。考慮到用戶不同場景下使用的需求,本功能設計了多個查詢入口。
4.1.1教室門牌
教室的門牌是學生與老師查詢教室課表的主要途徑,通過手機掃描門牌上的二維碼即可訪問該教室的課表頁面。這樣的教室門牌簡潔美觀,相比傳統的教室課表門牌,更有助于提升形象面貌以及便于師生使用。同時,綜合考慮成本及教室位置等因素,兩種教室門牌方案可以提供更靈活自由的選擇。見圖5圖6 。
4.1.2網站直接訪問
用戶查詢教室課表的另一途徑為訪問網站首頁,該途徑使用頻率可能沒有掃描教室門牌二維碼的頻率那么高,但解決了用戶查詢教室課表的空間限制,即使用戶不在教室旁邊,也能夠查詢到教室的課表信息,填補了掃碼途徑的不足之處。首頁如下圖7。
3.2 教室課表展示
教室實時課表采用表格展現,具有自適應的特點,能夠隨顯示設備的寬度自動調整,手機與電腦都能有較好的展示效果。頭部顯示教室名稱,教室座位等信息,并提供空教室查詢與故障報修的入口。標題包含了教學周次與教室名稱,如:當前第 12 教學周德正樓Z3-101課表信息。具體效果如圖8:
5 技術難點
5.1多數據庫連接
由于功能需求,系統除了連接本地的MySQL數據庫之外還需連接學校教務系統的ORACLE數據庫。在Spring Boot集成Mybatis的環境下,實現多數據庫連接的具體思路是為各個數據源編寫數據源配置類,在類中層級依次地注入各級依賴:DateSource->SqlSessionFactory->DataSourceTransactionManager->SqlSessionTemplate。最后使用@MapperScan注解將SqlSessionTemplate交給對應的Mapper。在種情況下,不同數據源的Mapper接口與xml映射文件需要分開在不同的包下存放。其中數據源的配置信息則存儲于應用全局配置文件application.yml中,如下圖9所示。
5.2定時任務
系統具備定時執行任務的特點,該特點主要用于定時同步學校教務系統數據庫到本地數據庫。這也是保證系統所展示信息正確有效,及時更新的重要前提。為了實現定時任務功能,可以借助Spring框架內集成的Spring- scheduling功能。使用方法為在需要定時執行的方法頭部添加@scheduled(cron表達式)注解。
5.3 批量教室門牌打印
掃描教室門牌二維碼是使用本系統的主要入口,因此實現批量打印教室門牌的功能至關重要。在后臺的教室管理頁面,可以選擇單張打印或批量打印。單張打印可在線打印,批量打印生成PDF文件供用戶下載打印。后者實現難度較高,在此著重介紹。實現思路為:預先使用Google的zxing庫生成所有教室的二維碼并保存。接收到批量打印請求后首先遍歷生成單張PDF頁面,再將所有頁面拼接為一個PDF文件。單張頁面的實現思路為首先將html模板與model數據(教室名稱,對應二維碼文件路徑),通過freemarker進行渲染,渲染后的html流使用Flying Saucer組件生成pdf頁面,具體實現流程如下圖10所示。
6 總結
教室是教學活動中師生最常用的場地,怎樣挖掘在教室載體上的信息,推送給相關學生,一直是現代教務信息研究的重點和難點,本系統大大解決了學生獲取空閑教室信息難的問題,同時也可對學校內部利用教室開展的活動信息,一目了然,更好參與學校相關的教學、科研、娛樂活動。進行了有效的教室信息資源整合并提供相關信息將有助于提高教室的使用率。同時方便師生享受快捷服務。接下來,系統將進行學生相關數據信息采集,進行大數據匹配,結合微信,自動推送相關復習教室、教室活動。
參考文獻:
[1] 孫大松.基于SSH架構的畢業論文管理系統設計與研究[J].電腦編程技巧與維護,2014(19):54-56.
[2] 趙倩瑩. 基于移動終端的高校多媒體教室管理系統設計分析[J]. 數字技術與應用,2017(1):149,151.
[3] 曹勁. 信息化建設下多媒體教室管理的新模式初探[J]. 知音勵志,2016(15):104.
[4] 吳錦歡. 智能教室管理系統的研究與設計[D].廣州:華僑大學,2016.
[5] 郭慶林. 基于實時數據采集的本科高校多媒體智能教室綜合管理信息系統的分析與設計[J]. 電子測試,2016(11):145-146.
[6] 趙領杰,張振友. 基于SSH的教室信息管理系統設計與實現[J]. 電腦知識與技術,2016,12(11):15-16.
[7] 尤雨溪. Vue.js教程與API文檔[EB/OL]. https://cn.vuejs.org/v2/guide/.
[8] 孫偉琴.Tomcat與Java Web開發技術詳解[M].北京:電子工業出版社,2009.
[9] Williams H E.Learning MySQL[M].北京:北京大學出版社,2010.
[10] 唐漢明.深入淺出MySQL:數據庫開發、優化與管理維護[M],北京:人民郵電出版社,2014.
[11] 王飛飛.MySQL數據庫應用從入門到精通[M],北京:中國鐵道出版社,2014.
[12] 孫華林.構建Web應用系統:基于JSP+Servlet+JavaBean[M],北京:機械工業出版社,2014.
[13] 菜鳥教程.Bootstrap3教程[EB/OL].http://www.runoob.com/bootstrap/bootstrap-tutorial.html.
[14] 郭正軒. 基于B/S的學校公共教學樓教室申請管理系統設計[J]. 現代職業教育,2017(24):70.
[15] 錢鵬.二維碼技術在高校多媒體教學中的應用[J].實驗室研究與探索,2014,33(4):255-259.
【通聯編輯:王力】