21 Commits

Author SHA1 Message Date
42c54ec90a feat: 错题练习模式添加重新答题功能
- 在QuestionCard组件中添加重新答题按钮
- 仅在错题练习模式(mode=wrong)且答案错误时显示
- 点击后重置当前题目状态,清空答案,允许重新作答
- 添加ReloadOutlined图标提升用户体验

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-12 22:07:35 +08:00
f8ce822436 fix: 修复答题界面抽屉点击已答题目时答案丢失的问题
- 添加 userAnswers 和 questionResults 状态,存储每道题的答案和结果
- 在 handleSubmit 中保存用户答案和答题结果到 Map
- 在 handleQuestionSelect 中恢复之前的答案和结果
- 更新 saveProgress 和 loadProgress,支持持久化用户答案和结果
- 现在点击抽屉中已答题目会正确显示之前的答案和结果

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 22:24:52 +08:00
yanlongqi
41cf72db12 fix: 修复搜索和随机模式的两个问题
后端改动:
- 修复搜索功能中的 PostgreSQL 类型问题,将 question_id 转换为文本类型进行搜索

前端改动:
- 优化随机刷题模式,避免在答题后选到相同题目

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 13:49:24 +08:00
yanlongqi
aaf1b78f3f feat: 优化随机刷题模式和进度显示
功能改进:
- 随机模式下已答题目不再重复出现
- 所有题目回答完成后显示总结页面
- 进度显示从"题号/总数"改为"已答数/总数"

UI修复:
- 修复小屏幕下悬浮球进度环错位问题
- 使用 SVG viewBox 实现自适应缩放
- 新增超小屏幕(≤380px)优化

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 11:16:46 +08:00
2fbeb23947 优化错题本功能和UI设计
1. 错题本系统重构:
   - 新增错题服务层 (wrong_question_service.go)
   - 实现智能推荐算法(基于掌握度和错误次数)
   - 添加掌握度追踪机制(连续答对6次标记为已掌握)
   - 支持错题筛选和排序功能
   - 新增错题统计趋势分析

2. UI优化:
   - 美化错题本界面,采用毛玻璃卡片设计
   - 添加四宫格统计卡片(错题总数、已掌握、未掌握、掌握率)
   - 优化筛选和操作按钮布局
   - 使用条状进度条显示掌握度
   - 改进响应式设计,优化移动端体验

3. 功能完善:
   - 修复判断题答案显示问题
   - 当掌握率100%时禁用"开始练习"按钮
   - 删除测试文件和 nul 文件
   - 更新文档 (CLAUDE.md)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 04:20:42 +08:00
b30647d81b 重构题目练习模式,优化用户体验
主要变更:
- 移除独立的随机题目 API 和快速开始卡片
- 添加应用图标 (icon.svg) 和品牌标识
- 优化首页布局,添加 logo 和"安全保密考试题库"标语
- 将随机模式改为答题页面内的可选开关(默认关闭)
- 改进错题练习逻辑,单独处理随机错题功能
- 同步更新 README.md 文档

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 22:45:44 +08:00
yanlongqi
fabc5c8f3e 优化答题页面导航系统和UI体验
主要改进:
- 新增题目导航抽屉组件,支持快速跳转到任意题目
- 新增悬浮球导航按钮,实时显示答题进度和统计信息
- 优化顶部导航栏,移除进度条,简化为返回、标题和设置三个按钮
- 将答题设置改为弹窗模式,提供更好的交互体验
- 优化题目列表卡片设计,减小高度使其更紧凑
- 题目列表显示题号、分类标签、题目内容和答题状态
- 支持答题进度持久化,刷新页面不丢失进度

技术细节:
- 使用 Ant Design 的 Drawer、Modal、Tag 等组件
- 采用 CSS Modules 实现样式隔离
- 使用 LocalStorage 保存答题进度和设置
- 响应式设计,适配移动端和PC端
- 修复 TypeScript 编译错误

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 17:45:53 +08:00
yanlongqi
2e526425a0 优化AI评分系统和答题体验
后端改进:
- 简答题AI评分改为必须成功,失败则返回错误提示
- 实现AI评分重试机制,最多重试5次,采用指数退避策略
- AI评分温度设置为0,确保评分结果更加一致和可预测
- 优化AI评分提示词,要求严格按照标准答案评分
- 添加详细的评分标准(85-100分/60-84分/40-59分/0-39分)
- 强化系统消息,要求评分客观、一致、可预测

前端改进:
- 添加自动下一题功能,答对后自动跳转(默认开启)
- 支持配置自动跳转延迟时间(1-10秒,默认2秒)
- 使用Popover组件优化设置UI,保持界面简洁
- 设置保存到localStorage,支持跨会话持久化

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 17:12:55 +08:00
yanlongqi
24d098ae92 添加AI流式题目解析功能
实现了基于OpenAI的流式题目解析系统,支持答题后查看AI生成的详细解析。

