Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

204 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

考研专注

CI License: MIT Platform Tauri React Rust

A local-first Windows study focus app built with Tauri, React, TypeScript and Rust. It helps exam candidates run structured focus sessions, enforce app/site allowlists, review learning records, and optionally sync data across devices.

考研专注 是一个面向 Windows 桌面端的本地学习约束工具,目标是在备考期间把“开始学习、强制白名单、番茄节奏、任务计划、复盘统计、数据同步”串成一个可持续使用的学习工作台。

本项目第一版 GitHub 公开范围以 Windows / Tauri 桌面端为主。Android 相关内容不作为当前公开仓库主线维护范围。

为什么做这个项目

普通番茄钟只负责倒计时;考研专注 更关注备考场景里的完整闭环:学习前规划、学习中约束、学习后复盘、跨设备备份和长期统计。它默认本地运行,尽量把用户数据和第三方凭据留在用户自己的设备上。

核心特性

  • 学习模式:支持总学习时长、番茄专注、短休、长休、长休间隔和科目绑定。
  • 白名单约束:学习期间按软件、网站、PotPlayer 视频规则识别前台应用,减少干扰。
  • 计划与复盘:提供清单、今日计划、课表、每日复盘、周复盘和学习统计。
  • 本地优先:核心数据存储在本机 SQLite,默认不上传用户隐私数据。
  • 云端同步:支持 WebDAV、对象存储 R2/S3 协议同步,并保留同步日志与备份恢复入口。
  • 飞书与邮件:可选飞书任务/日历同步和邮件提醒。
  • 桌面能力:系统托盘、后台 tick、前台检测、提醒音、自动更新检查。

截图与演示

公开截图和短演示会放在 docs/assets/。在素材完成前,请参考 FEATURES.md 了解完整功能清单。

计划补充:

  • docs/assets/screenshot-focus.png:专注页主界面。
  • docs/assets/screenshot-settings-sync.png:设置页同步配置。
  • docs/assets/demo-focus-flow.gif:30 秒以内演示开始学习模式、白名单提醒、统计回看。

截图、GIF 和演示数据必须先脱敏。不要提交真实个人数据、邮箱、飞书 App Secret、对象存储密钥、本机路径、数据库或同步备份。详细规则见 docs/assets/README.md

快速开始

环境要求:

  • Windows 10/11
  • Node.js 20+
  • Rust stable
  • Microsoft C++ Build Tools / MSVC

安装依赖:

npm.cmd install

开发预览:

npm.cmd run dev

启动 Tauri 桌面端:

npm.cmd run tauri dev

类型检查:

npm.cmd run typecheck

完整检查(TypeScript、Rust 格式、Clippy、Rust 测试):

npm.cmd test

生产构建:

npm.cmd run build

Rust 测试:

cd src-tauri
cargo test

工程质量

本仓库用轻量但明确的工程入口保持可维护性:

  • GitHub Actions 在 Windows runner 上运行前端类型检查、前端构建、Rust 格式检查、Clippy 和 Rust 测试。
  • .editorconfig 固定基础换行、编码和缩进约定。
  • Prettier 提供格式化入口;第一轮不会强制重排历史文件,避免无意义大 diff。
  • Dependabot 每周检查 npm、Cargo 和 GitHub Actions 依赖。
  • Tauri command、SQLite schema、同步 payload 是稳定边界,修改前需要说明兼容策略。

常用维护命令:

npm.cmd run typecheck
npm.cmd run build
npm.cmd test
npm.cmd run format:check

项目文档

建议按下面顺序阅读:

  1. 项目文件结构说明.md
  2. 项目完整链路说明.md
  3. 项目开发规范(AI协作).md
  4. 开发者AI开发与PR提交流程.md
  5. FEATURES.md
  6. CHANGELOG.md

隐私与安全边界

  • 应用默认本地运行,数据库位于 Tauri app data 目录。
  • WebDAV、对象存储、飞书、SMTP 等凭据只用于用户主动配置的集成。
  • 项目不实现驱动级拦截、不隐藏进程、不阻止任务管理器结束进程、不做恶意持久化。
  • 请不要提交 .env*、私钥、真实数据库、同步备份、日志或构建产物。

更多说明见 SECURITY.md。需要使用支持请看 SUPPORT.md。资产来源和授权说明见 NOTICE.md

发布与更新

桌面端发布脚本位于 scripts/。当前自动发布链路包含 Tauri Windows 构建、更新元数据生成、GitHub Release 上传等能力。公开发布资产、安装包签名和 latest.json 默认放在 learning-kai/kaoyan-focus 的 GitHub Releases。

发布前先预检:

npm.cmd run release:auto -- --version $((Get-Content package.json -Raw | ConvertFrom-Json).version) --dry-run

默认发布路径只处理桌面端。Android 相关发布步骤是维护者内部流程,只有显式传入 --include-android 或设置 INCLUDE_ANDROID_RELEASE=1 时才会参与版本同步和 tag 校验。

发布前请确认版本号同步:

路线图

  • 补齐公开截图、演示 GIF 和英文快速介绍。
  • 增加 Markdown 链接检查和更细的前端测试。
  • 深化同步模块文档和备份恢复说明。
  • 继续控制大文件增长,优先拆分 sync_package/identity.rscommands/sync/object_storage_protocol.rs
  • 补充更细的贡献者任务标签,例如 good first issuedocssyncwindows

贡献

欢迎提交 issue、文档改进和功能 PR。开始前请阅读 CONTRIBUTING.md,行为准则见 CODE_OF_CONDUCT.md

如果你使用 AI 协助开发,请先让 AI 阅读:

License

MIT License. See LICENSE.

About

考研专注 是一个面向 Windows 桌面端的本地学习约束工具,目标是在备考期间把“开始学习、强制白名单、番茄节奏、任务计划、复盘统计、数据同步”串成一个可持续使用的学习工作台。

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages