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

3.2 KiB
Raw Permalink Blame History

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_clawMySQL
  • PM2 管理进程