# AI英语学习平台

一个基于AI技术的智能英语学习平台，提供个性化的英语学习体验，包括词汇学习、听力训练、阅读理解、写作练习和口语练习等功能。

## 🌟 特性

- **智能词汇学习**：基于艾宾浩斯遗忘曲线的智能复习系统
- **听力训练**：多样化的听力材料和智能评估
- **阅读理解**：分级阅读材料和理解测试
- **写作练习**：AI智能批改和写作建议
- **口语练习**：AI对话伙伴和发音评估
- **学习统计**：详细的学习进度和成绩分析
- **个性化推荐**：基于学习数据的智能内容推荐

## 🏗️ 技术架构

### 后端技术栈
- **语言**：Go 1.19+
- **框架**：Gin Web Framework
- **数据库**：MySQL 8.0+
- **缓存**：Redis 7.0+
- **认证**：JWT Token
- **日志**：Logrus
- **配置**：Viper
- **容器化**：Docker & Docker Compose

### 前端技术栈
- **框架**：Flutter
- **状态管理**：Provider/Riverpod
- **网络请求**：Dio
- **本地存储**：SharedPreferences/Hive

## 📁 项目结构

```
ai_english_learning/
├── client/                 # Flutter前端应用
│   ├── lib/
│   │   ├── models/        # 数据模型
│   │   ├── services/      # 业务服务
│   │   ├── screens/       # 页面组件
│   │   ├── widgets/       # 通用组件
│   │   └── utils/         # 工具类
│   └── pubspec.yaml
├── serve/                  # Go后端服务
│   ├── api/               # API处理器
│   ├── internal/          # 内部模块
│   │   ├── config/        # 配置管理
│   │   ├── database/      # 数据库操作
│   │   ├── logger/        # 日志系统
│   │   ├── middleware/    # 中间件
│   │   ├── models/        # 数据模型
│   │   └── services/      # 业务服务
│   ├── config/            # 配置文件
│   ├── logs/              # 日志文件
│   ├── main.go            # 应用入口
│   ├── router.go          # 路由配置
│   ├── Dockerfile         # Docker配置
│   ├── Makefile           # 构建脚本
│   └── start.sh           # 启动脚本
├── docs/                   # 项目文档
│   ├── API接口文档.md
│   ├── 需求文档.md
│   ├── 技术架构文档.md
│   └── database_schema.sql
├── docker-compose.yml      # Docker Compose配置
├── DEPLOYMENT.md           # 部署指南
└── README.md              # 项目说明
```

## 🚀 快速开始

### 环境要求

- Go 1.19+
- MySQL 8.0+
- Redis 7.0+
- Docker & Docker Compose (可选)
- Flutter 3.0+ (前端开发)

### 使用Docker Compose（推荐）

1. **克隆项目**
```bash
git clone <repository-url>
cd ai_english_learning
```

2. **启动所有服务**
```bash
docker-compose up -d
```

3. **查看服务状态**
```bash
docker-compose ps
```

4. **访问应用**
- 后端API：http://localhost:8080
- 健康检查：http://localhost:8080/health
- API文档：查看 `docs/API接口文档.md`

### 本地开发

#### 后端开发

1. **进入后端目录**
```bash
cd serve
```

2. **安装依赖**
```bash
go mod tidy
```

3. **配置数据库**
```bash
# 创建数据库
mysql -u root -p -e "CREATE DATABASE ai_english_learning CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"

# 导入数据库结构
mysql -u root -p ai_english_learning < ../docs/database_schema.sql
```

4. **配置应用**
```bash
# 复制配置文件
cp config/config.yaml config/config.local.yaml

# 编辑配置文件，修改数据库连接等信息
vim config/config.local.yaml
```

5. **启动应用**
```bash
# 使用启动脚本（推荐）
./start.sh -d

# 或者直接运行
go run .

# 或者使用Makefile
make dev
```

#### 前端开发

1. **进入前端目录**
```bash
cd client
```

2. **安装依赖**
```bash
flutter pub get
```

3. **运行应用**
```bash
flutter run
```
4. **使用安卓模拟器启动预览**
```
检查设备
$ flutter devices
软件加速模式启动模拟器
$ emulator -avd flutter_emulator -no-accel 
使用完整路径来启动模拟器
$ ANDROID_HOME/emulator/emulator -avd flutter_emulator -no-accel 

等待模拟器启动后，启动服务
$ flutter run -d emulator-5554 
flutter run -d chrome --web-port=3003
```
# 进入前端目录
cd /home/nanqipro01/gitlocal/YunQue-Tech-Projects/ai_english_learning/client

