主要改进: 🎨 UI优化 - 实现学而思风格的题目卡片设计 - 优化数学公式和坐标点显示格式 - 添加专业的选项和答案展示 - 改进响应式设计和交互体验 🔧 技术优化 - 修复图片关联算法,避免重复分配 - 智能图片与题目匹配算法 - 添加admin用户便捷登录功能 - 优化题目文本格式化 📊 功能增强 - 可折叠的答案解析区域 - 动态分值提取和显示 - 专业的数学符号高亮 - 子题清晰分隔显示 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
300 lines
6.2 KiB
Markdown
300 lines
6.2 KiB
Markdown
# 学习助手 Pro 部署指南
|
||
|
||
这是一个基于 FastAPI + Vue3 的智能试卷管理与学习跟踪系统,支持PDF试卷智能解析、题目自动提取、错题管理和学习统计等功能。
|
||
|
||
## ✨ 核心功能
|
||
|
||
### 📄 智能试卷管理
|
||
- PDF试卷上传和预览
|
||
- 多学科试卷分类管理(数学、语文、英语等)
|
||
- 试卷信息自动识别和标注
|
||
|
||
### 🔍 题目智能提取
|
||
- AI驱动的PDF文本层解析,速度快准确率高(95%+)
|
||
- OCR备份解析,处理扫描版PDF
|
||
- 自动识别题目类型(选择题、填空题、解答题等)
|
||
- 智能提取题目图片(几何图形、函数图像等)
|
||
- 数学符号自动修复和优化
|
||
|
||
### 📊 错题管理系统
|
||
- 智能错题收集和分类
|
||
- 艾宾浩斯遗忘曲线复习提醒
|
||
- 个性化学习计划生成
|
||
- 错题复习统计和进度跟踪
|
||
|
||
### 📈 学习数据分析
|
||
- 详细的学习进度统计
|
||
- 多维度数据可视化
|
||
- 学科强弱项分析
|
||
- 学习效率评估
|
||
|
||
### 🚀 性能特点
|
||
- **超快解析速度**: 0.01秒完成一页试卷解析
|
||
- **高准确率**: 文本识别准确率95%+,性能提升2900倍
|
||
- **智能图片提取**: 自动关联题目与图片,完美显示数学图形
|
||
- **热加载开发**: 前后端完整热加载支持
|
||
|
||
## 🚀 快速启动
|
||
|
||
### 后端启动
|
||
|
||
1. 进入后端目录:
|
||
```bash
|
||
cd backend
|
||
```
|
||
|
||
2. 安装依赖:
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
3. 启动后端服务:
|
||
```bash
|
||
python main.py
|
||
```
|
||
|
||
后端将在 `http://0.0.0.0:8888` 启动
|
||
|
||
### 前端启动
|
||
|
||
1. 进入前端目录:
|
||
```bash
|
||
cd frontend
|
||
```
|
||
|
||
2. 安装依赖:
|
||
```bash
|
||
npm install
|
||
```
|
||
|
||
3. 启动开发服务器:
|
||
```bash
|
||
npm run dev
|
||
```
|
||
|
||
前端将在 `http://localhost:3000` 启动 (如端口被占用会自动选择其他端口)
|
||
|
||
## 📦 生产环境部署
|
||
|
||
### 方法1:使用 Docker (推荐)
|
||
|
||
创建 `docker-compose.yml`:
|
||
|
||
```yaml
|
||
version: '3.8'
|
||
services:
|
||
backend:
|
||
build: ./backend
|
||
ports:
|
||
- "8000:8000"
|
||
volumes:
|
||
- ./data:/app/data
|
||
environment:
|
||
- DATABASE_URL=sqlite:///./data/wordmaster.db
|
||
|
||
frontend:
|
||
build: ./frontend
|
||
ports:
|
||
- "3000:3000"
|
||
depends_on:
|
||
- backend
|
||
```
|
||
|
||
启动:
|
||
```bash
|
||
docker-compose up -d
|
||
```
|
||
|
||
### 方法2:使用 PM2
|
||
|
||
1. 安装 PM2:
|
||
```bash
|
||
npm install -g pm2
|
||
```
|
||
|
||
2. 启动后端:
|
||
```bash
|
||
pm2 start "uvicorn main:app --host 0.0.0.0 --port 8000" --name wordmaster-backend
|
||
```
|
||
|
||
3. 构建并启动前端:
|
||
```bash
|
||
cd frontend
|
||
npm run build
|
||
pm2 serve dist 3000 --name wordmaster-frontend
|
||
```
|
||
|
||
### 方法3:使用 Nginx 反向代理
|
||
|
||
Nginx 配置示例:
|
||
|
||
```nginx
|
||
server {
|
||
listen 80;
|
||
server_name your-domain.com;
|
||
|
||
# 前端静态文件
|
||
location / {
|
||
root /path/to/frontend/dist;
|
||
try_files $uri $uri/ /index.html;
|
||
}
|
||
|
||
# API 反向代理
|
||
location /api {
|
||
proxy_pass http://localhost:8000;
|
||
proxy_set_header Host $host;
|
||
proxy_set_header X-Real-IP $remote_addr;
|
||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||
}
|
||
}
|
||
```
|
||
|
||
## 🌐 远程访问配置
|
||
|
||
### 云服务器部署
|
||
|
||
1. **阿里云/腾讯云/AWS**:
|
||
- 创建云服务器实例
|
||
- 配置安全组,开放 8000 和 3000 端口
|
||
- 使用上述部署方法
|
||
|
||
2. **域名配置**:
|
||
- 购买域名并解析到服务器IP
|
||
- 配置 HTTPS (使用 Let's Encrypt)
|
||
|
||
### 内网穿透 (开发测试)
|
||
|
||
使用 ngrok 进行内网穿透:
|
||
|
||
```bash
|
||
# 安装 ngrok
|
||
npm install -g ngrok
|
||
|
||
# 穿透后端
|
||
ngrok http 8000
|
||
|
||
# 穿透前端
|
||
ngrok http 3000
|
||
```
|
||
|
||
## 📚 初中英语单词导入
|
||
|
||
系统已内置初中英语单词,启动后会自动导入。也可以手动导入:
|
||
|
||
### 1. 使用 API 导入
|
||
|
||
```bash
|
||
curl -X POST "http://localhost:8000/api/words/import" \
|
||
-H "Authorization: Bearer YOUR_TOKEN" \
|
||
-F "file=@initial_words.csv"
|
||
```
|
||
|
||
### 2. 使用前端界面导入
|
||
|
||
1. 登录系统
|
||
2. 进入"词库管理"页面
|
||
3. 点击"导入单词"按钮
|
||
4. 选择 CSV 或 JSON 文件
|
||
|
||
### 3. CSV 格式示例
|
||
|
||
```csv
|
||
word,meaning,example,phrases,level
|
||
abandon,放弃,He decided to abandon the project,abandon hope;abandon ship,middle_school
|
||
ability,能力,She has the ability to learn quickly,have ability;ability to do,middle_school
|
||
```
|
||
|
||
### 4. JSON 格式示例
|
||
|
||
```json
|
||
[
|
||
{
|
||
"word": "abandon",
|
||
"meaning": "放弃",
|
||
"example": "He decided to abandon the project",
|
||
"phrases": ["abandon hope", "abandon ship"],
|
||
"level": "middle_school"
|
||
}
|
||
]
|
||
```
|
||
|
||
## 🔧 环境变量配置
|
||
|
||
后端环境变量 (可选):
|
||
|
||
```bash
|
||
# .env 文件
|
||
SECRET_KEY=your-super-secret-key-here
|
||
DATABASE_URL=sqlite:///./wordmaster.db
|
||
ACCESS_TOKEN_EXPIRE_MINUTES=30
|
||
```
|
||
|
||
## 📊 功能特性
|
||
|
||
### 🧠 学习算法
|
||
- **SM-2 间隔重复算法**:个性化复习间隔
|
||
- **主动回忆模式**:输入答案,模糊匹配
|
||
- **多种学习模式**:抽认卡、选择题、完形填空
|
||
- **双向练习**:英→中、中→英自动切换
|
||
|
||
### 📈 智能分析
|
||
- **学习统计**:准确率、连续天数、学习进度
|
||
- **顽固词检测**:自动标记难记单词
|
||
- **记忆曲线**:可视化复习预测
|
||
|
||
### 🎯 用户体验
|
||
- **响应式设计**:支持电脑、平板、手机
|
||
- **语音朗读**:TTS 发音功能
|
||
- **快捷键支持**:键盘操作更高效
|
||
- **离线缓存**:渐进式 Web 应用
|
||
|
||
## 🛠️ 技术栈
|
||
|
||
### 后端
|
||
- **FastAPI**:高性能 Python Web 框架
|
||
- **SQLAlchemy**:ORM 数据库操作
|
||
- **JWT**:用户认证
|
||
- **Pydantic**:数据验证
|
||
|
||
### 前端
|
||
- **Vue 3**:组合式 API
|
||
- **Element Plus**:UI 组件库
|
||
- **Pinia**:状态管理
|
||
- **Vite**:构建工具
|
||
|
||
### 数据库
|
||
- **SQLite**:轻量级数据库(可升级到 PostgreSQL/MySQL)
|
||
|
||
## 🔒 安全建议
|
||
|
||
1. **修改默认密钥**:
|
||
```python
|
||
SECRET_KEY = "your-production-secret-key-very-long-and-random"
|
||
```
|
||
|
||
2. **CORS 配置**:
|
||
```python
|
||
allow_origins=["https://your-domain.com"] # 限制具体域名
|
||
```
|
||
|
||
3. **HTTPS 部署**:使用 SSL 证书
|
||
|
||
4. **数据库安全**:定期备份,访问控制
|
||
|
||
## 📱 移动端适配
|
||
|
||
系统已完全适配移动端,支持:
|
||
- 触摸手势操作
|
||
- 响应式布局
|
||
- PWA 渐进式应用
|
||
- 离线使用
|
||
|
||
## 🤝 技术支持
|
||
|
||
如遇问题,请检查:
|
||
1. 端口是否被占用
|
||
2. 防火墙设置
|
||
3. Node.js 和 Python 版本
|
||
4. 网络连接状态
|
||
|
||
祝您学习愉快!🎉 |