Files
problem-bank/README.md

55 lines
2.2 KiB
Markdown
Raw Normal View History

2026-03-05 11:50:15 +08:00
# 网页版题库管理系统
基于 FastAPI + React + SQLite 的题库系统支持题目管理、AI 导入、Excel 导入导出、分类管理、练习模式与统计仪表盘。
## 目录
- `backend/`: FastAPI 后端
- `frontend/`: React 前端
- `analysis.py`: 原始解析脚本(参考)
## 后端启动
1. 安装依赖:
- `cd backend`
- `python3 -m venv .venv && source .venv/bin/activate`
- `pip install -r requirements.txt`
2. 配置环境变量:
- 复制项目根目录 `.env.example``.env`
- 填写 `API_KEY``ADMIN_PASSWORD``JWT_SECRET_KEY`
3. 运行:
- 在项目根目录执行 `uvicorn backend.main:app --reload --port 8000`
## 前端启动
1. 安装依赖:
- `cd frontend`
- `npm install`
2. 运行:
- `npm run dev`
3. 打开:
- `http://127.0.0.1:5173`
2026-03-06 15:52:34 +08:00
## 导入中心(队列)说明
- 导入任务使用**持久化队列**:任务与文件项写入数据库(`import_jobs` / `import_job_items`),后端单消费者按创建时间 FIFO 串行执行。
- 状态枚举:`queued`(排队中)、`running`(执行中)、`success``failed``cancelled``retrying`
- 刷新页面后,前端会请求 `GET /api/import/jobs?status=queued,running` 恢复未完成任务并轮询进度;无需依赖本地缓存。
- 失败项可通过「重试失败项」再次入队(新建任务);排队中/执行中任务可取消。
- 上传文件按任务与序号存为唯一路径(`upload_dir/{job_id}/{seq}_{filename}`),避免同名覆盖。
2026-03-05 11:50:15 +08:00
## 默认登录
- 用户名:`admin`
- 密码:`admin123`(请在 `.env` 修改)
## 功能清单
- 题目 CRUD、搜索、筛选、批量删除、批量更新
2026-03-06 15:52:34 +08:00
- AI 智能导入PDF/Word -> OpenAI兼容接口 -> 预览 -> 确认保存)
2026-03-05 11:50:15 +08:00
- Excel 批量导入、模板下载、导出 JSON/CSV/Excel
2026-03-06 15:52:34 +08:00
- **导入中心(持久化队列)**:严格 FIFO 串行执行,任务状态持久化到数据库;刷新页面后自动恢复未完成任务列表;支持取消排队中/执行中任务、对失败项一键重试入队。
2026-03-05 11:50:15 +08:00
- 分类树管理(章节/知识点)
- 练习模式(抽题、判题、解析反馈)
- 仪表盘统计(总量、题型、难度、章节、导入历史)