# 后端
**Repository Path**: smart-learning-companion/back-end
## Basic Information
- **Project Name**: 后端
- **Description**: 智学伴后端
- **Primary Language**: Python
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-01-28
- **Last Updated**: 2026-01-31
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# “智学伴”AI学习平台 - 完整开发方案
## 一、核心需求分析(MVP版本)
### 1. 用户需求分层
#### A. 核心用户(大学生)需求
| 分类 | 具体需求 |
|--------------|--------------------------------------------------------------------------|
| 自我认知与定位 | 1. 快速完成个人画像测评(5分钟内)
2. 获得个人能力优势和短板分析
3. 明确学习阶段定位(大一迷茫/大二发力/大三抉择/大四冲刺) |
| 个性化学习规划 | 1. 获得定制化学习路径建议
2. 按周/月拆解学习任务
3. 支持计划动态调整 |
| 高效资源获取 | 1. 精准匹配学习资料(课程、题库、视频)
2. 节省资料搜索时间(标签化筛选)
3. 高质量内容推荐(校本资源+名师课程) |
| 学习过程管理 | 1. 每日任务打卡和进度追踪
2. 专注力训练工具(番茄钟)
3. 学习成果记录和反馈 |
| 就业导向支持 | 1. 简历优化和模拟面试
2. 考研/考公/就业专项指导
3. 岗位需求匹配和投递 |
#### B. 管理端需求
| 分类 | 具体需求 |
|------------|--------------------------------------------------------------------------|
| 用户管理 | 1. 用户数据查看和分析
2. 学习行为监控
3. 标签系统管理 |
| 内容管理 | 1. 学习资源上传、审核、分类
2. 规划模板管理和维护
3. AI提示词配置和优化 |
| 数据统计 | 1. 用户活跃度分析
2. 功能使用统计
3. 学习效果评估 |
## 二、功能模块详细定义
### 1. 用户系统模块
```
├── 注册登录
│ ├── 手机号注册(验证码)
│ ├── 微信一键登录
│ ├── 学生身份认证(学号/学校)
│ └── 忘记密码重置
├── 个人中心
│ ├── 个人信息编辑
│ ├── 个人画像展示
│ ├── 学习数据统计
│ └── 账号设置
└── 用户画像
├── 基础信息问卷(年级/专业/目标)
├── 能力测评(专注力/学习方法)
├── 需求分析(考研/考公/就业)
└── 画像标签生成
```
### 2. 学习规划模块
```
├── 规划生成
│ ├── 智能规划推荐(基于画像)
│ ├── 模板选择(考研/考公/就业)
│ ├── 自定义规划创建
│ └── 规划难度调整(基础/进阶)
├── 任务管理
│ ├── 周计划拆解
│ ├── 每日任务清单
│ ├── 任务进度追踪
│ └── 任务完成打卡
└── 规划调整
├── 进度延迟处理
├── 动态重新规划
├── 突发情况调整
└── 历史规划存档
```
### 3. 资源中心模块
```
├── 资源推荐
│ ├── 基于规划的任务推荐
│ ├── 基于能力水平的推荐
│ ├── 热门资源推荐
│ └── 个性化资源推荐
├── 资源分类
│ ├── 按学科分类(计算机/数学/英语)
│ ├── 按资源类型(视频/文档/题库)
│ ├── 按难度分级(基础/进阶/高级)
│ └── 按来源分类(校本/B站/慕课)
├── 资源搜索
│ ├── 关键词搜索
│ ├── 多标签筛选
│ ├── 智能联想搜索
│ └── 搜索历史记录
└── 我的资源
├── 收藏资源
├── 学习记录
├── 下载管理
└── 笔记功能
```
### 4. 学习工具模块
```
├── 番茄钟
│ ├── 专注时间设定(25分钟)
│ ├── 休息时间设定(5分钟)
│ ├── 任务关联(当前学习内容)
│ └── 统计报告(专注时长/次数)
├── 打卡系统
│ ├── 每日打卡
│ ├── 连续打卡记录
│ ├── 打卡奖励机制
│ └── 打卡圈子分享
├── 笔记系统
│ ├── 手写笔记
│ ├── 文字笔记
│ ├── 图片笔记
│ └── 笔记同步
└── 提醒功能
├── 任务提醒
├── 规划提醒
├── 资源更新提醒
└── 自定义提醒
```
### 5. AI功能模块
```
├── 简历优化
│ ├── 简历上传(图片/PDF)
│ ├── AI分析(内容/格式/关键词)
│ ├── 优化建议生成
│ └── 多种模板选择
├── 模拟面试
│ ├── 岗位选择(技术/产品/运营)
│ ├── 面试模式(AI面试官/录音自评)
│ ├── 题库系统(常见面试题)
│ └── 反馈报告(评分+改进建议)
├── 学习答疑
│ ├── AI智能问答
│ ├── 错题解析
│ └── 知识点讲解
└── 规划优化
├── 进度分析
├── 调整建议
└── 风险预警
```
### 6. 社交功能模块(轻量级)
```
├── 学习小组
│ ├── 同校匹配
│ ├── 同目标匹配
│ ├── 小组打卡
│ └── 资源共享
├── 成就系统
│ ├── 学习成就(时长/任务)
│ ├── 能力成就(技能认证)
│ ├── 社交成就(帮助他人)
│ └── 排行榜展示
└── 分享功能
├── 学习成果分享
├── 优质资源分享
└── 打卡记录分享
```
### 7. 管理后台模块
```
├── 用户管理
│ ├── 用户列表查看
│ ├── 用户画像分析
│ ├── 学习行为监控
│ └── 违规处理
├── 内容管理
│ ├── 资源审核发布
│ ├── 标签管理
│ ├── 规划模板管理
│ └── 推荐策略配置
├── AI配置
│ ├── 提示词管理
│ ├── AI服务监控
│ ├── 成本统计
│ └── 效果评估
├── 数据统计
│ ├── 用户增长分析
│ ├── 功能使用统计
│ ├── 学习效果分析
│ └── 收入统计
└── 系统配置
├── 权限管理
├── 系统参数设置
├── 日志管理
└── 数据备份
```
## 三、系统架构设计
### 各层次详细说明
| 层级 | 技术栈 | 核心位置 | 核心职责 |
|--------------|-----------------------|----------------|--------------------------------------------------------------------------|
| 移动端层 | React Native + TypeScript | 架构最顶层 | 提供用户界面和交互体验,处理用户输入和展示数据 |
| 网关层 | Nginx + 负载均衡 | 移动端与API层之间 | 作为系统入口,处理所有外部请求(路由、限流、安全过滤、日志) |
| API服务层 | Flask | 网关层之后 | 处理所有业务逻辑,提供RESTful API接口 |
| 数据访问层 | SQLAlchemy + Redis + Celery | API层与存储层之间 | 提供统一数据访问接口,屏蔽底层存储细节 |
| 数据存储层 | MySQL + Redis + 对象存储 | 架构最底层 | 长期保存所有业务数据 |
| 第三方服务层 | 微信登录 + AI服务商 + 短信服务 | 架构右侧 | 提供专业外部服务能力 |
#### 1. 移动端层(React Native)
**内部结构(从下到上)**:
- 网络层:Axios(请求/响应拦截器、统一错误处理)
- 业务层:页面逻辑、Redux状态管理、本地数据存储
- UI层:React Native组件、TypeScript类型安全
**核心特点**:
- 跨平台运行(iOS/Android)
- TypeScript保证类型安全
- Redux管理全局状态
- 本地存储支持离线功能
#### 2. 网关层(Nginx + 负载均衡)
**核心功能**:
1. 请求分发:路由到对应后端服务
2. 负载均衡:分配请求到不同服务器实例
3. 限流保护:防止流量过载/恶意请求
4. 安全过滤:拦截可疑请求
5. 日志记录:记录访问日志用于监控分析
**通信方式**:HTTPS接收移动端API请求
#### 3. API服务层(Flask)
**核心模块划分**:
| 模块 | 核心功能 |
|--------------|--------------------------------------------------------------------------|
| 用户服务模块 | 用户认证、信息管理、画像/标签管理 |
| 规划服务模块 | 学习规划生成/调整、任务管理、模板管理 |
| 资源服务模块 | 资源管理、推荐算法、标签分类系统 |
| AI服务模块 | AI服务网关、调用外部AI服务、AI结果处理/缓存 |
**通信方式**:接收网关层内部调用,返回JSON数据
#### 4. 数据访问层
**技术组件**:
- ORM(SQLAlchemy):对象关系映射,自动生成SQL,支持数据库迁移
- 缓存(Redis):存储会话、缓存热点数据,提升响应速度
- 队列(Celery):处理异步任务、定时调度,解耦耗时操作
#### 5. 数据存储层
**存储类型**:
- MySQL:存储结构化数据,支持复杂查询和事务
- Redis:高速缓存、会话存储、消息队列后端
- 对象存储:存储非结构化数据(文件/图片/视频),支持CDN加速
#### 6. 第三方服务层
**核心服务**:
- 微信登录服务:用户身份认证、获取基本信息
- AI服务商:DeepSeek(主)、智谱(备),提供NLP/内容生成能力
- 短信服务:发送验证码、重要通知
### 三、数据流向说明
#### 典型请求流程
```mermaid
graph LR
A[用户操作移动端] --> B[Axios发送HTTPS请求]
B --> C[Nginx网关处理]
C --> D[Flask API服务处理业务逻辑]
D --> E[数据访问层操作数据库/缓存]
E --> F{需要第三方服务?}
F -- 是 --> G[调用AI/微信/短信服务]
F -- 否 --> H[直接返回结果]
G --> H[处理结果]
H --> C[网关层]
C --> B[移动端]
B --> A[展示结果给用户]
```
#### 关键通信协议
| 通信链路 | 协议 | 说明 |
|------------------|------------|--------------------|
| 移动端 ↔ 网关 | HTTPS | 加密传输 |
| 网关 ↔ 服务层 | HTTP | 内部网络,可选加密 |
| 服务层 ↔ 数据层 | TCP/IP | 数据库原生协议 |
| 服务层 ↔ 第三方 | HTTPS | API调用加密 |
### 四、架构优势分析
| 优势点 | 具体说明 |
|----------------|--------------------------------------------------------------------------|
| 分层清晰,职责明确 | 每层仅关注自身职责,便于分工协作,故障排查定位快速 |
| 扩展性强 | 水平扩展(增加服务器实例)、垂直扩展(独立升级技术栈)、功能扩展(模块化) |
| 安全性好 | 网关层统一防护、数据传输加密、权限控制层层递进 |
| 维护性好 | 技术栈成熟、监控/日志完备、故障隔离 |
### 五、技术栈总结
| 分类 | 核心技术栈 |
|--------------|----------------------------------------------------------------------------|
| 移动端 | React Native、TypeScript、Redux、Axios、AsyncStorage |
| 后端 | Flask、SQLAlchemy、Redis、Celery |
| 基础设施 | Nginx、MySQL、对象存储、Docker、云服务器 |
| 第三方集成 | 微信开放平台、DeepSeek API、智谱API、短信服务商 |
## 六、角色与职责分工
### 1. 移动端架构师(React Native专家)
| 核心职责 | 具体产出 |
|------------------|--------------------------------------------------------------------------|
| 项目架构设计 | React Native项目初始化、导航/状态管理配置、目录结构规范 |
| 核心页面开发 | 应用主框架、用户系统页面、学习规划页面架构 |
| 公共组件库建设 | 导航/表单/列表/卡片组件、加载/动画组件 |
| 性能优化&发布 | 应用性能优化、打包配置、热更新方案、兼容性测试 |
### 2. 后端核心开发(Flask/Python专家)
| 核心职责 | 具体产出 |
|------------------|--------------------------------------------------------------------------|
| 后端架构搭建 | Flask目录结构、数据库连接、JWT认证、日志/监控配置 |
| 业务API开发 | 用户/规划/资源模块API、权限系统 |
| 数据库设计 | 数据表结构、迁移脚本、索引优化、备份策略 |
| 第三方集成 | 微信登录、短信服务、对象存储集成 |
### 3. AI/算法开发工程师
| 核心职责 | 具体产出 |
|------------------|--------------------------------------------------------------------------|
| AI服务网关开发 | 统一AI接口、多服务商集成、限流/重试机制、成本监控 |
| 核心AI功能实现 | 简历优化、模拟面试、学习问答系统 |
| 算法开发优化 | 用户画像、资源推荐、规划匹配、学习效果评估算法 |
| 提示词工程 | 提示词模板设计、版本管理、效果评估优化 |
### 4. 全栈开发工程师(管理后台+测试)
| 核心职责 | 具体产出 |
|------------------|--------------------------------------------------------------------------|
| 管理后台开发 | 用户/内容/数据/系统配置后台(Vue3/React + 组件库) |
| 后端辅助开发 | 数据统计API、文件处理服务、通知系统、定时任务 |
| 测试&质量保证 | 单元/集成测试、API测试、性能测试、Bug跟踪 |
| 运维&部署 | Docker配置、CI/CD流水线、服务器监控、日志分析 |
### 5. 产品开发工程师(功能实现+用户体验)
| 核心职责 | 具体产出 |
|------------------|--------------------------------------------------------------------------|
| 移动端功能开发 | 学习工具/AI功能/社交功能/设置页面 |
| 用户体验优化 | 交互动画、加载/错误处理、表单验证、多端适配 |
| 功能测试验证 | 测试用例、体验测试、竞品分析、用户反馈收集 |
| 文档&协作 | 用户手册、演示视频、技术文档、团队沟通协调 |
## 七、开发规划与协作规范
### 1. 开发顺序建议(10周)
| 阶段 | 时间 | 核心任务 |
|------------|--------|--------------------------------------------------------------------------|
| 基础搭建 | 1-2周 | 移动端/后端/管理后台框架搭建、AI接口设计、登录注册页面开发 |
| 核心开发 | 3-4周 | 用户系统(页面+API)、权限系统、简历优化基础功能、用户管理后台 |
| 功能完善 | 5-6周 | 资源中心页面、规划/资源API、模拟面试功能、内容管理后台、学习工具页面 |
| 集成测试 | 7-8周 | 全模块接口联调、测试用例编写、功能测试&优化 |
| 部署上线 | 9-10周 | 服务器部署、应用打包发布、系统监控&维护 |
### 2. 接口依赖说明
- 移动端页面(角色1/5) ←→ 后端API(角色2)
- AI功能(角色3) ←→ 后端服务(角色2)
- 管理后台(角色4) ←→ 后端API(角色2)
- 测试用例(角色4)覆盖所有模块
### 3. Git分支管理规范
| 分支类型 | 用途说明 |
|----------------|--------------------------------------------------------------------------|
| main | 生产环境代码(保护分支,仅通过release分支合并) |
| develop | 开发主分支(保护分支,仅通过PR合并feature分支) |
| feature/模块-功能 | 功能开发分支(如feature/user-login、feature/ai-resume) |
| hotfix/问题描述 | 生产环境紧急修复分支 |
| release/版本号 | 发布分支(如release/v1.0.0) |
### 4. 代码审查流程
1. 开发者在feature分支完成功能开发
2. 提交Pull Request到develop分支
3. 指定至少1名相关模块开发者进行Code Review
4. Review通过后合并,删除feature分支
5. 每日将develop分支合并到个人feature分支,避免冲突
### 5. 代码质量要求
- TypeScript开启严格模式
- Python代码添加Type Hints
- 单元测试覆盖率 ≥ 70%
- API文档自动生成(如Swagger)
- 代码格式化统一(Prettier/Black)
- 提交信息规范(如`feat: 新增用户登录功能`)