# 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数据库表概览]()

## [效果图]()
## [项目启动]()
1. 在本地启动`redis`服务
> - 打开一个 **cmd** 窗口 使用 cd 命令切换目录到 **C:\redis** 运行:
>
> ```java
> redis-server.exe redis.windows.conf
> ```
>
> 
2. 启动nacos用于服务注册与发现
> 在本机中nacos下bin目录中使用`startup.cmd -m standalone`命令启动nacos
>
> 
>
> 在本地打开nacos的:http://localhost:8848/nacos,登录成功后点击配置管理-》配置列表中
>
> 
>
> 点击右上角的“+”号来 添加相关配置
>
> 1. `aliyun.properties`:用于配置阿里云中的OSS存储、视频上传和短信发送的配置
>
> 
>
> ```
> #阿里云 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`:序列化和反序列化
>
> 
>
> ```
> spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
> spring.jackson.time-zone=GMT+8
> ```
>
> 3. `guli-database.properties`:数据库的相关配置
>
> 
>
> ```
> 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的相关配置
>
> 
>
> ```
> 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中启动相关的微服务程序
> 
4. 在visual studio code分别启动前台和后台界面
> - 启动后台管理界面,使用命令`npm run dev`
>
> 
>
> - 启动前台界面,使用命令`npm run dev`
>
> 
>
> 
## [项目启动中注意的问题]()
由于项目中相关配置信息都是写在nacos的配置列表中的,因此如果自己配置信息的内容跟我本地上nacos配置信息不一样可能会出现无法注入bean的情况