# Smart-list **Repository Path**: flybird/smart-list ## Basic Information - **Project Name**: Smart-list - **Description**: Smart-list 是一款基于 Tauri 2 + React + TypeScript 开发的智能任务管理桌面应用,集成了 AI 任务分解、番茄钟、统计分析、游戏化等功能,帮助用户更高效地管理日常任务。 - **Primary Language**: Rust - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-04 - **Last Updated**: 2026-04-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SmartTodo - 智能任务管理桌面应用 SmartTodo 是一款基于 Tauri 2 + React + TypeScript 开发的智能任务管理桌面应用,集成了 AI 任务分解、番茄钟、统计分析、游戏化等功能,帮助用户更高效地管理日常任务。 ## 技术栈 | 类别 | 技术 | 版本 | |------|------|------| | 桌面框架 | Tauri | 2.0 | | 后端语言 | Rust | 2021 Edition | | 前端框架 | React | 18.3.1 | | 类型系统 | TypeScript | 5.6.3 | | 构建工具 | Vite | 5.4.0 | | 样式方案 | Tailwind CSS | 3.4.0 | | 状态管理 | Zustand | 4.5.0 | | 数据库 | SQLite (rusqlite) | 0.32 | | 动画库 | Framer Motion | 11.11.0 | | 图表库 | Recharts | 3.4.1 | ## 功能特性 ### 核心功能 - **任务管理**: 创建、编辑、删除任务,支持优先级设置和截止日期 - **子任务管理**: 手动创建子任务或 AI 智能分解 - **番茄钟**: 完整的番茄工作法计时器,支持自定义时长、声音提醒 - **任务提醒**: 支持每日、每周、每月的定时提醒 ### AI 功能 - **智能分解**: 利用 OpenAI/Claude API 自动将复杂任务分解为可执行的子任务 - **多提供商支持**: 支持 OpenAI、Anthropic Claude 及任意兼容 API - **任务分析**: 智能分析任务复杂度并给出执行建议 - **使用统计**: 追踪 API 调用成本和使用量 ### 游戏化系统 - **积分系统**: 完成任务获取积分,提升用户等级 - **成就系统**: 解锁各类成就,增加任务管理趣味性 - **等级系统**: 从新手到传奇,10 个等级等你挑战 ### 数据统计 - **任务统计**: 日/周/月任务完成情况 - **番茄钟统计**: 专注时长分析、生产力趋势 - **每日分布**: 可视化展示每日专注时段 - **连续天数**: 追踪连续完成任务的天数 ### 数据管理 - **数据导出**: 支持 JSON/CSV 格式导出 - **数据备份**: 创建完整备份并支持恢复 - **性能监控**: 实时监控应用性能指标 ### 界面特性 - **响应式设计**: 适配不同尺寸的窗口 - **深色模式**: 支持浅色/深色主题切换 - **流畅动画**: 基于 Framer Motion 的流畅过渡效果 - **桌面集成**: 无边框窗口、系统通知等原生体验 ## 使用指南 ### 主界面介绍 SmartTodo 采用桌面小部件设计,主界面分为几个主要区域: - **顶部**: 番茄钟计时器,显示当前专注时间和控制按钮 - **中部**: 任务列表,展示今日待办任务 - **底部**: 快捷操作栏,包含添加任务、设置、统计等入口 ### 任务管理 #### 创建任务 1. 点击界面底部的 **+** 按钮 2. 输入任务标题(必填) 3. 可选设置: - **优先级**: 高/中/低 - **截止日期**: 选择任务完成日期 - **提醒时间**: 设置任务提醒 - **重复**: 设置每日/每周/每月重复 4. 点击"保存"创建任务 #### 编辑任务 1. 点击任务项进入编辑模式 2. 修改任务信息 3. 点击"保存"应用更改 #### 完成任务 - 点击任务左侧的复选框标记完成 - 完成任务可获得积分奖励 #### 删除任务 - 在编辑模式下点击"删除"按钮 - 或在任务项上右键选择删除 ### 子任务管理 #### 手动添加子任务 1. 打开任务详情 2. 在子任务区域点击"添加子任务" 3. 输入子任务内容并保存 #### AI 智能分解 1. 点击任务上的 **AI 分解** 按钮 2. 选择任务复杂度(简单/中等/复杂) 3. 点击"开始分析" 4. AI 将生成子任务建议列表 5. 选择需要的子任务并点击"应用" ### 番茄钟使用 #### 开始专注 1. 选择要专注的任务 2. 点击顶部番茄钟的 **开始** 按钮 3. 进入专注模式,计时器开始倒计时 #### 自定义时长 1. 进入"设置" → "番茄钟设置" 2. 调整: - **专注时长**: 默认 25 分钟 - **短休息**: 默认 5 分钟 - **长休息**: 默认 15 分钟 - **长休息间隔**: 默认 4 个番茄钟 #### 声音提醒 - 专注结束自动播放提示音 - 可在设置中开启/关闭声音 - 支持自定义提示音 ### 查看统计 #### 访问统计页面 - 点击主界面底部的 **统计** 图标 #### 统计内容 - **任务统计**: 已完成/待完成/逾期任务数 - **番茄钟统计**: 今日/本周/本月专注时长 - **生产力趋势**: 可视化图表展示效率变化 - **连续天数**: 追踪连续完成任务的天数记录 #### 切换时间范围 - 点击日/周/月标签切换不同时间维度的统计 ### 游戏化系统 #### 获取积分 - 完成任务: +10 分 - 完成番茄钟: +5 分 - 连续 7 天完成任务: +50 分 - 解锁成就: 额外奖励 #### 查看等级和成就 - 点击主界面顶部的等级徽章 - 查看当前等级、积分和已解锁成就 #### 等级体系 | 等级 | 称号 | 所需积分 | |------|------|----------| | 1 | 新手 | 0 | | 2 | 学徒 | 100 | | 3 | 助手 | 300 | | 4 | 熟练者 | 600 | | 5 | 专家 | 1000 | | 6 | 大师 | 1500 | | 7 | 传奇 | 2500 | ### AI 配置 #### 首次配置 1. 进入"设置" → "AI 服务" 2. 选择服务提供商(OpenAI 或 Anthropic) 3. 输入 API Key 4. 选择模型(GPT-4、Claude-3 等) 5. 点击"保存" #### 测试连接 - 点击"测试连接"按钮验证 API 是否可用 - 查看估计成本(每 1000 tokens) ### 数据管理 #### 导出数据 1. 进入"设置" → "数据管理" 2. 选择导出格式(JSON 或 CSV) 3. 选择要导出的数据类型 4. 点击"导出"保存文件 #### 备份与恢复 1. 点击"创建备份"生成完整数据备份 2. 备份文件保存在应用数据目录 3. 需要恢复时点击"恢复备份"选择备份文件 ### 界面设置 #### 切换主题 1. 进入"设置" → "外观" 2. 选择浅色/深色/跟随系统 #### 调整窗口 - 拖动窗口边缘调整大小 - 最小尺寸: 350 x 700 - 应用会自动保存窗口位置和大小 ### 快捷键 | 快捷键 | 功能 | |--------|------| | `Ctrl+Shift+T` | 切换到完整任务管理界面 | | `Esc` | 关闭设置页面/返回上级 | ## 快速开始 ### 环境要求 - Node.js 18+ - Rust 1.70+ - pnpm(推荐)或 npm ### 安装依赖 ```bash # 使用 pnpm(推荐) pnpm install # 或使用 npm npm install ``` ### 开发模式 ```bash # 启动 Tauri 开发环境(推荐) pnpm dev:tauri # 或分别启动前端开发服务器 pnpm dev:renderer ``` ### 构建应用 ```bash # 构建前端 pnpm build:renderer # 构建完整 Tauri 应用 pnpm build:tauri ``` ### 测试 ```bash # 运行测试 pnpm test # 运行测试并打开 UI 界面 pnpm test:ui ``` ## 项目结构 ``` SmartTodo/ ├── src/ │ ├── renderer/ # React 前端代码 │ │ ├── components/ # UI 组件 │ │ │ ├── ai/ # AI 相关组件 │ │ │ ├── common/ # 通用组件 │ │ │ ├── export/ # 数据导出组件 │ │ │ ├── gamification/ # 游戏化组件 │ │ │ ├── settings/ # 设置页面 │ │ │ ├── statistics/ # 统计页面 │ │ │ ├── task/ # 任务相关组件 │ │ │ └── widget/ # 小组件 │ │ ├── hooks/ # 自定义 Hooks │ │ ├── public/ # 静态资源(图标等) │ │ ├── services/ # 服务层 │ │ ├── stores/ # 状态管理 (Zustand) │ │ └── styles/ # 样式文件 │ └── shared/ # 共享类型和工具 ├── src-tauri/ # Tauri/Rust 后端 │ ├── src/ │ │ ├── commands/ # Tauri 命令 │ │ ├── services/ # 业务服务 │ │ ├── database/ # 数据库管理 │ │ └── main.rs # 入口文件 │ ├── icons/ # 应用图标(系统级) │ ├── Cargo.toml # Rust 依赖 │ └── tauri.conf.json # Tauri 配置 ├── public/ # 静态资源源目录 │ └── icons/ # 图标资源 ├── docs/ # 项目文档 │ ├── epics/ # Epic 文档 │ ├── stories/ # 用户故事 │ └── architectures/ # 架构文档 ├── build/ # 构建配置 └── dist/ # 构建输出 ``` ## AI 配置说明 SmartTodo 支持 OpenAI 和 Anthropic Claude API: 1. **服务提供商**: 选择 OpenAI 或 Anthropic 2. **API Key**: 您的 API 密钥 3. **Model**: 模型名称 - OpenAI: `gpt-4`, `gpt-3.5-turbo` 等 - Anthropic: `claude-3-opus`, `claude-3-sonnet` 等 配置保存后即可使用 AI 任务分解功能。 ## 静态资源管理 项目使用以下方式管理静态资源: - **开发模式**:资源放置在 `src/renderer/public/` 目录 - **访问路径**:通过 `/icons/app.png` 等路径访问 - **应用图标**:界面使用的图标位于 `src/renderer/public/icons/app.png` - **系统图标**:打包使用的应用图标位于 `src-tauri/icons/` ## 开发进度 | 功能模块 | 状态 | |---------|------| | Epic 1: 基础和核心基础设施 | ✅ 已完成 | | Epic 2: 番茄钟集成 | ✅ 已完成 | | Epic 3: AI 任务分解 | ✅ 已完成 | | Epic 4: 高级功能和优化 | ✅ 已完成 | | Epic 5: 语音交互 | 📋 计划中 | ### 详细功能清单 - [x] 基础任务管理 - [x] 子任务管理 - [x] 番茄钟功能 - [x] AI 任务分解 - [x] 数据统计仪表板 - [x] 游戏化系统(积分、成就、等级) - [x] 数据导出(JSON/CSV) - [x] 数据备份与恢复 - [x] 性能监控 - [ ] 数据同步(云端备份) - [ ] 团队协作功能 - [ ] 语音交互 ## 架构图 ``` ┌─────────────────────────────────────────────────┐ │ Rust 后端 (src-tauri) │ │ ┌───────────────────────────────────────────┐ │ │ │ Commands (Tauri) │ │ │ │ - task / pomodoro / AI / settings │ │ │ │ - statistics / gamification / export │ │ │ └───────────────────────────────────────────┘ │ │ ┌───────────────────────────────────────────┐ │ │ │ Services │ │ │ │ - TaskService / PomodoroService │ │ │ │ - AIService / StatisticsService │ │ │ │ - GamificationService / ExportService │ │ │ └───────────────────────────────────────────┘ │ │ ┌───────────────────────────────────────────┐ │ │ │ Database (SQLite) │ │ │ └───────────────────────────────────────────┘ │ └─────────────────────────────────────────────────┘ ↕ Tauri Commands ┌─────────────────────────────────────────────────┐ │ React 渲染进程 (src/renderer) │ │ ┌───────────────────────────────────────────┐ │ │ │ Components / Stores / Services │ │ │ └───────────────────────────────────────────┘ │ └─────────────────────────────────────────────────┘ ``` ## 贡献指南 欢迎提交 Issue 和 Pull Request! 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'feat: add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 提交 Pull Request ## 许可证 ISC License ## 致谢 - [Tauri](https://tauri.app/) - 跨平台桌面应用框架 - [React](https://react.dev/) - 用户界面库 - [Tailwind CSS](https://tailwindcss.com/) - 原子化 CSS 框架 - [Zustand](https://github.com/pmndrs/zustand) - 轻量级状态管理 - [Framer Motion](https://www.framer.com/motion/) - 动画库 - [Recharts](https://recharts.org/) - 图表库 - [Lucide](https://lucide.dev/) - 图标库