Files
diary-family/.trae/documents/家庭日报系统设计与实现.md
2026-01-04 19:17:33 +08:00

197 lines
5.1 KiB
Markdown
Raw Permalink 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.
# 家庭日报系统设计与实现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报告的邮件
系统设计简洁易用,适合家庭日常使用,注重生活化和个性化体验。