Skip to content

Repository files navigation

AI 日程助理 · ai-schedule-assistant

一个基于 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 dev

构建生产版本

npm run build

打包产物输出至 dist_electron/,Windows 平台会生成 .exe 安装包。

Windows 一键启动脚本

仓库附带 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

数据存储说明

应用采用三层存储方案,按数据用途分配:

  1. localStorage — 用户设置、UI 状态、AI 历史缓存
  2. electron-store — 用户档案、API 密钥
  3. JSON 文件src/data/*.json)— 任务、笔记、对话、习惯打卡

仓库中仅保留 *.example.json 空骨架模板,应用首次启动时若发现真实数据文件不存在,将自动以空数据初始化。包含真实用户数据的 JSON 文件已通过 .gitignore 排除。


已知问题

为便于使用者评估,以下列出当前已知的不足:

  • 部分页面组件(如 Dashboard.vueAiChat.vueSelfProfile.vue)体积较大,未做粒度拆分
  • 服务层命名风格不统一:同时存在 HabitService.js(PascalCase)与 taskService.js(camelCase)
  • server/src/api/src/electron/src/ipc/ 等目录为空,属于早期规划遗留
  • 登录功能为前端模拟,未对接真实后端,账号密码无校验
  • 注册与找回密码功能尚未实现,使用 alert 占位
  • 构建命令禁用了 ESLint 检查(--no-lint),代码风格未做强制约束

License

本项目采用 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

About

2025年3-5月的实验性项目存档。一个基于 Electron + Vue 3 的桌面端 AI Agent 生活助理。集成日程、笔记、习惯打卡、AI 对话、Agent助手与数据洞察。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages