Skip to content

Repository files navigation

🎓 知学汇 — 在线智慧教育平台

基于 Spring Cloud Alibaba 构建的在线教育微服务平台,覆盖课程、学习、考试、交易、支付、搜索与运营管理等核心业务,并提供 AI 课程推荐和管理助手能力。

Java Spring Boot Spring Cloud Nacos MySQL Redis Elasticsearch RabbitMQ


📖 项目简介

知学汇是一个面向在线教育场景的 Java 微服务项目。平台围绕“用户选课—购买支付—课程学习—互动答疑—考试测评—数据运营”的业务链路进行拆分,通过 API 网关统一接入,使用 Nacos 完成服务注册与配置管理,并通过 OpenFeign 实现服务间调用。

项目同时包含独立的 ai-agent 服务:根据用户的学习历史、兴趣标签和学习目标生成课程推荐,也可结合平台数据回答管理端问题。目前 AI 对话通过兼容 OpenAI Chat Completions 格式的接口调用千问模型。

适用场景

  • 在线教育平台:课程发布、课程搜索、选课购买、视频学习与学习进度管理。
  • 教学互动与测评:问答互动、点赞统计、题库管理与考试测评。
  • 平台运营管理:用户、课程、订单、优惠券、消息和运营数据管理。
  • 微服务学习与实践:覆盖注册配置中心、网关鉴权、服务调用、消息队列、分布式事务与任务调度等常见技术点。

一句话总结:这是一个覆盖在线教育核心业务链路,并加入 AI 推荐能力的 Spring Cloud 微服务项目。


🏗️ 系统架构

flowchart TB
    Client["Web / Mobile 客户端"] -->|HTTP · JWT| Gateway["tj-gateway<br/>统一入口 · 路由 · 鉴权"]

    Gateway --> Auth["tj-auth<br/>认证与 RBAC"]
    Gateway --> User["tj-user<br/>用户与学员"]
    Gateway --> Course["tj-course<br/>课程与目录"]
    Gateway --> Learning["tj-learning<br/>学习记录与互动"]
    Gateway --> Exam["tj-exam<br/>题库与考试"]
    Gateway --> Trade["tj-trade<br/>订单与优惠券"]
    Gateway --> Pay["tj-pay<br/>支付与退款"]
    Gateway --> Search["tj-search<br/>课程搜索与推荐"]
    Gateway --> Media["tj-media<br/>文件与视频"]
    Gateway --> Message["tj-message<br/>站内信与短信"]
    Gateway --> Data["tj-data<br/>运营数据与报表"]
    Gateway --> AI["ai-agent<br/>课程推荐 · 管理助手"]

    Services["业务微服务集群"] --> Nacos["Nacos<br/>注册中心 · 配置中心"]
    Services --> MySQL["MySQL<br/>业务数据"]
    Services --> Redis["Redis<br/>缓存"]
    Services --> MQ["RabbitMQ<br/>异步消息"]
    Search --> ES["Elasticsearch<br/>课程检索"]
    Media --> ObjectStorage["阿里云 OSS / 腾讯云 COS<br/>对象存储"]

    Auth & User & Course & Learning & Exam & Trade & Pay & Search & Media & Message & Data & AI --> Services
Loading

核心业务链路

flowchart LR
    A["用户注册 / 登录"] --> B["浏览与搜索课程"]
    B --> C["加入购物车 / 下单"]
    C --> D["支付"]
    D --> E["课程学习"]
    E --> F["进度记录 / 互动问答"]
    E --> G["考试测评"]
    F --> H["积分与排行榜"]
    G --> H
Loading

✨ 核心亮点

亮点一:按业务域拆分的微服务架构

平台按认证、用户、课程、学习、考试、交易、支付、搜索、媒体、消息和数据等业务域拆分服务。公共能力沉淀在 tj-common,服务间接口与 DTO 统一维护在 tj-api,降低跨服务调用的重复开发成本。

