今天给大家开源一个基于springboot的在线教育平台系统,系统是小孟开发的,第一个版本是小锋开发的(小锋的博客),我进行了本版本的开发。

该系统完全免费、开源。

系统完美运行,无任何的bug,技术较多,可以当做面试的项目或者作为毕设的项目。

系统获取源码的方式见文章底部。

为防止刷着刷者找不到,大家点赞、收藏文章。

系统完美运行。具体的介绍如下所示。

目录

1. 技术介绍

2.功能介绍

3. 前端

3.1 首页

3.2 课程

3.3 登入

3.4 商品兑换

3.5 课程发布

4. 后端

4.1 登录

4.2 系统管理

4.3 课程管理

4.4 教师管理

4.5 导航菜单

4.6 轮播管理

4.7 通知管理

4.8 礼品管理

5,系统的核心代码

6,源码获取


1. 技术介绍

核心技术:SpringBoot+mybatis;

前端:layui;

开发工具:idea;

数据库:mysql5.7;

模版引擎:thymeleaf;

安全框架:SpringSecurity;

日志框架:logback;

数据库连接池:druid;

在线编辑器:ckeditor;

图片轮播组件:jQuerySwipeslider;

2.功能介绍

本项目分前台用户界面功能和后台管理功能;

前台用户界面功能:

  • 滚动大条幅展示重要通知和课程或者活动;

  • 展示课程,根据实际业务需求,展示课程推荐,最新课程,免费课程,实战课程;

  • 课程搜索,用户输入指定课程关键字,可以搜索查询,也可以根据课程类别分类,和类型进行搜索;

  • 课程详细展示

  • 用户登陆

  • 在线支付

后台管理功能:

  • 管理员登录

  • 课程管理

  • 课程类别管理

  • 用户管理

  • 授课老师管理

  • 订单管理

  • 菜单管理

  • 友情链接管理

  • 系统属性管理

  • 自定义帖子管理

  • 轮转图片帖子管理

3. 前端

3.1 首页

3.2 课程

提供按照课程的类别,类型以及搜索框进行快速查询相关课程

点击任意一门课程,免费课程可以直接观看,vip课程则需要通过支付宝或者微信缴费开通vip进行观看

3.3 登入

学习课程时候需要登录才能观看相关视频资料

登入后可以查看个人中心的相关功能

在我的订单界面可以查看已经购买的课程

3.4 商品兑换

3.5 课程发布

在课程发布页面可以提交发布的课程资料

在我的发布页面可以查看所有已经发布的课程相关信息,查看审核状态

4. 后端

4.1 登录

4.2 系统管理

包括用户管理,角色管理,菜单管理,可以查看对应的信息并添加,导入,修改或删除

角色管理界面可以为角色分配权限

4.3 课程管理

可以添加课程,对课程进行分类管理:公共课程,专业课程,免费课程等

在类别管理中可以添加课程的分类信息

在审核功能处可以对上传的视频进行审核

4.4 教师管理

4.5 导航菜单

4.6 轮播管理

4.7 通知管理

4.8 礼品管理

5,系统的核心代码

