docs: add redesigned requirements and project structure scaffold
This commit is contained in:
88
PROJECT_STRUCTURE.md
Normal file
88
PROJECT_STRUCTURE.md
Normal file
@@ -0,0 +1,88 @@
|
||||
# Memora 前后端项目结构(重设计)
|
||||
|
||||
> 目标:在现有 `memora-api` / `memora-web` 基础上,采用更清晰的领域分层与模块化结构,便于持续开发。
|
||||
|
||||
## 1. 根目录结构
|
||||
|
||||
```text
|
||||
memora/
|
||||
├── README.md
|
||||
├── REQUIREMENTS.md # 需求文档(本次新增)
|
||||
├── PROJECT_STRUCTURE.md # 项目结构文档(本次新增)
|
||||
├── docker-compose.yml
|
||||
├── memora-api/ # 后端服务(Go + Gin)
|
||||
├── memora-web/ # 前端应用(Vue3 + Vite)
|
||||
└── memora-engine/ # 记忆引擎(可逐步独立)
|
||||
```
|
||||
|
||||
## 2. 后端结构(memora-api)
|
||||
|
||||
```text
|
||||
memora-api/
|
||||
├── cmd/
|
||||
│ └── server/ # 程序入口(建议逐步迁移 main)
|
||||
├── internal/
|
||||
│ ├── app/ # 应用启动编排
|
||||
│ ├── bootstrap/ # 配置、数据库、中间件初始化
|
||||
│ ├── domain/ # 领域模型与领域服务(建议新增)
|
||||
│ ├── repository/ # 数据访问抽象(建议新增)
|
||||
│ ├── service/ # 业务服务
|
||||
│ ├── handler/ # HTTP Handler
|
||||
│ ├── router/ # 路由注册
|
||||
│ ├── middleware/ # 中间件
|
||||
│ ├── request/ # 请求 DTO
|
||||
│ ├── response/ # 响应 DTO
|
||||
│ └── model/ # 数据库模型
|
||||
├── sql/
|
||||
├── audio/
|
||||
└── config*.yaml
|
||||
```
|
||||
|
||||
### 后端分层规则
|
||||
- Handler 只做参数校验和调用 service
|
||||
- Service 负责业务流程编排
|
||||
- Repository 负责数据库读写(GORM)
|
||||
- Domain 放核心规则(SRS 计算、复习策略)
|
||||
|
||||
## 3. 前端结构(memora-web)
|
||||
|
||||
```text
|
||||
memora-web/
|
||||
├── src/
|
||||
│ ├── app/ # 应用启动、全局注入
|
||||
│ ├── router/ # 路由
|
||||
│ ├── stores/ # Pinia 状态管理
|
||||
│ ├── services/ # API 请求封装
|
||||
│ ├── modules/ # 业务模块(建议新增)
|
||||
│ │ ├── auth/
|
||||
│ │ ├── words/
|
||||
│ │ ├── study/
|
||||
│ │ ├── review/
|
||||
│ │ └── stats/
|
||||
│ ├── views/ # 页面视图
|
||||
│ ├── components/ # 通用组件
|
||||
│ ├── composables/ # 组合式逻辑
|
||||
│ ├── utils/
|
||||
│ ├── styles/
|
||||
│ └── assets/
|
||||
└── public/
|
||||
```
|
||||
|
||||
### 前端模块化规则
|
||||
- 以 `modules/*` 聚合业务(API、store、types、hooks)
|
||||
- `views` 负责页面组合,不写重业务逻辑
|
||||
- 通用组件与业务组件分离
|
||||
|
||||
## 4. 开发顺序建议(不断完善)
|
||||
1. **认证闭环**:登录、鉴权拦截、会话保持
|
||||
2. **词库模块**:列表、详情、搜索、标签过滤
|
||||
3. **学习模块**:学习会话 + 答题提交
|
||||
4. **复习模块**:SRS 调度 + 每日任务
|
||||
5. **统计模块**:趋势图 + 连续学习天数
|
||||
6. **稳定性**:日志、错误码、单测、性能优化
|
||||
|
||||
## 5. 本次交付
|
||||
- 已在根目录新增:
|
||||
- `REQUIREMENTS.md`
|
||||
- `PROJECT_STRUCTURE.md`
|
||||
- 后续将按本文档持续推进实现与代码重构。
|
||||
86
REQUIREMENTS.md
Normal file
86
REQUIREMENTS.md
Normal file
@@ -0,0 +1,86 @@
|
||||
# Memora 需求文档(重设计版)
|
||||
|
||||
## 1. 项目目标
|
||||
Memora 是一个以「长期记忆留存」为目标的背单词系统,面向中文学习者,提供:
|
||||
- 单词学习与复习闭环(学习 → 测试 → 复习)
|
||||
- 基于遗忘曲线的复习调度
|
||||
- 数据可视化与学习反馈
|
||||
- Web 端优先,后续支持移动端复用 API
|
||||
|
||||
---
|
||||
|
||||
## 2. 用户角色
|
||||
- 普通用户:学习、复习、查看统计
|
||||
- 管理员(可选):词库管理、运营配置、异常数据处理
|
||||
|
||||
---
|
||||
|
||||
## 3. 核心功能需求
|
||||
|
||||
### 3.1 账户与身份
|
||||
- 用户注册/登录(邮箱或手机号,后续可扩展 OAuth)
|
||||
- Token 鉴权(JWT)
|
||||
- 个人学习偏好(每日目标、提醒时间、难度偏好)
|
||||
|
||||
### 3.2 词库与学习内容
|
||||
- 词书管理:内置词书 + 自定义词书
|
||||
- 单词详情:拼写、音标、词性、释义、例句、发音
|
||||
- 标签体系:阶段(新词/熟词/难词)、来源、主题
|
||||
|
||||
### 3.3 学习流程
|
||||
- 新词学习:按计划推送
|
||||
- 测试模式:拼写题、选择题、释义匹配(可扩展)
|
||||
- 学习结果记录:正确率、耗时、连续正确次数
|
||||
|
||||
### 3.4 复习调度(核心)
|
||||
- 基于 SRS(间隔重复)策略生成复习计划
|
||||
- 每日待复习队列
|
||||
- 复习结果回写并动态调整下次复习时间
|
||||
|
||||
### 3.5 统计与反馈
|
||||
- 今日学习量、复习量、正确率
|
||||
- 连续学习天数
|
||||
- 周/月趋势图
|
||||
- 难词排行与建议复习列表
|
||||
|
||||
### 3.6 系统能力
|
||||
- 统一错误码与错误响应
|
||||
- 审计日志(关键操作)
|
||||
- 基础监控(接口耗时、错误率)
|
||||
|
||||
---
|
||||
|
||||
## 4. 非功能需求
|
||||
- 可维护性:前后端分层清晰,模块边界明确
|
||||
- 可扩展性:后续可拆分记忆引擎为独立服务
|
||||
- 性能:常用接口 P95 < 300ms(本地单机目标)
|
||||
- 安全性:鉴权、限流、输入校验、敏感信息脱敏
|
||||
- 可测试性:核心调度逻辑具备单元测试
|
||||
|
||||
---
|
||||
|
||||
## 5. API 需求(第一阶段)
|
||||
- `POST /api/v1/auth/register`
|
||||
- `POST /api/v1/auth/login`
|
||||
- `GET /api/v1/words`(分页)
|
||||
- `GET /api/v1/words/:id`
|
||||
- `POST /api/v1/study/sessions`
|
||||
- `POST /api/v1/study/answers`
|
||||
- `GET /api/v1/review/today`
|
||||
- `POST /api/v1/review/submit`
|
||||
- `GET /api/v1/stats/overview`
|
||||
|
||||
---
|
||||
|
||||
## 6. 里程碑
|
||||
- M1:基础骨架 + 认证 + 词库查询 + 学习记录
|
||||
- M2:SRS 调度 + 每日复习 + 统计面板
|
||||
- M3:体验优化 + 管理能力 + 稳定性增强
|
||||
|
||||
---
|
||||
|
||||
## 7. 验收标准(当前阶段)
|
||||
1. 能完成注册/登录并访问受保护接口
|
||||
2. 能查看单词并完成一次学习-复习提交
|
||||
3. 能生成当日复习任务
|
||||
4. Web 端可展示学习概览数据
|
||||
0
memora-api/cmd/server/.gitkeep
Normal file
0
memora-api/cmd/server/.gitkeep
Normal file
0
memora-api/internal/domain/.gitkeep
Normal file
0
memora-api/internal/domain/.gitkeep
Normal file
0
memora-api/internal/repository/.gitkeep
Normal file
0
memora-api/internal/repository/.gitkeep
Normal file
0
memora-web/src/modules/auth/.gitkeep
Normal file
0
memora-web/src/modules/auth/.gitkeep
Normal file
0
memora-web/src/modules/review/.gitkeep
Normal file
0
memora-web/src/modules/review/.gitkeep
Normal file
0
memora-web/src/modules/stats/.gitkeep
Normal file
0
memora-web/src/modules/stats/.gitkeep
Normal file
0
memora-web/src/modules/study/.gitkeep
Normal file
0
memora-web/src/modules/study/.gitkeep
Normal file
0
memora-web/src/modules/words/.gitkeep
Normal file
0
memora-web/src/modules/words/.gitkeep
Normal file
Reference in New Issue
Block a user