Vue.js+SpringBoot開發在線課程教學系統

在這里插入圖片描述


目錄

  • 一、摘要
    • 1.1 系統介紹
    • 1.2 項目錄屏
  • 二、研究內容
    • 2.1 課程類型管理模塊
    • 2.2 課程管理模塊
    • 2.3 課時管理模塊
    • 2.4 課程交互模塊
    • 2.5 系統基礎模塊
  • 三、系統設計
    • 3.1 用例設計
    • 3.2 數據庫設計
  • 四、系統展示
    • 4.1 管理后臺
    • 4.2 用戶網頁
  • 五、樣例代碼
    • 5.1 新增課程類型
    • 5.2 網站登錄
    • 5.3 課時收藏
    • 5.4 課時評論
  • 六、免責說明


一、摘要

1.1 系統介紹

基于JAVA+Vue+SpringBoot+MySQL的在線課程教學系統,包含了課程類型模塊、課程檔案模塊、課時檔案模塊、課時收藏模塊、課時評論模塊,還包含系統自帶的用戶管理、部門管理、角色管理、菜單管理、日志管理、數據字典管理、文件管理、圖表展示等基礎模塊,在線課程教學系統基于角色的訪問控制,給學生、教師、高校管理員使用,可將權限精確到按鈕級別,您可以自定義角色并分配權限,系統適合設計精確的權限約束需求。

1.2 項目錄屏


二、研究內容

IT在線課程系統是一個供學生在線學習的系統,IT培訓在線課程系統用于高校,或者培訓機構使用,支持教師、學生兩大角色使用,教師可以維護培訓課程類型、培訓課程檔案、培訓課程下的課時,學生可以觀看課程視頻,并對喜愛的課時進行收藏、評論,完成交互操作。

模塊。系統基礎模塊包括了基礎的用戶管理、文件管理、日志管理、數據字典管理。培訓課程模塊包括培訓課程類型模塊和培訓課程檔案模塊,用于增刪改查維護數據。課時是培訓課程下的子內容,一節課程會有多個課時,供學生學習。課程交互模塊包括了收藏和評論功能,用于學生和教師進行交互。

總的來說,IT培訓在線課程系統可以實現學生的在線學習,符合數字化的教學理念,能降低教師的工作量。

2.1 課程類型管理模塊

課程類型管理模塊用于管理員對課程類型數據的維護,包括類型名稱、狀態、排序值、備注、創建時間、創建人、最后更新時間、最后更新人信息。

2.2 課程管理模塊

課程管理模塊用于管理員對課程數據的維護,包括課程名稱、課程分類、課程簡介、講師、圖片、備注、創建人、創建時間等信息。

2.3 課時管理模塊

課時管理模塊用于管理員對課時數據的維護,包括課時名稱、課時簡介、所屬課程、知識點、視頻、備注、創建人、創建時間等信息。

2.4 課程交互模塊

課程交互模塊用于管理員對課時交互信息的維護,主要包括課時評論和課時收藏。課時收藏模塊包括課程名稱、課時名稱、收藏人、收藏時間、創建時間、創建人、最后更新時間、最后更新人信息;課時評論模塊包括課程名稱、課時名稱、評論人、評論時間、創建時間、創建人、最后更新時間、評論內容信息。

2.5 系統基礎模塊

系統基礎模塊包括了用戶管理、部門管理、文件管理、權限管理和數據字典管理模塊。因系統基礎模塊位開發框架自帶,所以無需進行系統邏輯設計。


三、系統設計

3.1 用例設計

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

3.2 數據庫設計

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述


四、系統展示

4.1 管理后臺

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

4.2 用戶網頁

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述


五、樣例代碼

5.1 新增課程類型

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增培訓課程類型")
public Result<TrainType> insert(TrainType trainType){if(trainType.getSortOrder() == null || Objects.equals(0,trainType.getSortOrder().compareTo(BigDecimal.ZERO))) {trainType.setSortOrder(BigDecimal.valueOf(iTrainTypeService.count() + 1));}iTrainTypeService.saveOrUpdate(trainType);return new ResultUtil<TrainType>().setData(trainType);
}

