4 Commits

Author SHA1 Message Date
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
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
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
52d50b97aa 集成PostgreSQL数据库并实现用户注册登录功能
主要改动:
- 集成 GORM 和 PostgreSQL 驱动
- 创建数据库配置模块 (pkg/config)
- 实现数据库连接和初始化 (internal/database)
- 更新用户模型支持 GORM 和 bcrypt 密码加密
- 重构用户注册和登录处理器使用数据库存储
- 删除旧的 users.json 文件存储方式
- 更新 README.md 和 CLAUDE.md 文档

技术栈:
- GORM v1.31.1 - ORM框架
- PostgreSQL - 数据库
- bcrypt - 密码加密

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 01:12:36 +08:00