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

5.1 KiB
Raw Blame History

家庭日报系统设计与实现Django 5.1.4

系统概述

一个轻量化的家庭日报系统用于自动汇总昨日信息阅读、收获生成今日计划注重生活化、个性化和低门槛使用。支持上传文件或视频作为附加内容并可生成PDF报告定时发送至邮箱。

技术栈

  • Python 3.9+:核心开发语言
  • Django 5.1.4Web框架
  • SQLite:轻量化数据库
  • loguru:日志记录
  • Bootstrap 5:前端样式
  • Chart.js:数据可视化
  • WeasyPrintPDF生成
  • 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. 安装依赖

    pip install -r requirements.txt
    
  2. 启动Redis服务

    redis-server
    
  3. 数据库迁移

    python manage.py migrate
    
  4. 启动Django开发服务器

    python manage.py runserver
    
  5. 启动Celery worker

    celery -A diary_family worker --loglevel=info
    
  6. 启动Celery beat

    celery -A diary_family beat --loglevel=info
    
  7. 访问系统

系统特点

  • 轻量化使用SQLite部署简单
  • 低门槛:界面简洁,易于使用
  • 生活化:专注家庭场景
  • 个性化:支持自定义记录和计划
  • 文件支持:支持上传多种格式文件
  • 可视化:提供数据统计图表
  • 响应式:适配移动端和桌面端
  • PDF报告支持生成PDF格式报告
  • 定时邮件:自动发送报告到指定邮箱

预期效果

用户可以通过手机或电脑轻松完成:

  1. 记录昨日阅读内容和感悟,可上传相关文件
  2. 管理家庭事项
  3. 生成并查看今日计划
  4. 查看自动生成的可视化报告支持PDF下载
  5. 配置系统参数,设置邮件发送
  6. 每日自动收到包含PDF报告的邮件

系统设计简洁易用,适合家庭日常使用,注重生活化和个性化体验。