gwy-exam/docs/开发计划.md

8.3 KiB
Raw Permalink Blame History

备考通|开发计划

版本v1.0 · 2026-08-27
说明:这是最终版本的实施顺序,不代表功能分期;所有工作完成后才视为项目交付。

1. 执行方式

采用“基础设施先行、纵向功能闭环、最后统一验收”的顺序。每项工作必须同时具备代码、可运行结果和验证记录,避免只完成页面而没有接口或持久化。

执行约束:

  • 后端接口 Schema 先于前端 API 生成。
  • 数据模型先于业务 Service业务 Service 先于页面联调。
  • 每完成一个业务闭环,立即验证刷新后的 JSON 持久化结果。
  • PC 与 Mobile 从第一张页面开始同步适配,不集中到末尾处理。
  • 生成代码不手工修改,接口变更必须重新生成并检查差异。

2. 任务顺序

任务 01项目初始化与目录整理

工作创建前后端目录、TypeScript 配置、包管理脚本、环境变量模板、基础 Git 忽略规则;按照需求文档拆分前端 apistoreslayoutsviewscomponentscomposablesstylestypesutils 目录;将已有散落代码移动到明确归属的位置,建立统一入口。

产出:前后端分别可以启动;前端目录结构与需求文档一致;开发、构建、类型检查命令可执行。

完成标准:新环境按 README 操作可以启动前后端;页面、样式、请求和状态没有继续堆在 App.vue 或单一目录;新增页面和功能都有明确放置位置;启动失败时有明确错误。

任务 02JSON Store 与演示数据

工作:实现 readDatawriteDataupdateData,建立数据文件路径常量和缺失文件初始化;录入演示题、用户档案、计划、模考和要闻数据。

产出:data/ 可独立运行;写入使用临时文件后原子替换。需要兼容开发/生产两套环境。

完成标准:服务重启后数据仍然存在;任一 JSON 文件缺失不会导致服务崩溃;非法 JSON 有可定位错误。

任务 03后端路由 Schema 与 OpenAPI

工作:注册 Fastify、统一错误处理、请求日志、Zod 校验;为每个业务接口补齐请求和响应 Schema导出静态 OpenAPI 文档。

产出:/api/openapi.json、Swagger UI、错误响应格式、OpenAPI 导出脚本。

完成标准:所有已登记接口都出现在文档中;请求参数错误能返回统一错误;openapi:export 可重复执行。

任务 04前端 API 自动生成与基础视觉壳层

工作:接入 OpenAPI 代码生成完善请求客户端、路由、Pinia 基础 store落地设计 Token、全局布局、PC 侧栏和 Mobile TabBar。

产出:client/src/api/generated/;页面可在桌面和移动断点切换;统一加载、空数据、错误提示组件。

完成标准:前端业务代码不直接写 URL 和 fetch;修改后端 Schema 能重新生成类型;首页路由能通过真实接口加载。

任务 05数据中枢纵向闭环

工作:实现概览、趋势、掌握度、今日任务和薄弱考点接口及页面;接入统计计算。

产出PC 数据看板和 Mobile 首页均使用同一份后端数据。

完成标准:存在演示数据时指标、图表和任务可见;清空数据时显示合理空状态;刷新后结果一致。

任务 06计划、个人中心、设置与要闻

工作:实现计划任务创建/切换、个人档案、设置修改、要闻列表/详情;接入 Markdown 渲染和 JSON 要闻数据。

产出:计划、个人、设置和要闻页面的接口、页面和持久化。

完成标准:任务状态变更能影响首页统计;设置刷新后保留;要闻详情支持 MarkdownRSS/API/URL 入口返回明确占位反馈。

任务 07题库管理与导入导出

工作实现题目列表筛选、JSON 导入、内容指纹去重、后台 UUID 生成、导出和删除确认。

产出:题库管理页面、导入结果报告、导出文件。

完成标准:导入文件不含 ID 也能成功;重复题目被跳过;错误题目不影响有效题目导入;导出的数据可再次导入。

任务 08刷题与结果闭环

