




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
網(wǎng)絡(luò)教學(xué)系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)隨著網(wǎng)絡(luò)的發(fā)展和社會上人們對教育越來越重視,一個(gè)全新的模式逐漸發(fā)展起來并不斷完善,這就是網(wǎng)絡(luò)教學(xué)模式。相比與傳統(tǒng)的教學(xué)模式,網(wǎng)絡(luò)教學(xué)模式具有很多的優(yōu)點(diǎn),他的教學(xué)方式和教學(xué)過程更具有時(shí)代意義,傳統(tǒng)教學(xué)模式必須在固定的地點(diǎn)和相應(yīng)的時(shí)間進(jìn)行課程的推進(jìn),而網(wǎng)絡(luò)教學(xué)不受兩者的限制。除此之外,它還可以實(shí)現(xiàn)更個(gè)性化的教學(xué),能夠讓學(xué)生更全面的發(fā)展和更廣泛的狩獵知識。因此,世界各國對這種系統(tǒng)的開發(fā)投入的越來越多。網(wǎng)絡(luò)教學(xué)的發(fā)展源于網(wǎng)絡(luò)和傳統(tǒng)教育的結(jié)合,真正的將教學(xué)的中心轉(zhuǎn)移給學(xué)生,學(xué)生可以對自己擁有的課程任意支配,但也有一定的缺點(diǎn),對于自制力水平差的學(xué)生,學(xué)習(xí)效率可能不如傳統(tǒng)教學(xué)模式,但這是一個(gè)長期漸進(jìn)的轉(zhuǎn)變和適應(yīng)的過程,網(wǎng)絡(luò)教學(xué)的體系也在不斷完善。網(wǎng)絡(luò)教學(xué);前后端分離;微服務(wù);Vue;目錄1緒論 11.1課題的背景 11.2國內(nèi)外研究現(xiàn)狀 11.3研究的主要內(nèi)容 21.4系統(tǒng)開發(fā)的目的和意義 21.5論文結(jié)構(gòu)概述 22相關(guān)技術(shù) 32.1SpringBoot 32.2Vue 32.3MyBatisPlus 32.4SpringCloud 33系統(tǒng)需求 33.1可行性分析 43.1.1社會可行性分析 43.1.2技術(shù)可行性分析 43.1.3時(shí)間可行性分析 43.1.4經(jīng)濟(jì)可行性分析 43.2功能需求分析 5(1)系統(tǒng)后臺 (管理員使用) 5(2)系統(tǒng)前臺(普通用戶使用) 53.3面向?qū)ο蠓治?53.3.1系統(tǒng)后臺用例關(guān)系 53.3.2系統(tǒng)前臺用例關(guān)系 64系統(tǒng)設(shè)計(jì) 64.1概要設(shè)計(jì) 64.2詳細(xì)設(shè)計(jì) 74.2.1注冊模塊詳細(xì)設(shè)計(jì) 74.2.2登錄模塊詳細(xì)設(shè)計(jì) 74.2.3個(gè)人中心模塊詳細(xì)設(shè)計(jì) 84.2.4搜索模塊詳細(xì)設(shè)計(jì) 94.2.5課程管理模塊詳細(xì)設(shè)計(jì) 94.2.6教師管理模塊詳細(xì)設(shè)計(jì) 10課程發(fā)布流程圖 104.3數(shù)據(jù)庫設(shè)計(jì) 114.3.1數(shù)據(jù)庫概念設(shè)計(jì) 114.3.2數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計(jì) 125系統(tǒng)實(shí)現(xiàn) 155.1系統(tǒng)平臺搭建 155.1.1本地java環(huán)境 155.1.2本地Node環(huán)境 155.1.3服務(wù)器Mysql環(huán)境 155.1.4本地Redis環(huán)境 155.1.5本地Nginx環(huán)境 155.1.6Nacos注冊中心 155.2注冊登錄模塊 165.3微信登錄模塊 175.4用戶搜索模塊 185.5視頻播放模塊 195.6個(gè)人中心模塊 205.7課程分類模塊 215.8課程管理模塊 225.9教師管理模塊 226系統(tǒng)測試 236.1測試結(jié)果與總結(jié) 236.2測試結(jié)果與總結(jié) 246.3系統(tǒng)測試用例 24結(jié)束語 26參考文獻(xiàn) 27PAGE5緒論課題的背景在新中國建立以來至今日,我們國家的教育從剛建國到現(xiàn)在發(fā)生了非常重大的變化,時(shí)代的進(jìn)步,教育行業(yè)也有了新的改變。原本固定的實(shí)地教學(xué)模式在以網(wǎng)絡(luò)為介質(zhì)的催化劑作用下變得多樣性,只要有網(wǎng)絡(luò),就能進(jìn)行教學(xué)。在任何擁有網(wǎng)絡(luò)課件的地點(diǎn),學(xué)員可以不受固定時(shí)間的限制進(jìn)行課程的學(xué)習(xí)。這種優(yōu)勢不單單適用于學(xué)生,對于那些已經(jīng)工作,業(yè)務(wù)繁忙,沒有固定的時(shí)間去線下學(xué)習(xí)的打工人而言,這種學(xué)習(xí)方式無疑是最受歡迎的。2020年的疫情,給人門帶來和很大的災(zāi)難。但任何事情都有弊有利,全國各類學(xué)校按照教育部"聽課不停學(xué)"的要求,疫情防控期間開展了網(wǎng)絡(luò)教學(xué)。充分利用互聯(lián)網(wǎng)的優(yōu)勢,各個(gè)學(xué)校因地制宜,開展多樣化的網(wǎng)絡(luò)教學(xué)。不單單是學(xué)校,各類培訓(xùn)機(jī)構(gòu)等教育行業(yè)的網(wǎng)絡(luò)教育也開展了起來。網(wǎng)絡(luò)教學(xué)方式如雨后春筍一樣爆發(fā)出來,在線直播課堂、網(wǎng)絡(luò)點(diǎn)播教學(xué)、電視視頻學(xué)習(xí)、網(wǎng)絡(luò)集中輔導(dǎo)答疑,qq、微信、釘釘?shù)溶浖M(jìn)行互動,我們的教育從現(xiàn)代化向信息化轉(zhuǎn)變[1]。國內(nèi)外研究現(xiàn)狀我國的網(wǎng)絡(luò)基本已普及到全國各大中小城市,但現(xiàn)在網(wǎng)絡(luò)教育資源并不是很豐富,再加上在教育水品并不高的廣大農(nóng)村地區(qū)。因此在未來,我國的網(wǎng)上教育平臺的建設(shè)將有很大的前景。我國已有一些網(wǎng)絡(luò)教學(xué)平臺,如軟酷網(wǎng),咯大重點(diǎn)高校的在線教學(xué)平臺等都為我們提供了良好的學(xué)習(xí)平臺。但由于傳統(tǒng)教學(xué)觀念的束縛,遠(yuǎn)程教育并未得到很好的推廣。因此,上面提到的政策的實(shí)施以及觀念的轉(zhuǎn)變顯得尤為重要。當(dāng)今國外網(wǎng)絡(luò)教學(xué)發(fā)展得較國內(nèi)更加迅速,除了普及廣泛外,已經(jīng)向更高層次的應(yīng)用和標(biāo)準(zhǔn)化方面發(fā)展。美國100多家著名大學(xué)將運(yùn)用InternetII進(jìn)行現(xiàn)代遠(yuǎn)程教育,75%的美國高校將出示網(wǎng)絡(luò)教育[2]。美國高校的現(xiàn)代遠(yuǎn)程教育選用了各種各樣方式方法,選用數(shù)最多的是視頻產(chǎn)品和根據(jù)Internet的信息科技,尤其是運(yùn)用Internet的非同步教學(xué)、雙重互動式的教學(xué)視頻和單項(xiàng)式預(yù)錄教學(xué)視頻。英國的網(wǎng)絡(luò)院校全是由很多有關(guān)的教育局或公司建立,而各網(wǎng)絡(luò)院校中間又有十分普遍的聯(lián)接,全部管理體系呈多孔結(jié)構(gòu),不管你要學(xué)什么專業(yè)知識和專業(yè)技能,到在網(wǎng)上都能尋找有關(guān)的材料和協(xié)助。不僅有專業(yè)對于教育信息化的、又有專業(yè)對于師資培訓(xùn)的、高等職業(yè)教育(成人繼續(xù)教育、繼續(xù)再教育和高等職業(yè)教育)的。在其中每一方面都牽涉到每門各種課程和整套的公共服務(wù)設(shè)施。全世界現(xiàn)有800多家高校根據(jù)Internet出示在網(wǎng)上學(xué)士學(xué)位課程內(nèi)容,像哈福高校、麻省理工大學(xué)、牛津大學(xué)早已容許海外學(xué)員開展在網(wǎng)上申請注冊、外地學(xué)習(xí)培訓(xùn)學(xué)士學(xué)位課程內(nèi)容[3]。1996年英國群眾中刮起致力于促進(jìn)院校連接網(wǎng)絡(luò)的“網(wǎng)絡(luò)日”志愿服務(wù)活動,克林頓政府明確提出“教育信息化行動”綱要。該綱要強(qiáng)調(diào):到2000年,全國各地的每個(gè)課室和每一個(gè)圖書館都聯(lián)上信息內(nèi)容高速路,每一個(gè)孩子都能在21新世紀(jì)的技術(shù)性文化藝術(shù)層面遭受文化教育。到迄今為止,一個(gè)遍布全國關(guān)鍵教育培訓(xùn)機(jī)構(gòu)的網(wǎng)絡(luò)已然產(chǎn)生,基本上全國各地全部的院校都能進(jìn)行網(wǎng)絡(luò)教育。在高等院校,網(wǎng)絡(luò)教育所設(shè)立的文憑、學(xué)士學(xué)位課程內(nèi)容已超出五萬門,基本上遮蓋了英國高等院校全部的課程和技術(shù)專業(yè)。研究的主要內(nèi)容E網(wǎng)通網(wǎng)絡(luò)教學(xué)系統(tǒng),是一個(gè)可以在線觀看視頻的教學(xué)網(wǎng)站,分為前臺用戶系統(tǒng)和后臺運(yùn)營平臺,主要根據(jù)用戶的需求開發(fā)一些學(xué)院以及教育機(jī)構(gòu)所需要的業(yè)務(wù)功能,使中學(xué)生在學(xué)校學(xué)習(xí)之余能夠隨時(shí)隨地的進(jìn)行學(xué)習(xí)。主要設(shè)置了賬號注冊登錄、微信掃碼登錄、用戶管理、教師管理、課程分類管理、課程管理等業(yè)務(wù)需求功能。系統(tǒng)開發(fā)的目的和意義中學(xué)生的學(xué)習(xí)成績提升,是家長、老師和自身都希望的。網(wǎng)絡(luò)發(fā)達(dá)程度沒有非常高的時(shí)候,中學(xué)生去輔導(dǎo)班等培訓(xùn)機(jī)構(gòu)進(jìn)行課外線下輔導(dǎo)是非常常見的。但是,線下輔導(dǎo)由于各地區(qū)的發(fā)展程度不同,規(guī)模大小不同,講師的水平不同,所以教學(xué)的質(zhì)量有著非常大的差異,所以線下有一些試聽課的開展,但即使這樣,還是造成了大量的成本浪費(fèi)。而現(xiàn)在網(wǎng)絡(luò)發(fā)達(dá)了起來,只要學(xué)生擁有電腦和網(wǎng)絡(luò),就能點(diǎn)播學(xué)習(xí)自己在學(xué)校疏漏的知識或者提前預(yù)習(xí)新的課程。而基于網(wǎng)絡(luò)開展的E網(wǎng)通網(wǎng)絡(luò)教學(xué)系統(tǒng)則不同,為了讓用戶有更好的學(xué)習(xí)和提升自身的知識水平,實(shí)現(xiàn)個(gè)性化的東西,低價(jià)甚至開展一些免費(fèi)的課程供學(xué)生點(diǎn)播,為廣大的中學(xué)生提供性價(jià)比很高的資源。論文結(jié)構(gòu)概述本章節(jié)介紹論文結(jié)構(gòu)構(gòu)成,總共有六個(gè)部分。對系統(tǒng)進(jìn)行了從開始的技術(shù)意圖到最后的設(shè)計(jì)與實(shí)現(xiàn)的描述,具體如下:第一部分對課題的產(chǎn)生背景進(jìn)行了描述,E網(wǎng)通網(wǎng)絡(luò)教學(xué)系統(tǒng)所致力要做的一個(gè)平臺。第二部分是本系統(tǒng)對實(shí)現(xiàn)所需使用的技術(shù)進(jìn)行說明介紹。第三部分是對本系統(tǒng)進(jìn)行需求描述,包括對系統(tǒng)的可行性進(jìn)行分析,對系統(tǒng)的功能需求進(jìn)行進(jìn)一步的詳細(xì)分析,最終對系統(tǒng)所面向的對象進(jìn)行描述。第四部分是對本網(wǎng)站進(jìn)行設(shè)計(jì),分為概要設(shè)計(jì)以及詳細(xì)設(shè)計(jì)。第五部分是對系統(tǒng)的搭建及各個(gè)模塊的實(shí)現(xiàn)和描述。第六部分是針對系統(tǒng)的各項(xiàng)功能進(jìn)行測試,通過測試來查看系統(tǒng)所設(shè)計(jì)的功能是否有缺陷和漏洞。相關(guān)技術(shù)SpringBoot2014年4月,Pivotal研發(fā)團(tuán)隊(duì)提供的全新框架,它是對spring的進(jìn)一步封裝,其設(shè)計(jì)目的是用來簡化應(yīng)用的初始搭建以及開發(fā)過程,名為SpringBoot[4]。為了讓開發(fā)者用的更加簡易,通過封裝、抽象、提供默認(rèn)配置等方式對框架進(jìn)行了大幅度完善。它的特點(diǎn)就是自動裝配,在創(chuàng)建一個(gè)運(yùn)行項(xiàng)目時(shí)候,springboot能夠?qū)⑺枰呐渲眯畔⒑涂蚣茏詣拥姆庋b起來,使用嵌入式的服務(wù)器程序,模塊中的項(xiàng)目不需要進(jìn)行打成war包,自動導(dǎo)入maven依賴,對快照版本、里程碑版本等版本進(jìn)行控制,大量的自動配置,簡化了開發(fā),也可修改默認(rèn)值,不用向ssm一樣配置復(fù)雜的xml文件,無代碼生成,但可以引入MybatisPlus用代碼生成器直接生成底層代碼,開箱即用,準(zhǔn)生產(chǎn)環(huán)境的運(yùn)行時(shí)應(yīng)用監(jiān)控,與云計(jì)算的天然集成[5]。VueVue是一個(gè)國內(nèi)開源非常優(yōu)秀并且實(shí)用的前端框架[5]。他的特點(diǎn)是可以非常榮容易的與其他庫向結(jié)合,并且對于一種增量的開發(fā),它采用了尤底層向上層的設(shè)計(jì),擁有能夠及時(shí)的關(guān)注用戶課件的視圖層的核心庫,十分簡單易學(xué)。目前的前端開發(fā)非常流行瀏覽器的渲染,驅(qū)動單個(gè)文件,單個(gè)頁面能夠應(yīng)用的組件,這些內(nèi)容vue都能有流暢的運(yùn)行。由于之專注于視圖層,所以開發(fā)很容易上手,方便和其他的api或者后端接口進(jìn)行整合。并且不會產(chǎn)生沖突和兼容問題,能完美的運(yùn)行單頁面應(yīng)用。MyBatisPlusMyBatis-Plus是一個(gè)Mybatis增強(qiáng)工具包,在MyBatis上擴(kuò)充了其他功能沒有改變其基本功能,簡化CRUD操作,啟動加載XML配置時(shí)注入單表SQL操作,為了簡化開發(fā)提交效率而存在。具有無侵入、損耗小、內(nèi)置分頁插件并且支持多種數(shù)據(jù)庫等特性。其核心功能有:代碼自動生成器、crud接口、條件構(gòu)造器、分頁插件、Sequence主鍵、自定義ID生成器。SpringCloudSpringCloud是一個(gè)基于SpringBoot實(shí)現(xiàn)的微服務(wù)架構(gòu)開發(fā)工具,它是一系列框架的有序集合。它不只是解決微服務(wù)的某一個(gè)問題,而是一個(gè)解決微服務(wù)架構(gòu)實(shí)施的綜合性解決框架,并且它整合了諸多被廣泛實(shí)踐和證明過的框架作為實(shí)施的基礎(chǔ)部件,又在該體系基礎(chǔ)上創(chuàng)建了一些非常優(yōu)秀的邊緣組件;系統(tǒng)需求軟件需求指的是用戶對這個(gè)軟件的功能、性能、安全性、可靠性等方面的一種需求期望。一個(gè)軟件的實(shí)現(xiàn)通常有一套規(guī)劃的周期。前期要對系統(tǒng)進(jìn)行可行性分析,確定可行后對詳細(xì)的功能進(jìn)行需求分析,對系統(tǒng)進(jìn)行設(shè)計(jì),以及中期的編碼,測試,到最后的項(xiàng)目測試,上線達(dá)成一個(gè)完整的周期。而需求分析則占據(jù)了舉足輕重的位置,對系統(tǒng)后續(xù)的實(shí)現(xiàn)有著鋪墊的作用??尚行苑治錾鐣尚行苑治龌谠诰€教育的特點(diǎn)和優(yōu)勢,其越來越受到現(xiàn)代人的認(rèn)可,很多人開始選擇在線教育,特別是白領(lǐng)一族和大學(xué)生們,與此同時(shí),各類新興的網(wǎng)校及相關(guān)網(wǎng)站也不斷涌現(xiàn)。這表示在線教育已經(jīng)逐漸走進(jìn)大眾的生活并成為一種學(xué)習(xí)的主流趨勢。據(jù)統(tǒng)計(jì)僅在2012年一年時(shí)間里,中國在線教育市場份額已經(jīng)達(dá)到723億元,在線教育用戶呈規(guī)模性擴(kuò)大[8]。各大中小學(xué)校通過建立在線教育網(wǎng)絡(luò)和公共教學(xué)資源庫,以加強(qiáng)學(xué)校、老師和學(xué)生之間的相互交流溝通,提高教學(xué)質(zhì)量,建設(shè)精品課程,宣傳學(xué)校的教育實(shí)力。技術(shù)可行性分析在我接觸這一個(gè)全新領(lǐng)域時(shí),我開始尋找大量的文獻(xiàn),以及去圖書館翻閱書籍,加上和周圍同學(xué)們的相互討論,我開始逐步深入了解springBoot技術(shù)和SpringCloud技術(shù),但是畢竟是第一次接觸,這對我來說是一個(gè)新的開始,也是一個(gè)全新的方向,但雖說如此,我對自己的要求還是比較的高,這樣才能給我努力的方向,經(jīng)過多番的努力,終于得到了回報(bào),我可以做一個(gè)簡單的案例,漸漸的對這個(gè)技術(shù)有了大概的了解。在我的導(dǎo)師王老師的指導(dǎo),以及與周圍同學(xué)的討論中發(fā)現(xiàn),宏觀的去了解一個(gè)技術(shù),這是掌握好這一項(xiàng)技術(shù)的首要基礎(chǔ)。為了解決開發(fā)中的每一項(xiàng)重點(diǎn)難點(diǎn),以及在技術(shù)的選擇上,還有去進(jìn)行考慮設(shè)計(jì)架構(gòu)在現(xiàn)有的平臺上。只有一個(gè)數(shù)據(jù)庫可以去訪問,這是一般的系統(tǒng)模塊所實(shí)現(xiàn)的,但如果想去獲取其他數(shù)據(jù)庫數(shù)據(jù),這就只能通過調(diào)用服務(wù)接口才可以,并且系統(tǒng)中的業(yè)務(wù)邏輯以及適配器,都有自己相對應(yīng)的一系列組件,它們能供很多地方去使用,比如應(yīng)用客戶端。新系統(tǒng)的功能都是按系列去劃分的,每一個(gè)系列都有其獨(dú)特之道,根據(jù)自己的使用方向,去選擇相對應(yīng)的功能,比如登錄管理,發(fā)布課程,后臺配置等等,這就是用springBoot開發(fā)系統(tǒng)的獨(dú)特之處。時(shí)間可行性分析本次的給予我去完成基于E網(wǎng)通網(wǎng)絡(luò)教學(xué)系統(tǒng)的時(shí)間加起來是非常的充裕的,可以讓我有充裕的精力去搜尋一些靈感,去開闊自己的思維,或者和周圍的同事進(jìn)行分析。綜上所述個(gè)人覺得在時(shí)間層面這一個(gè)系統(tǒng)可以實(shí)現(xiàn)的。經(jīng)濟(jì)可行性分析本網(wǎng)站教學(xué)系統(tǒng)是基于vue網(wǎng)頁模版,以及成熟且開源的庫Node.js,只需要本地進(jìn)行響應(yīng)的配置安裝,便可以開發(fā),適當(dāng)?shù)膱D片UI設(shè)計(jì)在阿里巴巴上面也有開源庫Iconfont,由于前端開發(fā)具有輕量級特點(diǎn),對操作環(huán)境沒有太大的要求,系統(tǒng)不需要很強(qiáng)的經(jīng)濟(jì)支持,無需投入太多精力。從而開發(fā)所需要的資金投入不會很大,所以實(shí)現(xiàn)此需求的成本是可以忽略不計(jì)的,軟件開后中數(shù)據(jù)源以及產(chǎn)品源的提供,需要編輯進(jìn)行處理。貨源也各大廠商洽談,前期可做免費(fèi)的商品推廣。在后期發(fā)展成熟后,可在完善系統(tǒng)貨源,豐富提供商。系統(tǒng)只需要配置一臺服務(wù)器,而阿里云服務(wù)器也被各大公司使用,新浪云服務(wù)器也應(yīng)用與項(xiàng)目的開發(fā),便可以通過域名方式被各個(gè)瀏覽器所訪問,同時(shí)微信端也提供了開發(fā)者API可提供內(nèi)置方法供用戶方便使用。從經(jīng)濟(jì)上來分析是可行的。功能需求分析功能性需求分析是以用戶身份來提出需求并對此展開系統(tǒng)所需實(shí)現(xiàn)的功能的一種分析方式。本文結(jié)合用戶所需來實(shí)現(xiàn)主題的功能,主要功能如下:(1)系統(tǒng)后臺 (管理員使用)管理員首先能夠登錄系統(tǒng),只需要輸入用戶名和密碼就能夠跳轉(zhuǎn)到E網(wǎng)通網(wǎng)絡(luò)教學(xué)系統(tǒng)的后臺管理頁面;管理員能夠操作教師,其中添加教師做為一個(gè)單獨(dú)的頁面用來填寫基本的教師信息和上傳頭像,另外一個(gè)頁面管理員能夠?qū)處熯M(jìn)行分頁查詢,并且可以通過名字的模糊查詢和創(chuàng)建時(shí)間等信息搜索到講師,并且符合條件的教師顯示在頁面的同時(shí)還可以進(jìn)行修改和刪除;管理員能夠操作課程分類,課程分類的設(shè)置可以通過文件的上傳然后進(jìn)行解析插入到數(shù)據(jù)庫,并在課程分類頁面進(jìn)行顯示,并且可以通過關(guān)鍵字搜索到符合條件的課程類別;管理員能夠?qū)φn程進(jìn)行發(fā)布、課程修改、課程刪除和課程的分頁查詢,在課程添加的時(shí)候,可以對課程的章節(jié)進(jìn)行增刪改,課程詳細(xì)描述的編輯可以通過富文本編譯器,課程的封面可以上傳圖片,在添加課程章節(jié)的時(shí)候,可以對課程的小節(jié)進(jìn)行增刪改,在課程添加小節(jié)的時(shí)候,可以對課程的視頻進(jìn)行添加和刪除。(2)系統(tǒng)前臺(用戶使用)用戶可以在本網(wǎng)站進(jìn)行注冊;用戶可以登錄,登錄的時(shí)候可以選擇默認(rèn)登錄和微信登錄,用戶使用默認(rèn)登錄的時(shí)候需要填寫用戶名和密碼,微信登錄的時(shí)候直接掃描微信二維碼進(jìn)行跳轉(zhuǎn);在登錄到首頁面之后,用戶可以通過點(diǎn)擊頭像到個(gè)人中心查看自己的基本信息;用戶可以在教師頁面查看教師并進(jìn)行搜索,并且可以點(diǎn)擊教師的頭像查看教師的詳細(xì)信息;用戶可以到課程頁面通過點(diǎn)擊分類信息索引符合條件的課程進(jìn)行索引顯示,并且可以點(diǎn)擊課程進(jìn)入課程詳細(xì)頁面,有課程的具體內(nèi)容包括課程的章節(jié)和小節(jié),點(diǎn)擊小節(jié)種的視頻可以跳轉(zhuǎn)到視頻頁面進(jìn)行學(xué)習(xí)。面向?qū)ο蠓治雒嫦驅(qū)ο蠓治鍪强紤]實(shí)際設(shè)計(jì)中的模塊需求,將一個(gè)個(gè)需求想象成一個(gè)個(gè)對象,進(jìn)行抽象的對象設(shè)計(jì),來達(dá)到實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)的目的[9]。普通的受眾群體是這個(gè)系統(tǒng)的主要面向,每一個(gè)人可以在平臺首頁上面去根據(jù)自己的不同去注冊之后然后選擇登錄,然后就可以用這個(gè)產(chǎn)品了。通過示例圖以及分析,就能明白用戶需要的各類課程和名師。系統(tǒng)后臺用例關(guān)系實(shí)現(xiàn)了管理管理員模塊,主要是對講師信息的操作;課程分類管理模塊,主要對課程分類進(jìn)行管理;課程模塊,用于課程的操作和發(fā)布。系統(tǒng)后臺模塊用例圖如圖3-1所示:圖3-1系統(tǒng)后臺模塊用例圖系統(tǒng)前臺用例關(guān)系登錄和注冊功能,個(gè)人中心,首頁數(shù)據(jù)顯示,講師列表+詳情,課程列表+詳情,視頻在線播放系統(tǒng)前臺用例圖如圖3-2所示:圖3-2系統(tǒng)前臺模塊用例圖系統(tǒng)設(shè)計(jì)概要設(shè)計(jì)本系統(tǒng)將分為以下幾個(gè)模塊:講師模塊、課程分類模塊、課程模塊、系統(tǒng)前臺模塊、視頻上傳模塊,文件上傳模塊。每個(gè)模塊之間使用Fegin進(jìn)行調(diào)用,使用戶對功能能夠有一個(gè)明確的直觀感受,概要的模塊劃分如圖4-1所示:圖4-1系統(tǒng)模塊圖詳細(xì)設(shè)計(jì)注冊模塊詳細(xì)設(shè)計(jì)進(jìn)行用戶注冊步驟時(shí),用戶先將注冊信息填到注冊框里面,點(diǎn)擊注冊,會先查詢數(shù)據(jù)庫對用戶的信息進(jìn)行判斷,如果沒有用戶的相同的用戶名,就會在數(shù)據(jù)庫中輸入所插入的數(shù)據(jù)信息完成注冊,跳轉(zhuǎn)到登錄頁面。如果有相同的用戶信息,就會有錯(cuò)誤提示,并且讓用戶修改注冊信息。大致的邏輯流程圖如4-2所示:圖4-2注冊流程圖登錄模塊詳細(xì)設(shè)計(jì)用戶登錄模塊應(yīng)當(dāng)包含操作用戶相關(guān)的內(nèi)容,點(diǎn)擊登錄,會將所輸入的信息到數(shù)據(jù)庫進(jìn)行查詢,看是否能夠查詢到輸入的信息,如果查詢到,就會完成登錄進(jìn)行跳轉(zhuǎn)。另外該模塊還包含微信登錄的功能。微信登錄功能需要注冊企業(yè)開發(fā)者資質(zhì),但是因?yàn)闆]有企業(yè)證書進(jìn)行注冊,只好借用尚硅谷的一個(gè)注冊好的微信id和密鑰生成二維碼。每次用戶打開PC端登陸請求,系統(tǒng)返回一個(gè)唯一的uid,并將uid的信息繪制成二維碼返回給用戶。這里的uid一定是唯一的,否則就會造成你登陸了其他用戶的賬號或者其他用戶登陸你的賬號。用戶使用登陸后的微信掃描該二維碼的時(shí)候,會將這個(gè)id和手機(jī)上的微信賬號及密碼產(chǎn)生的token進(jìn)行綁定,向服務(wù)器發(fā)送請求跳轉(zhuǎn)到首頁面[10]。大致的邏輯流程圖如4-3所示:。圖4-3登錄流程圖個(gè)人中心模塊詳細(xì)設(shè)計(jì)用戶點(diǎn)擊個(gè)人中心,會先對用戶的登錄信息進(jìn)行判斷,如果用戶未登錄,則會跳轉(zhuǎn)到登錄界面讓用戶登錄,如果以登錄,則會跳轉(zhuǎn)到用戶的個(gè)人中心。大致的邏輯流程圖如4-4所示:圖4-4個(gè)人中心流程圖搜索模塊詳細(xì)設(shè)計(jì)用戶只進(jìn)入主頁面之后,可以輸入信息對課程或者教師進(jìn)行分頁顯示,如果輸入信息無誤,符合條件的課程或者教師會在頁面上進(jìn)行分頁展示。如REF_Ref481435953圖4–5用戶登錄流程圖所示:圖STYLEREF1\s4–5用戶搜索流程圖課程管理模塊詳細(xì)設(shè)計(jì)管理員對課程進(jìn)行添加的時(shí)候,會先對課程的基本信息進(jìn)行編輯。其中包含具體的主講教師,課程所屬的一級分類和二級分類,和課程名稱,課程封面等其余的一些課程的必須信息。編輯課程信息完畢之后,會對課程的大綱進(jìn)行編輯,其中包含課程的章節(jié)和小節(jié),每一個(gè)課程中可以包含多個(gè)章節(jié),每一個(gè)章節(jié)中可以包含多個(gè)小節(jié),小節(jié)的信息里面可以包含所需要上傳的視頻。視頻上傳的時(shí)候是將該視頻上傳到阿里云服務(wù)中的視頻控制臺服務(wù)器中。上傳成功之后,會返回一個(gè)視頻id和視頻的解析碼。在視頻播放的時(shí)候。前端用戶可以在點(diǎn)擊視頻的時(shí)候,獲取到視頻id和解析碼對視頻進(jìn)行觀看。大致的登錄流程圖如4-6所示:圖STYLEREF1\s4–6課程發(fā)布流程圖教師管理模塊詳細(xì)設(shè)計(jì)管理員對教師信息添加的時(shí)候比較簡易,在選擇教師所屬的課程一級分類之后,再對教師的各項(xiàng)信息進(jìn)行填寫,其中包含教師的頭像上傳。頭像上傳的時(shí)候是將教師的頭像以jpg的類型上傳到阿里云oss平臺。最終進(jìn)行信息的添加。大致流程圖如4-7所示:圖STYLEREF1\s4–7課程發(fā)布流程圖數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)是在一個(gè)給定的應(yīng)用環(huán)境(數(shù)據(jù)庫管理系統(tǒng)),通過有效合理的邏輯設(shè)計(jì)和物理設(shè)計(jì),有一個(gè)更好的數(shù)據(jù)庫模式的結(jié)構(gòu)模型,建立數(shù)據(jù)庫和應(yīng)用程序設(shè)計(jì),滿足各種信息需求的用戶[11]。數(shù)據(jù)庫概念設(shè)計(jì)功能概要設(shè)計(jì)是系統(tǒng)所需實(shí)現(xiàn)功能的概要設(shè)計(jì),基于E-R圖來描述。E-R圖也稱實(shí)體-聯(lián)系圖(EntityRelationshipDiagram)[12],提供實(shí)體類型與屬性的相互關(guān)系,描述系統(tǒng)當(dāng)中事件的概要模型。這是現(xiàn)在軟件設(shè)計(jì)當(dāng)中表示關(guān)系概念模型的一種有效方式。E-R圖使用矩形框來表示事件當(dāng)中的實(shí)體類型,橢圓形框則來表示實(shí)體類型所關(guān)聯(lián)的對應(yīng)屬性,菱形框則表示實(shí)體類型與實(shí)體類型之間的關(guān)系。關(guān)系之間相連的兩條線則是表示兩個(gè)實(shí)體類型之間的關(guān)系,分別包括一對一(1:1)、一對多(1:n)、多對多(n:m)[13]。(1)管理員發(fā)布資源流程為多對多關(guān)系,可以發(fā)布任意的資源,ER圖如下圖4-8所示: 圖4-8資源ER圖(2)管理員添加教師一對多關(guān)系,任意的用戶可以添加任意的留言,ER圖如下圖4-9所示:圖4-9添加教師ER圖(3)管理員發(fā)布課程為一對多關(guān)系,多個(gè)管理員可以發(fā)布多個(gè)課程,同時(shí)每一個(gè)課程可以發(fā)布很多章節(jié),每一個(gè)章節(jié)可以分為很多小節(jié),每一個(gè)小節(jié)可以擁有一個(gè)課程視頻可以被多個(gè)用戶所查看,同樣是多對多關(guān)系,具體的ER圖如下圖4-10所示:圖4-10課程發(fā)布ER圖數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計(jì)表結(jié)構(gòu)是對數(shù)據(jù)庫中表設(shè)計(jì)的展示,好的系統(tǒng)往往具有合理的數(shù)據(jù)庫設(shè)計(jì),遵循數(shù)據(jù)庫表設(shè)計(jì)的范式,下面是本系統(tǒng)中具體的數(shù)據(jù)庫設(shè)計(jì)表:(1)教師表(edu_teacher):代表教師的基本信息,教師的頭像是存的是上傳圖片之后的url,如表4-1所示:表4-1用戶表列名數(shù)據(jù)類型長度字段說明th_idnchar22教師idth_namenchar66教師名字th_intronchar600教師簡歷th_careerbigint600資歷th_levelbigint11教師頭銜th_avatarnchar255頭像th_sortsmallint10教師排序th_is_deletetinyint1教師邏輯刪除th_gmt_createdatetime教師創(chuàng)建時(shí)間th_gmt_modifieddatetime教師更新時(shí)間(2)課程章節(jié)表(edu_chapter):代表課程章節(jié)的詳細(xì)信息,其中外鍵連接著課程id用來進(jìn)行章節(jié)的存儲,如表4-2所示:表4-2用戶信息表列名數(shù)據(jù)類型長度字段說明chapter_idnchar22用戶章節(jié)IDcourse_idnchar55課程IDcourse_titlenchar60章節(jié)名稱course_sortbigint120顯示排序course_gmt_createdatetime創(chuàng)建時(shí)間course_gmt_modifieddatetime更新時(shí)間(3)課程表(edu_course):代表課程的信息,包含課程一級分類和課程二級分類用來對課程的類型進(jìn)行區(qū)分,如表4-3所示:表4-3身份表列名數(shù)據(jù)類型長度字段說明ke_idnchar21課程IDteacher_idnchar22課程講師IDsubject_idnchar22課程專業(yè)IDsubject_parent_idnchar22課程專業(yè)父級IDke_titlenchar60課程標(biāo)題ke_pricenchar9課程銷售價(jià)格ke_lesson_numint9總課時(shí)ke_covervarchar300課程封面圖片路ke_buy_countbigint12銷售數(shù)量ke_view_countbigint12瀏覽數(shù)量ke_versionbigint18樂觀鎖ke_statusvarchar9課程狀態(tài)ke_is_deletedtinyint2邏輯刪除ke_gmt_createdatetime創(chuàng)建時(shí)間ke_gmt_modifieddatetime更新時(shí)間(4)課程類別表(edu_subject):儲存了課程的一級二級分類,用來區(qū)分課程類型,如表4-4所示:表4-4留言表列名數(shù)據(jù)類型長度字段說明fl_idsmallint21課程類別IDfl_titlevarchar8類別名稱fl_parent_idvarchar33父IDfl_sortvarchar2排序字段fl_gmt_createvarchar創(chuàng)建時(shí)間fl_gmt_modifiedint更新時(shí)間(5)課程視頻表(edu_video):包含課程的視頻章節(jié)小節(jié),外鍵是課程id和章節(jié)id,并且每一個(gè)小節(jié)可以上傳一個(gè)視頻,如表4-5所示:表4-5資訊表列名數(shù)據(jù)類型長度字段說明vod_idvarchar18視頻IDcourse_idvarchar16課程IDchapter_idvarchar20章節(jié)IDvod_titlevarchar20節(jié)點(diǎn)名稱video_source_idvarchar80云端視頻資源video_original_namevarchar80原始文件名稱vod_sortint12排序字段vod_play_countint18播放次數(shù)vod_is_freetinyint1是否可以試聽:vod_durationfloat視頻時(shí)長(秒)vod_statusvarchar22Empty未上傳vod_sizebigint22視頻源文件大小vod_versionbigint22樂觀鎖vod_gmt_createdatetime創(chuàng)建時(shí)間vod_gmt_modifieddatetime更新時(shí)間(6)課程描述表(edu_course_description):包含四個(gè)字段,存儲課程的詳細(xì)描述,如表4-6所示:表4-6課程描述表列名數(shù)據(jù)類型長度字段說明ds_idvarchar12課程IDdescriptiontext600課程簡介ds_gmt_createdatetime創(chuàng)建時(shí)間ds_gmt_modifieddatetime更新時(shí)間(7)輪播圖表(edu_course_description):包含了輪播圖的連接地址,如表4-7所示:表4-7輪播圖表列名數(shù)據(jù)類型長度字段說明banner_idvarchar20IDbanner_titlevarchar20標(biāo)題banner_image_urlvarchar20圖片地址banner_link_urlvarchar60鏈接地址banner_sortvarchar120排序banner_is_deletedvarchar120邏輯刪除banner_gmt_createdatetime22創(chuàng)建時(shí)間banner_gmt_modifieddatetime22更新時(shí)間(8)課程表(ucenter_member):代表用戶的基本信息,在登錄注冊和查看個(gè)人中心的時(shí)候可以用來查詢判斷和插入,如表4-8所示:表4-8用戶表列名數(shù)據(jù)類型長度字段說明usr_idvarchar21會員idusr_openidvarchar21微信openusr_mobilevarchar22手機(jī)號usr_passwordvarchar21密碼usr_nicknamevarchar60昵稱usr_sexdevimal10性別1女usr_ageint8年齡usr_avatarvarchar300用戶頭像usr_signbigint20用戶簽名usr_is_disabledbigint20是否禁用usr_is_deletedbigint30邏輯刪除usr_gmt_createdatetime3創(chuàng)建時(shí)間usr_gmt_modifieddatetime3更新時(shí)間系統(tǒng)實(shí)現(xiàn)系統(tǒng)平臺搭建本地java環(huán)境Java環(huán)境是先下載所需要版本的jdk,本系統(tǒng)使用的是jdk1.8,然后選用默認(rèn)配置進(jìn)行安裝,最后在windows系統(tǒng)中對環(huán)境變量進(jìn)行設(shè)置。查看是否安裝成功用java-version命令執(zhí)行。本地Node環(huán)境宏觀上來說Node.js是一個(gè)運(yùn)行在服務(wù)端的JavaScript,是一個(gè)采用時(shí)間驅(qū)動的服務(wù)端JS環(huán)境,并且基于可以非常快速執(zhí)行的谷歌V8引擎,所以Node.js的執(zhí)行效率也是非常的高,性能很好[14]。本系統(tǒng)的前端便采用的Node環(huán)境運(yùn)行,前端通過發(fā)送請求接受傳回來的Json數(shù)據(jù)與后端進(jìn)行交互。安裝的步驟非常簡單,去官網(wǎng)下載Windows版本Node,打開安裝版進(jìn)行安裝即可,然后可以使用命令node-v來查看Node版本。服務(wù)器Mysql環(huán)境服務(wù)器去官網(wǎng)上下載5.6版本進(jìn)行安裝,然后用SQLyog用具進(jìn)行操作,再服務(wù)里面將Mysql服務(wù)開啟并進(jìn)行登錄。本地Redis環(huán)境服務(wù)器去官網(wǎng)上下載2.6版本進(jìn)行安裝,然后用redis-serverredis.conf命令進(jìn)行開啟服務(wù)。本地Nginx環(huán)境Nginx.conf配置文件里面添加服務(wù)器訪問路徑用來請求分發(fā),其中包含用戶模塊,后臺模塊,微信注冊模塊,輪播圖模塊,文件上傳模塊,視頻上傳模塊的請求路徑。Nacos注冊中心首先需要搭建Nacos注冊中心,將所以需要啟動得模塊注冊到這里面來,以達(dá)到各個(gè)模塊之間相互通信調(diào)用的目的。需要在啟動類上加上@EnableDiscorveyClient注解來標(biāo)識這是一個(gè)Nacos注冊中心服務(wù)器[15],并且在配置文件中配置客戶端的訪問地址,端口后等。搭建成功后如圖5-1所示:圖5-1Nacos注冊中心界面注冊登錄模塊本系統(tǒng)的登陸模塊屬。根據(jù)登錄要求用戶把用戶名與密碼填寫到輸入框,若密碼與帳號錯(cuò)誤系統(tǒng)會給出相應(yīng)提示,若是自己輸入錯(cuò)誤,可以點(diǎn)擊左邊的重置按鈕,進(jìn)行重新填寫,若用戶信息完全正確,點(diǎn)擊確認(rèn)后,在數(shù)據(jù)庫中通過校驗(yàn)后,就會進(jìn)入系統(tǒng)的主界面,點(diǎn)擊退出“按鈕”,則會退出系統(tǒng)。此外,為了用戶的更好體驗(yàn),左下角設(shè)計(jì)的有是否記住密碼的選項(xiàng)框,方面用戶下次免輸入密碼可以直接登錄頁面。登陸注冊界面如圖5-2所示:圖5-2用戶登錄注冊界面核心代碼如下:classUMC{@AutowiredprivateUMSmS;@PostMapping("/login")QlU(@RequestBodyUMuM){Stringtoken=mS.login(uM);returnQ.ok().data("token",token);}@PostMapping("/register")QrU(@RequestBodyRVorVo){mS.register(rVo);returnQ.ok();}@GetMapping("/getMemberInfo")publicQgMI(HttpServletRequestrq){StringmId=JwtUtils.getMemberIdByJwtToken(rq);UMm=mS.getById(mId);returnQ.ok().data("userInfo",m);微信登錄模塊每次用戶打開PC端登陸請求,系統(tǒng)返回一個(gè)唯一的uid,并將uid的信息繪制成二維碼返回給用戶。這里的uid一定是唯一的,否則就會造成你登陸了其他用戶的賬號或者其他用戶登陸你的賬號。用戶使用登陸后的微信掃描該二維碼的時(shí)候,會將這個(gè)id和手機(jī)上的微信賬號及密碼產(chǎn)生的token進(jìn)行綁定,向服務(wù)器發(fā)送請求跳轉(zhuǎn)到首頁面。核心代碼如下:Stringcallabck(Stringcd,Stringst){try{StringbaseATU="/sns/oauth2/access_token"+"?appid=%s"+"&secret=%s"+&code=%s"+"&grant_type=authorization_code";StringaTU=String.format(bATU,ConstantWxUtils.WX_OPEN_APP_ID,ConstantWxUtils.WX_OPEN_APP_SECRET,code);StringaTI=HttpClientUtils.get(aTUrl);HttpClientUtils.get(aTU);Gsongson=newGson();HashMapmAT=gson.fJson(aTI,HashMap.class);Stringa_t=(String)mAT.get("access_token");Stringoid=(String)mAT.get("oid");UMm=mS.getOIdM(oid);if(m==null){StringbUIU="/sns/userinfo"+"?access_token=%s"+"&openid=%s";StringuIU=String.format(bUIU,a_token,oid);StringuI=HttpClientUtils.get(uIU);HashMapuIM=gson.fJson(uI,HashMap.class);Stringnkn=(String)uIM.get("nkn");Stringhiurl=(String)uIM.get("hiu");//頭像m=newUM();m.sOpenid(oid);m.sNickname(nkn);m.sAvatar(hiu);mS.save(m);}StringJT=JwtUtils.gJT(m.getId(),m.gNkn());return"redirect:http://localhost:3000?token="+JT;用戶搜索模塊用戶在登錄之后,教師和課程的封面和對應(yīng)信息顯示到了首頁面上。用戶可以選擇課程或者名師跳轉(zhuǎn)到相應(yīng)的資源頁面,并且用戶可以選擇相應(yīng)的分類條件進(jìn)行條件查詢。例如課程界面,當(dāng)用戶選擇一級分類例如語文,下面就會彈出相應(yīng)的二級分類例如必修一,就會向服務(wù)器發(fā)送請求同時(shí)攜帶者分類信息等條件,在數(shù)據(jù)庫中進(jìn)行查詢,最后會將數(shù)據(jù)返回給前端頁面展示,搜索模塊如圖5-4所示:圖5-4課程搜索界面核心代碼如下:QpLCC(@PathVariable("c")longc,@PathVariable("l")longl,@RequestBody(required=false)CQcQ){Page<EC>cP=newPage<>(c,l);QueryWrapper<EC>wr=newQueryWrapper<>();Stringti=cQ.gT();Stringst=cQ.gS();if(!StringUtils.isEmpty(ti)){wrapper.like("ti",ti);}if(!StringUtils.isEmpty(st)){wr.eq("st",st);}cS.page(cP,wr);longto=cP.gTotal();List<EC>r=cP.getRecords();returnQ.ok().data("to",to).data("re",re);視頻播放模塊管理員在添加課程的時(shí)候,插入小節(jié)時(shí)可以對小節(jié)進(jìn)行視頻的添加,視頻存放的地址是阿里云的oss控制臺對應(yīng)的服務(wù)器。在視頻上傳成功之后,會得到上傳的視頻id和憑證,可以通過視頻的憑證對視頻進(jìn)行播放。在該模塊中將視頻的憑證和id存入了本地的數(shù)據(jù)庫,在視頻播放模塊里查詢數(shù)據(jù)庫獲取到視頻憑證返回給前端。用戶點(diǎn)擊視頻請求就會攜帶憑證進(jìn)行訪問,就可以視頻的播放。視頻播放模塊如圖5-5所示:圖5-5視頻播放界面核心代碼如下:RgPA(@PathVariableStringid){try{DefaultAcsClientclient=InitObject.initVodClient(CotVodUtils.ACCESS_KEY_ID,CotVodUtils.ACCESS_KEY_SECRET)GetVideoPlayAuthRequestrequest=newGetVideoPlayAuthRequest();request.setVideoId(id);GVPARr=cl.gAR(request);StringpA=r.gPA();returnR.ok().data("pA",pA);}//視頻上傳獲取憑證StringulVAly(MultipartFilefile){try{StringfN=file.getOF();Stringtitle=fN.sub(0,fN.lIO("."));InputStreamiS=f.getIS();UploadStreamRequestr=newUploadStreamR(ConstantVodUtils.ACCESS_KEY_ID,ConstantVodUtils.ACCESS_KEY_SECRET,title,fileName,inputStream);UVIuploader=newUploadVideoImpl();UploadStreamResponser=uploader.uS(request);if(response.iS()){returnresponse.getVId();個(gè)人中心模塊在用戶登錄完界面之后,若需要修改自己的各項(xiàng)信息,點(diǎn)擊個(gè)人中心的時(shí)候會發(fā)送請求先查詢一次數(shù)據(jù)庫,將用戶的各項(xiàng)信息返回到頁面上。用戶可以對信息進(jìn)行修改最終進(jìn)行提交,最終將修改后的信息保存到數(shù)據(jù)庫中。和人中心界面如圖5-6所示:圖5-6個(gè)人中心界面核心代碼如下:QgetMIf(HttpServletRequestrq){StringmId=JwtUtils.getMemberIdByJwtToken(rq);//查詢數(shù)據(jù)庫獲取用戶信息UcenterMembermb=memberService.getById(mbId);returnQ.ok().data("uI",mb);}UMgetOIdM(Stringoid){QueryWrapper<UcenterMember>wrapper=newQueryWrapper<>();wrapper.eq("oid",oid);UMmb=baseMapper.selectOne(wrapper);returnmb;課程分類模塊管理員可以通過查看課程分類區(qū)分課程的一級分類和二級分類。若課程的分類需要修改或者想重建新的分類。在增加課程列表里面可以通過上傳excel文件對課程分類進(jìn)行上傳,阿里云的EasyExcle解析將文件解析成普通數(shù)據(jù)存入到數(shù)據(jù)庫。課程分類管理界面如圖5-7所示:圖5-7課程分類模塊界面核心代碼如下:List<OneSubject>getAllSubject(){QueryWrapper<EduSubject>wrapperOne=newQueryWrapper<>();wrapperOne.eq("parent_id","0");List<EduSubject>oneSubjectList=baseMapper.selectList(wrapperOne);QueryWrapper<EduSubject>wrapperTwo=newQueryWrapper<>();wrapperTwo.ne("parent_id","0");List<EduSubject>twoSubjectsList=baseMapper.selectList(wrapperTwo);List<OneSubject>oneSubjects=newArrayList<>();for(inti=0;i<oneSubjectList.size();i++){EduSubjectsubject=oneSubjectList.get(i);Stringid=subject.getId();Stringtitle=subject.getTitle();OneSubjectoneSubject=newOneSubject();oneSubject.setId(id);oneSubject.setTitle(title);oneSubjects.add(oneSubject);List<TwoSubject>twoSubjects=newArrayList<>();for(inta=0;a<twoSubjectsList.size();a++){EduSubjectsubject1=twoSubjectsList.get(a);Stringid1=subject1.getId();StringparentId=subject1.getParentId();Stringtitle1=subject1.getTitle();if(parentId.equals(id)){TwoSubjecttwoSubject=newTwoSubject();twoSubject.setId(id1);twoSubject.setTitle(title1);twoSubjects.add(twoSubject);}}oneSubject.setTwoSubjects(twoSubjects);}returnoneSubjects;課程管理模塊該模塊包括課程的發(fā)布和課程的查詢、修改和刪除。其中發(fā)布的課程需要先對課程的基本信息進(jìn)行添加,其中需要添加課程的一級分類和二級分類,課程的簡歷是用到了文本編譯器進(jìn)行編譯。完成之后對課程的大綱進(jìn)行編寫,包含課程的課程的章節(jié)和小節(jié),小節(jié)中可以上傳視頻。課程的查詢可以查詢到課程的所有信息,修改和刪除也在課程列表頁面,可以對課程進(jìn)行增刪改查。課程發(fā)布界面如圖5-8所示:圖5-8課程管理界面核心代碼如下:StringsaveCourseInfo(CourseInfoVocourseInfoVo){EduCoursecourse=newEduCourse();BeanUtils.copyProperties(courseInfoVo,course);intinsert=baseMapper.insert(course);if(insert==0){thrownewGuliException(20001,"添加課程信息失敗");}Stringcid=course.getId();EduCourseDescriptioneduCourseDescription=newEduCourseDescription();eduCourseDescription.setDescription(courseInfoVo.getDescription());eduCourseDescription.setId(cid);courseDescriptionService.save(eduCourseDescription);returncid;}教師管理模塊教師模塊中分為兩個(gè)頁面,其中教師列表可以對教師進(jìn)行刪除、修改、和條件查詢,添加教師頁面可以添加授課教師。條件查詢會根據(jù)頁面上的表單里面的信息發(fā)送查詢請求,在并將當(dāng)前頁和每頁查詢的記錄數(shù)攜帶給控制層,調(diào)用mybatisPlus里面封裝好的方法進(jìn)行條件查詢,最終將結(jié)果返回。教師的添加中包含教師的頭像上傳,需要將教師的頭像發(fā)送到阿里云的服務(wù)器中保存,將路徑存入本地?cái)?shù)據(jù)庫,用戶查看前端的時(shí)候會直接通過保存的url對資源進(jìn)行訪問,顯示到相應(yīng)的位置。教師列表界面如圖5-9所示:圖5-9教師管理模塊界面核心代碼如下:EduTeacherServiceteacherService;@GetMapping("findAll")publicRfindAllTeacher(){//service的方法查詢所有操作List<EduTeacher>list=teacherService.list(null);returnR.ok().data("items",list);}@DeleteMapping("/{id}")RremoveTeacher(@ApiParam(name="id",value="講師ID",required=true)@PathVariable("id")Stringid){booleanflag=teacherService.removeById(id);if(flag){returnR.ok();系統(tǒng)測試E網(wǎng)通網(wǎng)絡(luò)教學(xué)系統(tǒng)開發(fā)后必須要經(jīng)過測試的步驟,只有通過了測試才能正式使用。開發(fā)每個(gè)系統(tǒng)都需要經(jīng)過測試的步驟,這是一個(gè)非常重要和必要的過程,以實(shí)現(xiàn)設(shè)計(jì)的必要階段。測試結(jié)果與總結(jié)E網(wǎng)通網(wǎng)絡(luò)教學(xué)系統(tǒng)測試方法主要是分為系統(tǒng)的白盒測試和系統(tǒng)的黑盒測試。白盒測試:白盒檢測法是一種方法,即著重內(nèi)部結(jié)構(gòu)合理設(shè)計(jì)一套系統(tǒng),作為主要基地制定案件也稱為考驗(yàn),考驗(yàn)結(jié)構(gòu)或測試工具。正如我們作為一個(gè)具體設(shè)計(jì)程序,只有對其內(nèi)部結(jié)構(gòu)和測試的邏輯、某些邏輯、軟件開發(fā),為測試程序之前受到嚴(yán)格程序設(shè)計(jì)和設(shè)計(jì)最佳。黑盒測試:黑盒測試,正如我們進(jìn)行功能測試,應(yīng)被視為測試數(shù)據(jù)的系統(tǒng),我們期待著程序測試結(jié)果,沒有考慮到程序的內(nèi)部結(jié)構(gòu)和特征所依據(jù)的只是系統(tǒng)的規(guī)格制訂以核查方式運(yùn)作所有職能[21]。E網(wǎng)通網(wǎng)絡(luò)教學(xué)系統(tǒng)通過黑盒測試,測試過程中主要是根據(jù)輸入條件和輸出條件的確定測試數(shù)據(jù),來檢查程序是否滿足了用戶的需求,是否能夠正常運(yùn)行。進(jìn)行黑盒測試主要有下面幾種方法:等價(jià)分類法、邊界值分析法、猜錯(cuò)法、因果圖法。6.2測試結(jié)果與總結(jié)為了測試系統(tǒng)軟件的功能,為了使系統(tǒng)更完善,并在系統(tǒng)測試中,我們將盡量添加真實(shí)有效的數(shù)據(jù),從而使系統(tǒng)的功能更加真實(shí)。系統(tǒng)測試時(shí)要做到對每個(gè)功能都進(jìn)行測試,才能找出系統(tǒng)存在的問題。給出解決方案,最終系統(tǒng)可以正常運(yùn)行。6.3系統(tǒng)測試用例測試描述:用戶在登錄時(shí)可以進(jìn)行密碼找回的操作,下面將進(jìn)行模塊的測試。如表6-1所示。表6-1模塊測試模塊名稱模塊測試功能特性已注冊的用戶登錄系統(tǒng)測試目的驗(yàn)證是否全面,模塊設(shè)計(jì)是否實(shí)現(xiàn)用例編號測試步驟輸入數(shù)據(jù)預(yù)期結(jié)果測試結(jié)果DL001用戶登錄點(diǎn)擊登錄按鈕跳轉(zhuǎn)到頁面成功DL002輸入錯(cuò)誤賬號輸入錯(cuò)誤賬號和密碼,點(diǎn)擊登錄提示登錄失敗成功DL003輸入正確賬號輸入正確賬號和密碼,點(diǎn)擊登錄提示登錄成功成功DL004微信掃碼點(diǎn)擊微信按鈕跳轉(zhuǎn)到首頁成功(2)前臺資源功能測試描述:用戶登錄可以在系統(tǒng)中查看老師,查看課程,查看個(gè)人信息,視頻點(diǎn)播,下面將進(jìn)行前臺資源模塊的測試。如表6-2所示。表6-2前臺資源模塊測試模塊名稱前臺資源測試功能特性已注冊的用戶登錄系統(tǒng)測試目的驗(yàn)證E網(wǎng)通網(wǎng)絡(luò)教學(xué)系統(tǒng)是否全面,教學(xué)模塊功能是否實(shí)現(xiàn)用例編號測試步驟輸入數(shù)據(jù)預(yù)期結(jié)果測試結(jié)果DL001查看個(gè)人中心點(diǎn)擊個(gè)人中心顯示個(gè)人信息成功DL002課程搜索點(diǎn)擊一級分類,點(diǎn)擊二級分類鎖定到具體課程成功DL003查看教師點(diǎn)擊教師查看顯示照片個(gè)教師信息成功DL004視頻播放選擇小節(jié)點(diǎn)擊視頻視頻播放成功本章探討了功能和查看用戶信息功能,并有證據(jù)表明,測試開發(fā)進(jìn)程是非常富有成效的由于時(shí)間篇幅有限,不能一一進(jìn)行文字描述,對于出現(xiàn)的一些小問題已經(jīng)通過和老師的溝通
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 酒店中餐擺臺培訓(xùn)
- 重卡銷售培訓(xùn)
- 痛風(fēng)病人飲食護(hù)理
- 職業(yè)安全健康管理
- 財(cái)會合規(guī)培訓(xùn)
- 腫瘤護(hù)理專家共識
- 銷售業(yè)績分解培訓(xùn)
- 加油站全流程診斷體系構(gòu)建
- 稽核監(jiān)察財(cái)務(wù)培訓(xùn)
- 互聯(lián)網(wǎng)+教育精準(zhǔn)扶貧:2025年實(shí)踐案例分析報(bào)告
- DB34∕T 3262.1-2018 普通公路養(yǎng)護(hù)預(yù)算 第一部分:編制辦法
- 深圳市龍崗區(qū)科技創(chuàng)新局2025年招考普通雇員高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年湖南湘西州花垣縣事業(yè)單位招聘工作人員71人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年高中歷史畢業(yè)會考全部基礎(chǔ)知識復(fù)習(xí)提綱(完整版)
- 電商平臺品牌授權(quán)使用協(xié)議
- 水泥土擠密樁的施工方案
- 急性粒-單核細(xì)胞白血病病因介紹
- 心外科手術(shù)進(jìn)修匯報(bào)
- 集團(tuán)公司資金池管理制度
- 瑤醫(yī)瑤藥文化
- 設(shè)計(jì)院項(xiàng)目設(shè)計(jì)流程與規(guī)范
評論
0/150
提交評論