Files
diary-family/.trae/documents/家庭日报系统设计与实现.md

197 lines
5.1 KiB
Markdown
Raw Permalink Normal View History

2026-01-04 19:17:33 +08:00
# 家庭日报系统设计与实现Django 5.1.4
## 系统概述
一个轻量化的家庭日报系统用于自动汇总昨日信息阅读、收获生成今日计划注重生活化、个性化和低门槛使用。支持上传文件或视频作为附加内容并可生成PDF报告定时发送至邮箱。
## 技术栈
- **Python 3.9+**:核心开发语言
- **Django 5.1.4**Web框架
- **SQLite**:轻量化数据库
- **loguru**:日志记录
- **Bootstrap 5**:前端样式
- **Chart.js**:数据可视化
- **WeasyPrint**PDF生成
- **Celery**:定时任务
- **Redis**消息队列用于Celery
- **django-celery-beat**:定时任务管理
## 项目结构
```
diary-family/
├── diary_family/ # Django项目目录
│ ├── settings.py # 项目配置
│ ├── urls.py # 路由配置
│ └── wsgi.py # WSGI配置
├── core/ # 核心应用
│ ├── migrations/ # 数据库迁移
│ ├── models.py # 数据模型
│ ├── views.py # 视图函数
│ ├── forms.py # 表单定义
│ ├── templates/ # 模板文件
│ ├── static/ # 静态文件
│ ├── tasks.py # Celery任务
│ └── apps.py # 应用配置
├── media/ # 媒体文件存储
├── logs/ # 日志目录
├── reports/ # PDF报告存储
├── manage.py # Django管理脚本
└── requirements.txt # 依赖文件
```
## 核心功能模块
### 1. 数据模型设计
#### 1.1 阅读记录表 (ReadingRecord)
- 日期、类型(书籍/文章/视频)、标题、来源、进度、上传文件
#### 1.2 感悟记录表 (InsightRecord)
- 日期、内容、上传文件
#### 1.3 家庭事项表 (FamilyTask)
- 类型(采购/家务)、内容、优先级、状态、截止日期
#### 1.4 今日计划表 (TodayPlan)
- 日期、内容、优先级、类型、状态
#### 1.5 系统配置表 (SystemConfig)
- 邮箱设置SMTP服务器、端口、用户名、密码
- 报告发送时间
- 收件人邮箱
### 2. 核心功能
#### 2.1 昨日记录
- 阅读记录(支持多类型)
- 感悟记录
- 支持文件/视频上传
#### 2.2 家庭事项管理
- 事项添加、编辑、删除
- 按类型、状态筛选
#### 2.3 今日计划生成
- 基于昨日状态和待处理事项自动生成
- 支持手动调整
- 完成状态标记
#### 2.4 报告生成
- 整合昨日阅读、感悟和今日计划
- 可视化统计
- 支持生成PDF格式
- 支持查看历史报告
#### 2.5 定时邮件发送
- 配置每日发送时间
- 自动生成并发送PDF报告到指定邮箱
- 支持手动触发发送
### 3. 文件上传功能
- 支持上传图片、文档、视频等多种格式
- 自动生成访问链接
- 支持预览和下载
## 实现步骤
### 1. 项目初始化
- 创建Django项目
- 创建核心应用
- 配置数据库和媒体文件路径
- 安装依赖包
### 2. 数据模型实现
- 定义模型类
- 生成并执行数据库迁移
- 创建超级用户
### 3. 功能实现
- 实现昨日记录表单和视图
- 实现家庭事项管理功能
- 实现今日计划生成和管理
- 实现报告生成功能
- 实现PDF报告生成
- 实现文件上传功能
- 配置Celery和定时任务
- 实现邮件发送功能
### 4. 模板设计
- 基础模板(导航栏、页脚)
- 昨日记录页面
- 家庭事项页面
- 今日计划页面
- 报告页面
- 系统配置页面
- PDF报告模板
### 5. 日志配置
- 使用loguru配置日志
- 记录关键操作和错误信息
## 运行方式
1. **安装依赖**
```bash
pip install -r requirements.txt
```
2. **启动Redis服务**
```bash
redis-server
```
3. **数据库迁移**
```bash
python manage.py migrate
```
4. **启动Django开发服务器**
```bash
python manage.py runserver
```
5. **启动Celery worker**
```bash
celery -A diary_family worker --loglevel=info
```
6. **启动Celery beat**
```bash
celery -A diary_family beat --loglevel=info
```
7. **访问系统**
- 浏览器打开 http://localhost:8000
- 支持移动端访问
## 系统特点
- **轻量化**使用SQLite部署简单
- **低门槛**:界面简洁,易于使用
- **生活化**:专注家庭场景
- **个性化**:支持自定义记录和计划
- **文件支持**:支持上传多种格式文件
- **可视化**:提供数据统计图表
- **响应式**:适配移动端和桌面端
- **PDF报告**支持生成PDF格式报告
- **定时邮件**:自动发送报告到指定邮箱
## 预期效果
用户可以通过手机或电脑轻松完成:
1. 记录昨日阅读内容和感悟,可上传相关文件
2. 管理家庭事项
3. 生成并查看今日计划
4. 查看自动生成的可视化报告支持PDF下载
5. 配置系统参数,设置邮件发送
6. 每日自动收到包含PDF报告的邮件
系统设计简洁易用,适合家庭日常使用,注重生活化和个性化体验。