主要功能:
- 流式输出:采用SSE (Server-Sent Events) 实现实时流式输出,用户可看到解析逐字生成
- Markdown渲染:使用react-markdown渲染解析内容,支持标题、列表、代码块等格式
- 智能提示词:根据题目类型(选择题/填空题/判断题等)动态调整提示词
- 选择题优化:对选择题提供逐项分析和记忆口诀
- 重新生成:支持重新生成解析,temperature设为0确保输出一致性
- 优化加载:加载指示器显示在内容下方,不遮挡流式输出

技术实现:
- 后端:新增ExplainQuestionStream方法支持流式响应
- 前端:使用ReadableStream API接收SSE流式数据
- UI:优化加载状态显示,避免阻塞内容展示
- 清理:删除不再使用的scripts脚本文件

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 16:04:07 +08:00
yanlongqi
18b92e5452 将答题界面的导航和进度条整合并固定在顶部
主要更改:
- 整合导航和进度条:将两者放在同一个卡片中,避免重复的卡片边框,提升美观性
- 固定顶栏:顶部导航和进度条固定在页面顶部,滚动时始终可见
- 移动端优化:调整返回按钮位置和布局顺序,优化小屏幕显示效果
- 进度条组件简化:移除 Card 包裹,直接渲染 Progress 组件
- 响应式布局:为固定顶栏预留合适的空间,移动端、平板、PC端各自适配

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 11:23:06 +08:00
yanlongqi
3c97985af0 优化答题界面布局和视觉设计
主要更改:
- 头部布局优化:将返回按钮、标题、统计信息整合到一行,使用毛玻璃卡片样式
- 统计信息重构:将正确/错误次数移到头部右侧,采用紧凑的标签+数值设计
- 进度条优化:使用卡片包裹,添加毛玻璃效果,简化显示内容,只保留进度条
- 响应式优化:移动端自动调整为多行布局,平板和PC端保持横向一行显示
- 视觉统一:所有组件使用一致的毛玻璃风格和 macOS 设计语言

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 11:14:48 +08:00
5d1b088e06 打包成docker镜像 2025-11-05 09:37:29 +08:00
7c407db78b 修复判断题和填空题的答题问题
## 主要修复
- 修复判断题答案验证:前端提交时将字符串转换为布尔值
- 修复判断题答案显示:支持布尔值和字符串格式的正确显示
- 修复判断题选项顺序:保持"正确"在前、"错误"在后
- 修复填空题答案残留:题目切换时自动清空填空输入框
- 优化填空题验证:去除前后空格,添加详细日志

## 技术细节
- Question.tsx: 判断题提交前将 "true"/"false" 转为 boolean
- AnswerResult.tsx: formatAnswer 函数支持 boolean 类型
- QuestionCard.tsx: 判断题不排序,填空题切换时重置状态
- practice_handler.go: 填空题比较前 TrimSpace,添加调试日志

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 22:23:00 +08:00
yanlongqi
de8480a328 重构答题系统:组件拆分、进度跟踪、完成统计
主要改动:
1. 组件拆分:将Question.tsx(605行)拆分为4个子组件(303行)
   - QuestionProgress: 进度条和统计显示
   - QuestionCard: 题目卡片和答题界面
   - AnswerResult: 答案结果展示
   - CompletionSummary: 完成统计摘要

2. 新增功能:
   - 答题进度条:显示当前进度、正确数、错误数
   - 进度保存:使用localStorage持久化答题进度
   - 完成统计:答完所有题目后显示统计摘要和正确率
   - 从第一题开始:改为顺序答题而非随机

3. UI优化:
   - 移除右上角统计按钮
   - 移除底部随机题目、题目列表、筛选按钮
   - 移除"开始xxx答题"提示消息
   - 简化页面布局

4. 代码优化:
   - 提高代码可维护性和可测试性
   - 单一职责原则,每个组件负责一个特定功能

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 18:39:15 +08:00
yanlongqi
2bcf6bdacc 实现完整的用户统计功能和认证系统
**统计功能**:
- 新增UserAnswerRecord模型记录用户答题历史
- 实现GetStatistics接口,统计题库总数、已答题数、正确率
- 在提交答案时自动记录答题历史
- 前端连接真实统计接口,显示实时数据

**认证系统优化**:
- 新增Auth中间件,实现基于Token的身份验证
- 登录和注册时自动生成并保存Token到数据库
- 所有需要登录的接口都通过Auth中间件保护
- 统一处理未授权请求,返回401状态码

**错题练习功能**:
- 新增GetRandomWrongQuestion接口,随机获取错题
- 支持错题练习模式(/question?mode=wrong)
- 优化错题本页面UI,移除已掌握功能
- 新增"开始错题练习"按钮,直接进入练习模式

**数据库迁移**:
- 新增user_answer_records表,记录用户答题历史
- User表新增token字段,存储用户登录凭证

**技术改进**:
- 统一错误处理,区分401未授权和404未找到
- 优化答题流程,记录历史和错题分离处理
- 移除异步记录错题,改为同步处理保证数据一致性

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 15:26:27 +08:00
yanlongqi
9ca8f123e7 优化UI交互体验:整合用户中心到首页并改进答题流程
- 删除独立的Profile页面,将用户信息整合到Home页面顶部
- 在首页添加用户头像、昵称、用户名显示和退出登录按钮
- 优化响应式布局:移动端和PC端用户信息区域自适应
- 答题页面新增返回首页按钮,方便导航
- 实现答对自动跳转:答案正确后1秒自动进入下一题
- 更新底部导航栏:移除"我的"选项,保留首页和答题
- 调整Header布局为flex布局,支持左右分区显示

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 14:29:40 +08:00
yanlongqi
e722180c07 重构UI框架并实现响应式设计
- UI框架:从 antd-mobile 迁移到 Ant Design,支持更好的跨平台体验
- 响应式设计:实现移动端、平板、PC端全方位适配
  - 移动端:保留底部导航栏,优化触摸交互
  - PC端:隐藏底部导航,采用居中布局
- 样式重构:所有组件样式迁移到 CSS Modules(.module.less)
- 功能优化:
  - 练习题答题改进:始终返回正确答案便于用户学习
  - 添加题目编号字段(question_id)
  - 修复判断题选项:由 A/B 改为 true/false
- 组件优化:
  - TabBarLayout 重构,支持响应式显示/隐藏
  - 所有页面组件采用 Ant Design 组件替换原 antd-mobile 组件
  - 统一使用 @ant-design/icons 图标库
- 文档同步:更新 CLAUDE.md 中 UI 组件使用规范和响应式设计说明

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 13:03:59 +08:00
a7ede7692f 实现完整的题目练习功能模块
- 后端功能:
  * 新增练习题数据模型和数据库表结构
  * 实现题目列表、随机题目、提交答案等API接口
  * 支持5种题型:单选、多选、判断、填空、简答
  * 判断题自动生成"对/错"选项
  * 前后端类型映射(single/multiple/judge/fill/short)

- 前端功能:
  * 新增首页,展示5种题型选择卡片和统计信息
  * 完善答题页面,支持所有题型的渲染和答题
  * 填空题特殊渲染:将****替换为横线输入框
  * 实现题目列表、筛选、随机练习等功能
  * 优化底部导航,添加首页、答题、我的三个标签

- 工具脚本:
  * 新增题目数据导入脚本
  * 支持从JSON文件批量导入题库

- 文档更新:
  * 更新CLAUDE.md和README.md,记录新增功能

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 02:39:18 +08:00
92e8c9a94c 实现完整的登录注册功能并优化前端组件
- 实现登录页面:
  - 添加登录和注册表单切换功能
  - 使用antd-mobile组件(Form, Input, Button, Toast)
  - 白色背景设计,标题使用主题色
  - 表单验证和错误提示
  - 已登录用户自动重定向

- 完善用户认证:
  - 路由保护,未登录用户重定向到登录页
  - 用户信息保存到localStorage
  - Profile页面支持退出登录

- 后端改进:
  - 启用CORS中间件支持跨域请求

- 更新开发规范:
  - 在CLAUDE.md中添加前端开发规范
  - 明确UI组件使用原则:优先使用antd-mobile组件

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 23:56:53 +08:00
441eb215f6 将CSS迁移到Less并添加用户认证功能
主要变更:
- 将所有CSS文件迁移到Less预处理器
- 配置Vite支持Less编译
- 使用Less变量、嵌套和父选择器优化样式代码
- 添加用户注册和登录功能
- 实现用户认证中间件和保护路由
- 新增Profile和Login页面
- 添加底部导航栏组件TabBarLayout
- 更新CLAUDE.md为中文文档

技术改进:
- Less变量统一管理主题色和间距
- CSS嵌套提高代码可读性和可维护性
- 模块化样式组织更清晰

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 23:21:38 +08:00
yanlongqi
f791c235e1 添加题目练习功能模块
实现了完整的题目练习功能,包括后端API和前端界面:
- 后端新增题目管理handlers和数据模型
- 前端新增题目展示页面和API调用模块
- 添加题库数据文件支持
- 更新路由配置以集成新功能

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 20:26:53 +08:00