# mooc_learning_platform **Repository Path**: culture36/mooc_learning_platform ## Basic Information - **Project Name**: mooc_learning_platform - **Description**: 仿慕课在线教育平台 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 27 - **Forks**: 2 - **Created**: 2021-02-14 - **Last Updated**: 2025-12-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## [Mooc项目简介]() Mooc是一个在线教育系统,分为前台网站系统和后台运营平台,B2C模式。 前台用户系统包括课程、讲师、问答、文章几大大部分,使用了微服务技术架构,前后端分离开发。 前台用户系统包括:首页、课程、名师、问答、文章。 后台管理系统包括:讲师管理、课程分类管理、课程管理、统计分析、Banner管理、权限管理等功能。 ## [Mooc中使用的技术]() > mooc采用现阶主流技术实现,涵盖了一般项目中几乎所有使用的技术。 > > 后端的主要技术架构是:SpringBoot + SpringCloud + MyBatis-Plus + MySQL + Maven+EasyExcel+ > > 前端的架构是:Node.js + Vue.js +element-ui+NUXT+ECharts > > 其他涉及到的中间件包括Redis、阿里云OSS、阿里云视频点播 > > 业务中使用了ECharts做图表展示,使用EasyExcel完成分类批量添加、注册分布式单点登录使用了JWT | 技术 | 版本 | 说明 | | --------------- | ------ | ------------------ | | Spring Boot | 2.2.1 | 容器+MVC框架 | | Spring Security | 5.1.4 | 认证和授权框架 | | MyBatis Plus | 3.0.5 | ORM框架 | | Swagger | 2.7.0 | 文档生产工具 | | SpringCloud | 2.2.X | 微服务框架 | | - Nacos | | 服务发现和配置中心 | | - Fegin | | 服务调用 | | - Hystrix | | 熔断器 | | - GateWay | | 服务网关 | | Redis | 5.0 | 缓存 | | JWT | 0.7.0 | JWT登录支持 | | OSS | 3.1.0 | 对象存储 | | Lombok | 1.18.6 | 简化对象封装工具 | ## [Mooc实现的功能概览]() - 登录模块(SpringSecurity框架) - 权限管理模块 - 菜单管理:列表、添加、修改、删除 - 角色管理:列表、添加、修改、批量删除、为角色分配菜单 - 用户管理:列表、添加、修改、批量删除、为角色分配菜单 - 讲师管理模块:条件查询分页列表、添加、修改、删除 - 课程分类模块 - 添加课程分类:读取Excel里面课程分类数据,添加到数据库中 - 课程分类列表:使用树形结构显示课程分类列表 - 课程管理模块 - 课程列表 - 添加课程 - 在课程中添加小节上传课程视频 - 统计分析模块 - 生成统计数据 - 统计数据图表并显示 - 前台用户模块 - 首页数据显示 - 显示幻灯片功能 - 显示热门课程 - 显示热门名师 - 注册和登录功能 - 课程相关功能 - 条件查询分页课程列表 - 课程信息显示(包含课程基本信息、分类、讲师和课程大纲) - 课程视频的在线播放 ## [Mooc数据库表概览]() ![image-20210214184122799](https://probe-oss.oss-cn-beijing.aliyuncs.com/typora-user-images/image-20210214184122799.png) ## [效果图]()
## [项目启动]() 1. 在本地启动`redis`服务 > - 打开一个 **cmd** 窗口 使用 cd 命令切换目录到 **C:\redis** 运行: > > ```java > redis-server.exe redis.windows.conf > ``` > > ![image-20210414104050086](https://probe-oss.oss-cn-beijing.aliyuncs.com/typora-user-images/image-20210414104050086.png) 2. 启动nacos用于服务注册与发现 > 在本机中nacos下bin目录中使用`startup.cmd -m standalone`命令启动nacos > > ![image-20210414104147855](https://probe-oss.oss-cn-beijing.aliyuncs.com/typora-user-images/image-20210414104147855.png) > > 在本地打开nacos的:http://localhost:8848/nacos,登录成功后点击配置管理-》配置列表中 > > ![image-20210427100950916](https://probe-oss.oss-cn-beijing.aliyuncs.com/typora-user-images/image-20210427100950916.png) > > 点击右上角的“+”号来 添加相关配置 > > 1. `aliyun.properties`:用于配置阿里云中的OSS存储、视频上传和短信发送的配置 > > ![image-20210427101549646](https://probe-oss.oss-cn-beijing.aliyuncs.com/typora-user-images/image-20210427101549646.png) > > ``` > #阿里云 OSS > #不同的服务器,地址不同 > aliyun.oss.file.endpoint=oss-cn-beijing.aliyuncs.com > aliyun.oss.file.keyid= > aliyun.oss.file.keysecret= > #bucket可以在控制台创建,也可以使用java代码创建 > aliyun.oss.file.bucketname=probe-oss > > aliyun.vod.file.keyid= > aliyun.vod.file.keysecret= > > aliyun.oss.dir-headImg-prefix=probe/personinfo/ > aliyun.oss.dir-topic-prefix=probe/topic-content-image/ > aliyun.oss.dir-video-prefix=probe/video/ > ``` > > 2. `jackon.properties`:序列化和反序列化 > > ![image-20210427101749262](https://probe-oss.oss-cn-beijing.aliyuncs.com/typora-user-images/image-20210427101749262.png) > > ``` > spring.jackson.date-format=yyyy-MM-dd HH:mm:ss > spring.jackson.time-zone=GMT+8 > ``` > > 3. `guli-database.properties`:数据库的相关配置 > > ![image-20210427102008577](https://probe-oss.oss-cn-beijing.aliyuncs.com/typora-user-images/image-20210427102008577.png) > > ``` > spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver > spring.datasource.url=jdbc:mysql://mooc?serverTimezone=GMT%2B8 > spring.datasource.username= > spring.datasource.password= > ``` > > 4. `guli-redis.properties`:Redis的相关配置 > > ![image-20210427102123645](https://probe-oss.oss-cn-beijing.aliyuncs.com/typora-user-images/image-20210427102123645.png) > > ``` > spring.redis.host= > spring.redis.port=6379 > spring.redis.database= 1 > spring.redis.timeout=1800000 > spring.redis.password= > > spring.redis.lettuce.pool.max-active=20 > spring.redis.lettuce.pool.max-wait=-1 > #最大阻塞等待时间(负数表示没限制) > spring.redis.lettuce.pool.max-idle=5 > spring.redis.lettuce.pool.min-idle=0 > ``` > > > > 3. 在idea中启动相关的微服务程序 > ![image-20210414104443174](https://probe-oss.oss-cn-beijing.aliyuncs.com/typora-user-images/image-20210414104443174.png) 4. 在visual studio code分别启动前台和后台界面 > - 启动后台管理界面,使用命令`npm run dev` > > ![image-20210414105029759](https://probe-oss.oss-cn-beijing.aliyuncs.com/typora-user-images/image-20210414105029759.png) > > - 启动前台界面,使用命令`npm run dev` > > ![image-20210414105204271](https://probe-oss.oss-cn-beijing.aliyuncs.com/typora-user-images/image-20210414105204271.png) > > ![image-20210414104758581](https://probe-oss.oss-cn-beijing.aliyuncs.com/typora-user-images/image-20210414104758581.png) ## [项目启动中注意的问题]() 由于项目中相关配置信息都是写在nacos的配置列表中的,因此如果自己配置信息的内容跟我本地上nacos配置信息不一样可能会出现无法注入bean的情况