許錚 楊尚林 李旭芳(通訊作者)
(上海工程技術大學管理學院,上海 201620)
本系統依據當代大學生日常學習、娛樂等需求進行了詳細的分析,對于課程表、書籍推薦、二手書商店以及周邊學習娛樂場所等功能進行了設計與實現。學生們可以通過該系統將自己的課程表等信息按照節次與周次進行輸入,構建一個完整的課程表,以此方便查詢上課時間以及地點。而對于商家,他們可以在二手書商店中提供自己有庫存的二手書籍以提供給學生購買,為了方便商家與學生們進行溝通,本系統設計了好友聊天系統,讓學生與商家之間的消息能夠及時傳達。
根據需求分析,校園助手系統總體包括了推薦功能、課程表功能以及二手書店功能。其中推薦功能包括書籍推薦和周邊推薦;課程表功能中包括今日課程和課程設置,今日課程中有日歷打卡功能;二手書商店功能中包括二手書購買和好友聊天功能。
在推薦功能中,本系統通過對于學生已經輸入的課程表進行遍歷,以關鍵詞出現頻率高低的方式來猜測使用者當前應該被推薦的書籍,同時我們針對大學城附近的周邊進行了調查,以此為基礎設置了周邊推薦功能,以便捷使用者的日常生活需求。
在課程表功能中,本系統給使用者設置了簡約的錄入界面,讓使用者快速的創立自己的課程表,與此同時,本系統以用戶輸入的課程表為基礎,加上了對于周次的判斷,在首頁直接給使用者顯示今日的課程,讓用戶進入小程序的同時就能看到課程,大大節約了查詢課表的時間,同時本系統會根據用戶設置的課程表進行判斷,提供有效的題庫進行使用者進行選擇。同時,本系統會借助微信小程序所自帶的通知推送功能,在課程開始之前進行提醒,使用戶在上課之前可以得到即將進行的課程的上課位置與上課時間,從而減少可避免的遲到或是曠課等問題。
在二手書店功能中,本系統給學生設計了簡約的商場界面,其中包括了教輔書籍、課外書籍等等的分類以供使用者選擇,為了方便使用者和商家進行溝通,本系統設置了好友聊天功能,讓消息及時傳達。
優秀的數據庫既可以做到實現減少大量數據所占據的內存空間,大大節省資源空間,保證對大量數據進行調用的時的速度優勢,又可以在進行數據操作時保證數據的有效性和數據的一致性。依據微信小程序中的功能需以及所需要的后端存儲的數據內容,得出實體聯系圖(E-R 圖),如下圖1 所示。
再在經由關系模型轉換、三級范式優化等之后,借由SQL server 實現數據庫。通過SQL server 建立的關系型數據庫,主要包含用戶表、課程表、書籍推薦表、日歷打卡表、周邊推薦場所表、題庫習題搜索表等。并根據以下四點實現更全面與完善的數據庫:
(1)篩查各表之間的邏輯存儲聯系以建立最合適的主鍵來減少運行時的冗余度、提高數據庫可靠性。
(2)根據主鍵與外鍵之間的從屬關系完成表與表之間的數據完整性約束驗證。
(3)將主鍵列和搜索頻繁的列相互聯系、建立索引,在此紙上實現物理排序,從而提升運行速度。
(4)以合理設計、成熟編寫的存儲方式來提高調用數據時的安全性從而減少產生錯誤的風險。
本系統基于微信小程序平臺所打搭建的框架,在此基礎上加入擴展層,以盡可能減少代碼重用。系統前端開發使用的是AJAX 技術,綜合應用了wxml、wxss、JavaScript 框架等技術實現簡潔的頁面布局與快速的刷新響應。后端開發使用Visual Studio 2013 集成 開發工具,基于微信小程序的開發框架、采用 Python 編程語言、SQL SERVER 數據庫等微軟的一系列技術,選擇 IIS7 為其應用服務器。
1.課程表的設置和顯示
本功能是由使用者對于課程表總體的設置以及在前端頁面的顯示。在課程表設置當中使用了微信小程序自帶的緩存功能,在設置環節輸入結束后就以緩存的形式保存在小程序之中,當使用者打開課程表時,緩存即會覆蓋原先的數組,并且在頁面當中即時顯示。
課程表的顯示部分采用對于JS 頁面設置的數組的循環遍歷,通過簡單的對于數組數值是否為空進的判斷,將數組中的信息通過合理的排列顯示在前端,顯示圖片入下圖2 所示。
2.書籍推薦
書籍推薦功能是基于使用者輸入的課程表來進行一系列判斷的。在用戶輸入完整個課程表之后,書籍推薦功能會將整個課程表進行一次循環遍歷,以關鍵詞的方式記錄下使用者當前的課程模式與習慣,完成遍歷后將關鍵詞數組傳遞給后端,從后端服務器中尋找最符合當前使用者閱讀的書籍,并且傳回前端在頁面當中顯示。為減輕服務器在傳遞過程與書籍推薦計算時與使用者前端的交互壓力,本頁面采用AJAX 技術,通過調用微信小程序云函數實現迅速響應。部分匹配算法實現代碼如下:
if(wlist){for(i=1;i<=num;i++){for (that.data.num_1=0;that.data.num_1 3.二手書商店 二手書商店功能是通過前后端交互進行實現的,在用戶于二手書商店選購的同時,我們會將使用者勾選的商品以本地緩存的形式傳遞到購物車界面當中,以微信平臺自帶的支付接口將使用者的訂單信息傳遞給后端并且進行安全的支付功能。每個使用者在上傳訂單信息時都將在服務器上創建對應的進程,如果同時有很多的使用者一同提交訂單,可能導致服務器的CPU 占用率過高,超負荷死機。因此我們通過配置IIS 服務器參數來解決。將二手書商店設置為獨立的應用程序池,最大 CPU使用率 50%,刷新 CPU 時間 1 分鐘,最大工作進程數 1,關閉和啟動時間間隔 10秒,設置內存占用超過 800M 就自動回收內存,這樣我們就能在一個壓力較小的情況下進行訂單的傳遞,不會導致整個服務器崩潰。 4.題庫搜索 題庫搜索功能類似于書籍推薦功能,同樣是基于使用者輸入的課程表來進行一系列判斷的。題庫搜索功能將通過對用戶所輸入課程表的內容,在后端服務器中搜索該使用者所進行的當前課程有關的大量習題,并通過題庫中習題與使用者全部課程的相關度進行篩選,并將其傳遞至前端頁面,實現在小程序中題庫搜索的功能。本頁面同樣采用了AJAX 技術以減小前后端交互壓力,通過小程序云函數提高運算與界面顯示速度。 基于微信小程序功能實現的校園助手,可以較為方便讓用戶(學生)進行一些校園日常生活中的活動,它既能根據使用者設置的課程表為使用者提供所需要的教輔資料與練習題庫,又能提供包括娛樂地點、自習位置等多元化的周邊場所介紹等。此外,基于微信小程序實現的通知系統則可以以較為簡單便捷的方式實現上課提醒,從而減少因疏忽導致的遲到、曠課等行為,該系統可以較好地幫助教室減少遲到率,幫助學生提升校園生活感受。四、總結