5.2 網站登錄

@RequestMapping(value = "/loginOnWeb", method = RequestMethod.GET)
@ApiOperation(value = "網站前臺登陸")
public Result<String> loginOnWeb(@RequestParam String userName, @RequestParam String password){QueryWrapper<User> qw = new QueryWrapper<>();qw.eq("username",userName);List<User> userList = iUserService.list(qw);if(userList.size() < 1) {return ResultUtil.error("用戶不存在");}User user = userList.get(0);if(!new BCryptPasswordEncoder().matches(password, user.getPassword())){return ResultUtil.error("密碼不正確");}String accessToken = securityUtil.getToken(user.getUsername(), true);UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(new SecurityUserDetails(user), null, null);SecurityContextHolder.getContext().setAuthentication(authentication);return new ResultUtil<String>().setData(accessToken);
}

5.3 課時收藏

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增收藏")
public Result<TrainCollection> addOne(@RequestParam String id){TrainItem ti = iTrainItemService.getById(id);if(ti == null) {return ResultUtil.error("課時不存在");}User currUser = securityUtil.getCurrUser();QueryWrapper<TrainCollection> qw = new QueryWrapper<>();qw.eq("user_id",currUser.getId());qw.eq("item_id",ti.getId());if(iTrainCollectionService.count(qw) > 0L) {return ResultUtil.success("您已收藏");}TrainCollection tc = new TrainCollection();tc.setItemId(ti.getId());tc.setItemName(ti.getTitle());tc.setVideo(ti.getVideo());tc.setUserId(currUser.getId());tc.setUserName(currUser.getNickname());tc.setTime(DateUtil.now());iTrainCollectionService.saveOrUpdate(tc);return ResultUtil.success();
}

5.4 課時評論

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增評論")
public Result<TrainComment> addOne(@RequestParam String id,@RequestParam String content){TrainItem item = iTrainItemService.getById(id);if(item == null) {return ResultUtil.error("課時不存在");}User currUser = securityUtil.getCurrUser();TrainComment tc = new TrainComment();tc.setItemId(item.getId());tc.setItemName(item.getTitle());tc.setUserId(currUser.getId());tc.setUserName(currUser.getNickname());tc.setTime(DateUtil.now());tc.setContent(content);iTrainCommentService.saveOrUpdate(tc);return ResultUtil.success();
}

六、免責說明

  • 本項目僅供個人學習使用,商用授權請聯系博主,否則后果自負。
  • 博主擁有本軟件構建后的應用系統全部內容所有權及獨立的知識產權,擁有最終解釋權。
  • 如有問題,歡迎在倉庫 Issue 留言,看到后會第一時間回復,相關意見會酌情考慮,但沒有一定被采納的承諾或保證。

下載本系統代碼或使用本系統的用戶,必須同意以下內容,否則請勿下載!

  1. 出于自愿而使用/開發本軟件,了解使用本軟件的風險,且同意自己承擔使用本軟件的風險。
  2. 利用本軟件構建的網站的任何信息內容以及導致的任何版權糾紛和法律爭議及后果和博主無關,博主對此不承擔任何責任。
  3. 在任何情況下,對于因使用或無法使用本軟件而導致的任何難以合理預估的損失(包括但不僅限于商業利潤損失、業務中斷與業務信息丟失),博主概不承擔任何責任。
  4. 必須了解使用本軟件的風險,博主不承諾提供一對一的技術支持、使用擔保,也不承擔任何因本軟件而產生的難以預料的問題的相關責任。

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/716745.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716745.shtml
英文地址,請注明出處:http://en.pswp.cn/news/716745.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

五、西瓜書——集成學習

1.個體與集成 集成學習通過將多個學習器進行結合,常可獲得比單一學習器顯著優越的泛化性能&#xff0c;這對“弱學習器”(weak learner)尤為明顯因此集成學習的很多理論研究都是針對弱學習器進行的而基學習器有時也被直接稱為弱學習器。 要獲得好的集成個體學習器應“好而不同”…

