Files
memora/PROJECT_STRUCTURE.md

89 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`
- 后续将按本文档持续推进实现与代码重构。