# edu-plat **Repository Path**: eluup/edu-plat ## Basic Information - **Project Name**: edu-plat - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-04 - **Last Updated**: 2025-09-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 家教平台微服务系统 (EDT Platform) [![Go Version](https://img.shields.io/badge/Go-1.23.0+-blue.svg)](https://golang.org) [![Vue Version](https://img.shields.io/badge/Vue-3.3.8+-green.svg)](https://vuejs.org) [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) ## 📖 项目简介 家教平台微服务系统是一个基于Go语言和Vue.js构建的现代化教育服务平台,采用微服务架构设计,提供完整的家教服务解决方案。平台支持学生和教师的匹配、课程管理、在线支付、即时通讯等核心功能。 ### 🌐 在线演示平台 **演示地址**: [https://edu.eluup.com](https://edu.eluup.com) 您可以直接访问演示平台体验完整的家教服务功能。 ## 🏗️ 系统架构 ### 整体架构图 ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 前端应用层 │ │ API网关层 │ │ 微服务层 │ │ │ │ │ │ │ │ Vue 3 + TS │◄──►│ Gateway Service │◄──►│ User Service │ │ Element Plus │ │ │ │ Course Service │ │ Vite + Pinia │ │ │ │ Order Service │ └─────────────────┘ └─────────────────┘ │ Payment Service │ │ Auth Service │ │ Message Service │ │ File Service │ └─────────────────┘ │ ┌─────────────────┐ │ 数据存储层 │ │ │ │ MySQL + Redis │ │ MinIO (文件) │ └─────────────────┘ ``` ### 微服务架构特点 - **服务解耦**: 每个微服务独立部署,职责单一 - **技术栈统一**: 后端统一使用Go语言,前端统一使用Vue 3 - **数据库分离**: 每个服务拥有独立的数据库,避免跨服务查询 - **API网关**: 统一入口,负责路由、认证、限流等 - **容器化部署**: 支持Docker和Kubernetes部署 ## 🚀 技术栈 ### 后端技术栈 - **语言**: Go 1.23.0+ - **Web框架**: Gin (HTTP服务) + gRPC (微服务通信) - **数据库**: MySQL 8.0+ (主数据库) + Redis (缓存) - **ORM**: GORM v2 - **认证**: JWT + 自定义认证中间件 - **配置管理**: Viper - **日志**: 结构化日志 + 分布式追踪 - **测试**: Testify + Go标准测试库 ### 前端技术栈 - **框架**: Vue 3.3.8+ + TypeScript - **UI组件库**: Element Plus 2.4.4+ - **构建工具**: Vite 5.0+ - **状态管理**: Pinia 2.1.7+ - **路由**: Vue Router 4.2.5+ - **HTTP客户端**: Axios 1.6.2+ - **图表**: ECharts 5.4.3+ - **样式**: SCSS + CSS变量 - **测试**: Vitest + Cypress ### 基础设施 - **数据库**: MySQL 8.0+ - **缓存**: Redis 6.0+ - **文件存储**: MinIO (兼容S3) - **消息队列**: RabbitMQ (计划中) - **监控**: Prometheus + Grafana (计划中) - **容器化**: Docker + Kubernetes (计划中) ## 🏢 微服务组成 ### 核心业务服务 | 服务名称 | 端口 | 职责 | 状态 | |---------|------|------|------| | **user-service** | 8081 | 用户管理、教师认证 | ✅ 已完成 | | **auth-service** | 8082 | 身份认证、JWT管理 | ✅ 已完成 | | **course-service** | 8083 | 课程管理、分类 | ✅ 已完成 | | **order-service** | 8084 | 订单管理、退款 | ✅ 已完成 | | **payment-service** | 8085 | 支付处理、财务 | ✅ 已完成 | | **message-service** | 8086 | 即时通讯、通知 | ✅ 已完成 | | **file-service** | 8087 | 文件上传、存储 | ✅ 已完成 | ### 辅助功能服务 | 服务名称 | 端口 | 职责 | 状态 | |---------|------|------|------| | **collect-service** | 8088 | 收藏、点赞功能 | ✅ 已完成 | | **comment-service** | 8089 | 评论、评价系统 | ✅ 已完成 | | **like-service** | 8090 | 点赞、收藏管理 | ✅ 已完成 | | **news-service** | 8091 | 新闻、公告管理 | ✅ 已完成 | | **notice-service** | 8092 | 通知、提醒服务 | ✅ 已完成 | | **relation-service** | 8093 | 关注、黑名单 | ✅ 已完成 | | **reminder-service** | 8094 | 提醒、日程管理 | ✅ 已完成 | | **task-service** | 8095 | 任务、作业管理 | ✅ 已完成 | ### 基础设施服务 | 服务名称 | 端口 | 职责 | 状态 | |---------|------|------|------| | **gateway-service** | 8096 | API网关、路由 | ✅ 已完成 | | **trace-service** | 8097 | 分布式追踪 | ✅ 已完成 | ## 📁 项目结构 ``` service-edt-plat/ ├── 📁 services/ # 微服务目录 │ ├── 📁 user-service/ # 用户服务 │ ├── 📁 auth-service/ # 认证服务 │ ├── 📁 course-service/ # 课程服务 │ ├── 📁 order-service/ # 订单服务 │ ├── 📁 payment-service/ # 支付服务 │ ├── 📁 message-service/ # 消息服务 │ ├── 📁 file-service/ # 文件服务 │ ├── 📁 gateway-service/ # 网关服务 │ └── ... # 其他微服务 ├── 📁 frontend/ # 主前端应用 │ ├── 📁 src/ │ │ ├── 📁 components/ # 通用组件 │ │ ├── 📁 views/ # 页面组件 │ │ ├── 📁 api/ # API接口 │ │ ├── 📁 store/ # 状态管理 │ │ └── 📁 router/ # 路由配置 │ └── package.json ├── 📁 frontend-trace/ # 追踪服务前端 ├── 📁 configs/ # 配置文件 ├── 📁 migrations/ # 数据库迁移文件 ├── 📁 docs/ # 项目文档 ├── 📁 scripts/ # 部署脚本 ├── 📁 tools/ # 开发工具 ├── 📁 bin/ # 编译后的二进制文件 ├── 📁 logs/ # 日志文件 ├── go.work # Go工作区配置 └── README.md # 项目说明文档 ``` ## 🚀 快速开始 ### 环境要求 - **Go**: 1.23.0+ - **Node.js**: 16.0.0+ - **MySQL**: 8.0+ - **Redis**: 6.0+ - **Git**: 最新版本 ### 1. 克隆项目 ```bash git clone https://github.com/your-org/service-edt-plat.git cd service-edt-plat ``` ### 2. 后端服务启动 ```bash # 安装Go依赖 go mod download # 启动所有微服务 ./scripts/build-all.sh # 或者单独启动某个服务 cd services/user-service go run main.go ``` ### 3. 前端应用启动 ```bash # 安装依赖 cd frontend npm install # 启动开发服务器 npm run dev ``` ### 4. 数据库初始化 ```bash # 创建数据库 mysql -u root -p -e "CREATE DATABASE edu_plat CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" # 运行迁移文件 cd migrations go run *.go ``` ## 🔧 配置说明 ### 数据库配置 配置文件位于 `configs/config.yaml`: ```yaml database: mysql: host: localhost port: 3306 username: root password: your-password database: edu_plat charset: utf8mb4 ``` ### 服务端口配置 每个微服务都有独立的配置文件,位于 `services/{service-name}/configs/` 目录下。 ## 📚 开发指南 ### 开发流程 1. **页面开发**: 在前端开发页面,使用模拟数据 2. **API开发**: 开发页面使用的API接口 3. **微服务开发**: 找到对应的微服务,开发真实API 4. **数据库修改**: 如涉及数据表字段修改,使用MCP服务修改数据表 ### 代码规范 - **Go代码**: 遵循Go官方代码规范 - **Vue代码**: 遵循Vue 3 Composition API最佳实践 - **数据库**: 避免使用嵌套查询,每个服务独立数据库 - **文档**: 所有修改记录保存在 `docs/` 目录下 ### 测试 ```bash # 后端测试 cd services/user-service go test ./... # 前端测试 cd frontend npm run test npm run test:coverage ``` ## 🚀 部署 ### Docker部署 ```bash # 构建镜像 docker build -t edt-platform . # 运行容器 docker run -d -p 8096:8096 edt-platform ``` ### 生产环境部署 ```bash # 使用部署脚本 ./scripts/deploy-beta.sh # 或者手动部署 ./tools/all-exec.sh ``` ## 📊 监控与日志 ### 日志管理 - 所有服务日志统一输出到 `logs/` 目录 - 支持结构化日志和分布式追踪 - 日志级别可配置 ### 性能监控 - 服务健康检查 - 数据库性能监控 - API响应时间统计 ## 🤝 贡献指南 1. Fork 项目 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开 Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 📞 联系我们 - **项目维护者**: EDT Platform Team - **邮箱**: support@edt-platform.com - **项目地址**: https://github.com/your-org/service-edt-plat ## 🙏 致谢 感谢所有为这个项目做出贡献的开发者和用户。 --- **注意**: 这是一个持续开发中的项目,某些功能可能仍在开发中。如有问题或建议,请提交 Issue 或联系开发团队。