feat: 多端同步服务端与引擎 + Capacitor 安卓工程(v1.13)

This commit is contained in:
root
2026-10-16 11:07:37 +08:00
parent ee795eeefb
commit de3add8881
70 changed files with 2039 additions and 12 deletions
+26 -1
View File
@@ -1,6 +1,6 @@
# 实习工作日志系统 设计方案
- 版本:v1.11(记账系统)
- 版本:v1.13(多端同步与安卓应用)
- 范围:个人版全量功能;团队版仅作扩展预留
## 1. 产品定位
@@ -163,6 +163,30 @@ AI 润色为可选进阶:将统计、成果、周记交给大模型按四段
| 汇总 | 按月展示收入、支出、结余、待报销四卡片;支出分类分布条形图 |
| 明细 | 月度流水表格,类型与报销状态筛选,支持弹窗编辑、删除确认、标记已报销 |
### 3.13 多端同步与安卓应用
**同步服务端**(server 目录,零依赖 Node,Docker 部署于自有服务器):
| 项 | 说明 |
|---|---|
| 存储 | JSON 文件按用户隔离(users/用户ID.json),注册表独立;整目录复制即备份 |
| 认证 | 登录密码 PBKDF2 哈希;HMAC 签名 token(30 天有效期) |
| 接口 | 注册 / 登录 / 全量同步 / 健康检查;CORS 开放以支持手机浏览器 |
| 同步模型 | 客户端全量差异对比 + 记录级新者胜(updated_at)+ 软删除墓碑;本地 IndexedDB 始终为主存储,离线可用 |
**客户端同步引擎**(src/sync/engine.ts):
- 一次性补齐每行 uuid 与 updated_at;镜像表(sync_mirror)做哈希差异检测
- 删除通过墓碑表传播到服务端与其他端
- 设置页配置同步地址与云端账号;登录后自动同步(5 分钟间隔,静默),支持立即手动同步
- 密码库以密文同步,主密码永不出本机;本地临时设置(上次项目、分类等)不同步
**安卓应用(Capacitor)**:
- 复用全部前端代码;npx cap add android 生成工程,pnpm cap:sync 同步资源
- 本机构建 APK 需 Android Studio(SDK + JDK 17):进入 android 目录执行 gradlew assembleDebug,产物在 app/build/outputs/apk/debug/
- 分发:apk 直接安装(允许未知来源),或上架应用市场
## 4. 数据模型(SQLite)
### 4.1 建表语句
@@ -506,3 +530,4 @@ src/
- v1.10:Electron 桌面应用——pnpm dist 一键产出 NSIS 安装包与免安装目录;主进程加载本地构建产物,数据存于系统用户目录;窗口禁用菜单栏、外部链接交由系统浏览器打开
- v1.11:新增记账系统——支出/收入录入(金额以分存储)、固定分类枚举、报销跟踪(待报销/已报销与待报销金额汇总)、月度汇总卡片与支出分类分布、月度流水筛选与弹窗编辑;备份格式升级至 v3 并向下兼容
- v1.12:「今日」视图升级为「详情」——支持前后翻页、日期选择器自由切换日期,对任意一天进行查看、打卡、记录与修改
- v1.13:多端同步与安卓应用——自建零依赖同步服务端(Docker 部署、按用户 JSON 隔离、HMAC token);客户端同步引擎(uuid 与 updated_at 补齐、镜像哈希差异、墓碑传播、记录级新者胜);设置页同步配置与自动同步;Capacitor 安卓工程脚手架与移动端 UI 适配(安全区、输入字号)