《现代软件工程》团队项目Alpha阶段分工

3 minute read

Published:

FocusPet 团队博客:Alpha 阶段计划与分工

项目地址:

一、典型用户场景 (WBS) 分解与估时

场景 1: 计划 (Planning) - M3 待办事项 [Web UI] 搭建“待办事项”主界面 UI (React/Svelte/Vue),包括任务输入框和列表区域。 (申鹏, 4h)

[Web UI] 实现“添加新任务”的前端逻辑(获取输入、本地状态更新)。 (申鹏, 2h)

[Tauri] 编写 Tauri Command: add_task(task_name)。 (毛一戈 / 赵昱, 2h)

[Tauri] 编写 Tauri Command: get_initial_tasks()。 (毛一戈 / 赵昱, 2h)

[Tauri] 实现 add_task 和 get_initial_tasks 的 SQLite 数据库 C/R (创建/读取) 逻辑。 (毛一戈 / 赵昱, 3h)

[Web UI] 集成 Tauri Commands:在 UI 加载时调用 get_initial_tasks,在提交时调用 add_task。 (申鹏, 3h)

[QA] 编写集成测试:验证任务输入、持久化(重启后仍在)和正确显示。 (毛一戈 / 赵昱, 2h)

场景 2: 启动 (Initiation) - M2 宠物窗口 [Godot] 初始化 Godot 项目,设置窗口为透明背景、无边框、置顶。 (李永康, 3h)

[Godot] 导入宠物模型资源,实现基础的“待机/期待” (Idle/Waiting) 状态动画。 (李永康, 4h)

场景 3: 关联 (Linking) - M4 任务关联 [Web UI] 在每个待办事项上添加“开始专注”按钮。 (申鹏, 2h)

[Tauri] 编写 Tauri Command: start_focus_session(task_id)。 (毛一戈 / 赵昱, 2h)

[Web UI] 集成 Tauri Command:点击“开始专注”时,调用 start_focus_session 并传递任务 ID。 (申鹏, 2h)

场景 4: 专注 (Focus) - M1 计时器 & M5 同步 [Tauri] 架构设计:实现核心“番茄钟引擎” (M1) 的状态机(Idle, Focus, Break)。 (毛一戈 / 赵昱, 4h)

[Tauri] 在 Tauri 后端启动 WebSocket 服务器(服务 A),用于与 Godot 通信。 (毛一戈 / 赵昱, 4h)

[Godot] 在 Godot 中实现 WebSocket 客户端,并处理连接/断线重连逻辑。 (李永康, 4h)

[Tauri] 当 start_focus_session 被调用时,引擎转为 “Focus” 状态,并通过 WebSocket 广播 {“status”: “focus”} 消息。 (毛一戈 / 赵昱, 3h)

[Godot] 导入“工作” (Working) 动画资源(如戴眼镜)。 (李永康, 2h)

[Godot] 实现 WebSocket 监听:收到 {“status”: “focus”} 消息时,宠物状态机切换到 “Working” 状态 (M5)。 (李永康, 3h)

场景 5: 分心 (Distraction) - C1 干扰检测 (高风险!) [Tauri] [研究] 调研 Windows 平台获取当前活动窗口的 API (e.g., winapi)。 (毛一戈 / 赵昱, 4h)

[Tauri] [研究] 调研 macOS 平台获取当前活动窗口的 API (e.g., core-graphics) 及沙盒权限问题。 (毛一戈 / 赵昱, 4h)

[Web UI] 搭建“设置”页面,允许用户增删“分心应用/网站黑名单”。 (申鹏, 4h)

[Tauri] 编写 Tauri Commands 和 DB 逻辑,用于 CRUD“黑名单”。 (毛一戈 / 赵昱, 3h)

[Tauri] 实现干扰检测器 (C1):在 “Focus” 状态下,启动一个定时器轮询当前活动窗口,并与黑名单比对。 (毛一戈 / 赵昱, 4h)

[Tauri] C1 集成:如果检测到分心,通过 WebSocket 广播 {“status”: “distracted”} 消息。 (毛一戈 / 赵昱, 2h)

[Godot] 导入“焦虑” (Anxiety) 动画资源。 (李永康, 3h)

[Godot] 实现 WebSocket 监听:收到 {“status”: “distracted”} 消息时,切换到 “Anxiety” 状态。 (李永康, 2h)

场景 6 & 7: 完成与奖励 (Completion & Reward) - M6 金币 [Tauri] 计时器逻辑:当 25 分钟专注结束,番茄钟引擎触发 “FocusSuccess” 事件。 (毛一戈 / 赵昱, 2h)

[Tauri] 在 “FocusSuccess” 事件中,通过 WebSocket 广播 {“status”: “focus_complete”}。 (毛一戈 / 赵昱, 1h)

[Godot] 导入“欢呼” (Cheer) 动画资源。 (李永康, 3h)

[Godot] 实现 WebSocket 监听:收到 {“status”: “focus_complete”} 消息时,播放 “Cheer” 动画。 (李永康, 2h)

[Tauri] 在 “FocusSuccess” 事件中,更新 SQLite 数据库,为用户增加 10 金币 (M6)。 (毛一戈 / 赵昱, 2h)

[Tauri] 在 “FocusSuccess” 事件中,向 Web UI 发送 Tauri Event,通知专注完成。 (毛一戈 / 赵昱, 1h)

[Web UI] 监听 Tauri Event,显示弹窗:“专注完成!获得 10 金币。你是否完成了任务…?”。 (申鹏, 4h)

场景 8: 闭环 (Loop) - M8 盛大庆祝 [Web UI] 实现弹窗中“是”/“否”按钮的点击逻辑。 (申鹏, 2h)

[Tauri] 编写 Tauri Command: confirm_task_completion(task_id, status)。 (毛一戈 / 赵昱, 2h)

[Web UI] 集成 Tauri Command:点击“是”时,调用 confirm_task_completion,并更新 UI 划掉任务。 (申鹏, 2h)

[Tauri] 在 confirm_task_completion (status=true) 逻辑中,通过 WebSocket 广播 {“status”: “task_complete”} (M8)。 (毛一戈 / 赵昱, 2h)

[Godot] 导入“盛大庆祝” (GrandCelebration) 动画资源 (M8)。 (李永康, 4h)

[Godot] 实现 WebSocket 监听:收到 {“status”: “task_complete”} 消息时,播放 “GrandCelebration” 动画。 (李永康, 2h)

场景 9: 休息 (Break) [Tauri] 番茄钟引擎:在 “FocusSuccess” 后,自动切换到 “Break” 状态(5分钟)。 (毛一戈 / 赵昱, 2h)

[Tauri] 在 “Break” 状态启动时,通过 WebSocket 广播 {“status”: “break”}。 (毛一戈 / 赵昱, 1h)

[Godot] 导入“玩耍/休息” (Playing) 动画资源。 (李永康, 3h)

[Godot] 实现 WebSocket 监听:收到 {“status”: “break”} 消息时,切换到 “Playing” 状态。 (李永康, 2h)

燃尽图

live

Leave a Comment