Files
Claude CodeandClaude 5e5020a38a feat: 大幅优化题目UI设计和图片关联算法
主要改进:
🎨 UI优化
- 实现学而思风格的题目卡片设计
- 优化数学公式和坐标点显示格式
- 添加专业的选项和答案展示
- 改进响应式设计和交互体验

🔧 技术优化
- 修复图片关联算法,避免重复分配
- 智能图片与题目匹配算法
- 添加admin用户便捷登录功能
- 优化题目文本格式化

📊 功能增强
- 可折叠的答案解析区域
- 动态分值提取和显示
- 专业的数学符号高亮
- 子题清晰分隔显示

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
2025-10-17 14:30:52 +08:00

300 lines
6.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 学习助手 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. 网络连接状态
祝您学习愉快!🎉