致谢:本项目参考并致敬了 oj_helper 项目,感谢原作者的开源贡献。
OJFlow 是一个专为算法竞赛(ACM/ICPC, OI)选手打造的跨平台桌面应用。它致力于解决多平台账号管理混乱、比赛信息分散、数据查看不便等痛点。
通过 OJFlow,你可以:
- 一站式管理:聚合 Codeforces, AtCoder, LeetCode 等主流 OJ 平台。
- 专注训练:提供沉浸式的刷题体验,减少无关信息的干扰。
- 数据可视化:直观展示你的 Rating 变化曲线与解题数量统计,助你科学分析训练进度。
本项目基于现代化的前端技术栈构建,确保了高性能与良好的开发体验:
| 模块 | 技术选型 | 说明 |
|---|---|---|
| Core | Electron | 跨平台桌面应用容器 (v30.x) |
| Framework | Vue 3 | 渐进式 JavaScript 框架 |
| Language | TypeScript | 强类型的 JavaScript 超集 |
| Build Tool | Vite + Bun | 极速的构建工具与运行时 |
| UI Library | Naive UI | Vue 3 组件库,极简风格 |
| State | Pinia | 直观、类型安全的状态管理 |
| Utils | Cheerio | 服务端 HTML 解析与爬虫 |
| Charts | ECharts | 强大的数据可视化库 |
- 📅 比赛日历:实时同步各大 OJ 近期比赛信息,支持添加提醒。
- 📈 Rating 追踪:可视化展示 Codeforces / AtCoder 等平台的积分变化。
- 📊 刷题统计:自动统计各平台 AC 题目数量,生成能力雷达图。
- 🚀 快捷导航:内置常用 OJ 平台入口,支持自定义添加。
- 🎨 现代化 UI:基于 Naive UI 设计,支持深色模式。
- 📝 本地题解:支持 Markdown 编写与管理本地题解库 (Planned)。
- 🤖 虚拟竞赛:模拟真实比赛环境,支持倒计时与榜单 (Planned)。
- Node.js: >= 18.0.0
- Bun: >= 1.0.0 (推荐) 或 npm/pnpm
-
克隆仓库
git clone https://github.com/Siborne/OJFlow.git cd OJFlow
2. **安装依赖**
```bash
bun install
# 或者
npm install
-
启动开发环境
bun run dev # 或者 npm run dev此命令将同时启动 Vite 开发服务器和 Electron 应用窗口。
-
构建应用
# 构建生产环境包 bun run dist # 针对特定平台构建 bun run dist:win # Windows bun run dist:mac # macOS bun run dist:linux # Linux
# 开发
bun run dev
# 类型检查
bun run type-check
# Lint
bun run lint
# 自动修复 Lint
bun run lint:fix
# 单元测试
bun run test:unit
# E2E 测试
bun run test:e2e启动应用后,首页直观展示各大平台的刷题数据与 Rating 积分,助你快速了解当前状态。
进入 Rating 页面,查看你在 Codeforces 和 AtCoder 的积分走势,激励自己不断突破。
我们非常欢迎社区贡献!如果您想参与开发,请遵循以下步骤:
- Fork 本仓库。
- 创建您的特性分支 (
git checkout -b feature/AmazingFeature)。 - 提交您的更改 (
git commit -m 'Add some AmazingFeature')。 - 推送到分支 (
git push origin feature/AmazingFeature)。 - 开启一个 Pull Request。
请确保在提交前运行代码检查:
# 运行类型检查与 Lint
bun run type-check
bun run lint本项目采用 GNU General Public License v3.0 开源协议。
Made with ❤️ by OJFlow Team