# 在模拟器上运行应用
flutter run -d emulator-5554

# 或者让Flutter自动选择设备
flutter run


## 📖 API文档

详细的API文档请查看：[API接口文档.md](docs/API接口文档.md)

### 主要API端点

- **认证相关**
  - `POST /api/auth/register` - 用户注册
  - `POST /api/auth/login` - 用户登录
  - `POST /api/auth/refresh` - 刷新Token

- **用户管理**
  - `GET /api/users/profile` - 获取用户信息
  - `PUT /api/users/profile` - 更新用户信息
  - `GET /api/users/stats` - 获取学习统计

- **词汇学习**
  - `GET /api/vocabulary/words` - 获取单词列表
  - `POST /api/vocabulary/learn` - 学习单词
  - `GET /api/vocabulary/review` - 获取复习单词

- **健康检查**
  - `GET /health` - 综合健康检查
  - `GET /health/liveness` - 存活检查
  - `GET /health/readiness` - 就绪检查
  - `GET /version` - 版本信息

## 🔧 配置说明

### 环境变量

```bash
# 服务器配置
SERVER_PORT=8080
SERVER_MODE=release

# 数据库配置
DATABASE_HOST=localhost
DATABASE_PORT=3306
DATABASE_USER=ai_english
DATABASE_PASSWORD=your_password
DATABASE_NAME=ai_english_learning

# Redis配置
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=

# JWT配置
JWT_SECRET=your-super-secret-jwt-key
JWT_ACCESS_TOKEN_TTL=3600
JWT_REFRESH_TOKEN_TTL=604800

# 应用配置
APP_ENVIRONMENT=production
LOG_LEVEL=info
```

### 配置文件

配置文件位于 `serve/config/config.yaml`，支持多环境配置。

## 🧪 测试

### 运行测试

```bash
# 后端测试
cd serve
make test

# 前端测试
cd client
flutter test
```

### 性能测试

```bash
cd serve
make bench
```

## 📦 部署

详细的部署指南请查看：[DEPLOYMENT.md](DEPLOYMENT.md)

### 生产环境部署

1. **构建Docker镜像**
```bash
make docker-build
```

2. **部署到生产环境**
```bash
docker-compose -f docker-compose.prod.yml up -d
```

3. **配置反向代理**
```nginx
server {
    listen 80;
    server_name your-domain.com;
    
    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
```

## 🔍 监控和维护

### 日志查看

```bash
# 查看应用日志
tail -f serve/logs/app.log

# Docker环境日志
docker-compose logs -f ai-english-backend
```

### 健康检查

```bash
# 检查服务状态
curl http://localhost:8080/health

# 检查版本信息
curl http://localhost:8080/version
```

### 数据库备份

```bash
# 备份数据库
mysqldump -u root -p ai_english_learning > backup_$(date +%Y%m%d_%H%M%S).sql

# 使用Makefile
make backup
```

## 🤝 贡献指南

1. Fork 项目
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 打开 Pull Request

### 代码规范

- **Go代码**：遵循 `gofmt` 和 `golint` 规范
- **Flutter代码**：遵循 Dart 官方代码规范
- **提交信息**：使用语义化提交信息

## 📄 许可证

本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。

## 📞 联系我们

