“”“ 基于您的需求,我推荐以下技术方案: 前端技术栈: Flutter + GetX Flutter_tts Hive Provider 后端技术栈: Node.js + Express + TypeScript MongoDB + Mongoose JWT PM2 推荐理由: 为什么选择Flutter: 跨平台开发,显著提升开发效率 优秀的UI渲染性能,保证阅读体验 丰富的第三方库生态 Hot Reload支持快速开发 社区活跃度高 为什么选择Node.js后端: JavaScript全栈开发,降低开发成本 异步IO性能好,适合文件处理 npm生态丰富,快速集成各类功能 部署维护简单 为什么选择MongoDB: 文档型数据库,灵活存储课程数据 查询性能好 易于横向扩展 与Node.js完美配合 具体实现建议: 文件解析: PDF: pdf.js EPUB: epub.js RSS: feed-parser AI语音集成: 预留标准化接口 支持Azure/讯飞/百度等多个语音服务 支持自定义语音参数 学习计划管理: 使用MongoDB存储课程结构 Hive实现本地数据缓存 GetX管理全局状态 部署方案: Docker容器化 Kubernetes集群 CI/CD自动化部署 这套技术方案可以很好地支持您需要的核心功能,同时具有良好的扩展性和维护性。 ”“”
project_root/ ├── frontend/ # Flutter前端项目 │ ├── lib/ │ │ ├── api/ # API请求 │ │ ├── models/ # 数据模型 │ │ ├── pages/ # 页面 │ │ ├── services/ # 服务 │ │ ├── utils/ # 工具类 │ │ └── widgets/ # 自定义组件 │ ├── assets/ # 静态资源 │ └── test/ # 测试用例 │ ├── backend/ # Node.js后端项目 │ ├── src/ │ │ ├── controllers/ # 控制器 │ │ ├── models/ # 数据模型 │ │ ├── routes/ # 路由 │ │ ├── services/ # 服务 │ │ └── utils/ # 工具函数 │ ├── config/ # 配置文件 │ └── tests/ # 测试用例 │ ├── docs/ # 项目文档 └── docker/ # Docker配置
- Flutter 3.x
- GetX (状态管理)
- Flutter_tts (语音合成)
- Hive (本地存储)
- Provider (依赖注入)
- Node.js + Express + TypeScript
- MongoDB + Mongoose
- JWT认证
- PM2进程管理
- 支持格式: PDF, EPUB, TXT, RSS
- 文件解析库: pdf.js, epub.js, feed-parser
- 本地缓存策略
- 文件同步机制
- 课程创建与编辑
- 章节管理
- 进度追踪
- 笔记标注
- 计划创建
- 课程编排
- 自动执行
- 进度统计
- 标准化语音接口
- 多模型支持
- 语音参数配置
- 缓存机制
javascript { id: ObjectId, username: String, email: String, password: String, settings: { voiceModel: String, speed: Number, pitch: Number } }
javascript { id: ObjectId, userId: ObjectId, title: String, type: String, chapters: [{ title: String, content: String, duration: Number }], progress: Number }
javascript { id: ObjectId, userId: ObjectId, title: String, courses: [{ courseId: ObjectId, chaptersPerDay: Number }], schedule: { startDate: Date, endDate: Date, dailyGoal: Number } }
- POST /api/auth/register
- POST /api/auth/login
- GET /api/user/profile
- PUT /api/user/settings
- POST /api/courses
- GET /api/courses
- PUT /api/courses/:id
- DELETE /api/courses/:id
- POST /api/plans
- GET /api/plans
- PUT /api/plans/:id
- DELETE /api/plans/:id
yaml version: '3' services: frontend: build: ./frontend ports: "80:80" backend: build: ./backend ports: "3000:3000" mongodb: image: mongo ports: "27017:27017"
- 代码提交触发CI
- 运行测试用例
- 构建Docker镜像
- 推送到镜像仓库
- 自动部署到测试环境
- 手动确认生产环境部署
- 使用ESLint进行代码检查
- 遵循Flutter官方代码规范
- 使用Prettier格式化代码
- feat: 新功能
- fix: 修复bug
- docs: 文档更新
- style: 代码格式
- refactor: 重构
- test: 测试用例
- chore: 构建过程或辅助工具的变动
- 单元测试覆盖率 > 80%
- 必须包含集成测试
- UI测试覆盖主要功能