一.項目概述
本項目的選課系統以微信小程序為平台,采用線上收集數據,實時收集數據,避免了線下調查收集的弊端,節約了資源。並且客戶群體大,市場大既能為廣大學生提供一個高質量的受教體驗,又能提高教學質量的機會。一方面,小程序完全是免費的一個平台,學生可以在手機上使用,完全不存在任何費用。另一方面,使用小程序存在便捷性,隨時隨地都已可以查看,不用使用電腦,這一定程度上也節約了我們的時間資源。
二、實現的相關技術
(1)雲函數
在微信開發者的雲開發平台上,我們不用通過太多的路徑,我們只需編寫我們的業務邏輯函數。並部署在雲端,在雲端運行的代碼,因為雲函數是在雲端運行的代碼,並且微信私有協議天然鑒權,所以以后開發者無需維護復雜的鑒權機制,並且也無需自己搭建和購買服務器,這樣就簡化了小程序后台的操作,輕松即可完成小程序后端的搭建,使我們更加便捷的完成微信小程序的開發。當我們要使用這些函數時,只需在對應的js頁面進行雲函數初始化。這樣的功能給開發一些小型項目能帶來便利以及實惠。
(2)微信開發者工具數據庫
這是微信開發者工具自帶的數據庫,我們可以通過調用數據庫提供的api直接對數據庫進行操作,也可以通過后台管理員對數據庫的數據進行導入和導出,但格式必須為json。當我們通過前端想對應數據表插入記錄時,數據庫還會自動幫我們生成一個_id字段,這是這條記錄的唯一標識,也會自動生成_openid字段,通過這個字段來唯一標識記錄是哪個用戶添加的。所以這個數據庫是一個既可在小程序前端操作,也能在雲函數中讀寫的 JSON 數據庫。
(3)微信開發者工具
微信開發者工作針對進行小程序開發的開發人員的開發工具,與其他開發工具類似,它也具有開發,預覽,調試等主要功能,但是還有很多功能不夠完善,用戶體驗一般[12]。在此工具中我們可以通過編輯wxml文件和xcss文件來渲染界面,相當於web開發中的.html文件和.css文件,通過.js文件和.json進行數據的處理。這也類似於web開發中的前端和后台。
(4)微信小程序開發文檔
微信小程序開發文檔是微信提供的一個學習文檔,里面包括了組件,框架,以及相關的API。我們可以通過調用相關的api得到自己想要的功能,例如請求服務器的api,獲取用戶信息的api。也有一些關於雲函數以及數據庫操作的教程,這些都可以讓開發人員盡快的上手小程序開發,為我們開發帶來的便攜性。
三、系統架構
本項目的基於MVC框架模式進行開發,即Model(模型)-View(視圖)-Controller(控制器):V即View視圖是指用戶看到並與之交互的界面。比如我們平時上網所見的由WXML和XCSS編寫而成的網頁界面,或者軟件app的用戶交互界面。要注意的是,在視圖層中其實沒有真正的處理發生,這交由其他兩層進行處理,它只是作為一種輸出數據並允許用戶操縱的方式。M即model模型是是應用程序中用於處理應用程序數據邏輯的部分。在MVC的三個部件中,模型擁有最多的處理任務。被模型返回的數據是中立的,模型與數據格式無關,具有復用性,這樣使得一個模型能為多個視圖提供數據,由於應用於模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重復性。C即controller控制器是指控制器接受用戶的輸入並調用模型和視圖去完成用戶的需求,控制器本身不輸出任何東西和做任何處理。它只是接收請求並決定調用哪個模型構件去處理請求,然后再確定用哪個視圖來顯示返回的數據。正是由於它的存在,使得視圖層與模型層能夠解耦合。
因此我們用一張直觀的圖來描述其三者之間的關系:
四、系統分析
4.1、系統功能模塊分析
該系統主要分為6個功能模塊,每個功能模塊都相互獨立,實現解耦合。
4.2、業務流程分析
(1)為課程添加評論和推薦的流程
(2)學生用戶查詢自己評論的流程圖
4.3、數據流程分析
(1)小程序主要功能的數據流程分析
五、數據庫設計
5.1、E-R圖設計
(1)課程評論與推薦小程序學生用戶主要功能的E-R圖設計如圖
(2)用戶實體,如圖
(3)課程實體,如圖
(4)院系實體,如圖
(5)評論實體,如圖
5.2、數據庫表設計
(1)學生用戶表
字段名 | 數據類型 | 代碼 | 主鍵 | 是否允許為null |
openid | varchar(50) | Openid | 是 | 否 |
用戶名 | varchar(50) | Nickname | 否 | 否 |
學號 | char(10) | Sno | 否 | 否 |
院系 | varchar(20) | Sdepartment | 否 | 否 |
電話號碼 | varchar(15) | Phonenumber | 否 | 是 |
專業 | varchar(20) | Major | 否 | 否 |
(2)評論表
字段名 | 數據類型 | 代碼 | 主鍵 | 是否允許為null |
openid | varchar(50) | openid | 是 | 否 |
評論內容 | varchar(255) | course_comment | 否 | 是 |
課程名稱 | varchar(20) | coursename | 否 | 否 |
(3)課程表
字段名 | 數據類型 | 代碼 | 主鍵 | 是否允許為null |
課程名稱 | varchar(20) | Coursename | 是 | 否 |
課程老師 | varchar(10) | Course_teacher | 否 | 否 |
課程學分 | Int(10) | Course_credit | 否 | 否 |
院系 | varchar(20) | Sdepartment | 否 | 否 |
六、系統部分實現圖
6.1、用戶首頁
用戶首頁包括課程搜索框,課程排行榜,院系選擇
6.2、課程評論圖
添加課程評論和推薦是此小程序最主要的功能模塊,推薦功能主要是一個推薦按鈕, 點擊即推薦此課程
6.3、個人主頁
個人主頁主要包括個人信息和歷史評論,其主要頁面如下圖
七、系統設計總結:
課程評價小程序是基於xwml,json,js,語言,利用微信開發者工具來進行系統編寫,動態頁面視圖通過JSP技術和xwml技術來實現。前端采用微信開發者工具的wxml語言,后台則是采用通過js文件中的函數進行數據處理,數據接口采用api技術,利用微信開發者工具自帶數據庫存取數據
(1)系統的基本功能
用戶操作頁功能包括授權登錄、首頁、用戶頁面、搜索課程評論、查看歷史評論、推薦課程、資料設置等。而本小程序主要是面向學生用戶,管理員只需執行用戶管理和數據管理即可,因此管理員的主要功能有用戶管理、課程、評論管理。
(2)詳細評論和推薦流程概述
①發布評論:當學生用戶想選課時,可以登錄小程序,選擇自己的院系和學號,或者用搜索框進行課程搜索,會出現自己可選的課程, 點擊課程即可以對課程進行評論。
②推薦:與上一個功能相似,點擊新建評論時,進入課程評論頁面,只需輸入課程部分字,后台調用模糊搜索的api進行課程搜索,則出現相應的課程列表,此時即可點擊推薦按鈕進行推薦