一个基于 Electron + Vue 3 的桌面端 AI 个人日程助理,集成任务管理、笔记、习惯打卡、AI 对话与数据洞察等模块,面向需要本地化、轻量化日程工具的个人用户。
本项目为早期开发存档,发布前请阅读以下信息:
- 开发周期:2025 年 3 月 — 2025 年 5 月
- 开发方式:代码由 AI 助手生成,是在当时的历史条件下(主力模型为 Claude 3.7 等)完全交由 AI 完成全栈开发的实验性项目,作者负责需求设计与代码审阅。彼时 AI 编程能力仍处于早期阶段,因此代码在结构清晰度、可维护性、模块拆分等方面存在较多不足。
- 代码质量:部分页面组件体积过大(单文件超过 100 KB),可能存在样式冗余、命名风格不统一、空目录残留等问题。本仓库不建议作为生产参考或最佳实践参考。
- 维护状态:本项目以存档与开源分享为目的,不承诺持续维护,issue 与 PR 的响应可能延迟或缺失。
- 使用许可:仅限非商业用途,详见 License 章节。
- 日程规划 — 日 / 周 / 月视图切换,任务的创建、编辑、优先级与标签管理
- 任务管理 — 仪表盘任务清单、过期提醒、完成情况统计
- 笔记 — 富文本编辑、标签分类、AI 内容总结
- 个人档案 / 联系人 / 书架 — 三个独立的本地资料管理模块
- AI 对话 — 接入 DeepSeek API,支持流式输出与 Function Calling,内置决策分析、学习助手、创意激发、通用聊天四种模式
- 习惯打卡 — 连续天数统计、徽章成就、能量峰值时段配置
- 数据洞察 — 基于 Chart.js 的效率趋势、完成率、时间分配可视化
- 天气卡片 — 集成第三方天气 API(需自备凭据)
- 界面设计 — 玻璃拟态(Glassmorphism)风格 + 透明窗口,参考 iOS 18 与 Windows 11 的现代设计语言
- 主题切换 — 明 / 暗双主题,支持过渡动画
| 类别 | 选型 |
|---|---|
| 桌面框架 | Electron 20 + electron-builder 23 |
| 前端框架 | Vue 3 + Vue Router 4 + Vuex 4 |
| 构建工具 | Vue CLI 5 + Babel + Webpack |
| 样式方案 | Tailwind CSS 3 + 自定义玻璃拟态组件 |
| 图标资源 | Material Icons Round + Remixicon |
| 数据可视化 | Chart.js 3 + vue-chartjs |
| 日历组件 | FullCalendar 5 |
| 动效 | Framer Motion + 原生 CSS Transition |
| 工具库 | date-fns、SortableJS、Cropper.js、UUID |
| 持久化 | electron-store + localStorage + JSON 文件 |
| AI 服务 | DeepSeek API(OpenAI 兼容协议) |
- Node.js ≥ 14(推荐 16 LTS / 18 LTS)
- npm ≥ 6
- 操作系统:Windows(主要测试平台),macOS 与 Linux 理论可运行,部分窗口透明效果可能略有差异
git clone https://github.com/<your-username>/ai-schedule-assistant.git
cd ai-schedule-assistant
npm install
cp .env.example .env
npm run devnpm run build打包产物输出至 dist_electron/,Windows 平台会生成 .exe 安装包。
仓库附带 start.bat:
./start.bat若检测到已构建的 dist/ 目录,将直接以打包后的 Electron 启动;否则进入开发模式。
复制 .env.example 为 .env 后按需填入凭据:
| 变量 | 必填 | 说明 |
|---|---|---|
DEEPSEEK_API_KEY |
推荐 | DeepSeek API 密钥,可在 platform.deepseek.com 申请。亦可不填,启动后在「设置 → AI 设置」页面手动输入,将保存至 localStorage。 |
VUE_APP_WEATHER_APPID |
可选 | 天气模块所用 tianqiapi.com 的 appid。未填写时天气卡片将使用内置 fallback 数据。 |
VUE_APP_WEATHER_APPSECRET |
可选 | 同上,对应的 appsecret。 |
ai-schedule-assistant/
├── main.js # Electron 主进程:窗口、IPC、文件读写
├── preload.js # 预加载脚本,向渲染进程暴露安全 API
├── vue.config.js # Vue CLI 构建配置
├── package.json # 含 electron-builder 配置
├── start.bat / preview.bat # Windows 启动脚本
├── public/
│ └── index.html # SPA 模板(透明窗口)
├── src/
│ ├── main.js # Vue 应用入口
│ ├── App.vue # 根组件
│ ├── router/ # 路由配置(含登录守卫)
│ ├── store/ # Vuex 全局状态
│ ├── views/ # 各功能主页面
│ │ ├── Login.vue
│ │ ├── Dashboard.vue
│ │ ├── Schedule.vue
│ │ ├── Notes.vue
│ │ ├── Contacts.vue
│ │ ├── BookshelfView.vue
│ │ ├── SelfProfile.vue
│ │ ├── AiChat.vue
│ │ ├── Insights.vue
│ │ └── Settings.vue
│ ├── components/
│ │ ├── layout/ # MainLayout、Sidebar
│ │ ├── ui/ # GlassCard、ThemeSwitch、WindowControls 等
│ │ ├── settings/ # AI 设置面板
│ │ └── workhabits/ # 工作习惯相关子组件
│ ├── composables/ # 组合式函数
│ ├── services/ # 业务服务层
│ │ ├── aiService.js # DeepSeek API 客户端
│ │ ├── aiEmbeddedService.js # 场景化嵌入式 AI
│ │ ├── ai/ # adapters / processors / tools
│ │ ├── config/aiConfig.js # AI 配置中心
│ │ ├── weatherService.js # 天气服务
│ │ └── *Service.js # 任务、笔记、习惯、书架等业务服务
│ ├── data/ # 默认数据与用户数据骨架
│ │ ├── *.example.json # 空骨架模板(实际数据不进仓库)
│ │ ├── workHabits.json # 默认工作习惯配置
│ │ └── habitUtils.js
│ ├── utils/ # 工具函数
│ └── assets/ # tailwind.css、默认头像、logo 等
├── images/user/ # 用户上传的头像与封面
└── README.md
应用采用三层存储方案,按数据用途分配:
- localStorage — 用户设置、UI 状态、AI 历史缓存
- electron-store — 用户档案、API 密钥
- JSON 文件(
src/data/*.json)— 任务、笔记、对话、习惯打卡
仓库中仅保留 *.example.json 空骨架模板,应用首次启动时若发现真实数据文件不存在,将自动以空数据初始化。包含真实用户数据的 JSON 文件已通过 .gitignore 排除。
为便于使用者评估,以下列出当前已知的不足:
- 部分页面组件(如
Dashboard.vue、AiChat.vue、SelfProfile.vue)体积较大,未做粒度拆分 - 服务层命名风格不统一:同时存在
HabitService.js(PascalCase)与taskService.js(camelCase) server/、src/api/、src/electron/、src/ipc/等目录为空,属于早期规划遗留- 登录功能为前端模拟,未对接真实后端,账号密码无校验
- 注册与找回密码功能尚未实现,使用 alert 占位
- 构建命令禁用了 ESLint 检查(
--no-lint),代码风格未做强制约束
本项目采用 CC BY-NC-SA 4.0(知识共享 署名-非商业性使用-相同方式共享 4.0 国际)协议开源。
简要约束:
- ✅ 允许:个人学习、研究、教学、非营利组织内部使用、Fork 与修改
- ❌ 禁止:任何形式的商业用途(包括但不限于转售、付费 SaaS、商业项目引用、捆绑销售)
- 📌 必须:保留原作者署名、协议链接,标明所做修改
- 🔄 衍生作品:必须以相同的 CC BY-NC-SA 4.0 协议公开分发
如需商业授权,请通过仓库 Issues 联系作者。完整协议条款详见 LICENSE 文件。
代码、文档与示例数据均按"现状"提供,不附带任何明示或暗示的保证。
Copyright © 2025 — 2026 ai-life-assistant contributors