800 lines
24 KiB
Markdown
800 lines
24 KiB
Markdown
|
|
# 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技术,我们相信每个人都能够高效地掌握英语,实现自己的学习目标。立即开始您的智能英语学习体验吧!
|