版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGEI基于SpringBoot的“在線學習”平臺設計與實現(xiàn)摘要當今時代是對知識需求大的時代,各個職業(yè)都需要相應的知識學習。求學者一般的求學方式是參加線下課程,而線下課程需要考慮地點、時間等因素,在當今生活節(jié)奏快、壓力大的時代,顯然傳統(tǒng)的求學方式大大增加了求學者的求學難度。但現(xiàn)如今,出現(xiàn)了“在線學習”這一種求學方式,“在線學習”方式相比傳統(tǒng)的求學方式具有多種好處。對求學者來說,通過“在線學習”可以選擇合適的時間進行學習,以自己最有精力的狀態(tài)進行學習,讓求學者學習效率更高,而對運營者來說可以獲得可觀收益讓平臺可持續(xù)發(fā)展,且“在線學習”平臺通過“在線學習”的方式也響應了國家防疫要求,該系統(tǒng)的實施具有一定的社會價值與意義。本系統(tǒng)以MySQL作為數(shù)據(jù)庫,Vue為前端框架,基于SpringBoot、Mybatis-Plus等后端框架,使用Java語言設計和實現(xiàn)了“在線學習”平臺。用戶可以在該平臺選擇自己喜歡的課程,觀看免費課程或購買付費課程,也能對課程進行評論,點擊喜歡該課程、該講師,對平臺進行一定的反饋幫助運營者更好地運營。而平臺的運營者可以在后臺管理系統(tǒng)對課程、講師進行相應管理,可以查詢出平臺的收入,也能對用戶的反饋行為進行統(tǒng)計分析,方便運營者進行更好地決策。[關鍵詞]:在線學習;求學者;課程;社會價值目錄TOC\o"1-3"\h\u摘要 IAbstract II1緒論 11.1選題意義及選題目的 11.2研究現(xiàn)狀 21.3研究框架 22主要技術支持 32.1SpringBoot+Mybatis-Plus 32.2MySQL 32.3Nacos+Gateway+Elasticsearch 42.4Vue 43系統(tǒng)分析 53.1需求分析 53.1.1技術可行性 53.1.2經(jīng)濟可行性 53.1.3社會可行性 53.2功能需求分析 63.3系統(tǒng)體系架構 84系統(tǒng)設計 104.1系統(tǒng)功能模塊設計 104.1.1用戶登錄功能設計 114.1.2管理員創(chuàng)建課程功能設計 114.1.3管理員查看、修改課程信息功能設計 124.1.4課程支付功能設計 134.1.5課程喜歡、評論功能設計 144.1.6用戶行為統(tǒng)計功能設計 154.1.7平臺收入展示功能設計 164.2系統(tǒng)數(shù)據(jù)庫設計 174.2.1數(shù)據(jù)庫設計原則 174.2.2概念結構設計 174.2.3邏輯結構設計 194.2.4物理結構設計 204.3本章小結 275系統(tǒng)實現(xiàn) 275.1登錄 275.1.1普通用戶登錄 275.1.2后臺管理員登錄 295.2普通用戶模塊的實現(xiàn) 295.2.1首頁展示 295.2.2課程支付 325.2.3課程播放 345.2.4課程評論 355.2.5點擊喜歡課程與喜歡講師 365.3后臺管理員模塊的實現(xiàn) 365.3.1查看課程與管理課程 365.3.2查看與管理后臺管理員、管理員角色 395.3.3查看講師與管理講師 405.3.4查看用戶行為統(tǒng)計 415.3.5查看平臺收入 425.4本章小結 436系統(tǒng)測試 436.1系統(tǒng)測試目的 436.2系統(tǒng)測試方法 436.3功能測試 436.4系統(tǒng)測試小結 447結論 45參考文獻 46PAGE21緒論1.1選題意義及選題目的當今時代是對知識需求大的時代,各個職業(yè)都需要相應的知識學習。求學者一般的求學方式是參加線下課程,而線下課程需要考慮地點、時間等因素,若地點離求學者所在地太遠,將導致求學者需要花費大量的時間在前往課堂的路途上,且也需要花費大量金錢在路途上;若因事而無法出勤,便錯過本節(jié)內容,無法重現(xiàn)講師授課內容。在當今生活節(jié)奏快、壓力大的時代,顯然傳統(tǒng)的求學方式大大增加了求學者的求學難度[1]。但現(xiàn)如今,出現(xiàn)了“在線學習”這一種求學方式,“在線學習”方式相比傳統(tǒng)的求學方式具有多種好處。從求學者的角度,通過“在線學習”,求學者可以選擇合適的時間進行學習,以自己最有精力的狀態(tài)進行學習,顯然學習更加的高效;并且通過“在線學習”,減少了花費在前往線下課堂的路途中的金錢與時間,該種求學方式對求學者更加的友好。從該“在線學習”平臺的運營者的角度來說,當今網(wǎng)絡科技發(fā)達,能較輕松完成該平臺的服務器開發(fā),所需的開發(fā)資金也不會太高;另一方面,通過該平臺的運營,運營者不僅滿足廣大求學者的求學需求,也可以獲得一定收益,將該收益使用的平臺的維護上,可以讓“在線學習”平臺可持續(xù)發(fā)展下去。從當前疫情的角度,疫情仍然不容樂觀,每個人都應該支持防疫,不應該放松警惕,顯然線下授課的方式不適合當前的社會形勢,課堂擁擠且學員人數(shù)眾多,不符合國家號召的“不扎堆”、“不聚集”防疫要求。而通過“在線學習”的方式,講師與學員,學員與學員之間都是零接觸,響應了國家對防疫的要求,“在線學習”平臺能為國家防疫出一份力。綜上所述,“在線學習”平臺具有開發(fā)與實施的價值與意義,既能滿足廣大求學者的求學需求,降低求學者的求學壓力,又能讓平臺運營者獲得可觀收益讓平臺可持續(xù)發(fā)展,且在當前特殊社會形勢上,能為國家防疫貢獻出一份力量。1.2研究現(xiàn)狀當今互聯(lián)網(wǎng)技術快速發(fā)展,促進了中國一股“在線學習”的浪潮,各類也都“在線學習”平臺紛紛出現(xiàn)。以慕課網(wǎng)為例,慕課網(wǎng)自2013年上線以來,一直專注于IT在線教育領域,以培養(yǎng)優(yōu)秀互聯(lián)網(wǎng)人才為方向,如今獲得了巨大的成功,用戶數(shù)超2150萬,合作講師1500+,自制課程超過3000門,用戶群體包含業(yè)界各類人士[2]。在疫情期間,互聯(lián)網(wǎng)巨頭騰訊也推出了騰訊課程此款“在線學習”平臺,課程包含免費也包含付費,采用直播或錄播進行教學,也在業(yè)界產(chǎn)生了一定的影響力,產(chǎn)出了一批優(yōu)秀學生。但該類“在線學習”平臺也存在一定的問題,一方面是各類網(wǎng)絡課程十分繁雜,所涉及的專業(yè)的內容過多,沒進行細致分類的話容易導致求學者無從選擇。且在網(wǎng)站里的課程宣傳廣告過多,不僅影響視線,且求學者也容易被廣告詞誤導選擇錯誤的課程。另一方面是網(wǎng)絡環(huán)境容易受限,偏遠山區(qū)的求學者由于本地的網(wǎng)絡狀況相對差,不能體驗到流暢的學習服務,學習效率并不高,另外就是此類平臺在課程播放高峰期會出現(xiàn)網(wǎng)絡卡頓現(xiàn)象,課程視頻加載慢,此時的學習體驗不友好[3]。1.3研究框架總體上看,本論文大致分為七個部分。第一部分是緒論,主要是對論文選題的背景、研究現(xiàn)狀、研究的意義、方法和思路等方面的概述;第二部分是對本系統(tǒng)使用到的前后端技術進行介紹;第三部分是對系統(tǒng)進行相應的分析,如系統(tǒng)的可行性分析、系統(tǒng)需求分析等,得出相應的結論;第四部分是系統(tǒng)的總體結構設計,如系統(tǒng)的系統(tǒng)功能結構設計、系統(tǒng)數(shù)據(jù)庫設計、系統(tǒng)流程設計等;第五部分是系統(tǒng)實現(xiàn),主要對普通用戶模塊、管理員模塊的主要功能進行介紹與分析;第六部分是系統(tǒng)的調試與測試部分;最后是總結部分,包括開發(fā)系統(tǒng)過程中的經(jīng)驗總結、致謝以及參考文獻的介紹等。2主要技術支持2.1SpringBoot+Mybatis-PlusSpringBoot框架是目前流行的Java后端開發(fā)框架,簡化了Spring框架搭建環(huán)境時需要的各種繁瑣配置,極大地提高了開發(fā)效率;其通過SpringBootStarter版本管理器,對項目依賴的jar版本進行管理,無需開發(fā)者手動管理依賴jar包版本,只要升級版本管理器的版本號,其依賴的jar依賴也會隨著升級;SpringBoot也內置了嵌入式的Tomcat服務器,啟動SpringBoot時不用配置Tomcat的相關信息,開發(fā)過程中也無需過度關注Tomcat服務器,讓開發(fā)者更專注于產(chǎn)品的業(yè)務開發(fā)[4]。Mybatis-Plus是一款Mybatis的增強工具,在Mybatis功能的基礎上提供了大量的增強功能,用來提供開發(fā)效率[5]。其具有無侵入的特點,不會原有的Mybatis框架產(chǎn)生影響;提供了強大的CRUD操作,基本可直接使用方法進行對單表的各種操作,而無需手寫SQL語句來執(zhí)行;內置了代碼生成器,傳統(tǒng)三層架構的Module層、Mapper層、Service層,可通過該代碼生成器直接生成,極大地簡化了代碼的編寫。2.2MySQLMySQL是一款安全、高效、跨平臺的關系型數(shù)據(jù)庫,許多企業(yè)都使用MySQL來降低企業(yè)成本,是目前市面上較流行、使用廣泛的數(shù)據(jù)庫之一,其擁有以下的特點:(1)功能強大MySQL擁有多種數(shù)據(jù)庫引擎可供用戶選擇,用戶可以選擇特定的數(shù)據(jù)庫引擎用來適應特定的應用場景,提高系統(tǒng)性能。且MySQL支持事務、存儲過程、觸發(fā)器、視圖等,擁有十分完善的功能[6]。(2)運行速度快 MySQL使用了索引壓縮和速度極快的B樹磁盤表來提高速度,且SQL語句執(zhí)行時采用內置的優(yōu)化器對SQL語句進行性能優(yōu)化,使其執(zhí)行的速度更加快速。(3)成本低 MySQL相對于其他收費的數(shù)據(jù)庫,開源且免費是其巨大的優(yōu)勢,用戶可免費地將MySQL使用于自己的產(chǎn)品中。(4)支持多種語言 MySQL為多種語言提供了連接與操作支持,為它們提供了豐富的API可用來靈活地操作MySQL,支持的語言有包括Java、Python、C、C++、PHP等語言。2.3Nacos+Gateway+ElasticsearchNacos致力于為微服務提供服務發(fā)現(xiàn)、服務配置、服務管理等的功能,不僅可作為注冊中心,也可作為配置中心。采用Nacos這款中間件,能使微服務架構下的各種服務,更好地被訪問與管理。Gateway是SpringCloud提供的網(wǎng)關技術,提供了路由、限流、監(jiān)控等功能,也可使用Gateway進行認證授權,對用戶的請求進行過濾與轉發(fā)。在微服務架構下,使用Gateway可將各服務需要的認證授權,都提前在Gateway這一層進行實現(xiàn),降低了各服務的訪問壓力。Elasticsearch是一款非關系型數(shù)據(jù)庫,其內置了強大的搜索引擎,相對于其他關系型數(shù)據(jù)庫,可對非結構化進行快速地檢索,效率十分地高效;且Elasticsearch可于Kibana、Logstash配合使用,組成ELK日志分析系統(tǒng),對系統(tǒng)產(chǎn)生的日志進行收集與分析[7]。2.4VueVue是一套前端框架,可用于構建美觀、操作靈活的前端頁面,是目前較流行的前端開發(fā)技術。Vue可以進行組件化開發(fā),使頁面中應用到的各種模塊拆分成一個個單獨的組件,不僅使代碼量大大減少,也使得閱讀者更容易理解,提高了代碼的可維護性。Vue也擁有雙向數(shù)據(jù)綁定的特點,能自動對頁面中某些數(shù)據(jù)的變化,同步地做出相應的響應,并且可以根據(jù)用戶已設置的綁定關系,對所有綁定在一起的視圖和數(shù)據(jù)都進行同步地修改,十分的靈活[8]。3系統(tǒng)分析3.1需求分析3.1.1技術可行性開發(fā)方面本系統(tǒng)采用簡化開發(fā)的后端框架,如SpringBoot、Mybatis-Plus,大大簡化了開發(fā)的流程,不用配置繁瑣的配置文件,也無需導入過多的依賴;且這些框架集成了全面的異常報錯信息,出現(xiàn)bugs也能根據(jù)異常提示,快速定位到問題所在,快速地開發(fā)產(chǎn)品、完善產(chǎn)品。部署方面本系統(tǒng)采用前后端分離開發(fā),只需開發(fā)完后,對前后端進行打包處理,就可準備部署到云端服務器,如阿里云、騰訊云服務器。我們需要先在服務器配置相應環(huán)境,本次系統(tǒng)需要配置JDK8.0環(huán)境、MySQL5.7數(shù)據(jù)庫、Elasticsearch7.3.2、Kibana7.3.2等,可以使用寶塔面板來方便配置安裝需要的環(huán)境,因為是可視化的軟件,配置安裝環(huán)境也特別的方便。接下來只需要把相應的jar包存入Tomcat服務器,導入相應的數(shù)據(jù)庫數(shù)據(jù),啟動系統(tǒng)即可完成部署工作。3.1.2經(jīng)濟可行性“在線學習”平臺采用的框架都是開源產(chǎn)品,且開發(fā)過程中需要掌握的知識也可在官方提供的介紹文檔中學習,無需付費學習、使用。而部署時,阿里云或騰訊云服務器也為學生提供了各種各樣的優(yōu)惠套餐。對于還在校園里的大學生開發(fā)者而言,本系統(tǒng)的研發(fā)不必投入過多的研究經(jīng)費,具有很高的經(jīng)濟可行性。3.1.3社會可行性本系統(tǒng)面向廣大的求學者,為求學者提供一個在線的學習平臺,通過“在線學習”,求學者可以選擇合適的時間進行學習,讓求學者學習更加的高效、更加的自由;本系統(tǒng)也為平臺的運營者帶來了可觀收益,可以讓“在線學習”平臺可持續(xù)地發(fā)展下去;且該系統(tǒng)的實施能在當前疫情環(huán)境下,響應國家號召的“不扎堆”、“不聚集”防疫要求,為國家防疫出一份力,具有很高的社會可行性。3.2功能需求分析普通用戶模塊功能需求分析圖3.1普通用戶模塊功能用例圖普通用戶的功能主要實現(xiàn)登錄注冊與課程相關的播放、支付、評論等功能。用戶根據(jù)手機號作為賬號,經(jīng)過短信驗證碼的驗證后,設置密碼即可注冊個人賬戶;用戶根據(jù)賬號和密碼登錄,登錄之后也可在個人中心進行注銷退出。用戶進入課程列表頁面,可以查看所有的課程分類,選擇特定的課程分類后,即可查看該分類下的所有課程;選擇課程后進入課程詳情頁,若是付費的課程,需要用戶支付后才可觀看課程視頻,若是免費課程,用戶可以直接觀看;在課程詳情頁下用戶可進行評論,和其他用戶進行課程交流。用戶若對某個課程感興趣可以點擊喜歡,后臺會保存該記錄,用戶可在喜歡的課程列表上,查看自己喜歡的課程;若用戶對該課程的講師感興趣,也可點擊喜歡該講師,成為該講師的粉絲,后臺通過求學者對某種課程、某位講師的喜歡行為,可以分析出哪個課程分類、哪個課程的需求量更大、哪位講師更受歡迎,這也能幫助運營者開展下一課程錄制的決策。用戶也可成為會員來支持平臺,而成為會員也可觀看會員特有的課程;用戶對平臺有建議可以進行投訴建議,幫助“在線學習”平臺更好地發(fā)展。普通用戶模塊功能用例圖如圖3.1所示。后臺管理員模塊功能需求分析圖3.2后臺管理員模塊功能用例圖后臺管理員的功能主要實現(xiàn)對課程、講師的錄入與管理、對系統(tǒng)管理員與角色的管理、用戶行為分析與平臺收入展示、投訴建議展示。后臺管理員可以在管理后臺對課程與講師進行錄入。首先平臺運營者與講師開展合作,講師錄制課程后交付給平臺運營者,獲得課程資源后,后臺管理員對講師信息進行錄入,介紹該講師的基本信息,表明課程的質量。接著進行相應課程錄入,其中課程分為公開課、體驗課、收費課、會員課。公開課為完全免費課程,旨在為平臺吸引流量,提高平臺知名度;體驗課也為免費課程,課程定向是講師對某個知識模塊的教學,旨在讓求學者提前感受講師針對某個模塊的教學質量,建立講師的粉絲群體,再引流粉絲到講師的收費課程;收費課為某講師對某一知識的全面解讀;會員課為會員特有課,課程內容為各個行業(yè)精英的經(jīng)驗分享,該課程的開展旨在建立平臺的粉絲群體,讓平臺擁有更多的忠實用戶。課程的基本信息與資源上傳后,對課程進行定價后發(fā)布。而錄入課程與講師相關信息后,也可在管理頁面對兩者進行修改與管理。系統(tǒng)的超級管理員可以創(chuàng)建管理后臺的賬戶與角色,如課程管理員、普通管理員,也可修改管理員賬號所擁有的功能菜單。系統(tǒng)后臺具有用戶行為統(tǒng)計分析的功能,用戶對某一課程的喜歡、對某一講師的喜歡,該種行為都會被后臺記錄后進行統(tǒng)計分析,可視化地把數(shù)據(jù)展示出來,讓運營者更好地了解哪一課程分類、哪一課程需要量更大,幫助運營者開展下一課程錄制的決策[9]。用戶對付費課程的支付會作為平臺收入的數(shù)據(jù),記錄在數(shù)據(jù)庫中,在平臺收入的相關頁面進行展示;用戶對“在線學習”平臺的投訴建議也會被系統(tǒng)后臺進行收集,可視化地進行展示。后臺管理員模塊的功能用例圖如圖3.2所示。3.3系統(tǒng)體系架構本系統(tǒng)采用B/S架構,用戶根據(jù)瀏覽器訪問本系統(tǒng),各功能模塊的搭建采用微服務風格,彼此互不依賴,系統(tǒng)的架構圖如圖所示:.圖3.4系統(tǒng)架構圖系統(tǒng)模塊系統(tǒng)模塊共有7大部分,分為系統(tǒng)服務、訂單服務、認證中心服務、統(tǒng)計服務、對象存儲服務、視頻點播服務、短信服務,各個服務共同組成系統(tǒng)的核心模塊,其中系統(tǒng)服務包含課程與講師的基本管理、對管理員和角色的管理。存儲數(shù)據(jù)模塊本系統(tǒng)采用MySQL作為主要的數(shù)據(jù)存儲以存儲系統(tǒng)的基本數(shù)據(jù),對表中某些常用的字段使用索引設計,以提高數(shù)據(jù)庫查詢速度;系統(tǒng)中需要上傳的圖片、視頻,統(tǒng)一上傳到阿里云的對象存儲服務與視頻點播服務,而對圖片的訪問只需根據(jù)url訪問即可,對視頻的訪問只要根據(jù)url和視頻播放器播放即可。收集數(shù)據(jù)模塊收集數(shù)據(jù)模塊由緩存數(shù)據(jù)庫、用戶行為統(tǒng)計展示中心組成。系統(tǒng)首頁的數(shù)據(jù)作為熱點數(shù)據(jù),收集存儲到緩存數(shù)據(jù)庫里,訪問首頁時直接從緩存里獲取數(shù)據(jù),以減少數(shù)據(jù)庫壓力;用戶的行為數(shù)據(jù)統(tǒng)一收集到用戶行為統(tǒng)計展示中心,其中Elasticsearch用來存儲數(shù)據(jù),Kibana對數(shù)據(jù)進行可視化展示。服務注冊中心與網(wǎng)關中心服務注冊中心使用Nacos中間件,系統(tǒng)模塊的各個服務都需注冊到該注冊中心;而網(wǎng)關中心使用SpringCloud開源的Gateway技術,用戶訪問系統(tǒng)需經(jīng)過網(wǎng)關中心的認證授權,且網(wǎng)關中心也可對用戶請求的數(shù)據(jù)進行過濾清洗,以提高系統(tǒng)的安全性。4系統(tǒng)設計4.1系統(tǒng)功能模塊設計本系統(tǒng)設計和實現(xiàn)以下功能:用戶模塊此模塊主要功能有:查看課程與分類、課程支付、課程播放、課程評論、成為會員、點擊喜歡課程、點擊喜歡講師、登錄注冊等。管理員模塊此模塊主要功能有:導入課程分類、查看課程、管理課程、查看講師、管理講師、查看管理員與角色、管理管理員與角色、查看用戶行為統(tǒng)計、查看平臺收入、查看投訴建議等。系統(tǒng)功能結構圖如圖4.1所示。圖4.1系統(tǒng)功能結構圖4.1.1用戶登錄功能設計.圖4.2用戶登錄功能流程圖用戶第一次登錄本系統(tǒng)時需進行用戶注冊,首先輸入賬號密碼,且通過手機驗證碼的驗證后才可進行注冊。注冊成功后,用戶點擊登錄選項,輸入賬號密碼,系統(tǒng)獲取用戶的賬號,從數(shù)據(jù)庫已注冊用戶表中判斷該用戶是否已注冊,若該用戶已注冊,則驗證密碼是否正確,若驗證成功則生成用戶信息token,該token會攜帶在每次用戶請求中,用來驗證本次請求是否是已登錄用戶的請求。流程圖如圖4.2所示。4.1.2管理員創(chuàng)建課程功能設計管理員進入課程創(chuàng)建頁面,首先需選擇課程分類,輸入課程名稱、課程介紹、課程講師等相關信息;后需為本課程添加章節(jié),添加章節(jié)標題與具體介紹后,為該章節(jié)添加小節(jié),每個小節(jié)以視頻形式進行展示,故需為每個小節(jié)上傳視頻;以上操作完成后,系統(tǒng)會判斷本次創(chuàng)建的相關信息的合法性,如某些內容是否沒有輸入,視頻是否上傳失敗等;若系統(tǒng)判斷合法后,會將課程相關的信息持久化到數(shù)據(jù)庫,本次創(chuàng)建課程完成。流程圖如圖4.3所示。圖4.3管理員創(chuàng)建課程功能流程圖4.1.3管理員查看、修改課程信息功能設計管理員進入課程管理列表頁面,選擇特定課程進行查看,若要對該課程進行操作,有修改、刪除兩個操作類型可供選擇。若選擇修改操作,需對相關內容進行修改寫入,系統(tǒng)會檢驗修改內容的合法性,如是否不滿足相應字數(shù)約束;檢驗合法后會將修改后的課程信息上傳到數(shù)據(jù)庫,將課程相關信息進行更新。若選擇刪除操作,系統(tǒng)會提示是否確認刪除,以免誤操作,確認刪除后會將該課程在數(shù)據(jù)庫的狀態(tài)信息修改為失效。流程圖如圖4.4所示。.圖4.4管理員查看、修改課程信息功能流程圖4.1.4課程支付功能設計用戶在課程列表頁面,選擇特定課程進入課程詳情頁面后,系統(tǒng)后臺會查詢該課程是否為付費課程;若是免費課程,課程詳情頁面會顯示播放按鈕,用戶可直接點擊該按鈕觀看視頻;若是付費課程,系統(tǒng)會抓取存儲在瀏覽器中的用戶token信息,傳輸?shù)胶笈_的查詢接口,接著從數(shù)據(jù)庫訂單表中查詢該用戶是否購買過該課程;若用戶未購買,課程詳情頁面會顯示購買按鈕,用戶需點擊后進行購買,支付成功后,該用戶即可觀看視頻,且以后觀看本課程,課程詳情頁面會直接顯示播放按鈕。流程圖如圖4.5所示。圖4.5課程支付功能流程圖4.1.5課程喜歡、評論功能設計用戶進入課程詳情頁面后,可對該課程進行喜歡操作,若已喜歡過該課程則提示已喜歡過該課程;用戶也可在課程詳情頁面對課程進行評論操作,用戶需要在頁面的尾端的評論窗口,輸入評論內容,發(fā)布評論成功后,系統(tǒng)會更新數(shù)據(jù)庫數(shù)據(jù)后更新課程的評論頁面。流程圖如圖4.6所示。圖4.6課程喜歡、評論功能流程圖4.1.6用戶行為統(tǒng)計功能設計用戶在課程詳情頁面對某個講師、對某個課程進行點擊喜歡,該用戶行為會被系統(tǒng)后臺進行記錄;管理員進入用戶行為統(tǒng)計頁面后,后臺會根據(jù)用戶的行為數(shù)據(jù),統(tǒng)計出某個課程分類、某個課程、某個講師的喜歡數(shù),并通過餅狀圖、柱狀圖的形式進行展示。流程圖如圖4.7所示。.圖4.7用戶行為統(tǒng)計功能流程圖4.1.7平臺收入展示功能設計對于付費課程,用戶支付成功后會生成訂單數(shù)據(jù),記錄某用戶對哪個課程已支付成功,并存儲到數(shù)據(jù)庫進行保存;管理員進入平臺收入展示頁面,后臺會根據(jù)存儲在數(shù)據(jù)庫的訂單表數(shù)據(jù),統(tǒng)計分析出每個月平臺的課程收入,通過折線圖的形式展示出來。流程圖如圖4.8所示。圖4.8平臺收入展示功能流程圖4.2系統(tǒng)數(shù)據(jù)庫設計4.2.1數(shù)據(jù)庫設計原則針對“在線學習”平臺的功能需求與其的開發(fā)使用環(huán)境,需遵循以下設計原則進行數(shù)據(jù)庫設計:(1)特定命名規(guī)則不管是數(shù)據(jù)庫表,或是數(shù)據(jù)庫表中的字段都應該有其特定的名稱設計,以代表該表、該列所具有的獨特屬性,其中表中的字段也應具有不可再分的屬性,這也符合數(shù)據(jù)庫設計的第一范式。同時本系統(tǒng)的數(shù)據(jù)庫表設計、字段設計使用蛇行命名法,名稱中的多個英文單詞以“_”隔開,方便閱讀其功能屬性,也使名稱設計得更加美觀。(2)一對一設計原則進行數(shù)據(jù)庫設計時,應當遵循一對一設計原則[10]。該設計原則可以減少創(chuàng)建多余的表,如一個課程表只對應一個課程分類表,而不是某些分類需要對應到其他課程分類表,這樣設計降低了數(shù)據(jù)庫表的復雜度,也方便進行SQL語句編寫。(3)雙向使用原則該原則由兩大原則組成,分別為索引功能原則[11]、事務使用原則。其中索引功能原則要求對合適的表字段使用索引設計,如主鍵索引、普通索引、唯一索引等,用來提升數(shù)據(jù)查詢的速度、提高用戶的查詢體驗度;事務使用原則可以保證多個數(shù)據(jù)庫操作的事務原子性,即確保多個數(shù)據(jù)庫操作要么都完成,要么都不完成,確保數(shù)據(jù)的安全性。4.2.2概念結構設計本系統(tǒng)共包含以下數(shù)據(jù)庫實體,普通用戶、管理員、角色、管理員與角色、權限、角色與權限、課程分類、課程、課程章節(jié)、課程小節(jié)、課程評論、講師、訂單、支付日志、用戶所喜歡講師、用戶所喜歡課程。以上的數(shù)據(jù)庫視圖分別對應圖4.9至圖4.24所示,數(shù)據(jù)庫E-R圖如圖4.25所示。圖4.9普通用戶實體屬性圖4.10普通管理員實體屬性圖4.11角色實體屬性圖4.12管理員與角色實體屬性圖4.13權限實體屬性圖4.14角色與權限實體屬性圖4.15課程實體屬性圖4.16課程分類實體屬性圖4.17課程章節(jié)實體屬性圖4.18課程小節(jié)實體屬性圖4.19課程評論實體屬性圖4.20講師實體屬性圖4.21訂單實體屬性圖4.22支付日志實體屬性圖4.23用戶所喜歡講師實體屬性圖4.24用戶所喜歡課程實體屬性圖4.25“在線學習”平臺數(shù)據(jù)庫E-R圖4.2.3邏輯結構設計通過以上的數(shù)據(jù)庫實體屬性設計,可將該概念模型轉換為關系型邏輯模型,從而進行邏輯結構設計,具體如下所示(實體用加粗字體表示,主鍵用下劃線表示):普通用戶(用戶id、手機號、密碼、昵稱、性別、年齡、頭像、是否禁用、邏輯刪除)。管理員(管理員id、密碼、昵稱、用戶頭像、邏輯刪除)。角色(角色id、角色名稱、角色編碼、備注、邏輯刪除)。管理員與角色(表id、管理員id、角色id)。權限(權限id、所屬上級、名稱、類型、訪問路徑、狀態(tài)、邏輯刪除)。角色與權限(表id、角色id、權限id)。課程分類(課程分類id、分類名稱、上級分類id、排序號)。課程(課程id、講師id、課程分類id、課程分類上級id、標題、售價、總課時、封面圖路徑、銷售數(shù)量、邏輯刪除)。課程章節(jié)(章節(jié)id、課程id、章節(jié)名稱、排序號)。課程小節(jié)(課程小節(jié)id、課程id、章節(jié)id、小節(jié)標題、視頻資源地址、排序號、播放次數(shù)、狀態(tài)值)。課程評論(評論id、課程id、講師id、用戶id、昵稱、頭像、評論內容、邏輯刪除)。講師(講師id、講師姓名、簡介、頭銜、頭像、排序號、邏輯刪除)。訂單(訂單id、課程id、講師id、用戶id、訂單金額、訂單狀態(tài))。支付日志(日志id、支付金額、交易流水號、交易狀態(tài)、邏輯刪除)。用戶所喜歡講師(表id、用戶id、講師id)。用戶所喜歡課程(表id、用戶id、課程id)。4.2.4物理結構設計通過以上的概念結構設計、邏輯結構設計,下一步進行物理結構設計,共有16個數(shù)據(jù)庫表,分別為普通用戶表、管理員表、角色表、管理員與角色表、權限表、角色與權限表、課程分類表、課程表、課程章節(jié)表、課程小節(jié)表、課程評論表、講師表、訂單表、支付日志表、用戶所喜歡講師表、用戶所喜歡課程表,相關表如下所示:普通用戶表的設計數(shù)據(jù)庫中的ucenter_member表如表4.1所示:表4.1ucenter_member表字段名數(shù)據(jù)類型是否主鍵描述idchar是用戶idmobilevarchar否手機號passwordvarchar否密碼nicknamevarchar否昵稱sextinyint否性別(1女,2男)agetinyint否年齡avatorvarchar否用戶頭像is_disabledbit否邏輯刪除(0未刪除,1已刪除)t_createdatetime否創(chuàng)建時間t_updatedatetime否更新時間課程表的設計數(shù)據(jù)庫中的learn_course表如表4.2所示:表4.2learn_course表字段名數(shù)據(jù)類型是否主鍵描述idchar是課程idteacher_idchar否課程講師idsubject_idchar否課程分類idsubject_parent_idchar否課程分類父級idtitlevarchar否課程標題pricetinyint否課程銷售價格lesson_numvarchar否總課時covervarchar否課程封面圖片路徑buy_countbigint否銷售數(shù)量statusvarchar否課程狀態(tài)(Draft未發(fā)布,Normal已發(fā)布)like_countint否課程喜歡數(shù)categoryint否課程分類(0公開課、1體驗課、2付費課)is_deletedtinyint否邏輯刪除(0未刪除,1已刪除)t_createdatetime否創(chuàng)建時間t_updatedatetime否更新時間課程分類表的設計數(shù)據(jù)庫中的learn_subject表如表4.3所示:表4.3learn_subject表字段名數(shù)據(jù)類型是否主鍵描述idchar是課程分類idtitlevarchar否分類字段名parent_idchar否上級分類idsortint否排序號t_createdatetime否創(chuàng)建時間t_updatedatetime否更新時間課程章節(jié)表的設計數(shù)據(jù)庫中的learn_chapter表如表4.4所示:表4.4learn_chapter表字段名數(shù)據(jù)類型是否主鍵描述idchar是章節(jié)idcourse_idchar否課程idtitlevarchar否章節(jié)名稱sortint否排序號t_createdatetime否創(chuàng)建時間t_updatedatetime否更新時間課程評論表的設計數(shù)據(jù)庫中的learn_comment表如表4.5所示:表4.5learn_comment表字段名數(shù)據(jù)類型是否主鍵描述idchar是評論idcourse_idvarchar否課程idteacher_idvarchar否講師idmember_idvarchar否用戶idnicknamevarchar否用戶昵稱avatarvarchar否用戶頭像contentvarchar否評論內容is_deletedtinyint否邏輯刪除(0未刪除,1已刪除)t_createdatetime否創(chuàng)建時間t_updatedatetime否更新時間課程視頻表的設計 數(shù)據(jù)庫中的learn_video表如表4.6所示:表4.6learn_video表字段名數(shù)據(jù)類型是否主鍵描述idchar是課程小節(jié)idcourse_idchar否課程idchapter_idchar否章節(jié)idtitlevarchar否小節(jié)標題video_source_idvarchar否視頻資源地址sortInt否排序號play_countbigint否播放次數(shù)statusvarchar否視頻狀態(tài)t_createdatetime否創(chuàng)建時間t_updatedatetime否更新時間講師表的設計數(shù)據(jù)庫中的learn_teacher表如表4.7所示:表4.7learn_teacher表字段名數(shù)據(jù)類型是否主鍵描述idchar是講師idnamevarchar否講師姓名introvarchar否講師簡介careervarchar否講師資歷levelint否頭銜(1高級講師,2首席講師)avatarvarchar否講師頭像sortint否排序號fans_countint否粉絲數(shù)量is_deletedtinyint否邏輯刪除(0未刪除,1已刪除)t_createdatetime否創(chuàng)建時間t_updatedatetime否更新時間訂單表的設計數(shù)據(jù)庫中的t_order表如表4.8所示:表4.8t_order表字段名數(shù)據(jù)類型是否主鍵描述idchar是訂單idorder_novarchar否訂單號course_idchar否課程idcourse_titlevarchar否課程字段名course_covervarchar否課程封面teacher_idchar否講師字段名member_idchar否用戶idnicknamevarchar否用戶昵稱mobilevarchar否用戶手機total_feedecimal否訂單金額(分)statusint否訂單狀態(tài)(0:未支付1:已支付)is_deletedtinyint否邏輯刪除(0未刪除,1已刪除)t_createdatetime否創(chuàng)建時間t_updatedatetime否更新時間支付日志表的設計數(shù)據(jù)庫中的t_pay_log表如表4.9所示:表4.9t_pay_log表字段名數(shù)據(jù)類型是否主鍵描述idchar是日志idorder_novarchar否訂單號pay_timedatetime否支付完成時間total_feedecimal否支付金額(分)transaction_idvarchar否交易流水號trade_statusvarchar否交易狀態(tài)is_deletedtinyint否邏輯刪除(0未刪除,1已刪除)t_createdatetime否創(chuàng)建時間t_updatedatetime否更新時間管理員用戶表的設計數(shù)據(jù)庫中的acl_user表如表4.10所示:表4.10acl_user表字段名數(shù)據(jù)類型是否主鍵描述idchar是管理員idpasswordvarchar否密碼nick_namevarchar否昵稱saltvarchar否用戶頭像tokenvarchar否用戶簽名is_deletedtinyint否邏輯刪除(0未刪除,1已刪除)t_createdatetime否創(chuàng)建時間t_updatedatetime否更新時間管理員角色表的設計數(shù)據(jù)庫中的acl_role表如表4.11所示:表4.11acl_role表字段名數(shù)據(jù)類型是否主鍵描述idchar是角色idrole_namevarchar否角色字段名role_codevarchar否角色編碼remarkvarchar否備注is_deletedtinyint否邏輯刪除(0未刪除,1已刪除)t_createdatetime否創(chuàng)建時間t_updatedatetime否更新時間管理員與角色表的設計數(shù)據(jù)庫中的acl_user_role表如表4.12所示:表4.12acl_user_role表字段名數(shù)據(jù)類型是否主鍵描述idchar是idrole_idchar否角色iduser_idchar否用戶idis_deletedtinyint否邏輯刪除(0未刪除,1已刪除)t_createdatetime否創(chuàng)建時間t_updatedatetime否更新時間權限表的設計數(shù)據(jù)庫中的acl_permission表如表4.13所示:表4.13acl_permission表字段名數(shù)據(jù)類型是否主鍵描述idchar是權限idpidchar否所屬上級namevarchar否字段名typetinyint否類型(1:菜單,2:按鈕)pathvarchar否訪問路徑statustinyint否狀態(tài)(0禁止,1正常)is_deletedtinyint否邏輯刪除(0未刪除,1已刪除)t_createdatetime否創(chuàng)建時間t_updatedatetime否更新時間角色與權限表的設計數(shù)據(jù)庫中的acl_role_permission表如表4.14所示:表4.14acl_role_permission表字段名數(shù)據(jù)類型是否主鍵描述idchar是idrole_idchar否角色idpermission_idchar否權限idis_deletedtinyint否邏輯刪除(0未刪除,1已刪除)t_createdatetime否創(chuàng)建時間t_updatedatetime否更新時間用戶所喜歡講師表的設計數(shù)據(jù)庫中的ucenter_like_teacher表如表4.15所示:表4.15ucenter_like_teacher表字段名數(shù)據(jù)類型是否主鍵描述idchar是iduser_idchar否用戶idteacher_idchar否講師idis_deletedtinyint否邏輯刪除(0未刪除,1已刪除)t_createdatetime否創(chuàng)建時間t_updatedatetime否更新時間用戶所喜歡課程表的設計數(shù)據(jù)庫中的ucenter_like_course表如表4.16所示:表4.16ucenter_like_course表字段名數(shù)據(jù)類型是否主鍵描述idchar是iduser_idchar否用戶idcourse_idchar否課程idis_deletedtinyint否邏輯刪除(0未刪除,1已刪除)t_createdatetime否創(chuàng)建時間t_updatedatetime否更新時間4.3本章小結本章主要對系統(tǒng)的主要功能模塊與對系統(tǒng)的數(shù)據(jù)庫進行設計,其中功能模塊的設計包含用戶模塊與管理員模塊。在系統(tǒng)功能模塊的設計中,針對各個功能模塊繪制了相應的功能流程圖,并且概述了其中的功能邏輯。在系統(tǒng)數(shù)據(jù)庫設計中,闡述了數(shù)據(jù)庫設計時需遵循的數(shù)據(jù)庫設計原則,接著進行概念結構設計,提供相應的實體屬性圖,再把概念模型轉換為關系型邏輯模型,從而進行邏輯結構設計,最后進行物理結構設計,繪制出相應的數(shù)據(jù)庫表格。系統(tǒng)的功能模塊具體實現(xiàn)與展示將在下一個章節(jié)進行詳細介紹。5系統(tǒng)實現(xiàn)上一章節(jié)主要對系統(tǒng)功能模塊與系統(tǒng)數(shù)據(jù)庫進行設計與介紹。本章節(jié)將使用文字描述與圖片展示的形式,對本系統(tǒng)的功能進行具體介紹與分析。5.1登錄5.1.1普通用戶登錄普通用戶若是第一次登錄,需要先進行用戶注冊,首先輸入賬號密碼,再通過手機驗證碼的驗證后才可進行注冊,其中手機驗證碼的發(fā)送使用阿里云的短信服務。注冊頁面如圖5.1所示。圖5.1用戶注冊頁面注冊成功后,用戶點擊登錄選項,輸入賬號密碼,系統(tǒng)獲取用戶的賬號,從數(shù)據(jù)庫已注冊的用戶表中判斷該用戶是否已注冊,若該用戶已注冊,則驗證密碼是否正確。因本系統(tǒng)的認證授權采用的是token驗證的方式,后臺維護一套token加密、解密算法,若密碼驗證成功后會將用戶信息封裝加密成一個token,該token會攜帶在每次用戶請求中,若用戶請求攜帶的token能通過后臺解密算法的驗證,則本次認證授權通過。登錄頁面如下圖5.2所示。圖5.2用戶登錄頁面5.1.2后臺管理員登錄普通管理員無須自己進行注冊,普通管理員的賬號由超級管理員進行注冊。管理員只需在后臺登錄頁面輸入正確的賬號密碼,即可登錄后臺管理系統(tǒng),進行相應的后臺管理,登錄頁面如下圖5.3所示。圖5.3管理員登錄頁面5.2普通用戶模塊的實現(xiàn)5.2.1首頁展示“在線學習”平臺首頁上半部分主要展示輪播圖,旨在對本系統(tǒng)進行宣傳,激發(fā)用戶的觀看興趣[12]。在輪播圖下面展示的是熱門課程,吸引用戶點擊課程,在首頁下部分展示的是名師大咖,對各大講師進行宣傳介紹,表明課程的質量。首頁如下圖5.4所示。圖5.4前臺首頁同時用戶可以在首頁上跳轉到其他分類課程頁面,因本系統(tǒng)的課程分為公開課、體驗課、收費課。故共有四大分類課程頁面,用戶可以在頁面的上沿點擊跳轉到相應的分類課程頁面。以下對四大分類課程頁面進行具體介紹。公開課為完全免費課程,旨在為平臺吸引流量,提高平臺知名度;體驗課也為免費課程,課程定向是講師對某個知識模塊的教學,旨在讓求學者提前感受講師針對某個模塊的教學質量,建立講師的粉絲群體,再引流粉絲到講師的收費課程[13];收費課為某講師對某一知識的全面解讀;會員課為會員特有課,課程內容為各個行業(yè)精英的經(jīng)驗分享,該課程的開展旨在建立平臺的粉絲群體,讓平臺擁有更多的忠實用戶。各分類課程頁面如下圖5.5至5.7所示。圖5.5公開課頁面圖5.6體驗課頁面圖5.7付費課頁面5.2.2課程支付用戶進入課程詳情頁面后,系統(tǒng)后臺會從課程表中查詢該課程的售價字段,若售價的值是0則表示是免費課程,課程詳情頁面會顯示播放按鈕,用戶可直接點擊該按鈕觀看視頻。課程的詳情頁面如下圖5.8所示。圖5.8課程詳情頁面若課程售價的值大于0,則表示該課程是付費課程,系統(tǒng)會抓取存儲在瀏覽器中的用戶信息token,把該token作為參數(shù)數(shù)據(jù)觸發(fā)后臺的查詢接口,該接口會解析數(shù)據(jù)庫中的訂單表,判斷該用戶是否購買過該課程;若用戶未購買,課程詳情頁面會顯示購買按鈕,用戶點擊購買后會生成訂單數(shù)據(jù),此時訂單的狀態(tài)為未支付。本系統(tǒng)采用的支付方式是微信支付,創(chuàng)建訂單后會根據(jù)課程售價等相關信息生成微信支付二維碼,等待用戶的掃描支付;同時本系統(tǒng)在前端設置了定時器,每隔3秒就去微信官方查詢該訂單狀態(tài),若訂單支付成功,則觸發(fā)后端接口去更新訂單狀態(tài)為已支付,同時頁面會跳轉到視頻詳情頁面,若以后觀看該課程,課程詳情頁面會直接顯示播放按鈕,表示該課程已購買。支付相關頁面如下圖5.9至5.10所示。圖5.9支付頁面5.2.3課程播放用戶進入課程詳情頁面,若該課程為免費課程、或該課程已經(jīng)購買,則在頁面上會直接顯示播放按鈕。本系統(tǒng)將視頻存儲在阿里云的視頻點播中心里,系統(tǒng)數(shù)據(jù)庫存儲該課程視頻的url路徑,同時系統(tǒng)的前端集成了阿里云的視頻點播播放器,用戶點擊播放按鈕,則視頻播放器會根據(jù)視頻url地址從阿里云視頻點播獲取數(shù)據(jù)進行視頻播放。課程播放的詳情頁面如下圖5.11所示。圖5.11課程播放頁面5.2.4課程評論用戶也可在課程詳情頁面進行評論,以達到與其他用戶進行課程交流的作用。本數(shù)據(jù)庫中設計了存儲評論的評論表,用戶評論后會將用戶id、課程id、評論內容等存儲到該表中,用戶評論后,則系統(tǒng)會更新評論表數(shù)據(jù)同時更新該課程的評論頁面。課程評論的具體頁面如下圖5.12所示。圖5.12課程評論頁面5.2.5點擊喜歡課程與喜歡講師用戶進入課程詳情頁面后,可對該課程進行喜歡操作,若對該課程講師感興趣,也可對該課程講師進行喜歡操作。本系統(tǒng)設計了用戶所喜歡講師表、用戶所喜歡課程表,用戶進行喜歡操作后,會將用戶id、講師id或課程id存儲到對應的表中,記錄該用戶的喜歡行為,同時為用戶行為統(tǒng)計分析功能的實現(xiàn)進行數(shù)據(jù)記錄準備。相關的實現(xiàn)頁面如下圖5.13所示。圖5.13喜歡課程、講師頁面5.3后臺管理員模塊的實現(xiàn)此模塊主要功能有:查看課程與管理課程、查看講師與管理講師、查看與管理管理員與角色、查看用戶行為統(tǒng)計、查看平臺收入等。5.3.1查看課程與管理課程管理員點擊課程管理模塊,即可查看所有的課程列表,如下圖5.14所示。圖5.14課程列表頁面其中對課程的管理包括對課程的創(chuàng)建、修改、刪除。當管理員進入課程創(chuàng)建頁面,首先需選擇課程分類,輸入課程名稱、課程介紹、課程講師等相關信息;后需為本課程添加章節(jié),添加章節(jié)標題與具體介紹后,為該章節(jié)添加小節(jié),每個小節(jié)以視頻形式進行展示,故需為每個小節(jié)上傳視頻,而視頻統(tǒng)一上傳到阿里云的視頻點播服務;上傳完畢后點擊發(fā)布即可完成課程創(chuàng)建。若要對課程進行修改,可點擊該課程的修改按鈕,可修改的內容包含創(chuàng)建課程時所有的內容;若要對課程進行刪除,點擊刪除按鈕即可,而具體邏輯是把該課程在數(shù)據(jù)庫表中的狀態(tài)修改為已刪除,而不是直接刪除課程記錄,有效地保護了系統(tǒng)數(shù)據(jù)。具體操作頁面如下圖5.15至5.16所示。圖5.15課程創(chuàng)建頁面圖5.16課程修改頁面5.3.2查看與管理后臺管理員、管理員角色后臺管理員管理模塊的數(shù)據(jù)庫設計采用RBAC系統(tǒng)的數(shù)據(jù)庫設計模式[14],分為user、role、permission三個表,user與role之間是多對多關系,role和permission之間是多對多關系。在管理員管理界面可以創(chuàng)建管理員賬號,并可以設置其所擁有的角色,而角色又對應擁有相應的權限與菜單,故若我們沒有為某角色添加某菜單,則擁有該角色的管理員賬號也相應不能在頁面上看到該操作菜單。同時本系統(tǒng)也在后端訪問接口應用了認證授權,采用的技術是SpringSecurity,可以對訪問接口進行訪問限制,若管理員沒有相應的訪問權限,則訪問是被拒絕的,實現(xiàn)了對不同管理員可以操作范圍的限制,有效防止了誤操作且提升了管理系統(tǒng)的安全性。管理界面如下圖5.17至5.18所示。圖5.17管理員用戶列表頁面圖5.18管理員角色列表頁面5.3.3查看講師與管理講師后臺管理員在管理頁面的左邊欄點擊講師管理模塊,即可查看所有的講師。如下圖5.19所示。圖5.19講師列表頁面同時管理員也可對講師進行相應的修改、刪除、創(chuàng)建。其中在創(chuàng)建模塊中,管理員需輸入該講師的相關信息,如講師姓名、講師簡介等,同時管理員還需上傳該講師的頭像,而上傳頭像技術的實現(xiàn)利用的是阿里云的對象存儲服務,把上傳的頭像統(tǒng)一存儲在對象存儲服務中,而上傳后獲取該服務返回的url地址,并存儲在數(shù)據(jù)庫中。當系統(tǒng)需獲取講師頭像時,只需根據(jù)url地址獲取即可,應用第三方服務有效地降低了本系統(tǒng)的性能壓力。相關的操作頁面如下圖5.20至5.21所示。圖5.20創(chuàng)建講師頁面圖5.21修改講師頁面5.3.4查看用戶行為統(tǒng)計該功能的實現(xiàn)是建立在系統(tǒng)對用戶行為的收集上的,如用戶在課程詳情頁面對某個講師、對某個課程進行點擊喜歡,則該用戶行為會被系統(tǒng)后臺進行記錄后存儲在數(shù)據(jù)庫表中。若管理員進入用戶行為統(tǒng)計頁面,點擊查詢按鈕,則系統(tǒng)會把數(shù)據(jù)進行查詢收集,統(tǒng)計出某個課程分類、某個課程、某個講師的喜歡數(shù)。而該模塊采用Kibana進行數(shù)據(jù)展示,該組件可以通過餅狀圖、柱狀圖的形式對數(shù)據(jù)進行可視化展示,方便使用者快速掌握相應的數(shù)據(jù)。展示頁面如下圖5.22所示。圖5.22用戶行為統(tǒng)計頁面5.3.5查看平臺收入平臺收入模塊的實現(xiàn)主要依賴于訂單表,該訂單表記錄了所有用戶在本平臺的消費記錄;當管理員進行查看平臺收入模塊,需要選取查看平臺收入的日期范圍,選取之后,后臺會把選取參數(shù)作為SQL查詢語句的約束條件,來對支付日志表數(shù)據(jù)進行篩選,同時獲取支付日志表中訂單金額字段的數(shù)據(jù),該字段數(shù)據(jù)作為收入的計算數(shù)據(jù);后端計算之后把具體數(shù)值返回給前端,前端再把數(shù)據(jù)以折線圖的方式進行展示。具體查詢頁面如下圖5.23所示。圖5.23查看平臺收入頁面5.4本章小結本章主要對普通用戶模塊、后臺管理員模塊的主要功能實現(xiàn)進行介紹,包括普通用戶模塊的首頁展示、課程支付、課程播放、課程評論等,管理員模塊的查看課程與管理課程、查看講師與管理講師、查看與管理管理員與角色、查看用戶行為統(tǒng)計、查看平臺收入等;同時本章還對用戶、后臺管理員兩種不同角色的登錄功能實現(xiàn)進行講解。至此,本人已完成了系統(tǒng)的各功能實現(xiàn),包括后臺邏輯處理的實現(xiàn)與前端數(shù)據(jù)的展示,也即完成了“在線學習”平臺設計與實現(xiàn)的核心工作。6系統(tǒng)測試6.1系統(tǒng)測試目的本系統(tǒng)的測試工作主要是查找出后端、前端的相關功能漏洞,對功能漏洞進行記錄并采取相應的措施,對每個漏洞進行逐一攻破,讓系統(tǒng)進行不斷的完善,提高系統(tǒng)的健壯性、提升用戶的系統(tǒng)體驗度。6.2系統(tǒng)測試方法本系統(tǒng)主要采用以下的系統(tǒng)測試方法。動態(tài)測試運行本系統(tǒng)的各個功能模塊,對各模塊所返回的數(shù)據(jù)進行查看、分析,判斷返回的數(shù)據(jù)是否符合預期的結果與相關的性能指標是否達到標準[15]。數(shù)據(jù)驅動測試在不考慮本系統(tǒng)的內部結構和具體處理邏輯的情況下,針對系統(tǒng)各模塊的功能設計出測試用例,并推測出測試結果是否正確,該測試方法主要從數(shù)據(jù)輸入和數(shù)據(jù)輸出的角度對系統(tǒng)進行測試[16]。6.3功能測試在本系統(tǒng)的測試過程中,使用功能測試這類測試類型,對每個功能模塊進行測試,判斷各功能模塊的運行結果是否與預期結果相符合,主要功能測試用例如表6.1所示。表6.1系統(tǒng)測試用例設計表編號測試內容測試步驟預期結果實際結果1用戶首次登錄用戶點擊登錄并授權提示“登錄成功”并跳轉到首頁√2用戶查看課程列表在首頁的頁面上沿點擊相應的課程分類跳轉該課程分類頁面,顯示出課程列表√3用戶查看課程在課程列表點擊相應課程跳轉到相應的課程詳情頁面√4用戶課程評論在課程下方的留言框輸入內容并點擊“
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥物警戒質量管理制度培訓試題(附答案)
- 2025年醫(yī)療糾紛處理制度試題及答案
- 個人數(shù)據(jù)中心操作手冊
- 2026年企業(yè)估值投資并購合同
- 2026年上半年黑龍江省事業(yè)單位公開招聘備考題庫(4254人)及答案詳解(易錯題)
- 2026上半年安徽事業(yè)單位聯(lián)考銅陵市招聘108人備考題庫及完整答案詳解一套
- 2026云南昆明官渡區(qū)職業(yè)高級中學春季學期聘用制教師招聘6人備考題庫及完整答案詳解一套
- 2026年福建莆田第五中學初中部編外教師招聘若干人備考題庫及參考答案詳解1套
- 2026年武漢經(jīng)開區(qū)教育系統(tǒng)校園專項招聘教師50人備考題庫含答案詳解
- 2026廣東廣州花都區(qū)第一中學校醫(yī)招聘1人備考題庫及參考答案詳解一套
- 中職班會課主題課件
- 政務服務大廳安全隱患排查
- 土建資料管理課件
- 鈑金檢驗作業(yè)指導書
- 公司安全大講堂活動方案
- 2025年江蘇省無錫市梁溪區(qū)八下英語期末統(tǒng)考模擬試題含答案
- GB/T 42186-2022醫(yī)學檢驗生物樣本冷鏈物流運作規(guī)范
- 江蘇省南通市2024-2025學年高一上學期1月期末考試數(shù)學試題
- T/CA 105-2019手機殼套通用規(guī)范
- 以真育責:小學生責任教育在求真理念下的探索與實踐
- 2019營口天成消防JB-TB-TC5120 火災報警控制器(聯(lián)動型)安裝使用說明書
評論
0/150
提交評論