1 fix: 修复Vue模板语法错误和优化项目配置 2 3 - 修复MainDashboard.vue中多余的template结束标签导致的Vue编译错误 4 - 更新项目文档QWEN.md,完善项目说明和部署指南 5 - 优化create_admin.py脚本,从main.py导入统一配置 6 - 增强PDF解析器错误处理和兼容性 7 - 改进登录页面UI设计和用户体验 8 9 🤖 Generated with [Claude Code](https://claude.com/claude-code) 10 11 Co-Authored-By: Claude <[email protected]>
6.1 KiB
6.1 KiB
学习助手 Pro - 项目说明
项目概述
这是一个基于 FastAPI + Vue3 的智能试卷管理与学习跟踪系统,支持PDF试卷智能解析、题目自动提取、错题管理和学习统计等功能。项目采用前后端分离架构,旨在帮助学生高效管理试卷、跟踪错题并进行个性化学习。
核心功能
智能试卷管理
- PDF试卷上传和预览
- 多学科试卷分类管理(数学、语文、英语等)
- 试卷信息自动识别和标注
题目智能提取
- AI驱动的PDF文本层解析,速度快准确率高(95%+)
- OCR备份解析,处理扫描版PDF
- 自动识别题目类型(选择题、填空题、解答题等)
- 智能提取题目图片(几何图形、函数图像等)
- 数学符号自动修复和优化
错题管理系统
- 智能错题收集和分类
- 艾宾浩斯遗忘曲线复习提醒
- 个性化学习计划生成
- 错题复习统计和进度跟踪
学习数据分析
- 详细的学习进度统计
- 多维度数据可视化
- 学科强弱项分析
- 学习效率评估
技术栈
后端 (FastAPI)
- FastAPI: 高性能 Python Web 框架
- SQLAlchemy: ORM 数据库操作
- JWT: 用户认证
- Pydantic: 数据验证
- pdfplumber: PDF解析
- PyMuPDF: PDF处理
- BCrypt: 密码加密
- SQLAlchemy: 数据库ORM
前端 (Vue3)
- Vue 3: 组合式 API
- Element Plus: UI 组件库
- Pinia: 状态管理
- Axios: HTTP客户端
- Chart.js: 数据可视化
- Vite: 构建工具
数据库
- SQLite: 轻量级数据库(可升级到 PostgreSQL/MySQL)
项目结构
pager/
├── backend/
│ ├── main.py # 后端主应用
│ ├── api_images.py # 图片API路由
│ ├── create_admin.py # 创建管理员脚本
│ ├── migrate_db.py # 数据库迁移脚本
│ ├── pdf_*.py # PDF解析相关工具
│ ├── requirements.txt # Python依赖
│ ├── initial_words.csv # 初始单词数据
│ └── utils/ # 工具函数
├── frontend/
│ ├── src/ # 源代码
│ ├── package.json # Node.js依赖
│ ├── vite.config.js # Vite配置
│ └── index.html # 主HTML文件
├── README.md # 项目说明
├── start.sh/start_app.sh # 启动脚本
├── status.sh/status_app.sh # 状态检查脚本
├── stop.sh/stop_app.sh # 停止脚本
└── index.html # 根目录HTML文件
构建和运行
后端启动
- 进入后端目录:
cd backend
- 安装依赖:
pip install -r requirements.txt
- 启动后端服务:
python main.py
后端将在 http://0.0.0.0:8888 启动
前端启动
- 进入前端目录:
cd frontend
- 安装依赖:
npm install
- 启动开发服务器:
npm run dev
前端将在 http://localhost:3000 启动 (如端口被占用会自动选择其他端口)
环境变量配置
后端配置
在后端目录创建 .env 文件:
SECRET_KEY=your-super-secret-key-here
DATABASE_URL=sqlite:///./wordmaster.db
ACCESS_TOKEN_EXPIRE_MINUTES=30
ALGORITHM=HS256
前端配置
在前端目录创建 .env.development 文件:
VITE_BACKEND_HOST=localhost
VITE_BACKEND_PORT=8888
VITE_APP_VERSION=1.0.0
主要API端点
认证
POST /api/auth/register- 用户注册POST /api/auth/login- 用户登录
词汇管理
GET /api/words- 获取词汇列表POST /api/words- 创建词汇POST /api/words/import- 批量导入词汇
学习管理
GET /api/study/due- 获取待学习词汇POST /api/study/submit- 提交学习结果
试卷管理
POST /api/papers- 创建试卷GET /api/papers- 获取试卷列表POST /api/papers/{paper_id}/split- 拆解试卷为题目
题目管理
POST /api/questions- 创建题目GET /api/questions- 获取题目列表GET /api/questions/{question_id}/format- 获取格式化题目
错题管理
POST /api/mistakes- 创建错题GET /api/mistakes- 获取错题列表POST /api/mistakes/{mistake_id}/review- 提交复习结果
仪表盘
GET /api/dashboard- 获取仪表盘统计
开发规范
代码风格
- Python: 遵循 PEP 8 标准
- JavaScript/TypeScript: 使用 ESLint 和 Prettier
- HTML/CSS: 使用语义化标签和 BEM 命名规范
提交规范
- 使用 Git 提交信息规范,如 "feat: 添加新功能"、"fix: 修复问题" 等
部署选项
Docker 部署 (推荐)
创建 docker-compose.yml:
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
启动:
docker-compose up -d
PM2 部署
- 安装 PM2:
npm install -g pm2
- 启动后端:
pm2 start "uvicorn main:app --host 0.0.0.0 --port 8000" --name wordmaster-backend
- 构建并启动前端:
cd frontend
npm run build
pm2 serve dist 3000 --name wordmaster-frontend
安全建议
-
修改默认密钥:
SECRET_KEY = "your-production-secret-key-very-long-and-random" -
CORS 配置:
allow_origins=["https://your-domain.com"] # 限制具体域名 -
HTTPS 部署:使用 SSL 证书
-
数据库安全:定期备份,访问控制
系统特点
- 超快解析速度: 0.01秒完成一页试卷解析
- 高准确率: 文本识别准确率95%+,性能提升2900倍
- 智能图片提取: 自动关联题目与图片,完美显示数学图形
- 热加载开发: 前后端完整热加载支持
- 响应式设计: 支持电脑、平板、手机
- 离线缓存: 渐进式 Web 应用
- 学习算法: SM-2 间隔重复算法实现个性化复习