| 🗂️ 任务管理 | 列表 / 看板双视图,分类、优先级、截止时间、标签全生命周期管理,分类可自由增删改 |
| 📄 简历制作 | 6 套风格化模板 · 实时 A4 预览 · 一键排版,支持导出 HTML / PDF / Markdown |
| ❌ 错题本 | 文字粘贴 + 图片 OCR 录入,按遗忘曲线安排复习,让错题真正「学会」 |
| 📝 笔记 | 三栏布局 + 富文本编辑,标签管理,随手记录课程与灵感 |
| 🍅 番茄钟 | 专注 / 短休息 / 长休息,自定义时长,切页计时不中断,进度环实时反馈 |
| 🔍 全局搜索 | 跨任务 · 笔记 · 错题统一检索,Ctrl/⌘ + K 一键唤起 |
| 📊 控制台 | 学习活跃度趋势、学科分布、热力图,量化每一份投入 |
| 🎨 主题系统 | 深 / 浅模式 + 主题色自定义,明暗两套配色均精心调校 |
| ☁️ 离线优先 | 数据默认保存在本地,云端后端在线时自动同步,离线也完整可用 |
| 🔌 可扩展 | 插件系统、自动化测试框架、多端数据同步,生态在路上 |
截图来自 ETA 项目运行,持续迭代中。
ETA 采用 Electron + React + TypeScript 的现代桌面应用架构:
- Electron 30 — 跨平台桌面壳层,随应用自动拉起本地 Spring Boot 后端
- React 18 + TypeScript 5 — 类型安全的组件化 UI,全部页面由 hooks + 轻量 store 驱动
- electron-vite 3 + Vite 5 — 主进程 / 预加载 / 渲染进程统一构建,秒级热更新
- electron-builder — 一键产出 Windows (NSIS) / macOS (DMG) / Linux (AppImage, deb) 安装包
- 自定义主题系统 — 原生 CSS 变量驱动,深浅模式 + 主题色实时切换
- 手写图表组件 — 不依赖重型图表库,面积图 / 环形图 / 热力图轻量自绘
ETA
├── front/ # 桌面端主工程(Electron + React)
│ ├── src/
│ │ ├── main/ # Electron 主进程(窗口、原生对话框、拉起后端)
│ │ ├── preload/ # 安全桥接(contextIsolation + IPC)
│ │ └── renderer/
│ │ ├── api/ # 接口层(http / endpoints / local 离线降级)
│ │ ├── components/ # 通用 UI 与布局(Layout / Select / icons / ui)
│ │ ├── pages/ # 业务页面(工作台 / 任务 / 简历 / 错题 / 笔记 …)
│ │ ├── store/ # 全局状态(本地优先 + 云端同步)
│ │ ├── types/ # 与后端契约一致的数据模型
│ │ └── styles/ # 全局样式与主题变量
│ ├── electron.vite.config.ts
│ └── package.json
└── 状态码含义 # 前后端联调统一状态码规范
cd front
npm installnpm run devnpm run typechecknpm run build # 仅构建产物
npm run pack # 构建 + 生成未打包目录(快速验证)
npm run dist:win # 生成 Windows 安装包
npm run dist:mac # 生成 macOS 安装包
npm run dist:linux # 生成 Linux 安装包列表 / 看板双视图自由切换;支持分类、优先级(高 / 中 / 低)、截止时间与标签; 分类可在线添加、重命名、删除(带二次确认防误删);勾选即完成,进度一目了然。
极简 / 现代 / 经典 / 创意 / 双栏等多套模板一键切换,A4 实时预览与排版, 支持导出为 HTML / PDF / Markdown,求职季的得力助手。
支持文字粘贴与图片拖入自动 OCR 识别录入;按学科分类、按遗忘曲线提醒复习, 掌握一道,放下一道。
三栏式笔记工作台:列表 + 富文本编辑器 + 信息侧栏;标签体系可增删改, 写作体验专注流畅。
专注计时 + 自定义时长 + 进度环动画,切换页面计时不中断,学习节奏由你把控。
跨任务、笔记、错题统一检索,结果按类型分组,Ctrl/⌘ + K 秒开。
| 快捷键 | 功能 |
|---|---|
Ctrl/⌘ + K |
全局搜索 |
Ctrl/⌘ + N |
新建任务 |
Ctrl/⌘ + Shift + N |
新建笔记 |
Ctrl/⌘ + E |
快速录入错题 |
Ctrl/⌘ + Shift + L |
切换深浅主题 |
所有快捷键均可在「设置 → 快捷键」中自定义。
ETA 采用 本地优先(Offline-first) 架构:
- 所有数据默认写入本地存储,断网也能完整使用核心功能;
- 打包安装后自动以子进程拉起本地 Spring Boot 后端(
http://127.0.0.1:8080); - 后端就绪即自动在线同步,不可达时无缝降级,云 + 本地双保险;
- 「备份与恢复」支持本地备份 / JSON 导入导出,数据永远属于你。
前端与后端通过 RESTful 接口联调,接口前缀统一为 /api/v1,
响应采用统一包裹结构:
{
"code": 200,
"message": "success",
"data": {}
}
code = 200表示成功,非 200 为业务错误码(详见状态码规范)。
文档入口:
- 📄 ETA-api.json — OpenAPI / JSON 格式接口文档
接口模块覆盖:认证、任务管理、简历制作、错题本、OCR、笔记、搜索、控制台统计、设置、备份、反馈、插件与数据同步。
- 核心五模块(任务 / 简历 / 错题 / 笔记 / 搜索)
- 深浅主题与主题色定制
- 番茄钟插件与全局快捷键
- 云端多端同步(冲突合并策略)
- 插件市场与开发者 API
- 移动端 / 网页端
- 自动化测试框架与 CI 集成
欢迎任何形式的贡献 —— 提 Issue、修 Bug、补文档、加功能都很有价值!
- Fork 本仓库并创建你的分支:
git checkout -b feat/xxx - 提交你的改动:
git commit -m 'feat: 新增 xxx' - 推送分支:
git push origin feat/xxx - 提交 Pull Request,并附上改动说明
开发前请先运行 npm run typecheck 确保类型通过。
AGPL © ETA 开发团队 负责人 星河一叶Roxy
ETA — 让学习更专注,让成长有迹可循。 ⭐
如果它帮到了你,欢迎点亮 Star,并把它分享给需要的同学~





