摘 ?要
社交學習平臺 web 系統要為學習者打造一個開放、互動且社交性強的在線教育環境,打算采用微服務架構來設計并實現一個社交學習平臺 web 系統,以此適應學習者不斷增長的學習與交流需求,微服務架構把每個功能模塊設計成獨立的微服務,能支持獨立部署、擴展以及管理。這種架構提升了系統的靈活性和可維護性,還達成了在高并發和用戶增長情形下的彈性擴展,項目在技術選型方面融合了 Spring Boot、Node.js 等技術棧與開發框架,充分發揮各自的長處,精準適配系統對功能性、擴展性和高性能的需求,Spring Boot 為系統核心業務奠定穩定基礎,Node.js 在高并發實時交互中表現優異。該社交學習平臺依靠模塊化設計,構建出高效、互動且社交屬性突出的學習環境,有力促進了知識傳播與學習資源共享。
Abstract
The social learning platform web system aims to create an open, interactive, and highly social online education environment for learners. We plan to use a microservice architecture to design and implement a social learning platform web system to meet the growing learning and communication needs of learners. The microservice architecture designs each functional module as an independent microservice that can support independent deployment, expansion, and management. This architecture enhances the flexibility and maintainability of the system, as well as achieving elastic scalability in high concurrency and user growth scenarios. In terms of technology selection, the project integrates technology stacks and development frameworks such as Spring Boot and Node.js, fully leveraging their respective strengths and accurately adapting to the system's requirements for functionality, scalability, and high performance. Spring Boot lays a stable foundation for the core business of the system, while Node.js performs excellently in high concurrency real-time interaction. This social learning platform relies on modular design to create an efficient, interactive, and socially prominent learning environment, effectively promoting knowledge dissemination and learning resource sharing.
Key words:Microservices Architecture;Flexibility;Elastic Scalability
目 ??錄
第一章 概述
1.1 意義
1.1.1 理論意義
1.1.2 現實意義
1.2 目的
1.3 文獻綜述
第二章 系統分析
2.1 系統技術分析
2.2 系統整體分析
2.3 系統功能分析
第三章 系統設計
3.1 系統架構設計
3.2 系統功能模塊設計
3.2.1 用戶管理模塊
3.2.2 視頻上傳與播放模塊
3.2.3 視頻點贊與評論模塊
3.2.4 視頻收藏與播放歷史模塊
3.2.5 視頻分類與搜索模塊
3.3 數據庫設計
3.3.1 數據庫概念設計
3.3.2 E-R圖設計
3.3.3 數據庫邏輯設計
3.3.4 物理結構設計
第四章 系統實現
4.1 用戶管理模塊實現
4.1.1 登錄注冊功能實現
4.1.2 個人信息查看修改功能實現
4.2 視頻上傳與播放模塊實現
4.2.1 視頻上傳功能實現
4.2.2 視頻播放功能實現
4.3 視頻點贊與評論模塊實現
4.3.1 視頻點贊功能實現
4.3.2 視頻評論功能實現
4.4 視頻收藏與播放歷史模塊實現
4.4.1 視頻收藏功能實現
4.4.2 播放歷史功能實現
4.5 視頻分類與搜索模塊實現
4.5.1 視頻分類功能實現
4.5.2 視頻搜索功能實現
第五章 系統測試?
5.1 測試目標與范圍?
5.2 測試環境?
5.3 功能測試用例
5.4 測試總結?
第六章 結語
參 考 文 獻
致 謝
第一章 概述
1.1 意義
1.1.1?理論意義
微服務架構在教育領域的應用探索蘊含著不可忽視的理論價值,它將為構建復雜的教育平臺提供一種頗具潛力的、高效的系統設計思路。通過將社交學習平臺Web系統的不同功能模塊,諸如用戶管理、視頻處理、評論互動等,進行模塊化劃分,理論上能夠實現各個服務的獨立開發、部署及擴展,從而提升系統的靈活性與可維護性。此種架構方式將有利于提高系統的可擴展性與容錯性,使其在未來能夠更從容地應對教育平臺在用戶數量增長以及功能復雜度提升時所可能遭遇的挑戰。
從理論視角審視,這一架構設計將有益于推動教育技術學理論的發展。社交學習平臺的構建理念與建構主義學習理論相契合,著重強調協作學習與社會化學習的重要性。未來,通過將社交元素深度融入學習環境之中,有望推動學習者之間的互動以及知識共享,進而強化學習體驗與效果。在理論層面,這將有助于加深對學習過程中社交互動如何促進知識建構以及認知發展的理解,為教育技術學的理論體系提供新的研究視角以及實踐案例支撐。
基于微服務的社交學習平臺Web系統在理論層面具有多方面的深遠意義。它不僅有望為教育平臺的設計和開發提供一種潛在的高效架構模式,還可能助力推動教育技術學、用戶體驗理論以及跨學科研究的協同發展。通過不斷探索與實踐,這一架構模式有望為教育領域帶來更加靈活、高效且可擴展的系統解決方案,推動教育技術的持續創新與發展。
1.1.2?現實意義??
微服務系統架構在社交Web學習平臺中的應用,將展現出諸多重要的現實意義。在數字化教育迅猛發展的當下,該平臺若以微服務架構作為堅實基礎,將有望實現教育服務的靈活拆分與高效組合,從而為在線教育的復雜需求提供切實可行的解決方案。其高度可擴展性與可維護性,將使平臺能夠迅速適應教育內容的持續更新、教學模式的不斷創新以及用戶規模的逐步擴大,而無需對整個系統進行大規模的全面改造,這將有效降低運營成本,并顯著提高開發和運維的效率。例如,若未來需要新增一種互動教學工具或社交功能,僅需針對相應的微服務模塊進行開發與部署,即可確保不影響現有系統的穩定運行,從而進一步提升用戶體驗。
從用戶層面來看,該平臺將致力于為用戶營造一個沉浸式的個性化學習環境,通過深度融合社交元素,有效激發用戶的學習興趣與主動性,進而提升學習效果。用戶將能夠在平臺上獲取豐富多樣的學習資源,并借助社交互動功能與其他用戶進行實時交流,分享學習心得,形成積極向上的學習社區氛圍,這對于提高用戶的知識應用能力具有至關重要的價值。
此外,該社交Web學習平臺模式還將為教育機構和企業帶來創新的教育服務模式與商業機會。教育機構可借助平臺的微服務架構,快速定制并推出個性化的教育產品,以滿足不同用戶群體的多樣化需求。企業則可與教育機構展開深度合作,在平臺上開展職業培訓、技能認證等服務,從而有效拓寬業務領域,實現教育資源的商業化運營,為教育產業的蓬勃發展注入新的活力。?????????????
1.2 目的
社交學習平臺努力為學習者營造一個開放自由且富有活力的學習環境,讓學習者能更輕松便利地獲取各類學習資源,推動學習者之間的交流與合作,分享珍貴的學習經驗,平臺還鼓勵學習者結識志同道合的伙伴一起進步,在學習途中相互支持與激勵,形成積極向上的學習社群,在該平臺上,學習者能自由探索各知識領域,不管是學術研究、職業技能提升還是興趣愛好拓展,都可找到對應資源與指導。借助互動討論區、實時問答、在線研討會等多樣形式,學習者能與世界各地同好深入交流討論,這種開放學習氛圍可知識傳播與創新,激發學習者學習熱情,培養其自主學習能力與終身學習習慣。
1.3 文獻綜述
隨著信息技術的快速發展,社交學習平臺作為一種新興教育模式,因其能提供靈活且互動的學習環境而受到廣泛關注,傳統的單體式架構在構建大型且復雜的Web系統時,會面臨靈活性欠佳、可拓展性以及穩定性不足等狀況,微服務架構作為一種先進的軟件開發模式,憑借其模塊化、可擴展性以及可維護性等特性,正逐步成為構建社交學習平臺WEB系統的首選方案。本文依靠綜述相關文獻,探討基于微服務架構的社交學習平臺WEB系統的設計與實現,
在國外,微服務架構的研究與應用也取得了不錯的成果,一些知名互聯網公司像Netflix、Amazon等,借助自研以及開源的途徑,推動了微服務架構的發展,比如Netflix的Eureka、Hystrix等技術組件,在微服務架構里得到了廣泛運用。這些技術組件解決了服務注冊、熔斷等問題,還有負載均衡、服務治理等功能,有效提高了系統的性能與穩定性[1]。
Spring Cloud等微服務技術棧在國外也有著廣泛應用,這些技術棧能提供豐富的微服務組件與工具,還支持多種編程語言和框架,讓微服務架構實施更為靈活便捷,
國外學術界也有大量學者和專家對微服務架構展開研究,他們探討了微服務架構的設計原則和實施策略,還研究如何借助自動化測試、持續集成/持續部署等手段提升微服務系統開發效率與質量。
國內微服務架構的研究和應用有了一定進展,大型互聯網公司如BAT等是該領域先驅,借助自研和開源推動了微服務架構的普及發展,比如阿里巴巴的Dubbo和Nacos等技術組件在微服務架構中作用關鍵,這些技術組件解決了服務注冊、發現、配置管理等問題,還提供了限流、熔斷、降級等安全保護機制,有效提升了系統穩定性與可靠性。
隨著Spring Cloud等微服務技術棧在國內普及,越來越多中小型公司開始用這些技術構建自身微服務系統,引入這些技術棧降低了微服務架構實施難度,提高了系統可擴展性與靈活性[2]。
在學術界,國內有不少學者與專家針對微服務架構展開了研究,他們探討了微服務架構的設計原則以及實施策略,還研究了怎樣借助容器化、服務網格等技術手段提升微服務系統的性能與安全性,
基于微服務架構的社交學習平臺WEB系統有靈活性、可擴展性與可維護性等優點,能快速應對市場需求變化。憑借合理開展服務拆分與架構設計、數據存儲與一致性管理、安全性與隱私保護等設計實現工作,可構建出穩定、高效且安全的社交學習平臺,
隨著技術持續進步以及應用場景不斷拓展,基于微服務架構的社交學習平臺會不斷涌現新研究成果與創新應用,比如可利用人工智能和大數據技術提供更智能化、個性化學習建議,能引入區塊鏈技術提高數據安全性與可信度,還可結合虛擬現實和提高現實技術提供更沉浸式、互動性學習體驗等。這些新技術與新應用將為社交學習平臺發展注入新活力與動力[3]。
第二章 系統分析
2.1?系統技術分析
本系統開發環境選型主要依據功能強大的IntelliJ IDEA這一集成開發環境,其有直觀的界面以及高效的代碼編輯功能,可大幅度提升設計者的開發效率,Maven作為項目管理工具,擁有簡潔的項目構建和依賴管理機制,使得整個開發流程更為順暢。而Mysql數據庫作為開源的數據庫管理系統,其穩定性與靈活性可為數據存儲奠定堅實基礎,這些工具免費,而且體積輕巧,安裝過程簡便快捷。
系統的框架選項主要基于SpringCloud Alibaba技術框架,該框架基于微服務架構,提供了豐富的組件與工具,可極大地簡化分布式系統的開發。在分析過程中,我積極學習了諸多與系統相關的內容,這些內容包含微服務架構的技術棧、數據庫設計以及前后端分離等多方面的技術知識,借助了解微服務架構的原理、服務注冊與發現、配置中心、負載均衡等核心概念,可確定Spring Cloud Alibaba中的Nacos、Sentinel等組件適用于系統的架構和開發,能讓系統的開發更加快捷穩定。
2.2?系統整體分析
對社交學習平臺WEB系統構想情況做了較為全面的分析后,采用一種創新策略,把系統用戶細分成兩類不同用例,這個決策源于我對用戶行為模式和需求有較深入了解,依靠更精準的用戶分類,使系統依據不同用例職能,達成一系列定制化功能[4]。歷經了多次的構想以及資料的查詢工作之后,最終明確了系統理應囊括如下五大功能模塊,分別是用戶管理、視頻上傳與播放、視頻點贊與評論、視頻收藏與播放歷史以及視頻分類與搜索。
用戶用例方面,在此用例之中,用戶可享受到一系列豐富多樣的功能,這些功能可為用戶打造一個全面且便捷的學習以及互動平臺。用戶可體驗到首頁視頻推薦,這些推薦乃是依據用戶的瀏覽歷史以及偏好而精心挑選出來的,目的在于保證用戶可接觸到最為契合其興趣的內容,用戶還可查看視頻詳情,深入知曉每一個視頻的詳細信息,其中包含視頻的時長、發布者信息以及相關評論等。
視頻點贊、收藏、評論等功能,使得用戶可與內容創作者以及其他學習者展開互動,分享自身的觀點與感受。分類查看功能可讓用戶輕松瀏覽不同類別的學習資源,而個人信息查看和編輯功能則能讓用戶管理自身的個人資料,維持信息處于最新狀態,歷史記錄查看功能可用戶回顧自己曾經學習過的內容,收藏夾查看功能則能讓用戶保存自己感興趣的學習資源,以便隨時進行回顧與學習。
對這些功能展開分析設計,目的在于改善用戶使用體驗,使學習成效更優且充滿樂趣,于用戶用例當中,用戶會擁有一系列多樣的功能,這些功能可打造出全面便捷的學習與互動平臺,用戶能體驗首頁視頻推薦,其依據用戶瀏覽歷史及偏好細致挑選,以此保證用戶接觸契合自身興趣的內容。用戶也可查看視頻詳情,全面了解每個視頻的詳細情況,覆蓋視頻時長、發布者信息以及相關評論,這些功能皆為改善用戶使用體驗,讓學習更高效且愉快。具體的用戶用例圖如圖2-1所示。
圖2.1 用戶用例圖
管理員在社交學習平臺中承擔著關鍵職責,具備多項重要功能。用戶管理方面,可對用戶信息與權限進行操作,保障平臺用戶秩序。視頻分類管理能構建有序資源框架,便于用戶查找視頻。視頻管理確保視頻質量與合規,審核及更新視頻內容。首頁管理可優化平臺首頁展示,突出重點內容。評論管理監督評論,營造健康交流氛圍。收藏管理維護用戶收藏功能,保障數據準確,提升用戶使用體驗,助力平臺穩定運行與持續發展。
圖2.2?管理員用例圖
2.3?系統功能分析
本系統旨在滿足學習者對開放協作與個性化學習的需求,用戶角色系統功能需求分析如下:
(1)視頻分類與搜索方面:視頻分類是把視頻按照不同的類型、主題或者特征進行歸類,如此方便用戶快速找到感興趣的內容,提高內容瀏覽的效率,視頻搜索是借助關鍵詞、標簽、分類等多種方式,在搜索框輸入搜索內容,然后將搜索結果按照一定的排序規則展示出來,幫助用戶快速找到感興趣的視頻。
(2) 視頻上傳與播放方面:視頻上傳的設計應當簡潔,要支持拖拽上傳以及暫停續傳功能,并且要給出上傳是否成功的顯示,以此方便用戶去了解上傳狀態,視頻播放會依據上傳視頻的內容生成封面,這樣便于用戶可快速預覽以及識別視頻內容,同時還會提供點贊、評論等互動組件,提高觀看體驗。
(3)視頻點贊與評論方面:視頻點贊給用戶提供一種簡單直觀的反饋途徑,用戶點擊點贊按鈕就能記錄點贊行為并且更新點贊數,實時反映視頻的受歡迎程度,視頻評論為用戶給予了直觀的交流空間,用戶可在其中分享自身的觀點、感受以及見解,與其他用戶和創作者展開互動。
(4)視頻收藏與播放歷史方面:視頻收藏為用戶提供更具個性化的學習工具,可用戶在后續查找以及回顧感興趣的內容。播放歷史能幫助用戶管理觀看記錄,使得用戶可以快速續看之前的內容,避免重復搜索,提升用戶體驗。
管理員角色系統功能需求分析如下:
用戶管理,用戶可通過手機號接收驗證碼完成注冊登錄,支持個人信息修改與完善,保障用戶信息的安全存儲與管理,對已登錄和未登錄的用戶進行權限劃分,保證用戶數據安全。
視頻分類管理功能有助于構建有序的資源體系。隨著平臺視頻數量的增多,若缺乏分類,用戶查找資源將耗時費力。管理員利用此功能創建、編輯和刪除分類,把不同主題、學科的視頻歸類,方便用戶快速定位所需內容,提升獲取信息的效率和使用體驗。
視頻管理功能是保障視頻質量的關鍵。視頻作為平臺核心資源,其質量和合規性不容忽視。管理員通過審核新視頻,確保內容合法、無侵權且畫質清晰,還能對已上傳視頻進行編輯和刪除,及時更新優化資源,保持平臺活力。
首頁管理能讓平臺更好地展示自身特色和重點內容。管理員可根據平臺定位和用戶需求,挑選合適的視頻推薦、熱門話題等展示在首頁,并對其布局和風格進行設計,吸引用戶關注,引導他們深入使用平臺。
評論管理功能對于營造良好的社交學習氛圍很重要。用戶在觀看視頻后會發表評論,管理員需監督評論內容,刪除違規評論,引導積極健康的討論,促進用戶之間的知識交流和互動。
收藏管理則方便用戶整理和回顧感興趣的內容,管理員對該功能進行維護,確保用戶收藏操作的穩定性和數據的準確性,提升用戶對平臺的依賴度和滿意度。
第三章 系統設計
3.1?系統架構設計
按照需求分析階段的結果,社交學習平臺的結構主要由兩部分構成,首先是登錄模塊,然后會由登錄模塊中返回的結果給不同的用戶展示可以進行的操作,包括用戶管理、視頻上傳、視頻點贊評論、視頻收藏和播放歷史、視頻分類五大模塊類操作。系統結構圖大致如下,如圖3.1。
圖3.1?系統結構圖
以下是一個基于微服務架構的社交學習平臺WEB系統概要設計章節的參考框架,內容涵蓋核心模塊劃分、技術選型和架構設計思路。可根據實際需求調整補充:
架構模式?:基于Spring Cloud Alibaba的微服務架構,采用前后端分離模式。
3.2 系統功能模塊設計
3.2.1?用戶管理模塊
用戶模塊為登錄、個人信息、編輯個人信息等功能,已登錄的用戶可以發布視頻,也可以去觀看視頻,為視頻點贊、收藏、評論,雖然在視頻模塊已寫,但此些功能需要雙方模塊共同實現。
用戶可憑借輸入自身手機號碼的方式來接收一個有唯一性的驗證碼,此驗證碼由系統即刻生成并給予發送,保障了登錄流程的安全,針對那些先前未曾在本平臺進行注冊的用戶而言,當他們輸入驗證碼并成功實現登錄之時,系統會自動為其創建一個全新的賬戶,整個過程快速且便捷,用戶幾乎感受不到任何繁雜的步驟。而對于那些已經完成注冊的用戶,輸入驗證碼后便可輕松實現登錄,無需再度填寫繁瑣的注冊信息,成功登錄或者注冊的用戶,其個人信息,如用戶名、密碼、聯系方式以及偏好設置等,將會被系統安全地存儲于高效可靠的Redis數據庫當中,如此設計保證了用戶信息的安全,還極大地提升了用戶登錄以及信息檢索的效率,為用戶帶來流暢愉悅的使用體驗。
|
圖 3.2?注冊登錄流程圖 |
3.2.2?視頻上傳與播放模塊
在視頻上傳模塊設計中,前端需在頁面提供直觀的上傳按鈕與進度顯示,支持拖拽上傳和暫停、繼續功能,方便用戶操作。后端要驗證視頻格式、大小,利用對象存儲服務確保數據安全與高效訪問,并借助消息隊列實現異步轉碼和封面圖生成等處理。視頻播放模塊則要集成高效的播放器,支持流暢播放、倍速播放等功能,并提供點贊、評論等互動組件,增強用戶觀看體驗。播放器還需具備自適應碼率調整功能,根據用戶網絡狀況自動切換視頻清晰度,確保播放的流暢性。這兩個模塊緊密協同,既保障了視頻內容的高效上傳和存儲,又實現了優質流暢的觀看體驗,是構建社交 Web 學習平臺的核心基礎。
3.2.3?視頻點贊與評論模塊
用戶可依靠輸入自己的手機號碼來接收一個有唯一性的驗證碼,這個驗證碼是由系統馬上生成并發送出去的,以此保障了登錄流程的安全性,對于那些之前沒有在本平臺注冊過的用戶來說,當他們輸入驗證碼并成功登錄時,系統會自動為其創建一個全新的賬戶,整個過程迅速又便利,用戶幾乎不會感覺到有任何繁雜的步驟。而對于已經完成注冊的用戶,輸入驗證碼后就可以輕松實現登錄,不用再次填寫繁瑣的注冊信息,成功登錄或者注冊的用戶,其個人信息,像用戶名、密碼、聯系方式以及偏好設置等,將會被系統安全地存儲在高效可靠的Redis數據庫里,這樣的設計保證了用戶信息的安全,還大幅提升了用戶登錄以及信息檢索的效率,給用戶帶來流暢愉悅的使用體驗。
3.2.4?視頻收藏與播放歷史模塊
視頻收藏模塊的設計要求在前端頁面上,為每一個視頻都配備一個可吸引用戶注意力的收藏按鈕,當用戶點擊該按鈕后,系統會借助動畫效果或者圖標變化的方式,立刻給予用戶反饋,并將相應視頻添加到用戶的個人收藏列表當中,而后端在接收到收藏請求時,會對用戶身份以及視頻的合法性進行驗證,之后將收藏信息存入數據庫,以此建立起用戶與視頻之間的關聯。該模塊還需要提供收藏夾管理功能,以便支持用戶對收藏內容進行分類整理以及取消收藏等操作,
在視頻播放歷史模塊設計方面,前端會自動記錄用戶的觀看行為,而后端則會在每次視頻播放時,將視頻信息存儲到播放歷史記錄表中,這些信息包含用戶ID、視頻ID、播放時間等關鍵數據。播放歷史頁面會按照時間倒序的方式展示視頻封面圖、標題以及上次播放進度,用戶可以憑借一鍵操作實現續播,提升觀看體驗。
3.2.5?視頻分類與搜索模塊
視頻分類模塊設計需在前端頁面設置清晰的分類導航欄,展示一級分類,點擊時展開二級及以下子分類,支持用戶隨時切換和篩選,頁面顯著位置顯示當前分類及路徑,提升導航體驗。后端設計中,數據庫建立分類表,存儲分類名稱、父級ID、描述等信息,形成樹形結構,便于管理和查詢。視頻上傳時,用戶可選擇一個分類,后端驗證并存儲關聯關系。搜索功能中,分類篩選與其他條件結合,快速過濾結果。當前分類模塊只有查看分類下的視頻功能。元數據提取后存儲于數據庫,以支持后續的播放和管理。搜索結果展示要合理,將視頻的封面圖、標題、簡介等關鍵信息呈現給用戶,方便其快速瀏覽和選擇,幫助用戶更精準地找到所需視頻。
3.3 數據庫設計
3.3.1?數據庫概念設計
對用戶要求描述的需求,通過對其中功能的分類、聚集和概括,建立抽象的概念數據模型。這個概念模型應反映系統各種的信息結構、信息流動情況、信息間的互相制約關系以及對信息儲存、查詢和修改的要求等[5]。
根據以上的分析,在社交學習平臺web系統數據庫設計中,可能需要設計以下幾個數據表:
(1)用戶,用來存儲用戶信息,主要用于系統的登錄判斷。包含用戶id、用戶名、手機號、簡介、頭像鏈接、關注數、粉絲數等字段。其中用戶id作為主鍵,唯一表示每個用戶及其關聯的視頻,用戶名、頭像、簡介等個性化展示用于增強用戶社交體驗,關注數、粉絲數方便用戶更直觀的查看個人賬號情況。
(2)分類,用來記錄視頻分類的表,包含視頻id、分類名稱、父級分類id、創建時間、更新時間、刪除時間等字段。視頻id作為主鍵,表示分類與具體視頻之間的直接關聯,而分類名稱字段則提供了對分類內容的直觀描述。父級分類 ID 字段支持構建層級化的分類體系,使得用戶能夠輕松地瀏覽不同層次的分類。分類信息的創建、更新和刪除時間有助于維護數據的歷史記錄和版本控制。讓用戶更方便的查看對應信息。
(3)評論方面,為實現便捷管理與檢索,每條評論都設有一系列字段,這些字段覆蓋但不限于主鍵id、用戶id、視頻id、評論內容以及父評論id,每條評論都有唯一的主鍵id,可用于精準標識并快速定位,用戶id字段關聯評論者信息,視頻id字段明確評論所屬視頻內容,以此建立評論與視頻及用戶的直接聯系。評論內容字段詳細記錄用戶文字反饋,父評論id字段支持構建評論層級結構,方便實現回復與討論功能
(4)收藏部分,表格中有多個關鍵字段,像用戶id和視頻id,這兩個主要字段直接關聯用戶與視頻信息,可追蹤和管理用戶收藏偏好,借助此表格,能輕松查看哪些視頻受用戶青睞,還可分析用戶收藏習慣。
(5)播放歷史方面,該數據庫表用于詳細記錄每個用戶的播放歷史信息,它包含多個關鍵字段,其中主鍵id用于唯一標識每條記錄,用戶id關聯特定用戶,視頻id標識用戶播放過的視頻。
(6)視頻方面,此表格用于詳細記錄視頻相關信息,能展示視頻諸多細節,表格包含多個關鍵字段,有作為唯一標識的主鍵id、視頻標題、對視頻內容簡短描述的簡介、用于標識上傳視頻用戶的用戶id。視頻id用于關聯分類信息、收藏、播放歷史等表。
3.3.2?E-R圖設計
(1)用戶實體屬性,如圖3.3所示。
圖3.3?用戶實體屬性圖?
(2)分類實體屬性,如圖3.4所示。
圖3.4?分類實體屬性圖
(3)評論實體屬性,如圖3.4所示。
圖3.5?視頻實體屬性圖?
(4)收藏實體屬性,如圖3.6所示。
圖3.6?收藏實體屬性圖
(5)播放歷史實體屬性,如圖3.7所示。
圖3.7 播放歷史實體屬性圖
(6)視頻實體屬性,如圖3.8所示。
圖3.9?視頻實體屬性圖
3.3.3 數據庫邏輯設計
數據庫設計是系統設計中非常重要的一個環節。數據是一切系統設計的基礎,通俗地說,數據庫設計就像搭建房屋一樣,如果設計的不合理、不完善,將在系統開發過程中,甚至到后期的系統維護、功能變更和功能擴充時,引起一些不必要的問題,嚴重時甚至要重新設計數據庫[6]。
(1)用戶:用戶ID,用戶名,頭像鏈接,簡介,手機號,是否綁定手機號,微信,是否綁定微信,關注數,粉絲數,創建時間,更新時間刪除時間。
(2)分類:分類ID,分類名稱,父類ID,創建時間,更新時間,刪除時間。
(3)評論:主鍵ID,用戶ID,視頻ID,內容,父評論ID,創建時間,更新時間,刪除時間。
(4)收藏:主鍵ID,用戶ID,視頻ID,創建時間,更新時間,刪除時間。
(5)播放歷史:主鍵ID,用戶ID,視頻ID,創建時間,更新時間,刪除時間。
(6)視頻:主鍵ID,標題,簡介,用戶ID,視頻封面鏈接,視頻播放鏈接,視頻ID,創建時間,更新時間,刪除時間。
3.3.4?物理結構設計
根據上述模型,在將其轉化成關系模型后,在數據庫(數據庫名:yingxue)中創建如下6張表。
(1)用戶表
表3.1用戶表
描述 | 字段名 | 類型 | 長度 |
用戶id | id | int | / |
用戶名 | name | varchar | 16 |
頭像鏈接 | avatar | varchar | 256 |
簡介 | intro | varchar | 256 |
手機號 | phone | varchar | 11 |
是否綁定手機號 | phone_linked | tinyint | 1 |
微信openid | openid | varchar | 28 |
是否綁定微信 | wechat_linked | tinyint | 22 |
關注數 | following_count | int | 16 |
粉絲數 | followers_count | int | 28 |
創建時間 | created_at | datetime | 12 |
更新時間 | updated_at | datetime | 0 |
刪除時間 | deleted_at | datetime | 0 |
(2)分類表
表3.2分類表
描述 | 字段名 | 類型 | 長度 |
分類id | id | int | / |
分類名稱 | name | varchar | 16 |
父級id | parent_id | int | 22 |
創建時間 | created_at | Datetime | / |
更新時間 | updated_at | Datetime | / |
刪除時間 | deleted_at | Datetime | / |
(3)評論表
表3.3評論表
描述 | 字段名 | 類型 | 長度 |
主鍵id | id | Int | / |
用戶id | uid | Int | / |
視頻id | video_id | Int | / |
內容 | content | Text | 22 |
父評論id | parent_id | Int | / |
創建時間 | created_at | Datetime | 18 |
更新時間 | updated_at | Datetime | / |
刪除時間 | deleted_at | Datetime | / |
(4)收藏表
表3.4?收藏表
描述 | 字段名 | 類型 | 長度 |
主鍵id | id | Int | / |
用戶id | uid | Int | / |
視頻id | video_id | Int | / |
創建時間 | created_at | Datetime | 16 |
更新時間 | updated_at | Datetime | / |
刪除時間 | deleted_at | Datetime | / |
- 播放歷史表
表3.5?播放歷史表
描述 | 字段名 | 類型 | 長度 |
主鍵id | id | Int | / |
用戶id | uid | Int | / |
視頻id | video_id | Int | / |
創建時間 | created_at | Datetime | 32 |
更新時間 | updated_at | Datetime | / |
刪除時間 | deleted_at | Datetime | / |
(7)視頻表
表3.6?視頻表
描述 | 字段名 | 類型 | 長度 |
主鍵id | id | Int | / |
標題 | title | varchar | 64 |
簡介 | intro | varchar | 256 |
用戶id | uid | Int | / |
視頻封面鏈接 | cover | varchar | 256 |
視頻播放鏈接 | link | varchar | 256 |
視頻id | video_id | Int | / |
創建時間 | created_at | Datetime | / |
更新時間 | updated_at | Datetime | / |
刪除時間 | deleted_at | Datetime | / |
第四章 系統實現
4.1 用戶管理模塊實現
用戶管理模塊涵蓋了注冊登錄功能及個人信息查看修改功能,用戶可以通過手機號接收驗證碼的方式完成注冊并登錄系統。成功登錄后,用戶能夠查看并編輯個人信息,包括但不限于用戶名、頭像、簡介等,系統將確保這些信息的安全存儲與高效管理。
4.1.1 登錄注冊功能實現
系統發布后,用戶訪問流程便捷高效。當用戶在瀏覽器地址欄輸入http://192.168.75.1:8000,頁面將自動跳轉至首頁,為用戶呈現豐富的學習資源與社交互動入口。若用戶有登錄注冊需求,只需點擊首頁下方的“我的”模塊,即可進入登錄注冊頁面。在此,用戶可便捷完成注冊登錄操作。成功登錄后,系統依據用戶的不同請求,借助前端?Vue 路由功能,實現頁面部分跳轉,而網頁的頭、導航欄、尾部保持不變,避免了大量重復代碼的編寫,大大節省了開發時間與精力,提升了開發效率,也為用戶帶來流暢的使用體驗,讓用戶能更專注于學習與社交本身,享受平臺帶來的便捷與樂趣。
圖4.1 登錄注冊實現圖
圖4.2?用戶登錄成功實現圖
以下為登錄功能的部分實現代碼:
String phone = sms.getPhone(); String code = sms.getCaptcha();String redisCode = (String) redisTemplate.opsForValue().get(RedisPrefix.CODE_KEY+ phone); ?if(code == null || code == "" || !code.equals(redisCode)){ ?throw new RuntimeException("驗證碼錯誤"); ????????} |
4.1.2?個人信息查看修改功能實現
在社交學習平臺中,個人信息查看修改功能為用戶提供了便捷的自我信息管理途徑。當用戶有更新個人資料需求時,只需在個人信息展示頁面點擊“編輯”按鈕,即可進入專門的個人信息編輯頁面。在此頁面,用戶能夠清晰查看當前的個人信息,涵蓋名稱、手機號等關鍵內容。若需修改,用戶可直接在相應輸入框進行編輯操作,修改完成后提交保存。通過該功能,用戶可隨時更新個人信息,確保平臺記錄準確無誤,有助于提升用戶體驗,增強用戶與平臺之間的粘性與互動。如下圖4.3所示。
圖4.3?個人信息編輯實現圖
以下是部分實現代碼:
User userOld = (User) request.getAttribute("user"); String tokenOld = (String) request.getAttribute("token"); if(tokenOld == null || tokenOld == "" || !tokenOld.equals(token)){ ???throw new RuntimeException("登錄異常!"); ???} if (!StringUtils.isEmpty(user.getPhone())){ if(!redisTemplate.hasKey(RedisPrefix.CODE_KEY+user.getPhone())) throw new RuntimeException("驗證碼已過期!"); String code = (String)redisTemplate.opsForValue().get(RedisPrefix .CODE_KEY + user.getPhone()); if (!StringUtils.equals(code,user.getCaptcha())) throw new RuntimeException ("驗證碼錯誤!"); if (!StringUtils.isEmpty(user.getName())) userOld.setName(user.getName()); if (!StringUtils.isEmpty(user.getIntro())) userOld.setIntro(user.getIntro()); userDao.update(userOld); redisTemplate.opsForValue().set(RedisPrefix.TOKEN_KEY+ token,userOld,30, TimeUnit.MINUTES); |
4.2 視頻上傳與播放模塊實現
4.2.1?視頻上傳功能實現
視頻上傳功能為用戶搭建了分享學習資源的橋梁。用戶進入系統首頁后,點擊上傳視頻按鈕,即可跳轉至上傳視頻頁面。在此頁面,用戶需填寫視頻相關信息,如標題、簡介、分類等,這些信息有助于其他用戶更好地了解視頻內容。填寫完畢后,點擊確定按鈕,系統將啟動視頻上傳流程。上傳過程中,系統會進行格式校驗和大小限制等操作,確保上傳的視頻符合平臺要求。此功能方便用戶將優質學習視頻分享至平臺,豐富平臺資源。如圖4.4所示。
以下是部分實現代碼:
String url = OSSUtils.upload(file.getInputStream(), "videos", newFileName); ????????String cover = url + "?x-oss-process=video/snapshot,t_30000,f_jpg,w_0,h_0,m_fast,ar_auto"; ????????log.info("阿里云oss根據url截取視頻封面: {}", cover); ????????video.setCover(cover); ????????video.setLink(url); ????????video.setCategoryId(category_id); ????????User user = (User) request.getAttribute("user"); ????????video.setUid(user.getId()); ????????Video videoResult = videosFeign.uploadVideo(video); |
4.2.2?視頻播放功能實現
視頻播放功能是用戶獲取學習內容的核心途徑。當用戶點擊感興趣的視頻時,會進入該視頻的詳情頁面。在此頁面,用戶不僅能直觀看到視頻的點贊、收藏、評論等信息,了解視頻的受歡迎程度和互動情況,還能點擊播放按鈕開啟視頻播放。播放過程中,平臺會確保視頻流暢加載與播放,為用戶提供良好的觀看體驗。此功能讓用戶能夠便捷地觀看學習視頻,充分利用平臺資源提升自我。如下圖4.5所示。
以下是部分實現代碼:
Video video = videoDao.queryById(id); ???VideoDetailVO videoDetailVO = new VideoDetailVO(); ???BeanUtils.copyProperties(video, videoDetailVO); ???String categoryName =categoriesClient.queryById(video.getCategoryId()).getName(); ????videoDetailVO.setCategory(categoryName); ????User user = userClient.queryById(video.getUid()); ????videoDetailVO.setUploader(user); ????videoDetailVO.setPlaysCount(0); ????Integer count = (Integer) redisTemplate.opsForValue().get(RedisPrefix.PLAYED_KEY + video.getId()); ????User currentUser = null; |
4.3?視頻點贊與評論模塊實現
4.3.1?視頻點贊功能實現
當用戶在視頻詳細信息的頁面上瀏覽時,如果他們對某個視頻內容感到滿意或者喜歡,他們可以通過點擊頁面上的“點贊”按鈕來表達他們的支持。這個動作將會為當前視頻增加一個贊的數量,從而反映出該視頻受歡迎的程度。此外,一旦用戶進行了點贊操作,他們可以在視頻的詳細信息頁面中看到自己是否已經為該視頻點過贊,這樣用戶就可以清楚地知道自己的喜好記錄。如下圖4.6所示。
圖4.6 視頻點贊實現圖
以下是部分實現代碼:
if(StringUtils.isEmpty(token)) throw new RuntimeException("尚未登錄!"); ?User user = (User) redisTemplate.opsForValue().get(RedisPrefix.TOKEN_KEY + token); redisTemplate.opsForSet().add(RedisPrefix.IS_LIKE_KEY+user.getId(),vid); redisTemplate.opsForValue().increment(RedisPrefix.LIKE_COUNT_KEY+vid);???} |
4.3.2?視頻評論功能實現
當用戶在視頻詳細信息的頁面上點擊“評論”按鈕時,系統將會引導用戶進入評論頁面,在這個頁面中,用戶可以針對當前正在觀看的視頻內容發表自己的看法和意見。用戶可以通過輸入文本的方式進行評論,并且還可以查看其他用戶對該視頻的評論。評論功能為用戶提供了互動交流的空間,使得觀看視頻不僅僅是一個單向的接收過程,而是一個可以分享觀點、交流思想的雙向互動過程。如下圖4.7所示。
圖4.7?視頻評論實現圖
以下是部分實現代碼:
User user = (User) redisTemplate.opsForValue().get(RedisPrefix.TOKEN_KEY + token); ????????Reviewer reviewer = new Reviewer(); ????????BeanUtils.copyProperties(user, reviewer); ????????commentVO.setReviewer(reviewer); ????????commentVO.setVideoId(vid); ????????commentVO.setCreatedAt(new Date()); ????????commentVO.setUpdatedAt(new Date()); ????????userClient.saveCommont(commentVO); |
4.4?視頻收藏與播放歷史模塊實現
4.4.1?視頻收藏功能實現
用戶點擊視頻詳細信息頁面上的“收藏”按鈕將當前視頻添加到收藏夾中,也會在本頁面中查看到收藏按鈕高亮,如果當前收藏按鈕已高亮也就是已添加了收藏,再點擊則會取消收藏。用戶在我的頁面中點擊“收藏”按鈕進入收藏頁面,在本頁面中可以查看收藏夾信息。如下圖4.8和圖4.9所示。
圖4.8?視頻收藏實現圖
圖4.9?收藏夾實現圖
以下是部分實現代碼:
List<Favorite> favorites = favoriteService.queryByUid(user.getId(),page,rows); List<Long> vids = favorites.stream().map(favorite -> { return Long.parseLong(favorite.getVideoId().toString()); ?}).collect(Collectors.toList()); ?return videosFeign.queryByPlayed(token,vids); } User user = (User) redisTemplate.opsForValue().get(RedisPrefix.TOKEN_KEY + token); List<Favorite> favorites = favoriteService.queryByUid(user.getId(),page,rows); Long.parseLong(favorite.getVideoId().toString()); }).collect(Collectors.toList()); return videosFeign.queryByPlayed(token,vids); ????} |
4.4.2 播放歷史功能實現
用戶在我的頁面中點擊“歷史”按鈕進入歷史頁面,在本頁面中可以查看當前用戶觀看視頻的歷史記錄。如下圖4.10所示。
圖4.10?播放歷史實現圖
以下是部分實現代碼:
if(!StringUtils.isEmpty(token)){ User user = (User) redisTemplate.opsForValue().get(RedisPrefix.TOKEN_KEY + token); Played played = playedService.queryByVideoIdAndUserId(vid,user.getId()); if (ObjectUtils.isEmpty(played)){ played = new Played(); played.setVideoId(vid); |
4.5?視頻分類與搜索模塊實現
4.5.1?視頻分類功能實現
用戶點擊分類按鈕進入分類頁面,在本頁面中可以根據分類查看對應分類的視頻。如下圖4.11所示。
圖4.11?視頻分類實現圖
以下是部分實現代碼:
@Override ????public List<Category> queryAll() { ????List<Category> categories = this.categoryDao.queryAll(); ????return categories; } |
4.5.2?視頻搜索功能實現
用戶點擊系統首頁上的搜索按鈕進入搜索頁面,在本頁面中可以搜索視頻,根據填寫的搜索內容進行搜索。如下圖4.12所示。
以下是部分實現代碼:
List<VideoVO> videoVOList = videoList.stream().map(video -> { ???VideoVO videoVO = new VideoVO(); ???BeanUtils.copyProperties(video, videoVO); ???return videoVO; ???}).collect(Collectors.toList()); ???result.put("total_count", videoVOList.size()); ???result.put("items", videoVOList); |
在社交學習平臺的系統測試階段,為確保系統的穩定性、功能完整性和用戶體驗,采用了多種測試方法,其中主要包括黑盒測試和白盒測試[7]。
使用黑盒測試是因為它無需關注系統內部實現細節,而是專注于系統功能的驗證。通過將系統視為一個黑盒子,依據系統需求規格說明書,設計各種輸入數據和預期輸出結果,檢查系統是否能正確處理并給出符合要求的輸出。這種方法優點顯著,它能夠從用戶角度出發,全面檢測系統功能是否滿足用戶需求,發現功能缺失、界面錯誤以及性能問題等[8]。例如在測試視頻上傳、播放、個人信息修改等功能時,通過輸入不同類型和格式的數據,驗證系統是否能正確響應,確保功能的正確性和健壯性。
白盒測試則用于深入了解系統內部邏輯結構。通過對代碼的語句、分支、路徑等進行覆蓋測試,檢查代碼的執行流程是否符合設計要求。其優點在于能夠發現代碼層面的潛在問題,如邏輯錯誤、代碼冗余等,提高代碼質量。在測試系統的登錄注冊邏輯、路由跳轉邏輯等方面,白盒測試可確保代碼在不同條件下的正確執行[9]。?
5.1 測試目標與范圍?
驗證微服務架構下各模塊(用戶服務、視頻分類服務、點贊評論服務)的功能完整性、接口兼容性與數據一致性[10]。?
功能測試?:核心業務流程(如用戶注冊、視頻分類、點贊評論)。
5.2?測試環境?
(1)開發環境?:Docker容器化集群模擬微服務部署(Kubernetes + Istio服務網格)。
(2)自動化測試:Selenium + Cypress(端到端UI流程驗證)。
5.3?功能測試用例
社交學習平臺的結構主要由兩部分構成,首先是登錄模塊,然后會由登錄模塊中返回的結果給不同的用戶展示可以進行的操作,功能測試設計如下表5.1所示。
表5.1系統登錄注冊測試表?
用例編號 | 模塊名稱 | 測試數據 | 預期結果 | 實際結果 | 是否通過 |
01 | 用戶登錄 | 手機號:17777777777 驗證碼輸入錯誤 | 失敗 | 失敗 | 是 |
02 | 用戶登錄 | 手機號:17777773237 驗證碼輸入正確 | 成功 | 成功 | 是 |
03 | 用戶注冊 | 手機號:16666666666 驗證碼錯誤 | 失敗 | 失敗 | 是 |
04 | 用戶注冊 | 手機號:16666666666 驗證碼正確 | 成功 | 成功 | 是 |
05 | 用戶登錄 | 手機號:17773 手機號錯誤 | 失敗 | 失敗 | 是 |
06 | 用戶注冊 | 手機號:166743234 手機號錯誤 | 失敗 | 失敗 | 是 |
(1)?系統首頁:查看推薦的視頻、進行搜索和視頻上傳功能,功能測試如下表5.2所示。
表5.2系統首頁測試表
用例編號 | 模塊名稱 | 測試數據 | 預期結果 | 實際結果 | 是否通過 |
01 | 推薦視頻 | 查看視頻詳情 | 成功 | 成功 | 是 |
02 | 首頁搜索按鈕 | 查看搜索的視頻 | 成功 | 成功 | 是 |
03 | 發布視頻 | 上傳的視頻已登錄 | 成功 | 成功 | 是 |
04 | 發布視頻 | 上傳的視頻未登錄 | 失敗 | 失敗 | 是 |
05 | 發布視頻 | 上傳的視頻已登錄 視頻過大超過限制 | 失敗 | 成功 | 否 |
- ?視頻信息測試:視頻詳細信息查看、視頻的點贊、評論、收藏等功能。如下表5.3所示。
表5.3視頻信息測試表
用例編號 | 模塊名稱 | 測試數據 | 預期結果 | 實際結果 | 是否通過 |
01 | 視頻詳細信息 | 查看視頻詳細 | 成功 | 成功 | 是 |
02 | 視頻點贊 | 用戶已登錄測試點贊 | 成功 | 成功 | 是 |
03 | 視頻點贊 | 用戶未登錄測試點贊 | 失敗 | 失敗 | 是 |
04 | 視頻取消點贊與不喜歡 | 測試取消點贊或 不喜歡 | 成功 | 成功 | 是 |
05 | 視頻收藏與 取消收藏 | 用戶已登錄點擊收藏 | 成功 | 成功 | 是 |
06 | 視頻收藏與 取消收藏 | 用戶未登錄點擊收藏 | 失敗 | 失敗 | 是 |
07 | 視頻評論發布 | 用戶已登錄發布評論 | 成功 | 成功 | 是 |
08 | 視頻評論發布 | 用戶未登錄發布評論 | 失敗 | 失敗 | 是 |
09 | 視頻評論發布 | 用戶已登錄 發布評論 污穢言語 | 失敗 | 成功 | 否 |
(3)視頻?分類?:對上傳的視頻分類,方便查看。如下表5.4所示。
表5.4視頻分類測試表
用例編號 | 模塊名稱 | 測試數據 | 預期結果 | 實際結果 | 是否通過 |
01 | 分類詳情 | 點擊分類查看分類下的視頻 用戶已登錄 | 成功 | 成功 | 是 |
02 | 分類詳情 | 點擊分類查看分類下的視頻 用戶未登錄 | 失敗 | 失敗 | 是 |
(4)用戶管理?:登錄后編輯個人信息、查看已看過的視頻、收藏的視頻。如下表5.5所示。
表5.5用戶管理測試表
用例編號 | 模塊名稱 | 測試數據 | 預期結果 | 實際結果 | 是否通過 |
01 | 個人信息查看 | 個人信息 用戶已登錄 | 成功 | 成功 | 是 |
02 | 編輯個人信息 | 修改信息 用戶已登錄 | 成功 | 成功 | 是 |
03 | 歷史查看 | 查看歷史記錄的視頻 用戶已登錄 | 成功 | 成功 | 是 |
04 | 歷史查看 | 查看歷史記錄的視頻 用戶未登錄 | 失敗 | 失敗 | 是 |
05 | 收藏夾查看 | 查看收藏夾中的視頻 用戶已登錄 | 成功 | 成功 | 是 |
06 | 收藏夾查看 | 查看收藏夾中的視頻 用戶未登錄 | 失敗 | 失敗 | 是 |
07 | 個人信息查看 | 個人信息 用戶未登錄 | 失敗 | 失敗 | 是 |
08 | 編輯個人信息 | 修改信息 用戶未登錄 | 失敗 | 失敗 | 是 |
表5.6 視頻上傳測試表
用例編號 | 模塊名稱 | 測試數據 | 預期結果 | 實際結果 | 是否通過 |
TC - 001 | 視頻上傳 | 正常格式(如 MP4)、大小合適(如 50MB 以內)的視頻文件,完整填寫標題、簡介等信息 | 視頻上傳成功,系統提示上傳成功,在視頻列表中可看到新上傳視頻 | 成功 | 是 |
TC - 002 | 視頻上傳 | 超大尺寸視頻文件(如超過系統設定的 200MB) | 系統提示視頻文件過大,上傳失敗 | 失敗 | 是 |
TC - 003 | 視頻上傳 | 不支持的視頻格式(如 AVI) | 系統提示不支持該視頻格式,上傳失敗 | 成功 | 是 |
TC - 004 | 視頻上傳 | 不填寫視頻標題,其他信息完整,上傳合適視頻文件 | 系統提示視頻標題不能為空,上傳失敗 | 失敗 | 是 |
TC - 005 | 視頻上傳 | 未登錄狀態下訪問視頻上傳頁面 | 頁面跳轉到登錄頁面,提示用戶先登錄 | 成功 | 是 |
表5.6 視頻上傳測試表
用例編號 | 模塊名稱 | 測試數據 | 預期結果 | 實際結果 | 是否通過 |
TC - VP - 001 | 視頻點贊 | 已登錄用戶,有可點贊的視頻 | 用戶點擊點贊按鈕后,點贊數加 1,按鈕狀態變為已點贊 | 成功 | 是 |
TC - VP - 002 | 視頻點贊 | 已登錄用戶,對已點贊的視頻再次點擊 | 點贊數減 1,按鈕狀態變為未點贊 | 失敗 | 是 |
TC - VP - 003 | 視頻點贊 | 未登錄用戶,點擊視頻點贊按鈕 | 頁面跳轉到登錄頁面,提示用戶先登錄 | 成功 | 是 |
TC - VP - 004 | 視頻點贊 | 已登錄用戶,網絡異常時點擊點贊按鈕 | 提示網絡異常,點贊操作未成功,點贊數不變 | 失敗 | 是 |
TC - VP - 005 | 視頻點贊 | 多個已登錄用戶同時對同一視頻點贊 | 視頻點贊數正確累加,每個用戶的點贊操作都能正常響應 | 成功 | 是 |
表5.7 視頻收藏測試表
用例編號 | 模塊名稱 | 測試數據 | 預期結果 | 實際結果 | 是否通過 |
01 | 視頻收藏 | 已登錄用戶,視頻列表中有可收藏視頻 | 用戶點擊收藏按鈕后,視頻收藏數加 1,按鈕狀態變為已收藏,在用戶收藏列表中可看到該視頻 | 成功 | 是 |
02 | 視頻收藏 | 已登錄用戶,對已收藏的視頻再次點擊收藏按鈕 | 視頻收藏數減 1,按鈕狀態變為未收藏,在用戶收藏列表中該視頻消失 | 失敗 | 是 |
03 | 視頻收藏 | 未登錄用戶,點擊視頻收藏按鈕 | 頁面跳轉到登錄頁面,提示用戶先登錄 | 成功 | 是 |
04 | 視頻收藏 | 已登錄用戶,網絡不穩定時點擊收藏按鈕 | 提示網絡異常,收藏操作未成功,視頻收藏數不變 | 失敗 | 是 |
05 | 視頻收藏 | 多個已登錄用戶同時對同一視頻進行收藏操作 | 視頻收藏數正確累加,每個用戶的收藏操作都能正常響應,用戶各自收藏列表更新正確 | 成功 | 是 |
5.4?測試總結?
在持續三天的測試周期里面,我們針對社交學習平臺WEB系統展開了功能測試,整個測試進程當中,總計測試功能點14個,涉及到系統登錄注冊、首頁推薦視頻查看、視頻搜索與上傳、視頻詳細信息查看、點贊、評論、收藏、分類信息查看以及個人信息管理等核心業務流程,測試的結果說明,系統的核心功能都呈現穩定狀態,沒有出現重大異常狀況[11]。
在功能測試之時,我們對各個模塊做了細致的驗證,比如在用戶登錄模塊中,我們測試了有效手機號和驗證碼的登錄場景,還包括手機號錯誤、驗證碼錯誤以及手機號未注冊等異常情形,都得到了預期的結果,在視頻上傳模塊中,我們對不同格式、大小的視頻文件做了上傳測試,系統可準確地進行格式校驗和大小限制,并且給出相應的提示信息[12]。
不過,測試過程并非完全順利,我們也察覺到了一些問題和不足之處,比如在視頻上傳模塊中,當上傳的視頻過大超過限制時,系統雖然可給出提示,但是在某些情形下提示信息不夠明晰,容易讓用戶產生困惑,針對這一問題,我們及時對提示信息給予優化,讓其更加清晰易懂[13]。
此次測試工作驗證了社交學習平臺WEB系統的功能完整性,也為系統的優化和完善給出了寶貴方向[14]。憑借測試,我們深入知曉了系統在各種場景下的表現,積累了豐富的測試經驗和問題解決案例,這些寶貴的經驗和案例會成為我們后續開發和維護工作里的關鍵參考,可我們持續提高系統的質量和用戶體驗[15]。
第六章 結語
畢業設計,身為學生生涯里極為關鍵的一環,是對所學基礎與專業知識的綜合運用,也是再度學習和提升的過程,在此過程中,能鍛煉學習能力,培養獨立思考與工作能力,畢業設計意義重大,是從學校邁向社會、參與實際工作的良好展示契機,也是對自學與解決問題能力的關鍵考驗。它是學校生活與社會生活的橋梁,為未來職業生涯筑牢根基,
畢業設計時,經歷了獨立科學研究訓練,撰寫畢業設計是學習科學研究的好機會,在指導教師悉心指導傳授下,能避免摸索中犯不必要錯誤,減少走彎路,直接參與體驗科學研究全過程各環節,獲得系統全面實踐學習機會。此次畢業設計中,同學關系加深,同學間互相幫助,遇不懂問題共同探討,聽取不同意見看法,助于深入理解研究項目,要感謝畢業設計中幫過我的同學,
憑借社交平臺WEB系統設計開發,有機會溫習鞏固大學課堂專業知識,獲寶貴實踐機會,此過程中,對SpringCloud Alibaba、SpringBoot、Maven、VUE等技術有更多了解掌握。查閱大量資料學習,認識到自身在某些技術領域不足,激發對更多相關技術求知欲,經持續研究調試,編程能力提升,明確未來努力方向目標。
參?考?文?獻?
- 杜彬,劉斌,滕建,等.高校Web應用發布管理可觀測方案研究[J].網絡安全技術與應用, 2024(9):93-97.
- 郭錫泉,陳香錫.Web應用安全的集成風險評估方法[J].計算機應用與軟件, 2023,
- 孫楠,林忠南,張驍,等.Web應用防火墻在氣象中的應用[J]. ?2023.
- 王永平.基于WebServer的移動應用結構分析與系統建設[J].計算機系統應用, 2022(9).
- 主編庫波,曹靜.數據結構:JAVA語言描述 編程語言[M].北京理工大學出版社,2023.泰勒.JDBC數據庫編程與J2EE[M].北京:電子工業出版社,2024.
- 胡文馨,趙欣娜.以學生為中心的教學改革探索——以"WEB系統設計與開發技術"課程為例[J].教育教學論壇, 2023(35):81-84.
- 王姝.網絡數據庫技術與應用:MySQL版[M].科學出版社,2021.
- 龐敏.MySQL數據庫的數據安全應用設計技術研究[J].數字通信世界, 2024(9):25-27.
- 楊曉,屠金輝,聶艷平,等.基于數據庫映射動態接口的前端頁面應用開發方法及裝.置:CN202110102126.X[P].CN112799643A[2025-05-22].
- 鹿賀.一種基于數據庫的認證方法,裝置,設備及存儲介質.CN202211290724.5[2025-05-22].
- 唐曉,劉文彬,揭筆雨,等.基于微服務架構的編程實踐教學平臺設計與實現[J].科技資訊,2024,22(18):222-225.
- 李啟東.微服務架構的在線教育平臺設計與實現[J].福建電腦,2024,40(05):97-101.
- 杜俊,李金忠,何新武,等.基于Spring Cloud微服務架構的非物質文化遺產展示與學習系統的設計與實現[J].廣東輕工職業技術學院學報,2024,23(01):14-21.
- 葉維裕,盧涵宇.基于微服務架構的智慧校園大數據平臺設計與實現[J].科技創新與應用,2023,13(15):101-104.
- 葉維裕,盧涵宇.基于微服務架構的智慧校園大數據平臺設計與實現[J].科技創新與應用,2023,13(15):101-104.
致 謝
畢業設計收尾,這也意味著我在大學生活即將結束。回首既往,自己一生最寶貴的時光能于這樣的校園之中,能在眾多學富五車、才華橫溢的老師們的熏陶下度過,實是榮幸至極。在這三年的時間里,我在學習上和思想上都受益非淺。這除了自身努力外,與各位老師、同學和朋友的關心、支持和鼓勵是分不開的。
畢業設計的設計和開發過程是枯燥乏味的。但是老師的指導、同學的出謀劃策及家長的支持鼓勵,是我堅持完成畢業設計的動力源泉。在此,我特別要感謝我的指導老師李建。從畢業設計的選題、文獻的采集、模塊的設計、結構的布局到最終的畢業設計完成,從內容到格式,從標題到標點,他都費盡心血。沒有李建老師的辛勤栽培、孜孜教誨,就沒有我畢業設計的順利完成。 ?
通過這一階段的努力,最后我的畢業設計終于完成了,我相信,在以后的成長道路中我一定會銘記大學生活給我帶來的每一分歡樂和汗水,將它們繪制成只屬于我的風畫卷。
最后,再次對關心,幫助我的老師和同學表示衷心地感謝!