- **项目维护者**：[Your Name]
- **邮箱**：[your.email@example.com]
- **问题反馈**：[GitHub Issues](https://github.com/your-username/ai-english-learning/issues)

## 🙏 致谢

感谢所有为这个项目做出贡献的开发者和用户。

---

**注意**：这是一个学习项目，仅供教育和研究目的使用。

## 核心特色

### 🤖 AI驱动的个性化学习
- 基于用户学习数据的智能推荐系统
- 自适应学习路径规划
- 个性化学习内容匹配
- 智能学习进度调整

### 📚 全技能覆盖
- **词汇学习**：科学记忆算法，多维度词汇训练
- **听力训练**：分级听力材料，智能语音识别
- **阅读理解**：多样化文章，智能阅读辅助
- **写作练习**：AI智能批改，实时反馈改进
- **口语练习**：AI对话伙伴，发音智能评估

### 🎯 考试导向支持
- 四六级英语考试专项训练
- 托福、雅思考试备考模块
- 考研英语专业辅导
- 商务英语实用技能

### 📊 数据驱动的学习分析
- 详细的学习数据统计
- 多维度能力分析报告
- 学习进度可视化展示
- 个性化改进建议

## 主要功能模块

### 1. 个人主页
- 学习数据概览（已学单词数、连续打卡天数、平均得分）
- 学习进度可视化（词库进度、技能雷达图）
- 今日学习推荐
- 个人信息管理

### 2. 单词学习模块
- **分级词库**：从小学到专业级别的完整词汇体系
- **智能记忆**：基于艾宾浩斯记忆曲线的复习算法
- **多模式学习**：卡片背诵、测试练习、语境学习
- **AI助手**：智能例句生成、词汇关联、记忆技巧

### 3. 听力训练模块
- **分级内容**：从日常对话到学术讲座的全覆盖
- **智能播放**：语速调节、重复播放、字幕控制
- **多样练习**：理解练习、听写练习、跟读练习
- **能力分析**：语音识别、语义理解、语速适应能力评估

### 4. 阅读理解模块
- **双模式阅读**：休闲阅读和练习阅读
- **智能辅助**：即点即译、段落摘要、结构分析
- **多样题型**：主旨大意、细节理解、推理判断
- **技能训练**：快速阅读、精读、扫读、略读

### 5. 写作练习模块
- **多种模式**：中译英练习、话题写作
- **考试专项**：四六级、考研、托福、雅思写作
- **AI智能批改**：语法检查、词汇评估、表达流畅度分析
- **写作辅助**：模板库、素材库、例句参考

### 6. 口语练习模块
- **AI对话伙伴**：商务、日常、旅行、学术等专业导师
- **场景训练**：生活、职场、学术等真实场景对话
- **智能评估**：发音准确度、流利度、语法正确性
- **个性化训练**：能力诊断、适应性训练

### 7. AI智能助手
- **个性化推荐**：学习内容和路径智能推荐
- **智能答疑**：语言问题解答、学习方法指导
- **学习分析**：行为分析、能力诊断
- **多模态交互**：文本、语音、视觉交互支持

## 技术架构

### 前端技术
- **Flutter**：跨平台移动应用开发
- 支持iOS、Android、Web、桌面多平台
- 响应式设计，优秀的用户体验

### 后端技术
- **Go Gin**：高性能API服务
- **微服务架构**：模块化、可扩展的系统设计
- **MySQL 8.0**：可靠的关系型数据库

### AI技术栈
- **Hugging Face Transformers**：自然语言处理
- **PyTorch**：深度学习框架
- **spaCy**：高级自然语言处理
- **语音识别与合成**：智能语音处理

### 部署与运维
- **Docker + Docker Compose**：容器化部署
- **GitHub Actions/Codemagic**：CI/CD自动化
- **Celery + RabbitMQ/Redis**：异步任务处理

## 项目结构

### 整体项目结构

```
ai_english_learning/
├── docs/                          # 项目文档
│   ├── UI界面设计/                 # UI设计文件
│   ├── 详细需求文档.md             # 功能需求文档
│   └── 技术选型.md                 # 技术架构文档
├── client/                        # 前端代码（Flutter）
├── serve/                         # 后端代码（Go）
├── deployment/                    # 部署配置
├── tests/                         # 测试代码
├── docker-compose.yml             # Docker编排文件
└── README.md                      # 项目说明文档
```

### 前端项目结构（Flutter）

```
client/
├── android/                       # Android平台配置
├── ios/                          # iOS平台配置
├── lib/                          # 主要源代码目录
│   ├── main.dart                 # 应用入口文件
│   ├── core/                     # 核心功能模块
│   │   ├── constants/            # 常量定义
│   │   │   ├── app_constants.dart
│   │   │   ├── api_constants.dart
│   │   │   └── color_constants.dart
│   │   ├── services/             # 核心服务
│   │   │   ├── api_service.dart  # API服务封装
│   │   │   ├── auth_service.dart # 认证服务
│   │   │   ├── storage_service.dart # 本地存储
│   │   │   └── notification_service.dart # 通知服务
│   │   ├── utils/                # 工具类
│   │   │   ├── validators.dart   # 表单验证
│   │   │   ├── formatters.dart   # 数据格式化
│   │   │   └── helpers.dart      # 辅助函数
│   │   └── widgets/              # 通用组件
│   │       ├── custom_button.dart
│   │       ├── custom_text_field.dart
│   │       ├── loading_widget.dart
│   │       └── error_widget.dart
│   ├── features/                 # 功能模块
│   │   ├── auth/                 # 认证模块
│   │   │   ├── models/           # 数据模型
│   │   │   ├── providers/        # 状态管理
│   │   │   ├── screens/          # 页面组件
│   │   │   └── widgets/          # 功能组件
│   │   ├── home/                 # 主页模块
│   │   ├── vocabulary/           # 词汇学习模块
│   │   ├── listening/            # 听力训练模块
│   │   ├── reading/              # 阅读理解模块
│   │   ├── writing/              # 写作练习模块
│   │   ├── speaking/             # 口语练习模块
│   │   ├── profile/              # 个人中心模块
│   │   └── settings/             # 设置模块
│   ├── models/                   # 全局数据模型
│   │   ├── user_model.dart
│   │   ├── vocabulary_model.dart
│   │   ├── learning_model.dart
│   │   └── response_model.dart
│   ├── providers/                # 全局状态管理
│   │   ├── auth_provider.dart
│   │   ├── user_provider.dart
│   │   ├── theme_provider.dart
│   │   └── language_provider.dart
│   ├── routes/                   # 路由配置
│   │   ├── app_routes.dart
│   │   └── route_generator.dart
│   └── themes/                   # 主题配置
│       ├── app_theme.dart
│       ├── light_theme.dart
│       └── dark_theme.dart
├── assets/                       # 静态资源
│   ├── images/                   # 图片资源
│   ├── icons/                    # 图标资源
│   ├── fonts/                    # 字体文件
│   └── audio/                    # 音频文件
├── test/                         # 测试文件
├── pubspec.yaml                  # 依赖配置文件
└── analysis_options.yaml         # 代码分析配置
```

### 后端项目结构（Go）

```
serve/
├── main.go                       # 应用入口文件
├── start.sh                      # 启动脚本
├── go.mod                        # Go模块依赖
├── go.sum                        # 依赖校验文件
├── Dockerfile                    # Docker构建文件
├── .dockerignore                 # Docker忽略文件
├── config/                       # 配置管理
│   ├── config.go                 # 配置结构定义
│   └── config.yaml               # 配置文件
├── api/                          # API层
│   ├── router.go                 # 路由配置
│   ├── middleware.go             # 中间件配置
│   └── handlers/                 # 请求处理器
│       ├── auth_handler.go       # 认证处理
│       ├── user_handler.go       # 用户管理
│       ├── vocabulary_handler.go # 词汇功能
│       ├── listening_handler.go  # 听力功能
│       ├── reading_handler.go    # 阅读功能
│       ├── writing_handler.go    # 写作功能
│       ├── speaking_handler.go   # 口语功能
│       └── health_handler.go     # 健康检查
├── internal/                     # 内部模块
│   ├── common/                   # 通用组件
│   │   ├── errors.go             # 错误定义
│   │   └── response.go           # 响应格式
│   ├── database/                 # 数据库层
│   │   ├── database.go           # 数据库连接
│   │   ├── migrate.go            # 数据库迁移
│   │   └── seed.go               # 数据初始化
│   ├── handler/                  # 业务处理器
│   │   ├── ai_handler.go         # AI服务处理
│   │   └── upload_handler.go     # 文件上传处理
│   ├── logger/                   # 日志系统
│   │   └── logger.go             # 日志配置
│   ├── middleware/               # 中间件
│   │   ├── auth.go               # 认证中间件
│   │   ├── cors.go               # 跨域中间件
│   │   ├── error_handler.go      # 错误处理中间件
│   │   └── logger.go             # 日志中间件
│   ├── models/                   # 数据模型
│   │   ├── user.go               # 用户模型
│   │   ├── vocabulary.go         # 词汇模型
│   │   ├── learning.go           # 学习记录模型
│   │   └── ai_models.go          # AI相关模型
│   ├── services/                 # 业务服务层
│   │   ├── user_service.go       # 用户服务
│   │   ├── vocabulary_service.go # 词汇服务
│   │   ├── listening_service.go  # 听力服务
│   │   ├── reading_service.go    # 阅读服务
│   │   ├── writing_service.go    # 写作服务
│   │   ├── speaking_service.go   # 口语服务
│   │   ├── ai_service.go         # AI服务
│   │   └── upload_service.go     # 文件上传服务
│   └── utils/                    # 工具函数
│       └── utils.go              # 通用工具
└── uploads/                      # 文件上传目录
    ├── audio/                    # 音频文件
    └── images/                   # 图片文件
```

### 核心技术架构

#### 前端架构特点
- **模块化设计**：按功能模块组织代码，便于维护和扩展
- **状态管理**：使用Provider进行全局状态管理
- **组件复用**：通用组件和功能组件分离，提高代码复用性
- **主题系统**：支持明暗主题切换，提供良好的用户体验
- **路由管理**：统一的路由配置和导航管理
- **响应式设计**：适配不同屏幕尺寸的设备

#### 后端架构特点
- **分层架构**：Handler -> Service -> Model 的清晰分层
- **中间件系统**：认证、日志、错误处理等中间件
- **配置管理**：统一的配置文件和环境变量管理
- **数据库设计**：GORM ORM框架，支持自动迁移和数据初始化
- **API设计**：RESTful API设计，统一的响应格式
- **日志系统**：结构化日志，支持不同级别和输出方式
- **文件管理**：支持音频、图片等多媒体文件上传和管理

#### 数据库设计
- **用户系统**：用户信息、偏好设置、社交链接
- **词汇系统**：词汇分类、词汇定义、例句、图片
- **学习记录**：听力、阅读、写作、口语的学习记录和进度
- **AI服务**：AI相关的配置和使用记录
- **关系设计**：合理的外键关系和索引优化

#### 安全特性
- **JWT认证**：基于Token的无状态认证
- **密码加密**：bcrypt加密存储用户密码
- **CORS配置**：跨域请求安全控制
- **输入验证**：前后端双重数据验证
- **错误处理**：统一的错误处理和日志记录

## 快速开始

### 环境要求
- Flutter SDK 3.0+
- Go 1.19+
- MySQL 8.0+
- Docker & Docker Compose
- Node.js 16+ (用于部分工具)

### 安装步骤

1. **克隆项目**
```bash
git clone https://github.com/your-org/ai_english_learning.git
cd ai_english_learning
```

2. **后端环境设置**
```bash
cd backend
# 初始化Go模块
go mod init ai_english_learning
go mod tidy
```

3. **数据库设置**
```bash
# 启动MySQL数据库
docker-compose up -d mysql

# 运行数据库迁移
go run cmd/migrate/main.go
```

4. **前端环境设置**
```bash
cd frontend
flutter pub get
flutter run
```

5. **启动开发服务器**
```bash
# 后端API服务
cd backend
go run main.go

# AI服务
celery -A ai_services worker --loglevel=info
```

## 开发指南

### 代码规范
- 遵循Go官方代码规范（gofmt, golint）
- 使用Flutter官方代码规范
- 提交前运行代码格式化和静态检查

### 测试
```bash
# 后端测试
go test ./...

# 前端测试
flutter test
```

### 部署
```bash
# 使用Docker Compose部署
docker-compose up -d

# 生产环境部署
docker-compose -f docker-compose.prod.yml up -d
```

## 学习目标用户

### 学生群体
- **小学生**：基础词汇学习，简单对话练习
- **中学生**：考试备考，技能全面提升
- **大学生**：四六级备考，学术英语提升
- **研究生**：考研英语，学术写作训练

### 成人学习者
- **职场人士**：商务英语，职业发展需求
- **出国留学**：托福雅思备考，留学准备
- **兴趣学习**：日常英语，文化交流
- **专业提升**：行业英语，专业技能

## 学习效果

### 短期效果（1-3个月）
- 词汇量显著增加（500-1500词）
- 听力理解能力明显提升
- 基础语法掌握更加牢固
- 口语表达更加自信

### 中期效果（3-6个月）
- 阅读速度和理解能力大幅提升
- 写作表达更加地道和流畅
- 口语交流基本无障碍
- 考试成绩显著提高

### 长期效果（6个月以上）
- 英语思维逐步建立
- 能够进行复杂的英语交流
- 具备独立的英语学习能力
- 达到目标英语水平

## 贡献指南

我们欢迎社区贡献！请遵循以下步骤：

1. Fork 项目仓库
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 创建 Pull Request

### 贡献类型
- 🐛 Bug修复
- ✨ 新功能开发
- 📚 文档改进
- 🎨 UI/UX优化
- ⚡ 性能优化
- 🧪 测试覆盖

## 许可证

本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。

## 联系我们

- **项目主页**：https://github.com/your-org/ai_english_learning
- **问题反馈**：https://github.com/your-org/ai_english_learning/issues
- **邮箱联系**：contact@ai-english-learning.com
- **官方网站**：https://www.ai-english-learning.com

## 更新日志

### v1.0.0 (2024-01-01)
- 🎉 项目初始版本发布
- ✨ 完整的词汇学习模块
- ✨ 基础的听说读写功能
- ✨ AI智能助手集成
- ✨ 用户数据统计分析

### 即将发布
- 🔄 更多AI功能集成
- 📱 移动端应用优化
- 🌐 多语言界面支持
- 🎮 游戏化学习元素
- 👥 社交学习功能

---

**让AI助力您的英语学习之旅！** 🚀

通过科学的学习方法和先进的AI技术，我们相信每个人都能够高效地掌握英语，实现自己的学习目标。立即开始您的智能英语学习体验吧！