/*** 操作日志记录注解* Created by xiaomeng 2020-03-21 17:03*技术交流v:kaifazixun* 操作日志记录注解* Created by wangfan on 2020-03-21 17:03*/
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface OperLog {/*** 模块*/String value();/*** 功能*/String desc();/*** 是否记录请求参数*/boolean param() default true;/*** 是否记录返回结果*/boolean result() default false;}**/
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface OperLog {/*** 模块*/String value();/*** 功能*/String desc();/*** 是否记录请求参数*/boolean param() default true;/*** 是否记录返回结果*/boolean result() default false;}
@Aspect
@Component
public class OperLogAspect {private ThreadLocal<Long> startTime = new ThreadLocal<>();@Autowiredprivate OperRecordService operRecordService;@Pointcut("@annotation(com.egao.common.core.annotation.OperLog)")public void operLog() {}@Before("operLog()")public void doBefore(JoinPoint joinPoint) throws Throwable {startTime.set(System.currentTimeMillis());}@AfterReturning(pointcut = "operLog()", returning = "result")public void doAfterReturning(JoinPoint joinPoint, Object result) {saveLog(joinPoint, result, null);}@AfterThrowing(value = "operLog()", throwing = "e")public void doAfterThrowing(JoinPoint joinPoint, Exception e) {saveLog(joinPoint, null, e);}private void saveLog(JoinPoint joinPoint, Object result, Exception e) {// 获取reques对象ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletRequest request = (attributes == null ? null : attributes.getRequest());// 构建操作日志OperRecord operRecord = new OperRecord();operRecord.setUserId(getLoginUserId());if (startTime.get() != null) operRecord.setSpendTime(System.currentTimeMillis() - startTime.get());if (request != null) {operRecord.setRequestMethod(request.getMethod());operRecord.setUrl(request.getRequestURI());operRecord.setIp(UserAgentGetter.getIp(request));}// 记录异常信息if (e != null) {operRecord.setState(1);operRecord.setComments(StrUtil.sub(e.toString(), 0, 2000));}
public class BaseController {/*** 获取当前登录的user*/public User getLoginUser() {Subject subject = SecurityUtils.getSubject();if (subject == null) return null;Object object = subject.getPrincipal();if (object != null) return (User) object;return null;}/*** 获取当前登录的userId*/public Integer getLoginUserId() {User loginUser = getLoginUser();return loginUser == null ? null : loginUser.getUserId();}}
/*** 用户管理* Created by xiaomeng 2020-12-24 16:10
*技术交流V:kaifazixun*/
@Controller
@RequestMapping("/sys/user")
public class UserController extends BaseController {@Autowiredprivate UserService userService;@Autowiredprivate DictionaryDataService dictionaryDataService;@Autowiredprivate RoleService roleService;@Autowiredprivate OrganizationService organizationService;@RequiresPermissions("sys:user:view")@RequestMapping()public String view(Model model) {model.addAttribute("sexList", dictionaryDataService.listByDictCode("sex"));model.addAttribute("organizationTypeList", dictionaryDataService.listByDictCode("organization_type"));model.addAttribute("rolesJson", JSON.toJSONString(roleService.list()));return "system/user.html";}/*** 个人中心*/@RequestMapping("/info")public String userInfo(Model model) {model.addAttribute("user", userService.getFullById(getLoginUserId()));model.addAttribute("sexList", dictionaryDataService.listByDictCode("sex"));return "index/user-info.html";}/*** 分页查询用户*/@OperLog(value = "用户管理", desc = "分页查询")@RequiresPermissions("sys:user:list")@ResponseBody@RequestMapping("/page")public PageResult<User> page(HttpServletRequest request) {PageParam<User> pageParam = new PageParam<>(request);pageParam.setDefaultOrder(null, new String[]{"create_time"});return userService.listPage(pageParam);}/*** 查询全部用户*/@OperLog(value = "用户管理", desc = "查询全部")@RequiresPermissions("sys:user:list")@ResponseBody@RequestMapping("/list")public JsonResult list(HttpServletRequest request) {PageParam<User> pageParam = new PageParam<>(request);List<User> records = userService.listAll(pageParam.getNoPageParam());return JsonResult.ok().setData(pageParam.sortRecords(records));}/*** 根据id查询用户*/@OperLog(value = "用户管理", desc = "根据id查询")@RequiresPermissions("sys:user:list")@ResponseBody@RequestMapping("/get")public JsonResult get(Integer id) {PageParam<User> pageParam = new PageParam<>();pageParam.put("userId", id);List<User> records = userService.listAll(pageParam.getNoPageParam());return JsonResult.ok().setData(pageParam.getOne(records));}
/*** 字典管理* Created by xiaomeng on 2021-03-14 11:29:03* 技术交流加v:kafazixun*/
@Controller
@RequestMapping("/sys/dict")
public class DictionaryController extends BaseController {@Autowiredprivate DictionaryService dictionaryService;@RequiresPermissions("sys:dict:view")@RequestMapping()public String view() {return "system/dictionary.html";}/*** 分页查询字典*/@OperLog(value = "字典管理", desc = "分页查询")@RequiresPermissions("sys:dict:list")@ResponseBody@RequestMapping("/page")public PageResult<Dictionary> page(HttpServletRequest request) {PageParam<Dictionary> pageParam = new PageParam<>(request);return new PageResult<>(dictionaryService.page(pageParam, pageParam.getWrapper()).getRecords(), pageParam.getTotal());}/*** 查询全部字典*/@OperLog(value = "字典管理", desc = "查询全部")@RequiresPermissions("sys:dict:list")@ResponseBody@RequestMapping("/list")public JsonResult list(HttpServletRequest request) {PageParam<Dictionary> pageParam = new PageParam<>(request);return JsonResult.ok().setData(dictionaryService.list(pageParam.getOrderWrapper()));}/*** 根据id查询字典*/@OperLog(value = "字典管理", desc = "根据id查询")@RequiresPermissions("sys:dict:list")@ResponseBody@RequestMapping("/get")public JsonResult get(Integer id) {return JsonResult.ok().setData(dictionaryService.getById(id));}

6,源码获取

源获取点击下面,关注弹出的公众号图,

回复:精品课程

不是评论区回复,不是评论区回复,不是评论区回复,

资料获取加技术抱团,点击 关注

一个月爆肝一个基于SpringBoot的在线教育系统【源码开源】【建议收藏】相关推荐

