# 时间管理大师 **Repository Path**: wx114/TimerManagerProject ## Basic Information - **Project Name**: 时间管理大师 - **Description**: No description available - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-20 - **Last Updated**: 2026-07-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: tkinter, GUI, Python ## README # 时间管理大师 (Time Master) 一款基于 CustomTkinter 的桌面时间管理应用,结合刻意练习理念与 AI 教练,帮助用户通过倒计时任务追踪练习进度、提升技能等级。 ## 界面预览

主界面

新建练习对话框

## 功能特性 - **倒计时任务** — 创建自定义时长的练习任务,支持暂停、恢复、删除 - **周期循环** — 任务完成后可自动重新开始下一轮计时 - **工作-休息交替** — 支持番茄工作法式的工作阶段与休息阶段自动切换 - **技能追踪** — 创建技能并关联任务,自动累计练习时长(含专注度加权) - **里程碑系统** — 为技能设定阶段性里程碑,独立追踪子目标进度 - **等级系统** — 9 级进阶体系(入门者 → 超越者),实时显示等级和进度 - **反思机制** — 任务完成后弹出反思对话框(专注度、难度、成就),影响有效练习时长 - **AI 教练** — 调用大模型生成刻意练习建议,并提供技能专属的教练对话面板 - **成就系统** — 满足条件自动解锁成就,并弹出桌面通知 - **统计面板** — 可视化展示练习时长、技能进度、成就解锁情况 - **连续天数** — 记录每日练习的连续打卡天数 - **主题切换** — 内置主题切换,设置实时持久化 - **系统托盘** — 最小化到托盘运行,右键查看任务状态 - **完成通知** — 任务倒计时结束时弹出桌面通知并播放提示音 - **数据持久化** — 所有数据保存到本地 SQLite 数据库,并兼容从旧版 JSON 数据迁移 ## 项目结构 ``` TimerManagerProject/ ├── main.py # 应用主控制器,协调 UI/定时器/存储/托盘 ├── tray.py # 系统托盘图标和菜单 ├── core/ │ ├── task.py # 任务模型(倒计时、暂停、周期、工作-休息交替) │ ├── skill.py # 技能模型(等级、里程碑、连续天数) │ ├── timer.py # 定时器管理器(每秒驱动) │ ├── sqlite_storage.py # SQLite 数据持久化(主存储) │ ├── storage.py # JSON 存储层(用于旧数据迁移兼容) │ ├── stats.py # 统计计算 │ ├── achievement.py # 成就解锁检测 │ ├── advisor.py # AI 练习建议生成 │ └── coach.py # AI 刻意练习教练 ├── ui/ │ ├── main_window.py # 主窗口(工具栏、任务列表、操作栏) │ ├── skill_panel.py # 左侧技能面板(卡片列表) │ ├── coach_panel.py # AI 教练面板 │ ├── stats_panel.py # 统计面板 │ ├── task_dialog.py # 任务创建/编辑对话框 │ ├── skill_dialog.py # 技能创建/编辑对话框 │ ├── reflection_dialog.py # 任务完成反思对话框 │ ├── settings_dialog.py # 设置对话框(主题、AI 配置) │ ├── notification.py # 任务完成通知窗口(淡入动画) │ ├── achievement_notification.py # 成就解锁通知 │ ├── dialog_utils.py # 对话框通用工具函数 │ └── theme.py # 全局主题(颜色、字体、样式) └── data/ ├── app.db # SQLite 数据库(主存储) ├── settings.json # 设置数据 ├── sessions.json # 会话数据 ├── achievements.json # 成就数据 └── skills.json # 技能数据(迁移兼容) ``` ## 环境要求 - Python >= 3.13 - Windows(系统托盘功能依赖 Windows API) - (可选)OpenAI 或兼容 API 的 Key 与 Endpoint,用于启用 AI 教练功能 ## 安装与运行 ```bash # 克隆项目 git clone cd TimerManagerProject # 安装依赖 pip install customtkinter openai pillow pystray # 运行应用 python main.py ``` 或使用 uv 管理依赖: ```bash uv sync uv run main.py ``` 如需启用 AI 教练/建议功能,在应用「设置」中填写大模型的 API Key 与 Endpoint。 ## 使用说明 1. **添加技能** — 点击左侧面板底部的"添加技能"按钮,设置名称、图标和目标小时数 2. **创建任务** — 点击右上角"新建练习",填写任务名称、倒计时时间和练习目标,可选关联技能与里程碑 3. **管理任务** — 选中任务后可暂停/恢复、编辑或删除 4. **工作-休息交替** — 设置休息时长,工作阶段结束后自动切换到休息,休息结束按周期决定重新开始或完成 5. **任务反思** — 工作阶段结束时弹出反思对话框,记录专注度/难度/成就,AI 将据此生成下次练习建议 6. **AI 教练** — 在技能面板进入教练对话,获取基于该技能历史数据的刻意练习指导 7. **查看统计** — 打开统计面板查看练习时长、等级进度与已解锁成就 8. **编辑技能** — 单击技能卡片或右键选择"编辑"修改技能信息或管理里程碑 9. **系统托盘** — 关闭窗口后应用在托盘继续运行,右键可查看任务状态或退出 ## 技术栈 | 组件 | 技术 | |------|------| | GUI 框架 | CustomTkinter | | AI 集成 | OpenAI SDK(兼容 OpenAI 协议的接口) | | 图标生成 | Pillow (PIL) | | 系统托盘 | pystray | | 数据存储 | SQLite | | 定时器 | tkinter.after (1000ms) | ## 许可证 [Apache License 2.0](LICENSE)