亮点二:完整的在线教育业务闭环

  • 用户注册登录与 RBAC 权限管理
  • 课程分类、目录、发布与上下架管理
  • 课程搜索、购买、支付与退款
  • 学习计划、学习进度与学习记录
  • 互动问答、点赞与积分排行榜
  • 题库管理与考试测评
  • 消息通知、短信和运营数据统计

亮点三:AI 课程推荐与管理助手

ai-agent 根据学习历史、兴趣标签和学习目标构建提示词,调用大模型生成个性化课程建议;管理端可将平台数据与问题一并提交给 AI,生成运营分析结果。

flowchart LR
    Profile["学习历史 · 兴趣标签 · 学习目标"] --> Prompt["Prompt 模板"]
    Prompt --> LLM["千问 Chat Completions API"]
    LLM --> Result["个性化课程推荐"]

    Platform["平台数据 · 管理问题"] --> AdminPrompt["管理助手 Prompt"]
    AdminPrompt --> LLM
    LLM --> AdminResult["运营分析回答"]
Loading

相关代码:

亮点四:异步解耦与分布式能力

  • 使用 RabbitMQ 处理课程、订单等业务事件,降低服务间耦合。
  • 使用 Seata 管理跨服务事务。
  • 使用 XXL-Job 执行分布式定时任务。
  • 使用 Sentinel 提供流量控制与服务降级能力。
  • 使用 Redis、Redisson 支撑缓存及分布式场景。

亮点五:搜索、媒体与运营支撑

课程数据写入 Elasticsearch,为课程检索和兴趣推荐提供支持;媒体服务集成阿里云 OSS、腾讯云 COS/VOD;数据服务提供日报、周报及平台指标查询能力。


🛠️ 技术栈

核心框架

技术 版本 用途
Java 11 开发语言
Spring Boot 2.7.2 微服务基础框架
Spring Cloud 2021.0.3 微服务治理
Spring Cloud Alibaba 2021.0.1.0 Nacos、Sentinel 等组件集成
OpenFeign Spring Cloud 管理 服务间 HTTP 调用
MyBatis-Plus 3.4.3 ORM 与数据访问

数据与中间件

技术 版本 用途
MySQL 8.0.23 关系型业务数据存储
Redis / Redisson Redisson 3.13.6 缓存与分布式能力
Elasticsearch 7.12.1 课程搜索
RabbitMQ - 异步消息与业务解耦
Nacos - 服务注册与配置中心
Sentinel - 流量控制与熔断降级
Seata 1.5.1 分布式事务
XXL-Job 2.3.1 分布式任务调度

工程与第三方服务

技术 版本 用途
Maven 3.6+ 多模块构建与依赖管理
Knife4j / Swagger 3.0.3 API 文档
Hutool 5.7.17 Java 工具库
Lombok 1.18.20 简化样板代码
阿里云 OSS SDK 3.10.2 对象存储
腾讯云 COS / VOD SDK 5.6.89 / 2.1.5 文件与视频服务

📦 服务模块

模块 职责
tj-gateway API 网关、请求路由与统一鉴权
tj-auth 登录认证、JWT、角色与权限管理
tj-user 用户、学员、教师与员工管理
tj-course 课程、分类、目录与课程发布
tj-learning 学习计划、进度、记录、问答与积分
tj-exam 题库与考试业务
tj-trade 购物车、订单、优惠券与退款申请
tj-pay 支付渠道、支付订单与退款
tj-search Elasticsearch 课程搜索与兴趣推荐
tj-media 文件上传、对象存储与视频服务
tj-message 消息模板、通知任务、站内信与短信
tj-data 平台指标、日报与周报
tj-remark 点赞记录与点赞数同步
ai-agent AI 课程推荐、管理助手与用户画像
tj-api Feign Client、公共 DTO 与服务接口
tj-common 通用配置、工具类、异常与基础组件

🚀 快速开始

