feat: initial lifelog project
- 待办事项(支持优先级、截止日期) - 每日记录(上午/下午/晚上分条目) - Go后端 + Gin + GORM + MySQL - React前端 + TailwindCSS
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
# 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 管理进程
|
||||
Reference in New Issue
Block a user