  1. 基于ssm jsp在线教育系统源码

    演示视频: 基于ssm jsp在线教育系统源码 范围 系统主要目标设计 随着互联网发展,在线教学成为一种支持知识共享,无距离知识交流的一种方式,我们的系统主要完成在线视频观看,在线教学,在线知识交流, ...

  2. Springboot+vue在线考试系统源码,前后端分离

    Springboot+vue在线考试系统源码 开发语言:Java 数据库:Mysql 开发工具:Eclipse 使用技术: 后端:SpringBoot 前端:VUE 和 Element-UI 源码免费 ...

  3. 基于Java毕业设计在线阅读系统源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计在线阅读系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计在线阅读系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开发语言: ...

  4. 基于Java毕业设计在线教育平台源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计在线教育平台源码+系统+mysql+lw文档+部署软件 基于Java毕业设计在线教育平台源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开发语言: ...

  5. 基于Java毕业设计在线学习系统源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计在线学习系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计在线学习系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开发语言: ...

  6. 基于Java毕业设计在线考试系统源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计在线考试系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计在线考试系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开发语言: ...

  7. 基于springboot mybatis网上商城系统源码和论文

    伴随着互联网技术的进步,各种电商平台也如雨后 春笋不断涌现.一个好的电商平台应该具有用户体验度高,用户信息安全等特点, 从而可以满足更多的用户需求.现有的电商平台虽然在不断完善,但仍然存在着 不少问题 ...

  8. 基于springboot的大学生租房系统源码论文数据库

    3.1系统功能 现在无论是在PC上还是在手机上,相信全国所有地方都在进行大学生租房管理.随着经济的不断发展,系统管理也在不断增多,大学生租房系统就是其中一种,很多人会登录到相关的租房系统查看租房信息, ...

  9. java 面包屑导航_基于SpringBoot打造在线教育系统(7)-- 面包屑导航与子分类

    这一节我们来讲一下面包屑导航的问题. 先看思路,当我们点击左侧的一级课程,是不是可以拿到一个ID? 这个ID的作用可大了,我们有了这个ID,本意是通过它去寻找它所有的子节点. 看图,假设[JAVA基础 ...

  10. 基于java的在线考试系统源码

    4系统设计 4.1 软件功能模块设计 网站整功能如下图所示: 图 4-1 学生在线考试系统的设计与实现总体功能模块图 4.2 数据库设计 4.2.1 概念模型设计 概念模型是对现实中的问题出现的事物的 ...

最新文章

  1. C++ STL快速入门
  2. axios04-文件上传
  3. leetcode 235. 二叉搜索树的最近公共祖先(Java版,树形dp套路)
  4. android百度地图标方向,Android百度地图之方向感应和模式更改
  5. YbtOJ-毒瘤染色【LCT】
  6. redis 系列7 数据结构之跳跃表
  7. Nginx+Tomcat+Memecached实现session共享配置
  8. OpenCV 直方图均衡化 equalizeHist
  9. Java笔记(1)黑马刘意_Java入门_2019_idea版
  10. TSC条码打印机常见故障及解决方法
  11. 我来谈谈为啥企业QQ下线
  12. CentOS 7.9安装bpftrace
  13. OSI参考模型——数据链路层详解
  14. poi导出Excel+图片
  15. java毕业设计物业管理系统源码+lw文档+mybatis+系统+mysql数据库+调试
  16. 编程的第二个十年:关于Real™编程器的全部
  17. python爬取链家新房_Python爬虫项目--爬取链家热门城市新房
  18. python 接收MQTT间隔一段时间停止问题
  19. linux 下安装mysql 步骤
  20. HTML5+CSS3 鼠标悬停3D立体图片效果

热门文章

  1. java json nf_什么是JSON ,API,GET,POST请求
  2. python建模预测_技术分享 - python数据分析(6)——挖掘建模(1)分类与预测
  3. ChartDirector画2D,3D图,MFC画图
  4. c语言程序设计967,2017年湖南师范大学数学与计算机科学学院967C语言程序设计和数据结构[专业硕士]之C程序设计考研仿真模拟题...
  5. 学生信息管理系统源码
  6. ②C语言,求数组里相同的位置并输出
  7. Java编写斗地主的游戏源码
  8. 华为olt ma5680t常用命令详解
  9. 在CSDN的第0篇博客
  10. MATLAB程序(入门)