116 lines
4.7 KiB
Markdown
116 lines
4.7 KiB
Markdown
---
|
||
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 回退数据库
|