24 KiB
24 KiB
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(推荐)
- 克隆项目
git clone <repository-url>
cd ai_english_learning
- 启动所有服务
docker-compose up -d
- 查看服务状态
docker-compose ps
- 访问应用
- 后端API:http://localhost:8080
- 健康检查:http://localhost:8080/health
- API文档:查看
docs/API接口文档.md
本地开发
后端开发
- 进入后端目录
cd serve
- 安装依赖
go mod tidy
- 配置数据库
# 创建数据库
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
- 配置应用
# 复制配置文件
cp config/config.yaml config/config.local.yaml
# 编辑配置文件,修改数据库连接等信息
vim config/config.local.yaml
- 启动应用
# 使用启动脚本(推荐)
./start.sh -d
# 或者直接运行
go run .
# 或者使用Makefile
make dev
前端开发
- 进入前端目录
cd client
- 安装依赖
flutter pub get
- 运行应用
flutter run
- 使用安卓模拟器启动预览
检查设备
$ 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
主要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- 版本信息
🔧 配置说明
环境变量
# 服务器配置
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,支持多环境配置。
🧪 测试
运行测试
# 后端测试
cd serve
make test
# 前端测试
cd client
flutter test
性能测试
cd serve
make bench
📦 部署
详细的部署指南请查看:DEPLOYMENT.md
生产环境部署
- 构建Docker镜像
make docker-build
- 部署到生产环境
docker-compose -f docker-compose.prod.yml up -d
- 配置反向代理
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;
}
}
🔍 监控和维护
日志查看
# 查看应用日志
tail -f serve/logs/app.log
# Docker环境日志
docker-compose logs -f ai-english-backend
健康检查
# 检查服务状态
curl http://localhost:8080/health
# 检查版本信息
curl http://localhost:8080/version
数据库备份
# 备份数据库
mysqldump -u root -p ai_english_learning > backup_$(date +%Y%m%d_%H%M%S).sql
# 使用Makefile
make backup
🤝 贡献指南
- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
代码规范
- Go代码:遵循
gofmt和golint规范 - Flutter代码:遵循 Dart 官方代码规范
- 提交信息:使用语义化提交信息
📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
📞 联系我们
- 项目维护者:[Your Name]
- 邮箱:[your.email@example.com]
- 问题反馈:GitHub 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+ (用于部分工具)
安装步骤
- 克隆项目
git clone https://github.com/your-org/ai_english_learning.git
cd ai_english_learning
- 后端环境设置
cd backend
# 初始化Go模块
go mod init ai_english_learning
go mod tidy
- 数据库设置
# 启动MySQL数据库
docker-compose up -d mysql
# 运行数据库迁移
go run cmd/migrate/main.go
- 前端环境设置
cd frontend
flutter pub get
flutter run
- 启动开发服务器
# 后端API服务
cd backend
go run main.go
# AI服务
celery -A ai_services worker --loglevel=info
开发指南
代码规范
- 遵循Go官方代码规范(gofmt, golint)
- 使用Flutter官方代码规范
- 提交前运行代码格式化和静态检查
测试
# 后端测试
go test ./...
# 前端测试
flutter test
部署
# 使用Docker Compose部署
docker-compose up -d
# 生产环境部署
docker-compose -f docker-compose.prod.yml up -d
学习目标用户
学生群体
- 小学生:基础词汇学习,简单对话练习
- 中学生:考试备考,技能全面提升
- 大学生:四六级备考,学术英语提升
- 研究生:考研英语,学术写作训练
成人学习者
- 职场人士:商务英语,职业发展需求
- 出国留学:托福雅思备考,留学准备
- 兴趣学习:日常英语,文化交流
- 专业提升:行业英语,专业技能
学习效果
短期效果(1-3个月)
- 词汇量显著增加(500-1500词)
- 听力理解能力明显提升
- 基础语法掌握更加牢固
- 口语表达更加自信
中期效果(3-6个月)
- 阅读速度和理解能力大幅提升
- 写作表达更加地道和流畅
- 口语交流基本无障碍
- 考试成绩显著提高
长期效果(6个月以上)
- 英语思维逐步建立
- 能够进行复杂的英语交流
- 具备独立的英语学习能力
- 达到目标英语水平
贡献指南
我们欢迎社区贡献!请遵循以下步骤:
- Fork 项目仓库
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
贡献类型
- 🐛 Bug修复
- ✨ 新功能开发
- 📚 文档改进
- 🎨 UI/UX优化
- ⚡ 性能优化
- 🧪 测试覆盖
许可证
本项目采用 MIT 许可证 - 查看 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技术,我们相信每个人都能够高效地掌握英语,实现自己的学习目标。立即开始您的智能英语学习体验吧!