Files
fragmemo/docs/架构方案.md
T
2026-07-29 20:08:09 +08:00

116 lines
4.7 KiB
Markdown
Raw 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.
---
name: fragmemo-plan
overview: "在 fragmemo 总目录下分三个独立仓库 + docs 构建笔记应用"
todos:
- content: "Phase 1 - 脚手架:memo_server 后端骨架 + memo.fragford.cn 前端骨架"
status: pending
priority: high
- content: "Phase 2 - 用户认证系统:JWT 注册/登录 + 前端登录注册页"
status: pending
priority: high
- content: "Phase 3 - 笔记核心 CRUD:创建/列表/详情/编辑/删除 + Markdown"
status: pending
priority: high
- content: "Phase 4 - 标签系统:标签 CRUD + 笔记打标 + 筛选"
status: pending
priority: high
- content: "Phase 5 - 搜索功能:关键词搜索笔记"
status: pending
priority: medium
- content: "Phase 6 - 图片/文件上传:支持笔记中插入图片"
status: pending
priority: medium
- content: "Phase 7 - 个人主页:用户信息 + 统计"
status: pending
priority: low
- content: "Phase 8 - 部署配套:deploy.sh + 服务器操作清单"
status: pending
priority: high
---
# fragmemo 笔记应用 · 实现计划
## Goal
构建 **fragmemo** 笔记 Web 应用:Markdown 快速记录、标签分类、搜索、图片上传、私密/公开模式。后期扩展鸿蒙 ArkTS App。
## 目录结构
```
/Users/a58/Documents/fragfordspace/
└── fragmemo/ # 总项目目录
├── docs/ # 📚 物料文档
│ ├── memos-main/ # 原版 memos 参考源码
│ └── 方案文档/ # 架构方案、API 设计等
├── memo.fragford.cn/ # 🌐 前端 React 项目(独立 Git 仓库)
│ ├── public/
│ ├── src/
│ │ ├── api/ # API 调用
│ │ ├── hooks/ # React Query
│ │ ├── contexts/ # 状态管理
│ │ ├── components/ # 通用组件
│ │ ├── pages/ # 页面
│ │ └── styles/ # 样式
│ ├── deploy.sh
│ ├── package.json
│ ├── vite.config.ts
│ └── tsconfig.json
├── memo_server/ # ⚙️ 后端 Python 项目(独立 Git 仓库)
│ ├── app/
│ │ ├── main.py # FastAPI 入口
│ │ ├── config.py # 配置
│ │ ├── database.py # 数据库
│ │ ├── exceptions.py # 异常处理
│ │ ├── models/ # ORM 模型
│ │ ├── schemas/ # 数据校验
│ │ ├── routers/ # API 路由
│ │ ├── services/ # 业务逻辑
│ │ └── auth/ # JWT 认证
│ ├── uploads/
│ ├── deploy.sh
│ ├── requirements.txt
│ └── .env
└── frag_memo_app/ # 📱 预留鸿蒙 App(独立 Git 仓库)
└── README.md
```
## 技术栈
| 层 | 技术 |
|----|------|
| 后端 | Python 3.11+ / FastAPI / SQLAlchemy async / PyJWT / bcrypt |
| 前端 | React 18+ / TypeScript / Vite / Tailwind CSS / React Query |
| 数据库 | MySQL 8.0(服务器已有,Phase 8 时你操作) |
## 分工
| 我负责(本地代码) | 你负责(Phase 8 时在服务器操作) |
|-----------------|-----------------------------|
| 全部 Python 后端代码 | 宝塔 Python 项目管理器添加项目 |
| 全部 React 前端代码 | 创建 MySQL 数据库和用户 |
| 部署脚本(deploy.sh | 配置 Nginx 反向代理 |
| 项目文档(README) | 设置环境变量 |
## 设计概要
- **数据库**5 张表(users, memos, tags, memo_tags, files
- **API**RESTful`/api/v1/` 前缀,JWT Bearer 认证
- **前端**:8 个页面(首页、登录、注册、笔记列表、新建/编辑、详情、标签管理、个人主页)
- **部署**:后端用宝塔 Python 项目管理器 + 前端 rsync 静态文件 + Nginx 反代
## 执行顺序
1. **Phase 1**:脚手架搭建(server/ 骨架 + web/ 骨架)
2. **Phase 2**:用户认证(JWT + 登录注册)
3. **Phase 3**:笔记 CRUD(核心功能)
4. **Phase 4**:标签系统
5. **Phase 5**:搜索功能
6. **Phase 6**:图片上传
7. **Phase 7**:个人主页
8. **Phase 8**:部署配套(deploy.sh + 服务器操作指南)
## Verification
每个 Phase 完成后:后端 Swagger UI 测试 + 前端功能走通
## Rollback
- Git revert 回退代码
- Alembic downgrade 回退数据库