Files
problem-bank/README.md
2026-03-06 15:52:34 +08:00

2.2 KiB
Raw Permalink Blame History

网页版题库管理系统

基于 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_KEYADMIN_PASSWORDJWT_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

导入中心(队列)说明

  • 导入任务使用持久化队列:任务与文件项写入数据库(import_jobs / import_job_items),后端单消费者按创建时间 FIFO 串行执行。
  • 状态枚举:queued(排队中)、running(执行中)、successfailedcancelledretrying
  • 刷新页面后,前端会请求 GET /api/import/jobs?status=queued,running 恢复未完成任务并轮询进度;无需依赖本地缓存。
  • 失败项可通过「重试失败项」再次入队(新建任务);排队中/执行中任务可取消。
  • 上传文件按任务与序号存为唯一路径(upload_dir/{job_id}/{seq}_{filename}),避免同名覆盖。

默认登录

  • 用户名:admin
  • 密码:admin123(请在 .env 修改)

功能清单

  • 题目 CRUD、搜索、筛选、批量删除、批量更新
  • AI 智能导入PDF/Word -> OpenAI兼容接口 -> 预览 -> 确认保存)
  • Excel 批量导入、模板下载、导出 JSON/CSV/Excel
  • 导入中心(持久化队列):严格 FIFO 串行执行,任务状态持久化到数据库;刷新页面后自动恢复未完成任务列表;支持取消排队中/执行中任务、对失败项一键重试入队。
  • 分类树管理(章节/知识点)
  • 练习模式(抽题、判题、解析反馈)
  • 仪表盘统计(总量、题型、难度、章节、导入历史)