feat: add new file

This commit is contained in:
Daniel
2026-03-24 10:35:58 +08:00
commit 2788fc468f
9058 changed files with 896924 additions and 0 deletions

211
readme.md Normal file
View File

@@ -0,0 +1,211 @@
# 公考助手(前后端分离 + Docker 一键运行)
本项目基于 `readme.md` 中的 PRD 实现了可运行的全栈版本:
- 前端React + Vite + Nginx
- 后端FastAPI + SQLAlchemy
- 数据库PostgreSQL
## 目录结构
```text
.
├── backend
│ ├── app
│ ├── Dockerfile
│ └── requirements.txt
├── frontend
│ ├── src
│ ├── Dockerfile
│ └── nginx.conf
└── docker-compose.yml
```
## 一键启动
确保本机已安装 Docker Desktop然后在项目根目录执行
```bash
docker compose up --build
```
或使用快速启动脚本:
```bash
./start.sh
```
启动后访问:
- 前端http://localhost:5173
- 后端健康检查http://localhost:8001/health
## 已实现功能PRD 对齐版)
- 资源汇总:链接/文件导入、搜索、筛选、排序、编辑、删除、批量分类/删除、资源打开
- 错题整理:图片上传、分类与关键词检索、按频次排序、编辑、删除、导出 PDF/Word、训练检索
- 过程管理:模考分数新增/编辑/删除、近 7/30 天筛选、自定义时间筛选、折线图与统计
- AI 模块(千问):错题智能解析、学习计划自动生成
- 数据持久化PostgreSQL 卷持久化(`postgres_data`
## AI 配置(千问)
1. 复制配置模板:
```bash
cp .env.example .env
```
2. 编辑 `.env`,填入你的 `QWEN_API_KEY`
3. 重新启动服务:
```bash
./start.sh
```
> 千问接口采用 OpenAI 兼容模式,默认 `QWEN_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1`,模型 `qwen-plus`。
## 常用命令
```bash
# 后台运行
docker compose up -d --build
# 停止并删除容器
docker compose down
# 停止并删除容器 + 数据卷
docker compose down -v
```
## 后续可扩展
- 鉴权登录(手机号注册登录)
- 文件上传MinIO / OSS与预览
- 错题导出 PDF/Word
- 分数筛选(近 7 天 / 近 30 天 / 自定义)
公考助手PRD
一、文档基础信息
产品名称:公考助手(网页版)
文档版本V1.0.0
适用终端PC 网页端Chrome/Edge/Firefox 主流浏览器)
核心定位:一站式公考学习资源管理、错题归集、学习进度可视化工具
目标用户:公职类考试备考人群
二、版本修订记录
版本号
日期
修改内容
修改人
V1.0.0
2026-03-22
完整覆盖资源汇总、错题整理、过程管理三大模块
吴美晨
三、产品目标
统一管理备考多形态资源,解决资源分散、查找低效问题
标准化错题归集与复盘,支持导出训练,提升错题利用率
模考分数可视化追踪,直观呈现学习效果,辅助备考决策
四、全局规则
分类体系:固定五大分类 ——常识、数量关系、言语理解、判断推理、资料分析,支持用户自定义子标签
账号体系:网页端支持手机号注册 / 登录,数据云端同步,单用户独立存储空间
文件约束单文件≤50MB支持断点续传上传失败自动重试
交互规范:所有操作实时反馈(成功 / 失败 / 加载中),删除操作二次确认
五、核心功能模块(详细需求)
模块 1资源汇总
1.1 功能概述
支持多类型资源导入、分类标记、整合检索,实现备考资源统一管理。
1.2 资源导入类型 P0
1.2.1 链接类资源
支持导入:网站链接、云盘链接、公众号链接、小程序链接
录入方式:输入框粘贴链接 + 自定义标题 + 选择分类 + 添加标签,提交后生成资源卡片
展示字段:资源标题、链接地址、分类、标签、创建时间、操作栏(编辑 / 删除 / 打开)
1.2.2 文件类资源
支持格式PDF、Worddoc/docx、图片JPG/PNG/Webp
上传方式:点击上传 / 拖拽上传,支持批量上传
处理规则:
图片:生成缩略图,支持在线预览
文档支持在线预览PDF、下载Word 转网页预览
云端存储,不占用本地空间
1.3 分类与标记 P0
必选:五大核心分类(常识 / 数量 / 言语 / 判断 / 资料分析)
可选:自定义标签(如 “高频考点”“基础知识点”“刷题资料”)
筛选能力:按分类、标签、资源类型、创建时间筛选
排序能力:按创建时间、文件大小、名称排序
1.4 资源管理操作 P1
编辑:修改标题、分类、标签
删除:二次确认,删除后云端同步清除
检索:全局搜索资源标题 / 标签 / 链接关键词
批量操作:批量分类、批量删除、批量打标签
1.5 前端页面结构 P1
顶部:搜索框、批量操作按钮
左侧:分类导航栏、标签筛选栏
主体:资源卡片列表 / 列表视图切换
弹窗:资源导入弹窗、编辑弹窗
模块 2错题整理
2.1 功能概述
支持拍照 / 上传错题、添加知识点备注、分类归集、导出打印,服务错题反复训练。
2.2 错题录入
拍照上传:网页端调用摄像头拍照,支持多题连拍 P1可以不做
图片上传:本地相册 / 截图上传,支持裁剪、旋转
基础信息:错题图片 + 分类(必选,枚举值:常识、言语、数量、判断、资料、科学、其他)+ 知识点备注(可选)+ 难度标签(可选,枚举值:易、中、难)
备注规则:支持文本输入,最多 500 字,记录考点、错误原因、解题思路
2.3 错题分类与管理
分类:同五大核心分类,支持按分类查看错题集
排序:按录入时间、错误频次、知识点筛选
编辑:修改备注、更换分类、替换图片
删除:单题删除 / 批量删除,二次确认
2.4 错题导出
导出格式PDF带图片 + 备注、Word可编辑
导出范围:按分类导出、按时间导出、全量导出
导出样式:标题 + 错题图片 + 知识点备注 + 留白答题区
功能约束:单次最多导出 200 题,导出后浏览器自动下载
2.5 错题训练模式
预览模式:按分类浏览错题,隐藏答案 / 备注
检索模式:按知识点关键词检索错题
模块 3过程管理
3.1 功能概述
记录模考分数,自动生成折线图,可视化展示分数变化趋势。
3.2 模考分数录入
录入字段:考试名称(如 “2026 省考模考 1”、考试时间、总分0-200 分)、各模块分数(可选)
校验规则总分≤200非空校验时间不可选未来日期
编辑 / 删除:支持修改分数、删除记录,数据实时更新图表
3.3 数据可视化
图表类型折线图X 轴时间Y 轴:分数)
展示信息:分数节点标注、趋势线、最高分 / 最低分 / 平均分标注
交互:鼠标悬浮显示单次考试详情(名称、分数、时间)
筛选:按时间范围(近 7 天 / 近 30 天 / 自定义区间)筛选数据
3.4 数据统计
统计项:最高分数、最低分数、平均分数、提升分数(末次 - 首次)
展示位置:图表下方,数据实时计算
六、非功能性需求 P2
6.1 性能需求
页面加载首屏≤3s功能切换≤1s
上传速度10MB 文件≤10s带宽正常
并发:单用户操作无延迟,支持 1000 + 用户同时在线
6.2 兼容性需求
浏览器Chrome≥90、Edge≥90、Firefox≥88、Safari≥14
分辨率1920×1080、1366×768、2560×1440 自适应
6.3 存储与安全
存储:单用户资源 + 错题≤5GB云端自动备份
安全:用户数据加密,上传内容合规检测,防止恶意文件
6.4 体验需求
无复杂操作3 步内完成核心功能(上传 / 分类 / 导出)
错误提示清晰,引导用户修正操作
支持键盘快捷键(搜索 Ctrl+F、批量 Ctrl+A
七、业务流程
7.1 资源上传流程
点击导入→选择类型(链接 / 文件)→填写信息→选择分类→提交→存储成功→列表展示
7.2 错题上传流程
点击添加错题→拍照 / 上传图片→裁剪编辑→填写备注→选择分类→保存→错题集展示
7.3 模考分数录入流程
点击添加记录→填写信息→提交→图表自动更新→统计数据刷新
八、验收标准
资源导入:支持所有指定类型,分类筛选准确,预览 / 下载正常
错题功能:拍照上传稳定,备注可编辑,导出 PDF/Word 无乱码、格式规范
过程管理:分数录入无误,折线图实时渲染,数据统计准确
兼容性:主流浏览器无样式错乱、功能异常
性能:大文件上传、批量操作无卡顿,响应时间符合要求
九、后续迭代规划V2.0
新增 AI 错题解析、自动归类
新增学习计划制定、打卡提醒
支持资源分享、错题协作
移动端 H5 适配
数据导出 Excel、多维度统计报表