Vue+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. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/410772.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WampServer环境下载安装并结合内网穿透实现远程访问管理界面

文章目录 前言1.WampServer下载安装2.WampServer启动3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 Wamp 是一个 Windows系统下的 Apache PHP Mysql 集成安装环境&#xff0c;是一组常用来…

华为配置WDS背靠背业务示例

配置WDS背靠背业务示例 组网图形 图1 配置WDS背靠背组网示意图 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件 业务需求 在某些企业网络中&#xff0c;有线网络部署受施工条件的限制&#xff0c;需要连接的网络之间有障碍物或传输距离较远&#xff0c;AP无法全…

这家宠物品牌的内容运营怎么做的?太好玩儿了吧

养宠的朋友应该多多少少对“诚实一口”这个牌子有所耳闻&#xff0c;2018年诚实一口品牌正式立项&#xff0c;虽然不算经典品牌&#xff0c;但在国内也是小有名气的宠物品牌。今天媒介盒子想和大家聊的不是产品&#xff0c;而是想聊聊作为成立时间不长的国产宠粮品牌是如何凭借…

5.4 内容管理模块 - 课程搜索

5.4 内容管理模块 - 课程搜索 文章目录 5.4 内容管理模块 - 课程搜索一、快速入门1.1 需求分析1.2 业务流程1.3 准备环境1.3.1 搭建 elasticsearch1.3.2 索引 概念 1.4 课程信息索引同步1.4.1 技术方案 一、快速入门 本项目使用elasticsearch作为索引及搜索服务 课程如果发布之…

Sora抢饭碗!好莱坞大亨停止,8亿美元投资

好莱坞消息&#xff0c;著名演员、影视投资人Tyler Perry在看到OpenAI最新发布的文生视频模型Sora后&#xff0c;停止了8亿&#xff08;约57亿元&#xff09;美元的投资。 该投资项目位于亚特兰大&#xff0c;本来要扩展十几个摄影棚用于影视剧的拍摄&#xff08;类似横店影视…

大学开学季,创业入局做校园外卖,这些新的运营思路可以参考

在大学生的学习、生活和消费中&#xff0c;高校已经形成了具有独特属性的市场。这个市场既具有一般市场的特点&#xff0c;同时也有学校特有的一些特点。校园生活服务平台的商业模式就是在互联网发展的背景下出现的&#xff0c;并且已经变得非常成熟和稳定。 就校园外卖而言&a…

Java+SpringBoot+Vue+MySQL:疫情隔离酒店管理的全面技术解决方案

✍✍计算机毕业编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java、…

【云原生】Spring Cloud Gateway的底层原理与实践方法探究

&#x1f389;&#x1f389;欢迎光临&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;特别推荐给大家我的最新专栏《Spring 狂野之旅&#xff1a;从入门到入魔》 &#x1f680; 本…

切换Linux中的gcc版本

一、允许在系统中并行安装多个软件版本 命令1&#xff1a; yum -y install centos-release-scl 二、安装GCC 8及相关工具 命令2&#xff1a; yum -y install devtoolset-8-gcc devtoolset-8-gcc-c devtoolset-8-binutils 三、将系统中的默认shell环境切换到与devtool…

如何在Win系统搭建Oracle数据库并实现远程访问【内网穿透】

文章目录 前言1. 数据库搭建2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射 3. 公网远程访问4. 配置固定TCP端口地址4.1 保留一个固定的公网TCP端口地址4.2 配置固定公网TCP端口地址4.3 测试使用固定TCP端口地址远程Oracle 前言 Oracle&#xff0c;是甲骨文公司的一款关系…

Flink代码单词统计 ---批处理

flatMap&#xff1a;一对多转换操作&#xff0c;输入句子&#xff0c;输出分词后的每个词groupBy&#xff1a;按Key分组&#xff0c;0代表选择第1列作为Keysum&#xff1a;求和&#xff0c;1代表按照第2列进行累加print&#xff1a;打印最终结果 1.WordCount代码编写 需求&am…

js设计模式:路由模式

作用: 业务开发时,路由这个概念无论对于前后端来说肯定是不可缺少的 前端的vue-router就是很经典的路由模式 示例: //这里模拟实现一个vueclass Vue{constructor(options){Object.keys(options).forEach(item>{this[item] options[item]})}$mount(node){console.log(挂载…

基础知识常见算法识别

特征值识别 很多常见的算法&#xff0c;如AES、DES等&#xff0c;在运算过程中会使用一些常量&#xff0c;而为了提高运算效率&#xff0c;这些常量往往被硬编码在程序中 通过识别这些特征值&#xff0c;可以对算法进行一个大致判断 算法特征值&#xff08;无特殊说明为十六…

Web3的奇迹:数字世界的新篇章

在数字化时代的潮流中&#xff0c;Web3正以其令人振奋的潜力和前景引领着我们进入一个全新的数字时代。作为互联网的下一代&#xff0c;Web3将重新定义我们对数字世界的认知和体验&#xff0c;为我们带来无限的可能性和奇迹。本文将深入探讨Web3的重要性、核心特征以及未来展望…

智能美颜引领短视频创作风潮:探秘美颜SDK技术背后的创新

美颜技术不仅改善了用户的拍摄体验&#xff0c;还推动了短视频创作的风潮。本文将深入探讨智能美颜在短视频创作中的应用&#xff0c;以及美颜SDK技术背后的创新。 一、短视频时代的美颜潮流 随着短视频应用的普及&#xff0c;用户对于视频质量的要求也越来越高。然而&#…

精品springboot科研项目工作量管理系统的设计与实现

《[含文档PPT源码等]精品基于springboot科研工作量管理系统的设计与实现[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功&#xff01; 软件开发环境及开发工具&#xff1a; Java——涉及技术&#xff1a; 前端使用技术&…

Wagtail安装运行并结合内网穿透实现公网访问本地网站界面

文章目录 前言1. 安装并运行Wagtail1.1 创建并激活虚拟环境 2. 安装cpolar内网穿透工具3. 实现Wagtail公网访问4. 固定的Wagtail公网地址 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的 人工智能学习网站&#xff0c; 通俗易懂&#xff0c;风趣幽默&#xf…

c# 异常处理

异常类 .NET Framework 类库中的所有异常都派生于 Exception 类&#xff0c;异常包括系统异常和应用异常。 默认所有系统异常派生于 System.SystemException&#xff0c;所有的应用程序异常派生于 System.ApplicationException。 系统异常一般不可预测&#xff0c;比如内存堆…

RabbitMQ 面试八股题整理

前言&#xff1a;本文是博主网络自行收集的一些RabbitMQ相关八股文&#xff0c;还在准备暑期实习&#xff0c;后续应该会持续更新...... 参考&#xff1a;三天吃透RabbitMQ面试八股文_牛客网 目录 RabbitMQ概述 什么是 RabbitMQ&#xff1f; 说一说RabbitMQ中的AMQP 为什么…

rancher change domain name 【rancher 更改域名】

文章目录 1. 预备条件2. 准备全部集群的直连 kubeconfig 配置文件3. 准备证书4. 更新证书4.1 Rancher 单节点运行&#xff08;默认容器自动生成自签名 SSL 证书&#xff09;#4.2 Rancher 单节点运行&#xff08;外置自签名 SSL 证书&#xff09;#4.3 Rancher HA 5. 修改 Ranche…