环境要求

  • JDK 11+
  • Maven 3.6+
  • MySQL 8.0+
  • Redis
  • Nacos
  • RabbitMQ
  • Elasticsearch 7.12.1

不同服务依赖的基础设施与第三方服务并不完全相同。启动前请根据目标模块检查其 bootstrap-local.ymlbootstrap-example.yml 配置。

1. 克隆项目

git clone https://github.com/EvanYao826/zhixuehui-platform.git
cd zhixuehui-platform

2. 配置服务

项目各服务的配置位于对应模块的 src/main/resources/ 目录。请按实际环境配置:

  • Nacos 地址与命名空间
  • MySQL 数据源
  • Redis、RabbitMQ、Elasticsearch
  • OSS / COS / VOD 等第三方服务密钥(仅在使用对应能力时需要)
  • ai-agent 的模型 API Key 与 Base URL(仅在使用 AI 能力时需要)

建议不要将真实密钥提交到仓库。

3. 编译项目

mvn clean package -DskipTests

4. 启动服务

  1. 启动 MySQL、Redis、Nacos、RabbitMQ、Elasticsearch 等基础设施。
  2. 在 Nacos 中准备各服务所需配置。
  3. 按需启动业务服务。
  4. 最后启动 tj-gateway,通过网关统一访问服务。

单个模块可通过 Maven 启动,例如:

mvn -pl tj-gateway -am spring-boot:run

启动其他服务时,将 tj-gateway 替换为对应模块名即可;包含子模块的服务请指定实际应用模块。


📝 简历写法参考

以下内容可按实际参与程度选用,面试时应结合对应代码说明实现细节。

1. 参与在线教育微服务平台设计与开发,基于 Spring Boot、Spring Cloud 与 Spring Cloud Alibaba 按业务域拆分认证、用户、课程、学习、考试、交易、支付、搜索、媒体等服务,通过 Nacos 实现服务注册与配置管理,并使用 OpenFeign 完成服务间调用。

2. 实现课程交易与学习业务闭环,覆盖课程检索、购物车、下单支付、课程学习、进度记录、互动问答和考试测评等流程,并通过 RabbitMQ 对课程及订单事件进行异步解耦。

3. 构建课程搜索与推荐能力,使用 Elasticsearch 维护课程索引并支持课程检索,结合用户兴趣数据提供推荐接口;通过 Redis 缓存热点数据,提升高频查询性能。

4. 开发 AI 课程推荐与管理助手服务,根据学习历史、兴趣标签和学习目标生成提示词并调用大模型,为学生提供课程建议;结合平台数据与管理问题生成运营分析回答。

5. 完善平台通用基础设施,实现 JWT 登录鉴权与 RBAC 权限控制,集成 Seata 分布式事务、XXL-Job 任务调度、Sentinel 流量治理以及 OSS/COS 对象存储能力。


⚠️ 当前实现说明

  • ai-agent 的课程推荐与管理助手已实现模型 API 调用;向量相似度搜索接口目前返回占位结果,尚未接入向量数据库。
  • 报表模块已提供日报、周报接口及缓存逻辑,部分报表数据生成逻辑仍为示例实现。
  • 仓库当前为后端多模块工程,不包含 Web 或移动端前端源码。
  • 本地运行需要自行准备基础设施、数据库数据和各服务配置。

🤝 贡献与反馈

欢迎通过 Issues 反馈问题或提出建议,也欢迎提交 Pull Request 参与改进。

About

知学汇项目是一款大型在线学习网站,基于 **SpringCloud Alibaba** 微服务技术栈,集成在线教育、社交、电商等服务。引入 **Spring AI 框架**构建智能 **Agent** 服务,为学生端提供个性化课程推荐,为管理端提供自动化运营助手(周报/月报生成、数据查询)。学生端核心业务包括视频点播、积分排行、互动问答、课程购买等;管理端核心业务包括用户管理、课程管理、优惠券管理等。

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages