16 Commits

Author SHA1 Message Date
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
dd2b197516 优化题库管理系统:实现自动编号、动态表单和答案回显
**后端优化**
- 实现题目编号自动生成机制,按题型连续编号
- 移除分页限制,返回所有题目
- 支持题型筛选和关键词搜索
- 题目按题型和编号排序
- DTO 中包含答案字段,支持编辑时回显
- 选项按字母顺序排序

**前端优化**
- 移除手动输入题目ID,系统自动生成
- 实现动态表单,支持添加/删除选项和答案
- 添加题型筛选下拉框
- 添加搜索框,支持搜索题目内容和编号
- 优化答案回显逻辑,直接使用后端返回的答案数据
- 表格显示题目编号列

**修复问题**
- 修复 PostgreSQL SQL 语法错误
- 修复编辑题目时答案无法正确回显的问题
- 修复题目列表不完整的问题

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 22:00:29 +08:00
yanlongqi
9e37cf8225 在首页添加错题数量统计显示
主要改动:
1. 后端修改:
   - 在 UserStatistics 模型中添加 wrong_questions 字段
   - 在 GetStatistics 接口中查询并返回错题总数(包括已掌握和未掌握)

2. 前端修改:
   - 在 Statistics 接口中添加 wrong_questions 字段
   - 在首页统计卡片中新增"错题数量"显示
   - 调整布局为4列展示(题库总数、已答题数、错题数量、正确率)

3. UI优化:
   - 错题数量使用红色显示(#ff4d4f)
   - 响应式布局:移动端每行2个,PC端每行4个
   - 与错题本页面的统计数据保持一致

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 19:28:57 +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
6082ca0bf3 添加错题删除功能和优化错题列表
**新增功能**:
- 新增删除单个错题的接口 (DELETE /api/wrong-questions/:id)
- 错题列表每个项添加删除按钮
- 支持单独删除不想要的错题记录

**技术实现**:
- 后端: 实现DeleteWrongQuestion处理器,确保用户只能删除自己的错题
- 前端: 添加deleteWrongQuestion API 调用
- UI: 在List.Item中添加actions属性,显示删除按钮
- 删除时显示二次确认弹窗

**注意事项**:
- 删除需要确认,防止误操作
- 删除成功后自动刷新列表
- 仅显示操作用户自己的错题

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 15:42:59 +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
6446508954 实现完整的错题本功能模块
后端实现:
- 创建错题数据模型和数据库表结构
- 实现错题记录、查询、统计、标记和清空API
- 答题错误时自动记录到错题本
- 支持重复错误累计次数和更新时间

前端实现:
- 创建错题本页面,支持查看、筛选和管理错题
- 实现错题统计展示(总数、已掌握、待掌握)
- 支持标记已掌握、清空错题本和重做题目
- 在首页和个人中心添加错题本入口
- 完整的响应式设计适配移动端和PC端

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 13:44:51 +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
9540478583 重构登录页面UI并完善项目文档
主要改动:
- 重新设计登录页面,使用原生input替代antd-mobile组件以更好控制样式
- 添加密码可见性切换功能(眼睛图标)
- 实现登录/注册切换UI,注册链接移至底部
- 优化输入框样式,添加明显的边框和背景色
- 实现移动端防缩放功能(touch-action + JS事件监听)
- 配置Vite代理解决CORS问题,API请求使用相对路径
- 完善CLAUDE.md和README.md文档,添加文档同步更新规范
- 更新技术栈说明,明确使用yarn作为包管理工具

技术细节:
- 渐变背景(紫色主题)
- 白色输入框带半透明边框,聚焦时显示光晕效果
- 防止移动端双指缩放和双击缩放
- Vite代理配置: /api/* -> http://localhost:8080

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 00:35:17 +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
yanlongqi
6120d051aa 添加前端项目和更新.gitignore配置
- 添加基于 Vite + React + TypeScript 的前端项目
- 配置 .gitignore 排除 node_modules 和构建产物
- 添加 web/.gitignore 用于前端项目的忽略规则
- 包含完整的源代码、配置文件和依赖锁定文件

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 14:22:48 +08:00