# SmartTaskBoard **Repository Path**: liu-chenyang/smart-task-board ## Basic Information - **Project Name**: SmartTaskBoard - **Description**: 一个用来记录工作日常及定时提醒的项目 - **Primary Language**: Python - **License**: CC-BY-SA-4.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-09-04 - **Last Updated**: 2026-09-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能任务板(Smart Task Board) 智能任务板是一款面向 Windows 的轻量级桌面待办工具。它提供完整任务板和桌面小组件两种形态,支持任务提醒、系统托盘、分类统计、喝水打卡及本地数据存储。 所有任务数据默认只保存在本机,不依赖云服务。打包后的单文件 EXE 已包含 Python 运行环境,目标电脑无需另外安装 Python。 ## 快速使用 普通用户只需下载 `SmartTaskBoard.exe` 后双击运行,无需安装 Python。关闭窗口后程序仍会留在 Windows 系统托盘,以保证任务提醒正常工作;需要彻底退出时,请使用托盘菜单中的“退出”。 开发者可直接使用已有 Conda 环境: ```powershell conda activate python312 python -m pip install -r requirements.txt python main.py ``` ## 主要功能 - 添加、编辑、完成、删除、恢复和拖拽排序任务 - 工作、个人、学习分类,以及高、中、低优先级筛选 - “所有任务”和“已完成”任务分开展示,侧边栏显示未完成数量 - 为每项任务单独设置计划时间、截止时间和提醒日期模式 - 支持仅今天、截止日期当天或每天通知 - Windows 右下角原生通知带“确认”按钮;未确认时按设定间隔重复提醒 - 深色与白色主题,字体大小支持 13–18 px - 完整任务板与桌面小组件一键切换(默认 `Ctrl+M`) - 小组件支持置顶、普通层级或置于底层,并提供快捷喝水打卡 - 完成时间自动记录;可选 Nice Job 与烟花庆祝动画(默认关闭) - 统计视图、CSV 导入导出和 7 天自动清理回收站 - 单实例运行:重复打开 EXE 时唤醒已有窗口,不重复启动服务 - JSON 自动保存及备份,支持自定义数据目录 ## 环境要求 - Windows 10 或 Windows 11 - Python 3.8 或 Python 3.12(项目使用 `python38`、`python312` 环境测试) - Conda、Miniconda 或普通 Python 环境均可 ## 从源码运行 ### 使用 Conda ```powershell conda create -n python312 python=3.12 -y conda activate python312 python -m pip install -r requirements.txt python main.py ``` 如果已有 `python38` 或 `python312` 环境,激活对应环境后安装依赖即可;构建 EXE 推荐使用 `python312`。 ### 使用普通 Python ```powershell python -m venv .venv .venv\Scripts\Activate.ps1 python -m pip install -r requirements.txt python main.py ``` ## 构建独立 EXE 推荐使用项目中的 PyInstaller 配置: ```powershell python -m PyInstaller --clean --noconfirm smart_task_board.spec ``` 构建完成后生成: ```text dist/SmartTaskBoard.exe ``` 这是单文件程序,可复制到其他 Windows 电脑运行。首次启动时会在用户目录创建应用数据文件夹。 构建前如果旧版程序仍在运行,请先从系统托盘退出,否则 Windows 可能因 EXE 正被占用而无法覆盖文件。 > `build/` 是 PyInstaller 的中间缓存,`dist/` 是最终构建输出,两者都不属于源码,因此已加入 `.gitignore`。 ## 数据存储 EXE 模式默认将数据保存到: ```text %APPDATA%\SmartTaskBoard\ ``` 常见文件如下: | 文件 | 内容 | |---|---| | `tasks.json` | 任务、应用设置和喝水打卡统计 | | `tasks.bak.json` | 上一次保存的任务数据备份 | | `config.json` | 自定义数据路径、快捷键等本机配置 | | `scheduler.log` | 定时调度运行日志 | 源码模式默认在项目的 `data/` 目录保存同类文件。它们包含个人任务和本机配置,已整体排除,不应上传 Git。 可在应用“设置 → 数据存储”中更换数据目录。 ## 项目文件分类 ### 应上传到 Git 的源码与资源 ```text smart-task-board/ ├── main.py # 程序入口、单实例与调度命令 ├── core/ │ ├── task_manager.py # 任务、统计和喝水数据逻辑 │ ├── storage.py # JSON、备份及 CSV 存储 │ ├── filter.py # 任务筛选 │ ├── scheduler.py # 定时调度 │ └── native_notifications.py # Windows 原生提醒 ├── ui/ │ ├── main_window.py # 主窗口 │ ├── mini_widget.py # 桌面小组件 │ ├── task_widget.py # 任务卡片 │ ├── dialogs.py # 编辑、快捷添加与设置窗口 │ ├── stats_view.py # 统计视图 │ ├── recycle_bin.py # 回收站 │ └── celebration.py # 完成庆祝动画 ├── resources/ │ ├── style.qss # 深色/白色界面样式 │ ├── tubiao.ico # 应用图标 │ ├── tray_icon.ico # 托盘图标 │ └── tubiao_preview.png # 图标预览 ├── smart_task_board.spec # PyInstaller 构建配置 ├── requirements.txt # Python 依赖 ├── .gitignore # Git 排除规则 ├── LICENSE # 开源许可证 └── readme.md # 项目说明 ``` ### 不应上传的生成文件和个人数据 | 路径 | 类型 | 是否可重新生成 | |---|---|---| | `build/` | PyInstaller 中间文件 | 是 | | `dist/` | 打包后的 EXE | 是,可改用 GitHub Releases 发布 | | `__pycache__/`、`*.pyc` | Python 字节码缓存 | 是 | | `data/` | 本地任务、设置、备份和日志 | 运行时生成,可能包含隐私数据 | | `.venv/`、`venv/` | Python 虚拟环境 | 是,通过依赖文件重建 | | `.idea/`、`.vscode/` | 本机 IDE 配置 | 是 | ## 首次整理 Git 仓库 本项目的 `.gitignore` 已排除以下内容: - `build/`、`dist/`、`release/` 等打包产物 - `data/`、日志、备份和本机环境变量 - Python 缓存、测试缓存、虚拟环境 - VS Code、PyCharm 和操作系统临时文件 提交前可以用下面的命令确认排除规则是否生效: ```powershell git status git status --ignored git check-ignore -v data/tasks.json dist/SmartTaskBoard.exe ``` 如果某个生成文件在添加 `.gitignore` 之前已经被 Git 跟踪,需要执行 `git rm --cached <文件路径>` 停止跟踪。该命令不会删除电脑上的原文件。推送前请再次确认暂存区中没有任务数据、日志或 EXE。 ## 常用操作 - 添加任务:在窗口底部输入标题,选择优先级、分类和截止日期 - 编辑任务:双击任务卡片 - 完成任务:点击任务左侧复选框 - 找回任务:进入“回收站”并点击恢复 - 快速添加:默认 `Ctrl+,` - 切换大小窗口:默认 `Ctrl+M` - 隐藏到托盘:默认 `Ctrl+N` - 测试提醒:打开托盘菜单,选择“测试 Windows 提醒” ## 可选的每周调度 安装每周四凌晨 2:00 执行的 Windows 计划任务: ```powershell python main.py --install-scheduler ``` 仅手动执行一次调度: ```powershell python main.py --scheduler ``` ## 隐私与发布建议 - 不要提交 `data/` 或 `%APPDATA%\SmartTaskBoard\` 中的任何文件。 - EXE 建议通过 GitHub Releases 发布,不要直接提交到源码分支。 - 发布前建议在一台未安装 Python 的 Windows 电脑上验证 EXE、托盘和通知功能。 ## 常见问题 ### EXE 是否要求目标电脑安装 Python? 不需要。PyInstaller 构建的单文件 EXE 已包含 Python 解释器和所需依赖。 ### 为什么关闭窗口后进程还在? 这是提醒功能的正常行为。应用会隐藏到系统托盘;请从托盘菜单选择“退出”以彻底关闭。 ### 为什么任务数据没有出现在项目目录? EXE 模式会将数据写入 `%APPDATA%\SmartTaskBoard\`,避免升级或移动 EXE 时丢失任务。源码模式的数据位于项目的 `data/` 目录。 ## 许可证 本项目采用 [CC BY-SA 4.0](LICENSE) 许可证。