工作实现模块选题、5/10/15 分钟组卷、自定义组卷、会话、计时、作答、提交、结果和标准解析。

产出:可从首页或刷题中心开始一套题并完成提交;记录写入 JSON。

完成标准:答案、正确率、耗时和完成状态准确;中途刷新按设计处理;提交后不能重复计入同一题。

任务 09错题复习闭环

工作:答错自动沉淀错题;实现待复习筛选、复习提交、+1/+3/+7 天安排、连续答对后标记掌握、再次答错回到当天。

产出:错题本、错题详情、复习操作和数据中枢联动。

完成标准:修改系统日期或使用测试时间可验证每个复习节点;复习结果影响掌握度和待复习数量。

任务 10模考分析

工作:实现行测模考录入、列表、趋势、模块分数、目标分差和较上次变化;补充无数据空状态。

产出:模考分析页和成绩录入页。

完成标准:只出现行测字段;至少两条记录能生成趋势;删除或修改记录后分析同步更新。

任务 11AI 讲解与申论占位

工作:实现 OpenAI 兼容客户端、Token 配置读取、结构化讲解、超时处理和题库解析回退;完成申论占位页面。

产出AI 讲解接口、前端结果展示、未配置和失败提示。

完成标准:配置有效 Token 能完成一次讲解未配置或超时不会阻塞刷题结果Token 不出现在前端和日志中。

任务 12联调与异常收口

工作逐接口联调补齐空数据、非法导入、重复提交、文件写入失败、AI 失败和网络断开处理;统一按钮禁用和提示文案。

产出:接口检查清单、边界场景记录、修复提交。

完成标准:主要用户流程无未处理异常;所有错误都能被用户理解;服务端日志能定位问题但不泄露敏感配置。

任务 13原型视觉验收与响应式修正

工作:对照原型逐页校准尺寸、间距、字号、颜色、图标、卡片层级和交互状态;检查 390px 手机宽度、平板宽度和桌面宽度。

产出:视觉差异修复、页面截图检查记录。

完成标准:导航、主要卡片、按钮和核心数据层级与原型一致;无横向溢出;触控目标可操作。

任务 14交付整理

工作:整理 README、环境变量示例、启动命令、题库格式说明、AI 配置说明和数据目录说明;执行生产构建。

产出:可交付代码、运行文档、最终 OpenAPI 文件和验收清单。

完成标准:清空依赖缓存后可重新安装并构建;生产构建成功;文档中的命令与实际脚本一致。

3. 关键依赖关系

初始化
  ↓
JSON Store ───────┐
  ↓              │
数据模型/Schema   │
  ↓              │
OpenAPI ─→ 前端 API 生成
  ↓              ↓
业务 Service ─→ 页面联调
  ↓
统计、错题、AI
  ↓
双端验收与交付

以下事项不得提前绕过依赖:

  • 页面不得在接口未定时自行定义重复类型。
  • 统计页面不得使用仅存在于前端的模拟计算。
  • 错题复习必须基于真实作答记录,不能单独维护一套展示数字。
  • AI 页面必须复用刷题结果中的题目和用户答案。

4. 每项任务的完成检查

完成一项任务前,按以下顺序检查:

  1. 启动前端并使用浏览器打开对应页面,在与原型图一致的视口尺寸下截图;将实现截图与对应原型逐项对比,记录布局、尺寸、间距、颜色、字体、图标和内容差异,修正明显偏差后再继续。
  2. 使用浏览器实际操作一遍本任务涉及的核心流程,确认页面反馈、路由跳转和数据变化符合预期。
  3. 正常流程是否可运行。
  4. 空数据是否可展示。
  5. 非法输入是否有反馈。
  6. 写入后重启服务是否仍然正确。
  7. PC 与 Mobile 是否都可操作。
  8. OpenAPI、生成 API 和实际实现是否一致。
  9. 是否引入了需求之外的抽象或依赖。

全部任务完成后,再执行一次从“首次启动 → 开始刷题 → 提交 → 错题复习 → 录入模考 → 查看数据中枢”的完整验收流程。