# 后端 **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: 新增用户登录功能`)