# question_bank **Repository Path**: pablocy/question_bank ## Basic Information - **Project Name**: question_bank - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-24 - **Last Updated**: 2025-01-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 单选题管理系统 ## 功能模块 ### 1. 题目查询 - 支持分页获取题目列表 - 支持按分类筛选 - 支持获取单个题目详情 ### 2. 题目管理 - 支持创建新题目 - 支持更新已有题目 - 支持删除题目 ### 3. 每日一题 - 获取今日题目 - 获取最近题目 ## 前端页面 ### 创建题目页面 访问 http://localhost:8080/create-question.html 可以打开题目创建页面。 #### 功能特性: - 输入题目描述(5-500字符) - 选择题目分类(中英文,2-20字符) - 添加4个选项(A/B/C/D) - 选择正确答案 - 输入答案解析 #### 安全特性: - 输入验证和格式检查 - XSS攻击防护 - 防重复提交保护 - CSRF保护 - 实时错误提示 - 提交状态显示 ## API 接口 ### 获取题目列表 GET /api/questions - 支持分页参数:page, size - 支持分类筛选:category ### 获取题目详情 GET /api/questions/{id} 返回数据格式: ### 创建题目 POST /api/questions 请求体示例(单选题): ### 更新题目 PUT /api/questions/{id} ### 删除题目 DELETE /api/questions/{id} ### 获取随机题目 GET /api/questions/random - 参数: - count: 需要获取的题目数量(默认10,最大100) - 返回:题目列表 ### 分类管理 #### 获取分类树 GET /api/categories/tree - 返回:完整的分类树形结构 ### 按分类获取题目 GET /api/questions/category/{categoryId} - 参数: - page: 页码(默认0) - size: 每页数量(默认10) - 返回:指定分类(包括子分类)下的所有题目 ### 获取分类题目统计 GET /api/questions/statistics/category - 返回:每个分类下的题目数量统计,包括单选题和多选题的数量 ### 每日一题接口 #### 获取每日题目 GET /api/daily-questions/today - 返回:当天及未来9天的10道题目,按日期排序 #### 获取最近题目 GET /api/daily-questions/recent - 参数: - days: 获取最近几天的题目(默认7天) - 返回:最近的题目列表 ### 每日一题管理接口 #### 设置单个每日一题 POST /api/admin/daily-questions/single - 参数: - questionId: 题目ID - publishDate: 发布日期(格式:YYYY-MM-DD) - type: 题目类型(可选,SINGLE/MULTIPLE) #### 批量设置每日一题 POST /api/admin/daily-questions/batch - 参数: - questionIds: 题目ID列表(最多10个) - startDate: 开始日期(格式:YYYY-MM-DD) - 规则: - 单选题数量至少6道 - 多选题数量最多4道 #### 获取题型统计 GET /api/admin/daily-questions/stats/type - 参数: - startDate: 开始日期(格式:YYYY-MM-DD) - endDate: 结束日期(格式:YYYY-MM-DD) - 返回: - total: 总题目数 - singleCount: 单选题数量 - multipleCount: 多选题数量 ## 数据库设计 ### categories表(分类表) - id: 主键 - parent_id: 父分类ID(顶级分类为null) - name: 分类名称 - level: 层级(1-类别,2-章节) - sort_order: 排序 - created_at: 创建时间 - updated_at: 更新时间 ### knowledge_points表(知识点表) - id: 主键 - category_id: 所属章节ID - name: 知识点名称 - description: 知识点描述 - sort_order: 排序 - created_at: 创建时间 - updated_at: 更新时间 ### questions表 - id: 主键 - description: 题目描述 - category_id: 所属章节ID - knowledge_point_id: 所属知识点ID - type: 题目类型(SINGLE-单选题,MULTIPLE-多选题) - correct_answer: 正确答案 - analysis: 答案解析 ### options表 - id: 主键 - question_id: 关联的题目ID - label: 选项标签 - value: 选项值(A/B/C/D) ## 项目结构