武漢灰京文化:多樣化推廣與創新引領游戲行業

作為專業的游戲推廣服務商&#xff0c;武漢灰京文化注重多樣化的推廣策略&#xff0c;通過與各大媒體、社交平臺和游戲社區建立緊密的合作關系&#xff0c;為游戲企業提供全方位的推廣服務。他們通過精確的廣告投放、內容創作和社交媒體互動等方式&#xff0c;將游戲信息傳播給…

【C++】STL學習之旅——初識STL,認識string類

string類 1 STL 簡介2 STL怎么學習3 STL缺陷4 string4.1 初識 string4.2 初步使用構造函數成員函數 5 小試牛刀Thanks?(&#xff65;ω&#xff65;)&#xff89;謝謝閱讀&#xff01;&#xff01;&#xff01;下一篇文章見&#xff01;&#xff01;&#xff01; 1 STL 簡介 …

解讀OWASP軟件保障成熟度模型SAMM

OWASP軟件保證成熟度模型&#xff08;SAMM&#xff09;可為所有類型的組織分析和改進其軟件安全態勢提供有效和可衡量的方法。OWASP SAMM支持完整的軟件生命周期&#xff0c;包括開發和獲取&#xff0c;并且與技術和過程無關。 1. 簡介 OWASP軟件保證成熟度模型&#xff08;SA…

數據結構 第3章 棧、隊列和數組(一輪習題總結)

第3章 棧、隊列和數組 3.1 棧3.2 隊列3.3 棧與隊列的應用3.4 數組和特殊矩陣 3.1 棧&#xff08;1 10 11 20&#xff09; 3.2 隊列&#xff08;6 12 14 17&#xff09; 3.3 棧與隊列的應用&#xff08;6 11&#xff09; 3.4 數組和特殊矩陣 3.1 棧 T1 棧和隊列具有相同的邏輯…

Java的基本數據類型和引用數據類型

Java的基本數據類型和引用數據類型 Java中的基本數據類型包括整數類型、浮點類型、字符類型和布爾類型&#xff0c;而引用數據類型主要包括類、接口、數組和枚舉。具體介紹如下&#xff1a; 基本數據類型&#xff1a; 整數類型&#xff1a;包括byte、short、int、long&#…

k8s-prometheus監控部署 22

新建項目倉庫并上傳部署prometheus所需的鏡像 開始部署 修改svc訪問方式為LoadBalancer 查看用戶名和密碼 訪問grafana監控頁面 http://192.168.182.103/?????? 修改可視化模板 官方監控模板&#xff1a;https://grafana.com/grafana/dashboards 訪問prometheus監控頁面…

1. vue3-環境準備

1、安裝node.js 如果開發環境上面沒有安裝node.js&#xff0c;需要到node.js官方網站下載node.js。下載安裝后&#xff0c;可以通過npm --version查看nodejs版本 2. 開發工具 開發工具建議使用vscode

知識圖譜1——neo4j

2024年要搞知識圖譜&#xff0c;因此沒有辦法&#xff0c;只能將我之前固守的JDK1.8&#xff0c;升級到JDK21&#xff0c;因為JDK21也是LTS版本&#xff0c;neo4j高版本就不支持JDK8&#xff0c;因此沒有辦法&#xff0c;只有升級了。寫這篇只是一個搭建筆記&#xff0c;我的初…

AJAX 學習筆記(Day3)

「寫在前面」 本文為黑馬程序員 AJAX 教程的學習筆記。本著自己學習、分享他人的態度&#xff0c;分享學習筆記&#xff0c;希望能對大家有所幫助。推薦先按順序閱讀往期內容&#xff1a; 1. AJAX 學習筆記&#xff08;Day1&#xff09; 目錄 3 AJAX 原理 3.1 XMLHttpRequest 3…

springboot心靈治愈交流平臺源碼和論文

本論文主要論述了如何使用JAVA語言開發一個心靈治愈交流平臺 &#xff0c;本系統將嚴格按照軟件開發流程進行各個階段的工作&#xff0c;采用B/S架構&#xff0c;面向對象編程思想進行項目開發。在引言中&#xff0c;作者將論述心靈治愈交流平臺的當前背景以及系統開發的目的&a…

@Transactional--開啟事物后換源報錯

一、問題出現的場景 系統架構設計、每個企業一個企業庫、通過數據源切在平臺庫、和企業庫之間動態切換完成業務操作。 二、跨庫事物失效的原因 1、SpringTransactional不支持跨數據源事物&#xff0c;Spring 事物控制是基于數據庫鏈接進行的&#xff0c;當數據源切換后&#x…

SQL中把datetime 轉為字符串

在 SQL 中&#xff0c;將 datetime 類型的數據轉換為字符串可以使用不同的方法&#xff0c;具體取決于你使用的數據庫系統。以下是一些常見數據庫系統中將 datetime 轉換為字符串的示例&#xff1a; 1. MySQL 在 MySQL 中&#xff0c;你可以使用 DATE_FORMAT() 函數將 dateti…

SketchUp Pro 2023:顛覆傳統,重塑設計世界mac/win版

SketchUp Pro 2023是一款強大的三維建模軟件&#xff0c;專為設計師、建筑師和創意專業人士打造。這款軟件以其直觀易用的界面和強大的功能而著稱&#xff0c;為用戶提供了無限的創意空間。 SketchUp Pro 2023軟件獲取 SketchUp Pro 2023在用戶體驗方面進行了全面的優化&#…

SpringBoot整合rabbitmq-重復消費問題

說明&#xff1a;重復消費的原因大致是生產者將信息A發送到隊列中&#xff0c;消費者監聽到消息A后開始處理業務&#xff0c;業務處理完成后&#xff0c;監聽在告知rabbitmq消息A已經被消費完成途中中斷&#xff0c;也就時說我已經處理完業務&#xff0c;而隊列中還存在當前消息…

Qt|QTreewidget類下函數qt助手詳解說明示例(上)

該系列持續更新&#xff0c;喜歡請一鍵三連&#xff0c;感謝各位大佬。 QT5.14.2 參考官方QT助手 文章目錄 QTreeWidget ClasspropertiesPublic Functions默認構造函數默認析構函數添加根節點void addTopLevelItem(QTreeWidgetItem *item)添加多個根節點void addTopLevelItems…

LeetCode---【和的操作】

目錄 兩數之和我的答案在b站up那里學到的【然后自己復寫】 和為 K 的子數組在b站up那里學到的【然后自己復寫】 三數之和在b站up那里學到的【然后自己復寫】 兩數相加【鏈表】我的半路答案&#xff1a;沒有看到是鏈表在b站up那里學到的【復寫失敗后整理】 兩數之和 我的答案 …

Linux下的權限

1. 操作系統的外殼 在理解Linux權限之前&#xff0c;我們先來吃點小菜。 1.大部分指令都是文件&#xff0c;如果把指令對應的文件刪除了&#xff0c;那么這條指令就使用不了了。 2.用戶執行某種功能的時候&#xff0c;不是直接讓操作系統執行對應的指令的&#xff0c;而是先交…

IIC協議總結

1.基本理解 iic通信協議:雙線制串行通信協議,由時鐘線SCL和數據線SDA構成. 通信方式:主從模式,主設備發起通信,從設備響應通信 2.通信的基本步驟 a.主設備發送一個開始信號&#xff0c;表示開始通信&#xff0c;即啟動I2C 條件&#xff1a;SCL1&#xff0c;SDA出現下降沿 …

Python開源項目月排行 2024年2月

Python 趨勢月報&#xff0c;按月瀏覽往期 GitHub,Gitee 等最熱門的Python開源項目&#xff0c;入選的項目主要參考GitHub Trending,部分參考了Gitee和其他。排名不分先后&#xff0c;都是當前月份內相對熱門的項目。 入選公式&#xff1d;70%GitHub Trending20%Gitee10%其他 …