# mutool-desktop **Repository Path**: liershuang/mutool-desktop ## Basic Information - **Project Name**: mutool-desktop - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-26 - **Last Updated**: 2026-07-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MuTool Desktop > 个人效率工具桌面客户端 — 密码管理 | 地址收藏 | 数据同步 ## 功能特性 - **密码箱** — 安全存储和管理账号密码,支持分类、标签、搜索、一键复制 - **地址收藏** — 收藏常用系统地址,支持卡片/表格双视图、Favicon、访问统计 - **数据同步** — 基于服务端的远程数据同步,支持增量同步和离线操作 - **跨平台** — 基于 Electron,支持 Windows/macOS/Linux ## 技术栈 | 层级 | 技术 | |------|------| | 客户端框架 | Electron 28 + Vue 3.4 + TypeScript 5 | | UI 组件库 | Element Plus 2.6 | | 状态管理 | Pinia 2 | | 构建工具 | Vite 5 | | 加密方案 | AES-256-GCM + PBKDF2 | | 后端框架 | Spring Boot 3.2.5 (Java 21) | | ORM | MyBatis-Plus 3.5.6 | | 数据库 | MySQL 8 | ## 项目结构 ``` mutool-desktop/ ├── electron/ # Electron 主进程代码 │ ├── main.ts # 主进程入口 & IPC handlers │ ├── preload.ts # 预加载脚本 (contextBridge) │ └── services/ # 主进程服务层 │ ├── api-client.ts # HTTP 客户端 │ └── sync-service.ts # 数据同步服务 ├── src/ # Vue 渲染进程代码 │ ├── api/ # API 调用封装 │ ├── components/ # 公共组件 │ ├── composables/ # 组合式函数 │ ├── router/ # 路由配置 │ ├── stores/ # Pinia 状态管理 │ ├── styles/ # 全局样式 │ ├── types/ # TypeScript 类型定义 │ └── views/ # 页面组件 │ ├── layout/ # 主布局 (侧边栏+顶栏+内容区) │ ├── password/ # 密码管理页面 │ ├── bookmark/ # 地址收藏页面 │ └── settings/ # 设置页面 ├── resources/ # 应用资源 (图标等) ├── index.html # HTML 入口 ├── package.json # 项目配置 ├── vite.config.ts # Vite 配置 └── tsconfig.json # TypeScript 配置 ``` ## 开发指南 ### 环境要求 - Node.js >= 18 - npm >= 9 - Java 21 (后端编译) - MySQL 8 (数据库) - Maven 3.8+ ### 安装依赖 ```bash cd mutool-desktop npm install ``` ### 开发模式 ```bash # 启动 Vite 开发服务器 + Electron (热更新) npm run electron:dev # 或分别启动 npm run dev # 仅 Vite dev server (localhost:5173) # 然后在另一个终端启动 Electron npx electron . ``` ### 生产构建 ```bash # 构建前端资源 npm run build # 打包 Electron 应用 npm run electron:build # 输出目录: release/ ``` ### 后端部署 ```bash cd miniAdmin # 1. 执行建表脚本 mysql -u root -p your_database < sql/work_schema.sql # 2. 编译打包 mvn clean package -DskipTests # 3. 运行 java -jar miniadmin-server/target/miniadmin-server.jar ``` ## API 接口 ### 密码管理 `/app-api/work/password/*` | 方法 | 路径 | 描述 | |------|------|------| | GET | /page | 分页查询 | | GET | /{id} | 详情 | | POST | / | 创建 | | PUT | / | 更新 | | DELETE | /{id} | 删除 | | GET | /category-list | 分类列表 | | GET | /sync/{since} | 增量拉取 | | POST | /sync-batch | 批量推送 | ### 地址收藏 `/app-api/work/bookmark/*` | 方法 | 路径 | 描述 | |------|------|------| | GET | /page | 分页查询 | | GET | /{id} | 详情 | | POST | / | 创建 | | PUT | / | 更新 | | DELETE | /{id} | 删除 | | GET | /category-list | 分类列表 | | PUT | /sort | 批量排序 | | POST | /{id}/visit | 记录访问 | | GET | /sync/{since} | 增量拉取 | | POST | /sync-batch | 批量推送 | ## 数据模型 ### 密码条目 work_password_entry | 字段 | 类型 | 说明 | |------|------|------| | id | BIGINT | 主键 | | title | VARCHAR(100) | 标题 | | username | VARCHAR(200) | 用户名 | | password_encrypted | TEXT | AES加密密文 | | url | VARCHAR(500) | 关联URL | | category | VARCHAR(50) | 分类 | | tags | VARCHAR(200) | 标签(逗号分隔) | | notes | TEXT | 备注 | | user_id | BIGINT | 所属用户ID | ### 地址收藏 work_bookmark | 字段 | 类型 | 说明 | |------|------|------| | id | BIGINT | 主键 | | name | VARCHAR(100) | 名称 | | url | VARCHAR(1000) | 地址URL | | category | VARCHAR(50) | 分类 | | icon_url | VARCHAR(500) | Favicon URL | | visit_count | INT | 访问次数 | | sort_order | INT | 排序值 | | user_id | BIGINT | 所属用户ID | ## License MIT