Skip to content

Repository files navigation

📚 ETA · 学习工具集

面向师生的开源一站式学习工作台

任务管理 · 简历制作 · 错题本 · 笔记 · 番茄钟装进一个优雅的桌面应用, 离线可用、云 + 本地双保险,让每一点努力都有迹可循。

ETA 工作台

License Version PRs Welcome Electron React TypeScript Vite

简体中文 · 反馈


✨ 特性亮点

🗂️ 任务管理 列表 / 看板双视图,分类、优先级、截止时间、标签全生命周期管理,分类可自由增删改
📄 简历制作 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 install

开发模式(热更新)

npm run dev

类型检查

npm run typecheck

打包发布

npm 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 为业务错误码(详见状态码规范)。

文档入口:

接口模块覆盖:认证、任务管理、简历制作、错题本、OCR、笔记、搜索、控制台统计、设置、备份、反馈、插件与数据同步。

🗺️ 路线图

  • 核心五模块(任务 / 简历 / 错题 / 笔记 / 搜索)
  • 深浅主题与主题色定制
  • 番茄钟插件与全局快捷键
  • 云端多端同步(冲突合并策略)
  • 插件市场与开发者 API
  • 移动端 / 网页端
  • 自动化测试框架与 CI 集成

🤝 贡献指南

欢迎任何形式的贡献 —— 提 Issue、修 Bug、补文档、加功能都很有价值!

  1. Fork 本仓库并创建你的分支:git checkout -b feat/xxx
  2. 提交你的改动:git commit -m 'feat: 新增 xxx'
  3. 推送分支:git push origin feat/xxx
  4. 提交 Pull Request,并附上改动说明

开发前请先运行 npm run typecheck 确保类型通过。

📄 License

AGPL © ETA 开发团队 负责人 星河一叶Roxy


ETA — 让学习更专注,让成长有迹可循。

如果它帮到了你,欢迎点亮 Star,并把它分享给需要的同学~

About

ETA Frontend: a student-teacher productivity tool with tasks, notes, mistake notebook, resume builder, search and analytics dashboard.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages