9 Commits

Author SHA1 Message Date
62281b5047 重构试卷分享系统:修复类型不匹配问题
本次提交重构了试卷分享功能,从"副本模式"改为"关联表模式",并修复了关键的类型不匹配问题。

## 主要更新

### 后端架构重构
- 新增 ExamShare 关联表模型,替代原有的试卷副本方式
- 修复 User.ID (int64) 与 ExamShare 外键的类型不匹配问题
- 更新所有相关 API 以使用新的关联表架构
- 添加 IsAccessibleBy 和 GetAccessibleExams 权限检查方法

### 类型系统修复
- ExamShare.SharedByID/SharedToID: uint → int64
- IsAccessibleBy/GetAccessibleExams 参数: uint → int64
- 修复所有涉及用户ID类型转换的代码

### 新增工具
- cmd/migrate_exam_shares.go: 数据迁移脚本(旧数据迁移)
- cmd/cleanup/main.go: 数据库表清理工具

### API 更新
- ShareExam: 创建分享关联记录而非复制试卷
- GetExamList: 返回分享人信息和参与人数统计
- GetExamRecord: 支持查看共享试卷的其他用户记录
- GetExamRecordList: 按试卷ID查询所有用户的考试记录

### 前端更新
- 更新 TypeScript 类型定义以匹配新的 API 响应
- 添加分享人标签显示("来自 XXX")
- 考试记录列表显示所有参与者信息

## 技术细节
- 使用 GORM 外键关联和 Preload 优化查询
- 添加唯一索引防止重复分享
- 事务保护数据一致性
- 软删除支持数据恢复

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 22:32:54 +08:00
e651910e74 refactor: 数据库模型优化和答题逻辑重构
主要变更:
- 数据库ID字段统一从 uint 改为 int64,提升数据容量和兼容性
- 重构答题检查逻辑,采用策略模式替代 switch-case
- 新增 PracticeProgress 模型,支持练习进度持久化
- 优化错题本系统,自动记录答题进度和错误历史
- 添加 lib/pq PostgreSQL 驱动依赖
- 移除错题标签管理 API(待后续迁移)
- 前端类型定义同步更新,适配后端模型变更

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-13 03:28:39 +08:00
4c06a8acd5 feat: 实现完整的考试系统
实现了包含试卷管理、考试答题、AI智能阅卷的完整考试流程。

**后端新增功能**:
- 试卷管理: 创建试卷、获取试卷列表和详情
- 考试流程: 开始考试、提交答案、查询结果
- AI阅卷: 异步阅卷系统,支持简答题和论述题AI评分
- 实时答题: 题目级别的答案保存和加载
- 数据模型: ExamRecord(考试记录)、ExamUserAnswer(用户答案)

**前端新增页面**:
- 考试管理页面: 试卷列表展示,支持开始/继续考试
- 答题页面: 左侧题目列表、右侧答题区,支持实时保存
- 成绩查看页面: 展示详细评分结果和AI评语

**技术亮点**:
- 按题型固定分值配置(总分100分)
- 异步阅卷机制,提交后立即返回
- 答案实时保存,支持断点续答
- AI评分集成,智能评判主观题
- 响应式设计,适配移动端和PC端

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-11 03:55:24 +08:00
52fff11f07 feat: 实现模拟考试功能
## 后端实现
- 添加考试数据模型 (Exam)
- 实现考试生成API (/api/exam/generate)
- 实现获取考试详情API (/api/exam/:id)
- 实现提交考试API (/api/exam/:id/submit)
- 支持按题型随机抽取题目
- AI智能评分(简答题和论述题)
- 自动计算总分和详细评分

## 前端实现
- 首页添加"模拟考试"入口
- 考试准备页:显示考试说明,选择在线/打印模式
- 在线答题页:按题型分组显示,支持论述题二选一
- 试卷打印页:A4排版,支持打印试卷/答案
- 成绩报告页:显示总分、详细评分、错题分析

## 核心特性
- 随机组卷:填空10题、判断10题、单选10题、多选10题、简答2题、论述题2选1
- 智能评分:使用AI评分论述题,给出分数、评语和建议
- 答题进度保存:使用localStorage防止刷新丢失
- 打印优化:A4纸张、黑白打印、合理排版
- 响应式设计:适配移动端、平板和PC端

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 20:45:30 +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
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