Files
lifelog/docs/plans/2024-07-24-lifelog-design.md
T
rhett d495a2b798 feat: initial lifelog project
- 待办事项(支持优先级、截止日期)
- 每日记录(上午/下午/晚上分条目)
- Go后端 + Gin + GORM + MySQL
- React前端 + TailwindCSS
2026-07-28 16:22:46 +08:00

109 lines
3.2 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.
# LifeLog 项目设计文档
## 1. 项目概述
- **项目名**LifeLog
- **定位**:个人日志与待办管理工具
- **核心功能**
1. 待办事项管理(增删改查,完成标记)
2. 每日三时段记录(上午/下午/晚上)
- **目标用户**:个人使用,简约高效
## 2. 技术栈
| 层 | 技术 |
|----|------|
| 后端 | Go + Gin 框架 |
| 前端 | React + Vite + TailwindCSS |
| 数据库 | MySQL (`rhett_claw`) |
| 部署 | 独立项目,端口 17010 |
## 3. 数据库设计
### 表:todos(待办事项)
| 字段 | 类型 | 说明 |
|------|------|------|
| id | BIGINT UNSIGNED AUTO_INCREMENT | 主键 |
| title | VARCHAR(255) NOT NULL | 事项标题 |
| done | TINYINT(1) NOT NULL DEFAULT 0 | 是否完成(0否 1是) |
| priority | TINYINT(1) NOT NULL DEFAULT 2 | 优先级(1高 2中 3低) |
| created_at | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP | 创建时间 |
| updated_at | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
### 表:daily_logs(每日记录)
| 字段 | 类型 | 说明 |
|------|------|------|
| id | BIGINT UNSIGNED AUTO_INCREMENT | 主键 |
| date | DATE NOT NULL UNIQUE | 日期(格式:2024-07-24 |
| morning | TEXT | 上午记录 |
| afternoon | TEXT | 下午记录 |
| evening | TEXT | 晚上记录 |
| created_at | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP | 创建时间 |
| updated_at | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
## 4. API 设计
### 待办事项(/api/todos
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | /api/todos | 获取所有待办 |
| POST | /api/todos | 新增待办 |
| PUT | /api/todos/:id | 更新待办 |
| PATCH | /api/todos/:id/done | 标记完成/未完成 |
| DELETE | /api/todos/:id | 删除待办 |
### 每日记录(/api/logs
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | /api/logs/:date | 获取某日记录(date格式:2024-07-24 |
| GET | /api/logs | 获取最近N条记录 |
| PUT | /api/logs/:date | 创建或更新某日记录 |
## 5. 前端页面
### 页面一:待办事项(/
- 顶部:标题 + 添加按钮
- 中部:待办列表(显示优先级、完成状态、标题)
- 支持:勾选完成、删除、筛选
### 页面二:每日记录(/logs)
- 日期选择器(顶部)
- 三个文本区域:上午 / 下午 / 晚上
- 自动保存(输入后延迟保存)
## 6. 项目结构
```
/var/www/lifelog/
├── cmd/
│ └── server/
│ └── main.go # 入口
├── internal/
│ ├── handler/ # HTTP handlers
│ ├── model/ # 数据模型
│ ├── repository/ # 数据库操作
│ └── service/ # 业务逻辑
├── web/ # 前端 React
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ └── App.tsx
│ ├── index.html
│ └── vite.config.ts
├── docs/
│ └── plans/
├── go.mod
├── go.sum
└── Makefile
```
## 7. 部署
- 后端端口:**17010**
- 数据库:使用已有的 `rhett_claw`MySQL
- PM2 管理进程