LifeLog 项目设计文档
1. 项目概述
- 项目名:LifeLog
- 定位:个人日志与待办管理工具
- 核心功能:
- 待办事项管理(增删改查,完成标记)
- 每日三时段记录(上午/下午/晚上)
- 目标用户:个人使用,简约高效
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. 项目结构
7. 部署
- 后端端口:17010
- 数据库:使用已有的
rhett_claw(MySQL)
- PM2 管理进程