# 错题本 **Repository Path**: daviddanzone/mistake-notebook ## Basic Information - **Project Name**: 错题本 - **Description**: 使用AI构建的错题本,实现错题重刷管理功能。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-27 - **Last Updated**: 2026-08-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 错题本 Error Notebook 专注于**错题位置记录**与**艾宾浩斯间隔重复调度**的 Web 应用。记录错题的书籍、页码、题号,支持 Markdown 编写题目描述与解题过程,内置间隔重复算法自动安排重刷计划。 ## 项目结构 ``` ├── docs/ │ ├── deploy.md ← 部署指南 │ └── design-doc.md ← 设计文档(数据库 / API / 页面) ├── backend/ ← Spring Boot 3 + MyBatis-Plus + Flyway ├── frontend/ ← React 18 + TypeScript + Ant Design 5 + Zustand ├── docker-compose.yml ← Docker 生产部署编排 ├── deploy.sh ← 一键部署脚本 └── .gitignore ``` ## 功能 | 模块 | 说明 | |------|------| | 用户鉴权 | 注册 / 登录 / JWT Token 刷新,Spring Security | | 科目 & 书籍 | 自定义科目 → 书籍 → 错题三级层级 | | 错题管理 | 增删改查、分页筛选、Markdown 题目描述 + 解题过程 | | 知识标签 | 知识点标签管理,关联错题 | | 重刷调度 | 艾宾浩斯间隔重复 + 手动模式,自动计算下次重刷时间 | | 今日错题 | 独立页面展示今日到期错题,一键记录重刷结果 | | 数据统计 | 今日维度统计 + 复习趋势折线图 + 活跃度热力图 | | 图片上传 | Markdown 粘贴图片自动上传,按日期分层存储 | ## 快速开始(本地开发) ### 1. 创建数据库 ```bash mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS error_notebook DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" ``` Flyway 在首次启动时自动执行 `db/migration/` 下的版本化 SQL 脚本。 ### 2. 后端 ```bash cd backend # 修改 src/main/resources/application.yml 中的数据库连接信息 mvn spring-boot:run ``` ### 3. 前端 ```bash cd frontend npm install npm run dev ``` ## 生产部署 详见 [`docs/deploy.md`](docs/deploy.md)。 ```bash # 服务器上 git clone https://gitee.com/daviddanzone/mistake-notebook.git cd mistake-notebook echo 'DB_PASSWORD=你的密码' >> .env chmod +x deploy.sh ./deploy.sh ``` ## 技术栈 | 层 | 技术 | |----|------| | 前端 | React 18 + TypeScript + Ant Design 5 + Zustand + Vite | | 后端 | Spring Boot 3 + JDK 17 + MyBatis-Plus 3.5 | | 数据库 | MySQL 8.0 + Flyway 版本化管理 | | 鉴权 | Spring Security + JWT (jjwt) | | 部署 | Docker + Docker Compose + Nginx | ## 数据库迁移版本 | 版本 | 说明 | |------|------| | V1 | 初始化全部表结构 | | V2 | 添加 `review_mode` 字段 | | V3 | 添加 `knowledge_tag` 表 | | V4 | 添加逻辑删除字段 | | V5 | 添加用户主题字段 | | V6 | 增强知识标签字段 | | V7 | `next_review_time` 可为空 | | V8 | 标签科目逻辑删除 | | V9 | 修复标签唯一约束 | | V10 | 移除外键约束 | | V11 | 添加用户资料字段 |