Goxue Engine
一个面向儿童的互动式教育平台,支持富文本内容发布、Canvas 动画展示、Mermaid 思维导图,以及完善的内容管理系统。
✨ 核心特性
📝 内容创作与展示
- Markdown 编辑器: 基于
v-md-editor的强大文本编辑功能 - Canvas 动画: 支持自定义 JavaScript 动画代码,实现交互式问题解析
- 重播动画功能
- 全屏播放支持
- 响应式画布尺寸适配
- Mermaid 思维导图: 支持多种图表类型
- 思维导图 (mindmap)
- 流程图 (flowchart)
- 时序图 (sequence diagram)
- 甘特图 (gantt)
- 以及更多…
🎨 交互式图表控制
- 缩放功能: 放大/缩小思维导图
- 拖拽平移: 自由拖动查看大型图表
- 旋转视图: 支持 ±90° 旋转查看
- 重置视图: 一键恢复默认视图
- 全屏模式: 沉浸式查看体验
👤 用户系统
- 微信一键登录: 集成微信授权
- 角色权限管理: User / Admin 双角色体系
- 个人中心: 用户信息管理
🛡️ 内容管理
- 审核流程: 管理员审核机制
- 分类管理: 内容分类与组织
- 公开访问: 支持未登录用户浏览文章详情页
🏗️ 技术架构
后端技术栈
- 语言: Go 1.21+
- 框架: Beego v2
- 数据库: MySQL
- 配置:
.env环境变量管理 - 架构: 模块化分层架构 (RESTful API)
前端技术栈
- 框架: Vue 3 + TypeScript
- UI 库: Element Plus
- 构建工具: Vite
- 状态管理: Pinia
- 编辑器:
@kangc/v-md-editor(Markdown)mermaid(图表渲染)
- 可视化增强:
svg-pan-zoom(SVG 交互控制)- Canvas API (动画渲染)
移动端 (可选)
- 框架: unibest (uni-app + Vue 3)
- 多端支持: 可编译为 H5 或微信小程序
📁 项目结构
Goxue_Engine/
├── backend/ # Go + Beego v2 后端
│ ├── conf/ # 应用配置
│ ├── modules/ # 业务模块
│ │ ├── user/ # 用户模块
│ │ ├── content/ # 内容模块
│ │ └── common/ # 公共模块
│ ├── routers/ # API 路由
│ ├── static/ # 静态资源
│ │ └── admin/ # 前端构建产物
│ ├── main.go
│ └── .env # 环境配置
├── frontend/ # Vue 3 + Element Plus 管理后台
│ ├── src/
│ │ ├── api/ # API 接口
│ │ ├── views/ # 页面组件
│ │ ├── plugins/ # 插件配置 (v-md-editor)
│ │ └── types/ # TypeScript 类型定义
│ ├── vite.config.ts
│ └── package.json
└── mobile/ # uni-app 移动端 (可选)
├── src/
└── package.json
🚀 快速开始
环境要求
- Go 1.24+
- Node.js 16+
- MySQL 8.0+
后端启动
- 配置环境变量
cd backend
# 直接编辑现有的 .env 文件
# 配置数据库连接等信息
- 安装依赖
go mod tidy
- 初始化数据库
# 执行 SQL 初始化脚不需要安装
# mysql -u root -p goxue_db < init.sql
- 编译二进制包
# 编译当前平台
# go build -o backend main.go
# 编译 Linux 平台
# GOOS=linux GOARCH=amd64 go build -o backend main.go
# 编译 Windows 平台
# GOOS=windows GOARCH=amd64 go build -o backend.exe main.go
# 编译 macOS 平台
GOOS=darwin GOARCH=amd64 go build -o backend main.go
- 启动服务
# 方式一:直接运行编译好的二进制文件
./backend
# 方式二:使用 go run 直接运行
# go run main.go
后端服务默认运行在 http://localhost:8080
前端启动
- 安装依赖
cd frontend
npm install
- 配置 API 地址
# 编辑 .env 或 vite.config.ts 中的 API 代理配置
- 开发模式
npm run dev
# 访问 http://localhost:5173
- 生产构建
npm run build
# 产物输出到 ../backend/static/admin
📖 API 文档
认证相关
POST /api/v1/auth/wechat-login- 微信登录
内容管理
GET /api/v1/content- 获取已审核内容列表(公开)GET /api/v1/content/:id- 获取内容详情(支持未登录访问)POST /api/v1/content- 创建内容(需登录)PUT /api/v1/content/:id- 更新内容(需登录)DELETE /api/v1/content/:id- 删除内容(需登录)
分类管理
GET /api/v1/category- 获取分类列表POST /api/v1/category- 创建分类(管理员)PUT /api/v1/category/:id- 更新分类(管理员)DELETE /api/v1/category/:id- 删除分类(管理员)
管理员功能
GET /api/v1/admin/content/pending- 待审核内容列表PUT /api/v1/admin/content/:id/audit- 审核内容GET /api/v1/admin/users- 用户管理
🎯 核心功能演示
Canvas 动画示例
文章详情页支持嵌入自定义 Canvas 动画,通过 JavaScript 代码实现交互式教学:
// Canvas 动画代码示例
const width = canvas.width;
const height = canvas.height;
// 绘制动画逻辑
function animate() {
ctx.clearRect(0, 0, width, height);
// 你的动画代码
requestAnimationFrame(animate);
}
animate();
Mermaid 思维导图示例
在 Markdown 内容中使用 Mermaid 语法:
# 文章标题
这是正文内容...
```mermaid
mindmap
root((学习计划))
数学
加法
减法
语文
阅读
写作
```
🔧 配置说明
后端配置 (.env)
APP_NAME=GoxueEngine
HTTP_PORT=8080
RUN_MODE=dev
# 数据库配置
DB_DRIVER=mysql
DB_USER=goxue_db
DB_PASSWORD=G3k2n5KYwLaYX3kM
DB_HOST=192.168.1.116
DB_PORT=3306
DB_NAME=goxue_db
DB_CHARSET=utf8
DB_LOC=Local
# 微信配置
WECHAT_APP_ID=your_app_id
WECHAT_SECRET=your_secret
前端配置 (.env)
VITE_API_BASE_URL=http://localhost:8080
VITE_APP_TITLE=Goxue Engine 管理后台
🤝 贡献指南
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
📝 开发路线图
- 基础架构搭建
- 用户认证系统
- 内容管理系统
- Markdown 编辑器集成
- Canvas 动画支持
- Mermaid 图表支持
- 思维导图交互控制(缩放、拖拽、旋转)
- 文章详情页公开访问
- 响应式设计优化
- 需求反馈系统
- 移动端 H5/小程序
- 评分系统
- 搜索功能
- 内容推荐算法
📄 许可证
本项目采用 Apache 许可证 - 详见 LICENSE 文件
👨💻 作者
Zhang Erhao
⭐ 如果这个项目对你有帮助,请给我们一个 Star!