# EduGo **Repository Path**: wmsydc/edugo ## Basic Information - **Project Name**: EduGo - **Description**: 本项目是一个典型的 B2B2C 在线教学管理平台,面向教学机构、平台运营方与 C 端用户三类角色,提供课程内容上传、审核发布、课程购买、播放学习、权限控制等完整教学服务链路。项目采用 Spring Cloud 微服务架构,具备模块解耦、高并发处理、高可用存储与灵活权限体系等特性。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-03-01 - **Last Updated**: 2025-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EduGo 在线教育平台 一个企业级的 B2B2C 在线教育平台系统,支持 C 端学员学习课程、B 端教学机构上传与管理教学资源、平台方统一审核与监管,系统覆盖内容管理、课程发布、用户认证、订单支付、媒资管理、搜索服务等完整教学流程,采用微服务架构与主流中间件构建,支持高并发访问与分布式部署。 ## 项目地址(Gitee) > https://gitee.com/wmsydc/edugo.git ## 项目结构 ```plaintext edugo-project ├── edugo-auth # 统一认证中心(OAuth2 + JWT + 策略模式) ├── edugo-base # 公共工具类、通用配置封装 ├── edugo-checkcode # 验证码服务 ├── edugo-content # 课程内容管理(API / Service / Model) ├── edugo-gateway # Spring Cloud Gateway 网关服务 ├── edugo-generator # MyBatis-Plus 代码生成器 ├── edugo-learning # 学习过程模块(接口 / 实体 / 服务) ├── edugo-media # 媒资文件上传与管理(MinIO 分块上传、断点续传) ├── edugo-message-sdk # 消息队列封装(RabbitMQ) ├── edugo-orders # 订单与支付模块 ├── edugo-parent # 父工程,统一依赖管理 ├── edugo-search # 搜索服务(Elasticsearch 检索课程) ├── edugo-system # 平台管理模块(机构、用户、分类等) └── .gitignore ``` ## 技术栈 | 分类 | 技术/框架 | |--------------|----------------------------| | 开发框架 | Spring Boot、Spring Cloud、Spring Security、OAuth2 | | 数据访问 | MyBatis-Plus、Druid、MySQL | | 注册配置中心 | Nacos | | 网关路由 | Spring Cloud Gateway | | 缓存 | Redis、布隆过滤器、分布式锁 | | 消息队列 | RabbitMQ | | 存储服务 | MinIO(支持大文件分块上传) | | 搜索引擎 | Elasticsearch | | 页面模板 | Freemarker | | 分布式任务调度 | XXL-JOB | | 微服务调用 | OpenFeign | | 容器部署 | Docker、Docker Compose | ## 核心功能亮点 ### 媒资文件管理与大文件上传优化 - 实现 **分块上传 + 断点续传 + 秒传校验(MD5)** - 支持单文件 2GB+ 上传,恢复成功率 100% - 文件统一存储于 MinIO,并与课程内容自动绑定 ### 课程发布流程自动化 - 使用 **XXL-JOB 定时调度** 触发课程发布流程 - 利用 Freemarker 静态化课程详情,上传至 MinIO - 通过 Feign 调用索引服务将课程信息写入 Elasticsearch - 平均发布链路耗时 1~2s,搜索响应时间 < 50ms ### 自研认证授权中心(SSO) - 支持多角色登录(平台方 / 教学机构 / 学员) - 基于 JWT + OAuth2 实现单点登录(SSO) - 认证逻辑通过策略模式动态路由,可灵活扩展第三方登录方式 ### 高并发缓存优化 - 使用 Redis 缓存热点数据,布隆过滤器防止缓存穿透 - 引入分布式锁与逻辑过期机制解决缓存击穿与雪崩 - 缓存命中率 95%+,接口响应时间降低至 <80ms,支持日请求 5w+ ### 完整订单支付模块 - 支持课程订单创建、支付状态回调、课程访问授权 - 支持微信支付对接流程(可拓展其他支付渠道) ## 快速启动(本地开发) ```bash # 前置服务需本地安装: - MySQL 8+ - Redis - Nacos - Elasticsearch + Kibana - MinIO - RabbitMQ - Docker / Docker Compose(推荐一键部署中间件) ``` 1. 克隆项目 ```bash git clone https://gitee.com/wmsydc/edugo.git ``` 2. 导入数据库脚本(详见 `/sql/` 文件夹) 3. 修改配置文件(application.yml / nacos 配置) 4. 启动 Nacos,确保服务注册成功 5. 启动 `edugo-gateway` 网关模块入口访问 ## License 本项目仅供学习与交流使用,如需商用请联系原作者授权。