許潼歆 何晉樂 邱勛擁
(桂林信息科技學(xué)院 廣西壯族自治區(qū)桂林市 541000)
在當(dāng)今的大學(xué)生求學(xué)之路上,學(xué)生的自主學(xué)習(xí)形式較之于跟隨教師的課堂學(xué)習(xí)而言顯得更為重要,特別是面對目前疫情防控,學(xué)生自主學(xué)習(xí)的時間越來越多。但在自主學(xué)習(xí)的過程中,用心求學(xué)的學(xué)子們總會不斷產(chǎn)生新的疑問,而面對網(wǎng)上年代不一、層次不等、真假難辨的疑問解答并不能很好的滿足學(xué)子們的學(xué)習(xí)需求,也不能很好的為學(xué)子們答疑解惑。而“學(xué)霸零距離”校園服務(wù)平臺能在校園內(nèi)為學(xué)生提供更好的知識共享交流服務(wù),有利于培養(yǎng)和提升學(xué)生的自主學(xué)習(xí)能力。
在疫情頻發(fā)的今天,許多大學(xué)不得不選擇網(wǎng)絡(luò)上課的方式,但網(wǎng)絡(luò)教學(xué)會造成部分學(xué)生的學(xué)習(xí)效率降低,外加授課老師無法如線下上課那般切實(shí)地感受到學(xué)生上課的狀況,使得線上授課的效果參差不齊。學(xué)生間的探討、交流也因天各一方變得不再頻繁。學(xué)生在遇到學(xué)習(xí)上的問題時更是難以得到高效、迅速的解決。當(dāng)然不止學(xué)生的學(xué)習(xí)受到影響,國內(nèi)宏觀經(jīng)濟(jì)更是受到嚴(yán)重沖擊,許多企業(yè)面臨虧損、倒閉的壓力,因此用人單位只好選擇裁員、降低員工福利。而這些變化造成就業(yè)競爭變得空前激烈,大學(xué)生找工作的時間成本和機(jī)會成本不斷加大,就業(yè)觀和就業(yè)規(guī)劃也不斷受到未來形式的不確定性影響。
智慧校園是高校應(yīng)對“互聯(lián)網(wǎng)+教育“挑戰(zhàn)的一個必然選擇,是數(shù)字校園建設(shè)的進(jìn)一步深化與提升。外加疫情造成的影響,許多高校都紛紛想通過成立校園項(xiàng)目來研發(fā)具有校園特色的服務(wù)平臺。同時也有越來越多的社會企業(yè)逐步意識到大學(xué)生群體正在逐漸成為未來消費(fèi)的主力軍,逐漸將自身業(yè)務(wù)延伸到校園當(dāng)中。因此要想在這場挑戰(zhàn)中脫穎而出,勢必要緊緊抓住當(dāng)前的時代背景和本校大學(xué)生群體的最大需求點(diǎn)來“對癥下藥”。
如今,智慧校園早已成為當(dāng)前校園信息化探討的一個熱點(diǎn)。為了將大學(xué)師生的切身需求和校園內(nèi)的各種教育教學(xué)資源進(jìn)行高效整合,因此我們將本次設(shè)計的小程序的重點(diǎn)放在:
(1)精心打造校園交流論壇,進(jìn)一步加強(qiáng)師生,生生之間的討論交流,使得彼此間的信息數(shù)據(jù)能夠?qū)崟r實(shí)地的進(jìn)行交互傳輸與互動,這也將為大學(xué)生們帶來更為便利的學(xué)習(xí)生活體驗(yàn);
(2)推出預(yù)約系統(tǒng),致力于為更多的有學(xué)習(xí)需求的大學(xué)生人群提供與校園內(nèi)有時間精力并愿意提供幫助的學(xué)霸在線預(yù)約,以此來最大化的開發(fā)與利用校園內(nèi)有效的教學(xué)資源;
(3)為更好的維護(hù)和管理小程序的信息內(nèi)容,設(shè)計一個基于Web 的管理員系統(tǒng)方便管理員管理用戶行為和小程序服務(wù)內(nèi)容。
用戶客戶端基于微信小程序開發(fā)有以下幾點(diǎn)原因:
(1)無需下載,可隨時隨地使用,方便快捷。
(2)背靠10 億微信用戶,現(xiàn)如今年輕人幾乎人人都有微信,因此使得我們的設(shè)計便于落地。
(3)小程序與APP 擁有相同的應(yīng)用體驗(yàn)。
(4)接口眾多,方便接入其他小程序以及拓展使用場景優(yōu)勢。
(5)存在許多優(yōu)質(zhì)的框架,穩(wěn)定性高、開發(fā)周期短、維護(hù)成本低。
Vue 是一套構(gòu)建用戶界面的輕量級漸進(jìn)式的JavaScript框架?;贛VVM 模式實(shí)現(xiàn),視圖,數(shù)據(jù),結(jié)構(gòu)分離,使數(shù)據(jù)的更改更為簡單。最重要的便是其采用了虛擬DOM 技術(shù)——預(yù)先通過JavaScript 進(jìn)行各種計算,把最終的DOM操作計算出來并加以優(yōu)化,直到最后計算完畢后才真正將DOM 操作變化反映到DOM 樹上,以此提高頁面渲染的效率,減輕節(jié)點(diǎn)的操作從而提高性能。
SpringMVC+Spring+Mybatis(SSM)是一個成熟的、基于MVC 的框架。在java 編程語言當(dāng)中,要用類當(dāng)中的方法就需要創(chuàng)建類對象來調(diào)用。而基于IOC(控制反轉(zhuǎn))的思想以及DI(依賴注入)的技術(shù),將Spring 作為一個容器,用于存放實(shí)體對象,這些對象在啟動后即被創(chuàng)建,之后需要用到這些對象對應(yīng)的類的方法時,就可以直接從容器當(dāng)中取出,防止大量對象的創(chuàng)建和組件之間的強(qiáng)依賴,同時實(shí)現(xiàn)層與層之間的解耦,使業(yè)務(wù)邏輯更加清晰;而Mybatis 框架是一個半自動的ORM 持久層框架,內(nèi)部封裝了JDBC,減少了JDBC 沉余的代碼,相比于Hibernate 更加容易上手,并能夠與Spring 很好的集成。
MySQL 是常見的基于磁盤來持久化存儲數(shù)據(jù)的關(guān)系型數(shù)據(jù)庫,不受空間容量限制,性價比高,而其相對薄弱的點(diǎn)在于每次請求訪問數(shù)據(jù)庫時都存在I/O 操作,在反復(fù)鏈接數(shù)據(jù)庫時耗費(fèi)大量時間。而Redis 數(shù)據(jù)庫則為一款緩存數(shù)據(jù)庫,不僅僅支持簡單的key-value 類型的數(shù)據(jù),同時提供了list、set、zset、hash 等數(shù)據(jù)結(jié)構(gòu)的存儲;通過將數(shù)據(jù)存入內(nèi)存當(dāng)中,在后續(xù)數(shù)據(jù)讀取時直接從內(nèi)存當(dāng)中讀取,借此在擁有極高的I/O 性能的同時減少了訪問數(shù)據(jù)庫的次數(shù)。在對性能要求不一的板塊中,結(jié)合兩類數(shù)據(jù)庫各自的優(yōu)勢,來達(dá)到不同的需求。
Json web token (JWT) 是基于token 的鑒權(quán)機(jī)制,由header (頭部) 、payload (載荷) 、signature (簽名) 組成。一般用于身份提供者和服務(wù)提供者間傳遞被認(rèn)證的用戶身份信息,便于從資源服務(wù)器上獲取資源。相比帶狀態(tài)的session,如果要負(fù)載均衡還需保持穩(wěn)定路由或者用統(tǒng)一的數(shù)據(jù)庫管理所有的session。而反觀JWT,對服務(wù)器而言是無狀態(tài)的,幾乎是零開銷。所以憑借它開銷小、易于應(yīng)用擴(kuò)展、可以在許多編程語言中使用、可以輕松跨域等特性,如今在分布式站點(diǎn)的單點(diǎn)登錄(SSO)場景中被廣泛使用。服務(wù)端對JWT 簽發(fā)和驗(yàn)證整體流程如圖 1 所示。
圖1 :JWT 整體流程
本系統(tǒng)采用小程序配合Vant Weapp 組件庫構(gòu)成客戶端,并使用訂閱消息將重要信息推送到微信消息界面;前端管理員界面采用Vue 框架配合ElementUI 組件以及Apache Echarts 組件,部署于高性能的HTTP 和反向代理Web 服務(wù)器nginx 中;后端采用成熟的SSM 框架及JWT 技術(shù)配合tomcat 搭建;騰訊云存儲桶COS 存儲用戶頭像、發(fā)布的圖片和視頻等;使用關(guān)系型數(shù)據(jù)庫MySQL 和非關(guān)系型數(shù)據(jù)庫redis 存儲用戶的結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。并將整體服務(wù)端部署于開源的應(yīng)用容器引擎Docker 中,減少服務(wù)器性能開銷。校園服務(wù)平臺開發(fā)架構(gòu)圖如圖 2 所示。
圖2 :校園服務(wù)平臺開發(fā)架構(gòu)設(shè)計圖
用戶通過小程序界面進(jìn)行操作,借助微信小程序的ajax數(shù)據(jù)請求wx.request 方法將用戶的請求發(fā)送到服務(wù)器端,服務(wù)器端根據(jù)用戶操作做出響應(yīng)存儲數(shù)據(jù)或請求數(shù)據(jù)庫數(shù)據(jù),最后根據(jù)需求將數(shù)據(jù)返回至前端用戶界面;而后臺管理員可通過Web 端管理員界面查看小程序一些基本信息,如服務(wù)端請求頻次、總課程預(yù)約次數(shù)、總用戶人數(shù)等,并可于對應(yīng)界面對已有用戶的數(shù)據(jù)進(jìn)行審查、處理,以及對違反規(guī)定的用戶的權(quán)限和身份進(jìn)行限制等一系列操作。
根據(jù)需求分析,將整體項(xiàng)目主要分為三大板塊:學(xué)術(shù)分享交流板塊、學(xué)霸資格申請與預(yù)約板塊、小程序管理網(wǎng)站。校園服務(wù)平臺系統(tǒng)總體功能結(jié)構(gòu)圖如圖 3 所示。
圖3 :校園服務(wù)平臺系統(tǒng)總體功能結(jié)構(gòu)圖
在這一板塊中,用戶可以自主發(fā)表文章和圖片、分享、點(diǎn)贊、評論,并提供分類跳轉(zhuǎn)、內(nèi)容搜索關(guān)鍵字高亮、瀏覽記錄查詢等功能。為使文章更生動、更具備學(xué)術(shù)交流和參考價值,在內(nèi)容顯示中適配了表格、echarts 圖表、LaTex 數(shù)學(xué)公式、代碼語法高亮和Markdown 語法等??赏ㄟ^輸入對應(yīng)格式在文章詳情中顯示出對應(yīng)樣式。文章詳情界面如圖 4 所示。
圖4 :文章詳情界面
該板塊主要是給用戶提供一個渠道去預(yù)約校園內(nèi)學(xué)霸,以及為愿意幫助他人的學(xué)霸提供申請學(xué)霸申請界面和受理他人預(yù)約的界面。在預(yù)約申請發(fā)出后,作為臨時數(shù)據(jù)存儲在非關(guān)系數(shù)據(jù)庫redis 當(dāng)中。待學(xué)霸同意預(yù)約申請后將數(shù)據(jù)存入MySQL 當(dāng)中,并向預(yù)約人發(fā)送微信消息通知,此后在有效期內(nèi),預(yù)約人可在小程序?qū)?yīng)界面中獲取學(xué)霸的聯(lián)系方式,以此與學(xué)霸進(jìn)行交流。
該板塊是提供小程序管理員查看微信小程序數(shù)據(jù)的可視化界面。使用JWT 進(jìn)行管理員身份驗(yàn)證,減小數(shù)據(jù)量、加快傳輸速度。提供包括查看用戶行為、管理用戶身份、封禁用戶權(quán)限、管理用戶發(fā)布的信息內(nèi)容、增刪查改文章類別、查看小程序功能使用情況等在內(nèi)的一系列接口。方便管理員發(fā)布公告,更新平臺規(guī)則,查看、管理和維護(hù)小程序數(shù)據(jù)。同時設(shè)有意見反饋窗口,讓管理員可以通過用戶主動反饋的內(nèi)容進(jìn)行查看和回復(fù)。小程序信息管理界面如圖 5 所示。
圖5 :小程序信息管理界面
面對突如其來的疫情,“學(xué)霸零距離”微信小程序作為“互聯(lián)網(wǎng)+教育”的實(shí)現(xiàn),旨在貼合本校大學(xué)生切身學(xué)習(xí)需求,整合校園內(nèi)的各種教育教學(xué)資源,以信息化手段和服務(wù)為校內(nèi)學(xué)生提供一個優(yōu)質(zhì)的學(xué)習(xí)交流平臺?!皩W(xué)霸零距離”校園服務(wù)平臺作為一個基礎(chǔ)框架將在后期不斷迭代,引入大數(shù)據(jù)分析技術(shù)和算法,進(jìn)一步整合校園服務(wù)資源,提供更智能的校園服務(wù)平臺,助力大學(xué)生的自主學(xué)習(xí)。