《網(wǎng)絡教學系統(tǒng)的設計實現(xiàn)》13000字(論文)_第1頁
《網(wǎng)絡教學系統(tǒng)的設計實現(xiàn)》13000字(論文)_第2頁
《網(wǎng)絡教學系統(tǒng)的設計實現(xiàn)》13000字(論文)_第3頁
《網(wǎng)絡教學系統(tǒng)的設計實現(xiàn)》13000字(論文)_第4頁
《網(wǎng)絡教學系統(tǒng)的設計實現(xiàn)》13000字(論文)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

網(wǎng)絡教學系統(tǒng)的設計實現(xiàn)隨著網(wǎng)絡的發(fā)展和社會上人們對教育越來越重視,一個全新的模式逐漸發(fā)展起來并不斷完善,這就是網(wǎng)絡教學模式。相比與傳統(tǒng)的教學模式,網(wǎng)絡教學模式具有很多的優(yōu)點,他的教學方式和教學過程更具有時代意義,傳統(tǒng)教學模式必須在固定的地點和相應的時間進行課程的推進,而網(wǎng)絡教學不受兩者的限制。除此之外,它還可以實現(xiàn)更個性化的教學,能夠讓學生更全面的發(fā)展和更廣泛的狩獵知識。因此,世界各國對這種系統(tǒng)的開發(fā)投入的越來越多。網(wǎng)絡教學的發(fā)展源于網(wǎng)絡和傳統(tǒng)教育的結合,真正的將教學的中心轉移給學生,學生可以對自己擁有的課程任意支配,但也有一定的缺點,對于自制力水平差的學生,學習效率可能不如傳統(tǒng)教學模式,但這是一個長期漸進的轉變和適應的過程,網(wǎng)絡教學的體系也在不斷完善。網(wǎng)絡教學;前后端分離;微服務;Vue;目錄1緒論 11.1課題的背景 11.2國內外研究現(xiàn)狀 11.3研究的主要內容 21.4系統(tǒng)開發(fā)的目的和意義 21.5論文結構概述 22相關技術 32.1SpringBoot 32.2Vue 32.3MyBatisPlus 32.4SpringCloud 33系統(tǒng)需求 33.1可行性分析 43.1.1社會可行性分析 43.1.2技術可行性分析 43.1.3時間可行性分析 43.1.4經(jīng)濟可行性分析 43.2功能需求分析 5(1)系統(tǒng)后臺 (管理員使用) 5(2)系統(tǒng)前臺(普通用戶使用) 53.3面向對象分析 53.3.1系統(tǒng)后臺用例關系 53.3.2系統(tǒng)前臺用例關系 64系統(tǒng)設計 64.1概要設計 64.2詳細設計 74.2.1注冊模塊詳細設計 74.2.2登錄模塊詳細設計 74.2.3個人中心模塊詳細設計 84.2.4搜索模塊詳細設計 94.2.5課程管理模塊詳細設計 94.2.6教師管理模塊詳細設計 10課程發(fā)布流程圖 104.3數(shù)據(jù)庫設計 114.3.1數(shù)據(jù)庫概念設計 114.3.2數(shù)據(jù)庫表結構設計 125系統(tǒng)實現(xiàn) 155.1系統(tǒng)平臺搭建 155.1.1本地java環(huán)境 155.1.2本地Node環(huán)境 155.1.3服務器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個人中心模塊 205.7課程分類模塊 215.8課程管理模塊 225.9教師管理模塊 226系統(tǒng)測試 236.1測試結果與總結 236.2測試結果與總結 246.3系統(tǒng)測試用例 24結束語 26參考文獻 27PAGE5緒論課題的背景在新中國建立以來至今日,我們國家的教育從剛建國到現(xiàn)在發(fā)生了非常重大的變化,時代的進步,教育行業(yè)也有了新的改變。原本固定的實地教學模式在以網(wǎng)絡為介質的催化劑作用下變得多樣性,只要有網(wǎng)絡,就能進行教學。在任何擁有網(wǎng)絡課件的地點,學員可以不受固定時間的限制進行課程的學習。這種優(yōu)勢不單單適用于學生,對于那些已經(jīng)工作,業(yè)務繁忙,沒有固定的時間去線下學習的打工人而言,這種學習方式無疑是最受歡迎的。2020年的疫情,給人門帶來和很大的災難。但任何事情都有弊有利,全國各類學校按照教育部"聽課不停學"的要求,疫情防控期間開展了網(wǎng)絡教學。充分利用互聯(lián)網(wǎng)的優(yōu)勢,各個學校因地制宜,開展多樣化的網(wǎng)絡教學。不單單是學校,各類培訓機構等教育行業(yè)的網(wǎng)絡教育也開展了起來。網(wǎng)絡教學方式如雨后春筍一樣爆發(fā)出來,在線直播課堂、網(wǎng)絡點播教學、電視視頻學習、網(wǎng)絡集中輔導答疑,qq、微信、釘釘?shù)溶浖M行互動,我們的教育從現(xiàn)代化向信息化轉變[1]。國內外研究現(xiàn)狀我國的網(wǎng)絡基本已普及到全國各大中小城市,但現(xiàn)在網(wǎng)絡教育資源并不是很豐富,再加上在教育水品并不高的廣大農(nóng)村地區(qū)。因此在未來,我國的網(wǎng)上教育平臺的建設將有很大的前景。我國已有一些網(wǎng)絡教學平臺,如軟酷網(wǎng),咯大重點高校的在線教學平臺等都為我們提供了良好的學習平臺。但由于傳統(tǒng)教學觀念的束縛,遠程教育并未得到很好的推廣。因此,上面提到的政策的實施以及觀念的轉變顯得尤為重要。當今國外網(wǎng)絡教學發(fā)展得較國內更加迅速,除了普及廣泛外,已經(jīng)向更高層次的應用和標準化方面發(fā)展。美國100多家著名大學將運用InternetII進行現(xiàn)代遠程教育,75%的美國高校將出示網(wǎng)絡教育[2]。美國高校的現(xiàn)代遠程教育選用了各種各樣方式方法,選用數(shù)最多的是視頻產(chǎn)品和根據(jù)Internet的信息科技,尤其是運用Internet的非同步教學、雙重互動式的教學視頻和單項式預錄教學視頻。英國的網(wǎng)絡院校全是由很多有關的教育局或公司建立,而各網(wǎng)絡院校中間又有十分普遍的聯(lián)接,全部管理體系呈多孔結構,不管你要學什么專業(yè)知識和專業(yè)技能,到在網(wǎng)上都能尋找有關的材料和協(xié)助。不僅有專業(yè)對于教育信息化的、又有專業(yè)對于師資培訓的、高等職業(yè)教育(成人繼續(xù)教育、繼續(xù)再教育和高等職業(yè)教育)的。在其中每一方面都牽涉到每門各種課程和整套的公共服務設施。全世界現(xiàn)有800多家高校根據(jù)Internet出示在網(wǎng)上學士學位課程內容,像哈福高校、麻省理工大學、牛津大學早已容許海外學員開展在網(wǎng)上申請注冊、外地學習培訓學士學位課程內容[3]。1996年英國群眾中刮起致力于促進院校連接網(wǎng)絡的“網(wǎng)絡日”志愿服務活動,克林頓政府明確提出“教育信息化行動”綱要。該綱要強調:到2000年,全國各地的每個課室和每一個圖書館都聯(lián)上信息內容高速路,每一個孩子都能在21新世紀的技術性文化藝術層面遭受文化教育。到迄今為止,一個遍布全國關鍵教育培訓機構的網(wǎng)絡已然產(chǎn)生,基本上全國各地全部的院校都能進行網(wǎng)絡教育。在高等院校,網(wǎng)絡教育所設立的文憑、學士學位課程內容已超出五萬門,基本上遮蓋了英國高等院校全部的課程和技術專業(yè)。研究的主要內容E網(wǎng)通網(wǎng)絡教學系統(tǒng),是一個可以在線觀看視頻的教學網(wǎng)站,分為前臺用戶系統(tǒng)和后臺運營平臺,主要根據(jù)用戶的需求開發(fā)一些學院以及教育機構所需要的業(yè)務功能,使中學生在學校學習之余能夠隨時隨地的進行學習。主要設置了賬號注冊登錄、微信掃碼登錄、用戶管理、教師管理、課程分類管理、課程管理等業(yè)務需求功能。系統(tǒng)開發(fā)的目的和意義中學生的學習成績提升,是家長、老師和自身都希望的。網(wǎng)絡發(fā)達程度沒有非常高的時候,中學生去輔導班等培訓機構進行課外線下輔導是非常常見的。但是,線下輔導由于各地區(qū)的發(fā)展程度不同,規(guī)模大小不同,講師的水平不同,所以教學的質量有著非常大的差異,所以線下有一些試聽課的開展,但即使這樣,還是造成了大量的成本浪費。而現(xiàn)在網(wǎng)絡發(fā)達了起來,只要學生擁有電腦和網(wǎng)絡,就能點播學習自己在學校疏漏的知識或者提前預習新的課程。而基于網(wǎng)絡開展的E網(wǎng)通網(wǎng)絡教學系統(tǒng)則不同,為了讓用戶有更好的學習和提升自身的知識水平,實現(xiàn)個性化的東西,低價甚至開展一些免費的課程供學生點播,為廣大的中學生提供性價比很高的資源。論文結構概述本章節(jié)介紹論文結構構成,總共有六個部分。對系統(tǒng)進行了從開始的技術意圖到最后的設計與實現(xiàn)的描述,具體如下:第一部分對課題的產(chǎn)生背景進行了描述,E網(wǎng)通網(wǎng)絡教學系統(tǒng)所致力要做的一個平臺。第二部分是本系統(tǒng)對實現(xiàn)所需使用的技術進行說明介紹。第三部分是對本系統(tǒng)進行需求描述,包括對系統(tǒng)的可行性進行分析,對系統(tǒng)的功能需求進行進一步的詳細分析,最終對系統(tǒng)所面向的對象進行描述。第四部分是對本網(wǎng)站進行設計,分為概要設計以及詳細設計。第五部分是對系統(tǒng)的搭建及各個模塊的實現(xiàn)和描述。第六部分是針對系統(tǒng)的各項功能進行測試,通過測試來查看系統(tǒng)所設計的功能是否有缺陷和漏洞。相關技術SpringBoot2014年4月,Pivotal研發(fā)團隊提供的全新框架,它是對spring的進一步封裝,其設計目的是用來簡化應用的初始搭建以及開發(fā)過程,名為SpringBoot[4]。為了讓開發(fā)者用的更加簡易,通過封裝、抽象、提供默認配置等方式對框架進行了大幅度完善。它的特點就是自動裝配,在創(chuàng)建一個運行項目時候,springboot能夠將所需要的配置信息和框架自動的封裝起來,使用嵌入式的服務器程序,模塊中的項目不需要進行打成war包,自動導入maven依賴,對快照版本、里程碑版本等版本進行控制,大量的自動配置,簡化了開發(fā),也可修改默認值,不用向ssm一樣配置復雜的xml文件,無代碼生成,但可以引入MybatisPlus用代碼生成器直接生成底層代碼,開箱即用,準生產(chǎn)環(huán)境的運行時應用監(jiān)控,與云計算的天然集成[5]。VueVue是一個國內開源非常優(yōu)秀并且實用的前端框架[5]。他的特點是可以非常榮容易的與其他庫向結合,并且對于一種增量的開發(fā),它采用了尤底層向上層的設計,擁有能夠及時的關注用戶課件的視圖層的核心庫,十分簡單易學。目前的前端開發(fā)非常流行瀏覽器的渲染,驅動單個文件,單個頁面能夠應用的組件,這些內容vue都能有流暢的運行。由于之專注于視圖層,所以開發(fā)很容易上手,方便和其他的api或者后端接口進行整合。并且不會產(chǎn)生沖突和兼容問題,能完美的運行單頁面應用。MyBatisPlusMyBatis-Plus是一個Mybatis增強工具包,在MyBatis上擴充了其他功能沒有改變其基本功能,簡化CRUD操作,啟動加載XML配置時注入單表SQL操作,為了簡化開發(fā)提交效率而存在。具有無侵入、損耗小、內置分頁插件并且支持多種數(shù)據(jù)庫等特性。其核心功能有:代碼自動生成器、crud接口、條件構造器、分頁插件、Sequence主鍵、自定義ID生成器。SpringCloudSpringCloud是一個基于SpringBoot實現(xiàn)的微服務架構開發(fā)工具,它是一系列框架的有序集合。它不只是解決微服務的某一個問題,而是一個解決微服務架構實施的綜合性解決框架,并且它整合了諸多被廣泛實踐和證明過的框架作為實施的基礎部件,又在該體系基礎上創(chuàng)建了一些非常優(yōu)秀的邊緣組件;系統(tǒng)需求軟件需求指的是用戶對這個軟件的功能、性能、安全性、可靠性等方面的一種需求期望。一個軟件的實現(xiàn)通常有一套規(guī)劃的周期。前期要對系統(tǒng)進行可行性分析,確定可行后對詳細的功能進行需求分析,對系統(tǒng)進行設計,以及中期的編碼,測試,到最后的項目測試,上線達成一個完整的周期。而需求分析則占據(jù)了舉足輕重的位置,對系統(tǒng)后續(xù)的實現(xiàn)有著鋪墊的作用??尚行苑治錾鐣尚行苑治龌谠诰€教育的特點和優(yōu)勢,其越來越受到現(xiàn)代人的認可,很多人開始選擇在線教育,特別是白領一族和大學生們,與此同時,各類新興的網(wǎng)校及相關網(wǎng)站也不斷涌現(xiàn)。這表示在線教育已經(jīng)逐漸走進大眾的生活并成為一種學習的主流趨勢。據(jù)統(tǒng)計僅在2012年一年時間里,中國在線教育市場份額已經(jīng)達到723億元,在線教育用戶呈規(guī)模性擴大[8]。各大中小學校通過建立在線教育網(wǎng)絡和公共教學資源庫,以加強學校、老師和學生之間的相互交流溝通,提高教學質量,建設精品課程,宣傳學校的教育實力。技術可行性分析在我接觸這一個全新領域時,我開始尋找大量的文獻,以及去圖書館翻閱書籍,加上和周圍同學們的相互討論,我開始逐步深入了解springBoot技術和SpringCloud技術,但是畢竟是第一次接觸,這對我來說是一個新的開始,也是一個全新的方向,但雖說如此,我對自己的要求還是比較的高,這樣才能給我努力的方向,經(jīng)過多番的努力,終于得到了回報,我可以做一個簡單的案例,漸漸的對這個技術有了大概的了解。在我的導師王老師的指導,以及與周圍同學的討論中發(fā)現(xiàn),宏觀的去了解一個技術,這是掌握好這一項技術的首要基礎。為了解決開發(fā)中的每一項重點難點,以及在技術的選擇上,還有去進行考慮設計架構在現(xiàn)有的平臺上。只有一個數(shù)據(jù)庫可以去訪問,這是一般的系統(tǒng)模塊所實現(xiàn)的,但如果想去獲取其他數(shù)據(jù)庫數(shù)據(jù),這就只能通過調用服務接口才可以,并且系統(tǒng)中的業(yè)務邏輯以及適配器,都有自己相對應的一系列組件,它們能供很多地方去使用,比如應用客戶端。新系統(tǒng)的功能都是按系列去劃分的,每一個系列都有其獨特之道,根據(jù)自己的使用方向,去選擇相對應的功能,比如登錄管理,發(fā)布課程,后臺配置等等,這就是用springBoot開發(fā)系統(tǒng)的獨特之處。時間可行性分析本次的給予我去完成基于E網(wǎng)通網(wǎng)絡教學系統(tǒng)的時間加起來是非常的充裕的,可以讓我有充裕的精力去搜尋一些靈感,去開闊自己的思維,或者和周圍的同事進行分析。綜上所述個人覺得在時間層面這一個系統(tǒng)可以實現(xiàn)的。經(jīng)濟可行性分析本網(wǎng)站教學系統(tǒng)是基于vue網(wǎng)頁模版,以及成熟且開源的庫Node.js,只需要本地進行響應的配置安裝,便可以開發(fā),適當?shù)膱D片UI設計在阿里巴巴上面也有開源庫Iconfont,由于前端開發(fā)具有輕量級特點,對操作環(huán)境沒有太大的要求,系統(tǒng)不需要很強的經(jīng)濟支持,無需投入太多精力。從而開發(fā)所需要的資金投入不會很大,所以實現(xiàn)此需求的成本是可以忽略不計的,軟件開后中數(shù)據(jù)源以及產(chǎn)品源的提供,需要編輯進行處理。貨源也各大廠商洽談,前期可做免費的商品推廣。在后期發(fā)展成熟后,可在完善系統(tǒng)貨源,豐富提供商。系統(tǒng)只需要配置一臺服務器,而阿里云服務器也被各大公司使用,新浪云服務器也應用與項目的開發(fā),便可以通過域名方式被各個瀏覽器所訪問,同時微信端也提供了開發(fā)者API可提供內置方法供用戶方便使用。從經(jīng)濟上來分析是可行的。功能需求分析功能性需求分析是以用戶身份來提出需求并對此展開系統(tǒng)所需實現(xiàn)的功能的一種分析方式。本文結合用戶所需來實現(xiàn)主題的功能,主要功能如下:(1)系統(tǒng)后臺 (管理員使用)管理員首先能夠登錄系統(tǒng),只需要輸入用戶名和密碼就能夠跳轉到E網(wǎng)通網(wǎng)絡教學系統(tǒng)的后臺管理頁面;管理員能夠操作教師,其中添加教師做為一個單獨的頁面用來填寫基本的教師信息和上傳頭像,另外一個頁面管理員能夠對教師進行分頁查詢,并且可以通過名字的模糊查詢和創(chuàng)建時間等信息搜索到講師,并且符合條件的教師顯示在頁面的同時還可以進行修改和刪除;管理員能夠操作課程分類,課程分類的設置可以通過文件的上傳然后進行解析插入到數(shù)據(jù)庫,并在課程分類頁面進行顯示,并且可以通過關鍵字搜索到符合條件的課程類別;管理員能夠對課程進行發(fā)布、課程修改、課程刪除和課程的分頁查詢,在課程添加的時候,可以對課程的章節(jié)進行增刪改,課程詳細描述的編輯可以通過富文本編譯器,課程的封面可以上傳圖片,在添加課程章節(jié)的時候,可以對課程的小節(jié)進行增刪改,在課程添加小節(jié)的時候,可以對課程的視頻進行添加和刪除。(2)系統(tǒng)前臺(用戶使用)用戶可以在本網(wǎng)站進行注冊;用戶可以登錄,登錄的時候可以選擇默認登錄和微信登錄,用戶使用默認登錄的時候需要填寫用戶名和密碼,微信登錄的時候直接掃描微信二維碼進行跳轉;在登錄到首頁面之后,用戶可以通過點擊頭像到個人中心查看自己的基本信息;用戶可以在教師頁面查看教師并進行搜索,并且可以點擊教師的頭像查看教師的詳細信息;用戶可以到課程頁面通過點擊分類信息索引符合條件的課程進行索引顯示,并且可以點擊課程進入課程詳細頁面,有課程的具體內容包括課程的章節(jié)和小節(jié),點擊小節(jié)種的視頻可以跳轉到視頻頁面進行學習。面向對象分析面向對象分析是考慮實際設計中的模塊需求,將一個個需求想象成一個個對象,進行抽象的對象設計,來達到實現(xiàn)系統(tǒng)設計的目的[9]。普通的受眾群體是這個系統(tǒng)的主要面向,每一個人可以在平臺首頁上面去根據(jù)自己的不同去注冊之后然后選擇登錄,然后就可以用這個產(chǎn)品了。通過示例圖以及分析,就能明白用戶需要的各類課程和名師。系統(tǒng)后臺用例關系實現(xiàn)了管理管理員模塊,主要是對講師信息的操作;課程分類管理模塊,主要對課程分類進行管理;課程模塊,用于課程的操作和發(fā)布。系統(tǒng)后臺模塊用例圖如圖3-1所示:圖3-1系統(tǒng)后臺模塊用例圖系統(tǒng)前臺用例關系登錄和注冊功能,個人中心,首頁數(shù)據(jù)顯示,講師列表+詳情,課程列表+詳情,視頻在線播放系統(tǒng)前臺用例圖如圖3-2所示:圖3-2系統(tǒng)前臺模塊用例圖系統(tǒng)設計概要設計本系統(tǒng)將分為以下幾個模塊:講師模塊、課程分類模塊、課程模塊、系統(tǒng)前臺模塊、視頻上傳模塊,文件上傳模塊。每個模塊之間使用Fegin進行調用,使用戶對功能能夠有一個明確的直觀感受,概要的模塊劃分如圖4-1所示:圖4-1系統(tǒng)模塊圖詳細設計注冊模塊詳細設計進行用戶注冊步驟時,用戶先將注冊信息填到注冊框里面,點擊注冊,會先查詢數(shù)據(jù)庫對用戶的信息進行判斷,如果沒有用戶的相同的用戶名,就會在數(shù)據(jù)庫中輸入所插入的數(shù)據(jù)信息完成注冊,跳轉到登錄頁面。如果有相同的用戶信息,就會有錯誤提示,并且讓用戶修改注冊信息。大致的邏輯流程圖如4-2所示:圖4-2注冊流程圖登錄模塊詳細設計用戶登錄模塊應當包含操作用戶相關的內容,點擊登錄,會將所輸入的信息到數(shù)據(jù)庫進行查詢,看是否能夠查詢到輸入的信息,如果查詢到,就會完成登錄進行跳轉。另外該模塊還包含微信登錄的功能。微信登錄功能需要注冊企業(yè)開發(fā)者資質,但是因為沒有企業(yè)證書進行注冊,只好借用尚硅谷的一個注冊好的微信id和密鑰生成二維碼。每次用戶打開PC端登陸請求,系統(tǒng)返回一個唯一的uid,并將uid的信息繪制成二維碼返回給用戶。這里的uid一定是唯一的,否則就會造成你登陸了其他用戶的賬號或者其他用戶登陸你的賬號。用戶使用登陸后的微信掃描該二維碼的時候,會將這個id和手機上的微信賬號及密碼產(chǎn)生的token進行綁定,向服務器發(fā)送請求跳轉到首頁面[10]。大致的邏輯流程圖如4-3所示:。圖4-3登錄流程圖個人中心模塊詳細設計用戶點擊個人中心,會先對用戶的登錄信息進行判斷,如果用戶未登錄,則會跳轉到登錄界面讓用戶登錄,如果以登錄,則會跳轉到用戶的個人中心。大致的邏輯流程圖如4-4所示:圖4-4個人中心流程圖搜索模塊詳細設計用戶只進入主頁面之后,可以輸入信息對課程或者教師進行分頁顯示,如果輸入信息無誤,符合條件的課程或者教師會在頁面上進行分頁展示。如REF_Ref481435953圖4–5用戶登錄流程圖所示:圖STYLEREF1\s4–5用戶搜索流程圖課程管理模塊詳細設計管理員對課程進行添加的時候,會先對課程的基本信息進行編輯。其中包含具體的主講教師,課程所屬的一級分類和二級分類,和課程名稱,課程封面等其余的一些課程的必須信息。編輯課程信息完畢之后,會對課程的大綱進行編輯,其中包含課程的章節(jié)和小節(jié),每一個課程中可以包含多個章節(jié),每一個章節(jié)中可以包含多個小節(jié),小節(jié)的信息里面可以包含所需要上傳的視頻。視頻上傳的時候是將該視頻上傳到阿里云服務中的視頻控制臺服務器中。上傳成功之后,會返回一個視頻id和視頻的解析碼。在視頻播放的時候。前端用戶可以在點擊視頻的時候,獲取到視頻id和解析碼對視頻進行觀看。大致的登錄流程圖如4-6所示:圖STYLEREF1\s4–6課程發(fā)布流程圖教師管理模塊詳細設計管理員對教師信息添加的時候比較簡易,在選擇教師所屬的課程一級分類之后,再對教師的各項信息進行填寫,其中包含教師的頭像上傳。頭像上傳的時候是將教師的頭像以jpg的類型上傳到阿里云oss平臺。最終進行信息的添加。大致流程圖如4-7所示:圖STYLEREF1\s4–7課程發(fā)布流程圖數(shù)據(jù)庫設計數(shù)據(jù)庫設計是在一個給定的應用環(huán)境(數(shù)據(jù)庫管理系統(tǒng)),通過有效合理的邏輯設計和物理設計,有一個更好的數(shù)據(jù)庫模式的結構模型,建立數(shù)據(jù)庫和應用程序設計,滿足各種信息需求的用戶[11]。數(shù)據(jù)庫概念設計功能概要設計是系統(tǒng)所需實現(xiàn)功能的概要設計,基于E-R圖來描述。E-R圖也稱實體-聯(lián)系圖(EntityRelationshipDiagram)[12],提供實體類型與屬性的相互關系,描述系統(tǒng)當中事件的概要模型。這是現(xiàn)在軟件設計當中表示關系概念模型的一種有效方式。E-R圖使用矩形框來表示事件當中的實體類型,橢圓形框則來表示實體類型所關聯(lián)的對應屬性,菱形框則表示實體類型與實體類型之間的關系。關系之間相連的兩條線則是表示兩個實體類型之間的關系,分別包括一對一(1:1)、一對多(1:n)、多對多(n:m)[13]。(1)管理員發(fā)布資源流程為多對多關系,可以發(fā)布任意的資源,ER圖如下圖4-8所示: 圖4-8資源ER圖(2)管理員添加教師一對多關系,任意的用戶可以添加任意的留言,ER圖如下圖4-9所示:圖4-9添加教師ER圖(3)管理員發(fā)布課程為一對多關系,多個管理員可以發(fā)布多個課程,同時每一個課程可以發(fā)布很多章節(jié),每一個章節(jié)可以分為很多小節(jié),每一個小節(jié)可以擁有一個課程視頻可以被多個用戶所查看,同樣是多對多關系,具體的ER圖如下圖4-10所示:圖4-10課程發(fā)布ER圖數(shù)據(jù)庫表結構設計表結構是對數(shù)據(jù)庫中表設計的展示,好的系統(tǒng)往往具有合理的數(shù)據(jù)庫設計,遵循數(shù)據(jù)庫表設計的范式,下面是本系統(tǒng)中具體的數(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)建時間th_gmt_modifieddatetime教師更新時間(2)課程章節(jié)表(edu_chapter):代表課程章節(jié)的詳細信息,其中外鍵連接著課程id用來進行章節(jié)的存儲,如表4-2所示:表4-2用戶信息表列名數(shù)據(jù)類型長度字段說明chapter_idnchar22用戶章節(jié)IDcourse_idnchar55課程IDcourse_titlenchar60章節(jié)名稱course_sortbigint120顯示排序course_gmt_createdatetime創(chuàng)建時間course_gmt_modifieddatetime更新時間(3)課程表(edu_course):代表課程的信息,包含課程一級分類和課程二級分類用來對課程的類型進行區(qū)分,如表4-3所示:表4-3身份表列名數(shù)據(jù)類型長度字段說明ke_idnchar21課程IDteacher_idnchar22課程講師IDsubject_idnchar22課程專業(yè)IDsubject_parent_idnchar22課程專業(yè)父級IDke_titlenchar60課程標題ke_pricenchar9課程銷售價格ke_lesson_numint9總課時ke_covervarchar300課程封面圖片路ke_buy_countbigint12銷售數(shù)量ke_view_countbigint12瀏覽數(shù)量ke_versionbigint18樂觀鎖ke_statusvarchar9課程狀態(tài)ke_is_deletedtinyint2邏輯刪除ke_gmt_createdatetime創(chuàng)建時間ke_gmt_modifieddatetime更新時間(4)課程類別表(edu_subject):儲存了課程的一級二級分類,用來區(qū)分課程類型,如表4-4所示:表4-4留言表列名數(shù)據(jù)類型長度字段說明fl_idsmallint21課程類別IDfl_titlevarchar8類別名稱fl_parent_idvarchar33父IDfl_sortvarchar2排序字段fl_gmt_createvarchar創(chuàng)建時間fl_gmt_modifiedint更新時間(5)課程視頻表(edu_video):包含課程的視頻章節(jié)小節(jié),外鍵是課程id和章節(jié)id,并且每一個小節(jié)可以上傳一個視頻,如表4-5所示:表4-5資訊表列名數(shù)據(jù)類型長度字段說明vod_idvarchar18視頻IDcourse_idvarchar16課程IDchapter_idvarchar20章節(jié)IDvod_titlevarchar20節(jié)點名稱video_source_idvarchar80云端視頻資源video_original_namevarchar80原始文件名稱vod_sortint12排序字段vod_play_countint18播放次數(shù)vod_is_freetinyint1是否可以試聽:vod_durationfloat視頻時長(秒)vod_statusvarchar22Empty未上傳vod_sizebigint22視頻源文件大小vod_versionbigint22樂觀鎖vod_gmt_createdatetime創(chuàng)建時間vod_gmt_modifieddatetime更新時間(6)課程描述表(edu_course_description):包含四個字段,存儲課程的詳細描述,如表4-6所示:表4-6課程描述表列名數(shù)據(jù)類型長度字段說明ds_idvarchar12課程IDdescriptiontext600課程簡介ds_gmt_createdatetime創(chuàng)建時間ds_gmt_modifieddatetime更新時間(7)輪播圖表(edu_course_description):包含了輪播圖的連接地址,如表4-7所示:表4-7輪播圖表列名數(shù)據(jù)類型長度字段說明banner_idvarchar20IDbanner_titlevarchar20標題banner_image_urlvarchar20圖片地址banner_link_urlvarchar60鏈接地址banner_sortvarchar120排序banner_is_deletedvarchar120邏輯刪除banner_gmt_createdatetime22創(chuàng)建時間banner_gmt_modifieddatetime22更新時間(8)課程表(ucenter_member):代表用戶的基本信息,在登錄注冊和查看個人中心的時候可以用來查詢判斷和插入,如表4-8所示:表4-8用戶表列名數(shù)據(jù)類型長度字段說明usr_idvarchar21會員idusr_openidvarchar21微信openusr_mobilevarchar22手機號usr_passwordvarchar21密碼usr_nicknamevarchar60昵稱usr_sexdevimal10性別1女usr_ageint8年齡usr_avatarvarchar300用戶頭像usr_signbigint20用戶簽名usr_is_disabledbigint20是否禁用usr_is_deletedbigint30邏輯刪除usr_gmt_createdatetime3創(chuàng)建時間usr_gmt_modifieddatetime3更新時間系統(tǒng)實現(xiàn)系統(tǒng)平臺搭建本地java環(huán)境Java環(huán)境是先下載所需要版本的jdk,本系統(tǒng)使用的是jdk1.8,然后選用默認配置進行安裝,最后在windows系統(tǒng)中對環(huán)境變量進行設置。查看是否安裝成功用java-version命令執(zhí)行。本地Node環(huán)境宏觀上來說Node.js是一個運行在服務端的JavaScript,是一個采用時間驅動的服務端JS環(huán)境,并且基于可以非??焖賵?zhí)行的谷歌V8引擎,所以Node.js的執(zhí)行效率也是非常的高,性能很好[14]。本系統(tǒng)的前端便采用的Node環(huán)境運行,前端通過發(fā)送請求接受傳回來的Json數(shù)據(jù)與后端進行交互。安裝的步驟非常簡單,去官網(wǎng)下載Windows版本Node,打開安裝版進行安裝即可,然后可以使用命令node-v來查看Node版本。服務器Mysql環(huán)境服務器去官網(wǎng)上下載5.6版本進行安裝,然后用SQLyog用具進行操作,再服務里面將Mysql服務開啟并進行登錄。本地Redis環(huán)境服務器去官網(wǎng)上下載2.6版本進行安裝,然后用redis-serverredis.conf命令進行開啟服務。本地Nginx環(huán)境Nginx.conf配置文件里面添加服務器訪問路徑用來請求分發(fā),其中包含用戶模塊,后臺模塊,微信注冊模塊,輪播圖模塊,文件上傳模塊,視頻上傳模塊的請求路徑。Nacos注冊中心首先需要搭建Nacos注冊中心,將所以需要啟動得模塊注冊到這里面來,以達到各個模塊之間相互通信調用的目的。需要在啟動類上加上@EnableDiscorveyClient注解來標識這是一個Nacos注冊中心服務器[15],并且在配置文件中配置客戶端的訪問地址,端口后等。搭建成功后如圖5-1所示:圖5-1Nacos注冊中心界面注冊登錄模塊本系統(tǒng)的登陸模塊屬。根據(jù)登錄要求用戶把用戶名與密碼填寫到輸入框,若密碼與帳號錯誤系統(tǒng)會給出相應提示,若是自己輸入錯誤,可以點擊左邊的重置按鈕,進行重新填寫,若用戶信息完全正確,點擊確認后,在數(shù)據(jù)庫中通過校驗后,就會進入系統(tǒng)的主界面,點擊退出“按鈕”,則會退出系統(tǒ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)返回一個唯一的uid,并將uid的信息繪制成二維碼返回給用戶。這里的uid一定是唯一的,否則就會造成你登陸了其他用戶的賬號或者其他用戶登陸你的賬號。用戶使用登陸后的微信掃描該二維碼的時候,會將這個id和手機上的微信賬號及密碼產(chǎn)生的token進行綁定,向服務器發(fā)送請求跳轉到首頁面。核心代碼如下: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;用戶搜索模塊用戶在登錄之后,教師和課程的封面和對應信息顯示到了首頁面上。用戶可以選擇課程或者名師跳轉到相應的資源頁面,并且用戶可以選擇相應的分類條件進行條件查詢。例如課程界面,當用戶選擇一級分類例如語文,下面就會彈出相應的二級分類例如必修一,就會向服務器發(fā)送請求同時攜帶者分類信息等條件,在數(shù)據(jù)庫中進行查詢,最后會將數(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);視頻播放模塊管理員在添加課程的時候,插入小節(jié)時可以對小節(jié)進行視頻的添加,視頻存放的地址是阿里云的oss控制臺對應的服務器。在視頻上傳成功之后,會得到上傳的視頻id和憑證,可以通過視頻的憑證對視頻進行播放。在該模塊中將視頻的憑證和id存入了本地的數(shù)據(jù)庫,在視頻播放模塊里查詢數(shù)據(jù)庫獲取到視頻憑證返回給前端。用戶點擊視頻請求就會攜帶憑證進行訪問,就可以視頻的播放。視頻播放模塊如圖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();個人中心模塊在用戶登錄完界面之后,若需要修改自己的各項信息,點擊個人中心的時候會發(fā)送請求先查詢一次數(shù)據(jù)庫,將用戶的各項信息返回到頁面上。用戶可以對信息進行修改最終進行提交,最終將修改后的信息保存到數(shù)據(jù)庫中。和人中心界面如圖5-6所示:圖5-6個人中心界面核心代碼如下: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文件對課程分類進行上傳,阿里云的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ā)布的課程需要先對課程的基本信息進行添加,其中需要添加課程的一級分類和二級分類,課程的簡歷是用到了文本編譯器進行編譯。完成之后對課程的大綱進行編寫,包含課程的課程的章節(jié)和小節(jié),小節(jié)中可以上傳視頻。課程的查詢可以查詢到課程的所有信息,修改和刪除也在課程列表頁面,可以對課程進行增刪改查。課程發(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;}教師管理模塊教師模塊中分為兩個頁面,其中教師列表可以對教師進行刪除、修改、和條件查詢,添加教師頁面可以添加授課教師。條件查詢會根據(jù)頁面上的表單里面的信息發(fā)送查詢請求,在并將當前頁和每頁查詢的記錄數(shù)攜帶給控制層,調用mybatisPlus里面封裝好的方法進行條件查詢,最終將結果返回。教師的添加中包含教師的頭像上傳,需要將教師的頭像發(fā)送到阿里云的服務器中保存,將路徑存入本地數(shù)據(jù)庫,用戶查看前端的時候會直接通過保存的url對資源進行訪問,顯示到相應的位置。教師列表界面如圖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)絡教學系統(tǒng)開發(fā)后必須要經(jīng)過測試的步驟,只有通過了測試才能正式使用。開發(fā)每個系統(tǒng)都需要經(jīng)過測試的步驟,這是一個非常重要和必要的過程,以實現(xiàn)設計的必要階段。測試結果與總結E網(wǎng)通網(wǎng)絡教學系統(tǒng)測試方法主要是分為系統(tǒng)的白盒測試和系統(tǒng)的黑盒測試。白盒測試:白盒檢測法是一種方法,即著重內部結構合理設計一套系統(tǒng),作為主要基地制定案件也稱為考驗,考驗結構或測試工具。正如我們作為一個具體設計程序,只有對其內部結構和測試的邏輯、某些邏輯、軟件開發(fā),為測試程序之前受到嚴格程序設計和設計最佳。黑盒測試:黑盒測試,正如我們進行功能測試,應被視為測試數(shù)據(jù)的系統(tǒng),我們期待著程序測試結果,沒有考慮到程序的內部結構和特征所依據(jù)的只是系統(tǒng)的規(guī)格制訂以核查方式運作所有職能[21]。E網(wǎng)通網(wǎng)絡教學系統(tǒng)通過黑盒測試,測試過程中主要是根據(jù)輸入條件和輸出條件的確定測試數(shù)據(jù),來檢查程序是否滿足了用戶的需求,是否能夠正常運行。進行黑盒測試主要有下面幾種方法:等價分類法、邊界值分析法、猜錯法、因果圖法。6.2測試結果與總結為了測試系統(tǒng)軟件的功能,為了使系統(tǒng)更完善,并在系統(tǒng)測試中,我們將盡量添加真實有效的數(shù)據(jù),從而使系統(tǒng)的功能更加真實。系統(tǒng)測試時要做到對每個功能都進行測試,才能找出系統(tǒng)存在的問題。給出解決方案,最終系統(tǒng)可以正常運行。6.3系統(tǒng)測試用例測試描述:用戶在登錄時可以進行密碼找回的操作,下面將進行模塊的測試。如表6-1所示。表6-1模塊測試模塊名稱模塊測試功能特性已注冊的用戶登錄系統(tǒng)測試目的驗證是否全面,模塊設計是否實現(xiàn)用例編號測試步驟輸入數(shù)據(jù)預期結果測試結果DL001用戶登錄點擊登錄按鈕跳轉到頁面成功DL002輸入錯誤賬號輸入錯誤賬號和密碼,點擊登錄提示登錄失敗成功DL003輸入正確賬號輸入正確賬號和密碼,點擊登錄提示登錄成功成功DL004微信掃碼點擊微信按鈕跳轉到首頁成功(2)前臺資源功能測試描述:用戶登錄可以在系統(tǒng)中查看老師,查看課程,查看個人信息,視頻點播,下面將進行前臺資源模塊的測試。如表6-2所示。表6-2前臺資源模塊測試模塊名稱前臺資源測試功能特性已注冊的用戶登錄系統(tǒng)測試目的驗證E網(wǎng)通網(wǎng)絡教學系統(tǒng)是否全面,教學模塊功能是否實現(xiàn)用例編號測試步驟輸入數(shù)據(jù)預期結果測試結果DL001查看個人中心點擊個人中心顯示個人信息成功DL002課程搜索點擊一級分類,點擊二級分類鎖定到具體課程成功DL003查看教師點擊教師查看顯示照片個教師信息成功DL004視頻播放選擇小節(jié)點擊視頻視頻播放成功本章探討了功能和查看用戶信息功能,并有證據(jù)表明,測試開發(fā)進程是非常富有成效的由于時間篇幅有限,不能一一進行文字描述,對于出現(xiàn)的一些小問題已經(jīng)通過和老師的溝通

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論