# memory-number-review **Repository Path**: git_mystore/memory-number-review ## Basic Information - **Project Name**: memory-number-review - **Description**: 按照艾宾浩斯记忆遗忘曲线进行滚动复习的微信小程序 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-22 - **Last Updated**: 2026-06-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 题号节拍 自用微信小程序“题号节拍”。它不是题库系统,只负责按计划抽取题号,并根据艾宾浩斯间隔提醒复习。 ## 项目结构 ```text question-beat ├── backend │ ├── pom.xml │ └── src │ ├── main │ │ ├── java/com/lk/memoryreview │ │ └── resources │ │ ├── application.yml │ │ └── schema.sql │ └── test └── frontend ├── app.json ├── app.ts ├── app.wxss ├── services ├── utils └── pages ``` ## 数据库初始化 1. 安装并启动 MySQL 8.x。 2. 使用 MySQL 客户端执行 `backend/src/main/resources/schema.sql`。 3. 按本地账号修改 `backend/src/main/resources/application.yml` 中的 `spring.datasource.username` 和 `spring.datasource.password`。 `schema.sql` 会创建 `memory_number_review` 数据库、四张业务表,以及 `id = 1` 的默认用户。 ## 后端启动 ```bash cd backend mvn spring-boot:run ``` 默认服务地址为 `http://localhost:8080`。第一版通过 `app.auth.fixed-user-id=1` 使用固定用户,后续可在 `CurrentUserProvider` 中接入 JWT 或微信 openid 登录。 ## 后端测试 ```bash cd backend mvn test ``` 当前包含核心复习日期计算逻辑的单元测试。 ## 小程序启动 1. 打开微信开发者工具。 2. 导入 `frontend` 目录。 3. 如果后端不是本机 `8080`,修改 `frontend/utils/config.ts` 的 `API_BASE_URL`。 4. 开发阶段可在微信开发者工具中关闭域名校验,或配置合法 request 域名。 ## REST API - `POST /api/plans` 创建计划 - `GET /api/plans` 查询计划列表 - `GET /api/plans/{id}` 查询计划详情 - `PUT /api/plans/{id}` 更新计划 - `DELETE /api/plans/{id}` 软删除计划 - `POST /api/plans/{planId}/draw` 随机抽取题号 - `GET /api/reviews/today` 查询今日全部待复习题号 - `GET /api/plans/{planId}/reviews/today` 查询某个计划今日待复习题号 - `POST /api/reviews/{itemId}/submit` 提交复习结果 - `GET /api/dashboard/summary` 首页统计 ## 验证流程 1. 初始化数据库并启动后端。 2. 在小程序中创建计划,例如 `Java 热门 200 题`,范围 `1-200`,每日新抽 `5`。 3. 回到首页点击抽新题。 4. 点击开始复习,提交“忘了 / 模糊 / 记住了”。 5. 刷新首页,确认今日待复习和今日完成数据变化。 ## 后续扩展点 - 在 `CurrentUserProvider` 接入 JWT 鉴权和微信 `openid` 登录。 - 增加复习历史页面,按计划和日期查看 `review_record`。 - 增加批量抽取入口,让首页抽题数量默认使用计划的 `dailyNewCount`。 - 增加本地通知或订阅消息,提醒每天到期题号。 - 增加导出统计,用于复盘长期背诵进度。