用户新建专注模式,预设模式包括阅读模式、工作模式、电影模式、游戏模式(后续支持自定义)
用户输入允许浏览的应用程序名称、网站域名,支持多选(后续有使用AI辅助模糊名称判断的空间)
预设节奏:
- 高效HIIT:专注15min,休息2min,适合启动困难状态的用户
- 经典番茄钟:专注25min,休息5min,适合易分心状态的用户
- 超日节律:专注90min,休息20min,适合高峰状态的用户
用户点击「开始专注」后,进入当前模式的限制
实时检测当前活跃窗口
判断当前使用是否在该模式的白名单内
- 若在白名单内:持续专注计时
- 若不在白名单内:停留超过60s,直接终止本次专注模式(只终止专注,不影响基本时长统计),60s内关闭该页面,不影响专注持续计时
每次专注时长满足后,触发抽卡奖励
- 文案:获得奖励!
- 显示:奖励弹窗跟随本轮休息时长,显示倒计时
- 倒计时结束前,用户抽卡,抽完卡,弹窗消失
- 若倒计时结束,用户仍未抽卡,系统随机抽一张,消失
- 卡面设计:AI辅助生成(后续有AI模型接入空间)
- 开盒动画
弹窗提醒
- 文案:本次专注已停止。
- 弹窗停留10s后消失
查看已拥有卡片,以及不同系列的收集进度
启动软件后,累计统计各程序/网页活跃时长,X小时X分钟
专注逻辑下,统计各个模式下的累计专注时长,X小时X分钟
追踪网页浏览时间,实时发送到服务器
- Chrome Extension API (标签监听、窗口焦点)
- WebSocket (实时数据传输)
- JavaScript (核心逻辑)
- C# (.NET Framework) (核心编程语言,用于实现后端逻辑)
- WPF (Windows Presentation Foundation) (用于构建桌面应用UI)
- XAML (用于定义 WPF 中的界面布局结构)
- SQLite (用于记录抽到的卡片信息)
- 用户切换标签 → 计算上个页面时间
- 发送数据到服务器 → WebSocket传输
- 开始追踪新页面 → 记录开始时间
- WebSocket传输到.Net后端 → 通过.Net WebSocket去连接本地的localhost端口获取网页数据
- 使用本地SQLite数据库储存网页使用时间
- 通过写xaml去实现前端UI界面,C#文件去获取注册表所有应用程序信息
- 最后用Visual Studio Publish去生成可运行exe程序
- 选择专注模式
- 设置白名单
- 配置时长参数
- 开始专注
- 实时监控反馈
- 专注完成/终止
- 抽卡奖励界面 a. 用户点击"开始抽卡" → 播放抽卡动画(如开箱 GIF) b. 播放动画完成 → 随机抽取 2 张卡片 → 展示在界面上 c. 展示卡牌后保存记录 → 将抽中的卡片保存到 SQLite 数据库中 d. 倒计时结束未点击按钮 → 自动执行抽卡逻辑(调用同样流程)
- 时间追踪: 标签切换时计算停留时间
- 焦点检测: 窗口失焦停止计时
- 自动重连: WebSocket断开自动重连
- 状态显示: 弹窗显示连接状态
- 实时监控:
- 使用Windows API获取当前活跃窗口
- WebSocket接收Chrome扩展的网站访问数据
- 定时器持续检测状态变化
- 精确匹配:应用程序名称、网站域名
- 模糊匹配:后续AI辅助判断
- 多选支持:同时设置多个允许的应用/网站
- 专注计时器:记录专注时长
- 休息计时器:记录休息时长
- 状态切换:专注↔休息↔终止
- SQLite数据库存储专注记录
- 白名单配置持久化
- 专注统计数据分析
- 倒计时控制:设置定时器控制抽卡时间窗口,倒计时结束自动抽卡
- 自动抽卡:用户未点击时由系统自动执行抽卡并展示结果
- 动画播放:使用 GIF 实现开箱动效,提高用户沉浸感
- 数据库记录:使用 SQLite 保存已获得卡片,并展示到卡片图鉴,用于后续卡片状态管理