docs: 整理仓库结构——新增根 README(当前架构)、客户端 README 与部署手册更新至服务器权威模型,文档归位 docs/,清理误提交的打包产物

This commit is contained in:
root
2026-10-16 22:35:55 +08:00
parent aa773062fe
commit 344e70bf50
10 changed files with 151 additions and 78471 deletions
+32 -23
View File
@@ -1,33 +1,42 @@
# 实习工作日志
# intern-log 客户端
本地优先的实习工作记录工具:考勤打卡、月历、随手记、周记、一键生成总结。
实习工作日志的多端客户端(网页 / Electron 桌面 / Capacitor 安卓共用同一套源码)。
对应设计方案文档:实习工作日志系统-设计方案.md
整体架构、部署与安全设计见仓库根目录 [README](../README.md);设计方案见 [docs/实习工作日志系统-设计方案.md](../docs/实习工作日志系统-设计方案.md)。
## 运行
pnpm install
pnpm dev # 开发模式,默认 http://localhost:5173
pnpm build # 构建产物到 dist/
pnpm build # 构建产物到 dist/(服务端容器托管的就是它)
pnpm preview # 预览构建产物,默认 http://localhost:4173
## 说明
## 数据模型(重要)
- 技术栈:Vue 3 + TypeScript + Vite + Dexie(IndexedDB),无后端、无外部图标库
- 数据保存在浏览器 IndexedDB(数据库名 intern_worklog)
- 「设置」页可导出/导入 JSON 全量备份;「总结」页可导出 Markdown
- 支持上班地点记录(公司、客户现场、出差等),可直接输入自定义地点并自动记住,统计与总结含地点分布
- 打卡时间支持行内直接修改(含补录下班时间),考勤状态自动重算
- 表单带标签与必填校验;删除与备份覆盖导入使用统一确认弹窗;操作结果轻提示反馈
- 工作记录支持弹窗完整信息编辑(全部字段),点击条目或编辑图标打开
- 备忘录:双栏列表与编辑,未保存修改有守卫
- 密码库:企业账号密码管理,主密码 PBKDF2 派生 AES-256-GCM 加密,支持解锁、锁定、搜索、复制、随机密码生成、修改主密码;备份文件中密码保持密文
- 用户系统:每位用户独立 IndexedDB 数据库隔离存储;登录密码仅存 PBKDF2 哈希;30 分钟无操作自动退出;创建用户时可迁移升级前数据
- 记账系统:支出/收入记录、报销跟踪(面向出差垫付)、月度汇总与分类分布
- 多端同步:自建同步服务端(server 目录,Docker 部署见 server/DEPLOY.md),设置页配置后桌面、网页、手机 PWA 数据互通;密码库以密文同步
- 安卓应用:Capacitor 脚手架已就绪,本机构建 APK 需 Android Studio:pnpm build && npx cap sync android,进入 android 目录执行 gradlew assembleDebug
- PWA:在 Edge/Chrome 中打开后,地址栏右侧点「安装」或菜单选择「将此站点作为应用安装」,即可获得独立窗口与桌面图标,离线可用
- Electron 桌面版:pnpm dist 产出 release/InternLog-Setup-<版本>.exe(NSIS 安装包)与 release/win-unpacked/InternLog.exe(免安装版);数据存于系统用户目录,与浏览器数据互不影响
- 全局搜索:Ctrl+K 唤起,覆盖工作记录与备忘录,点击结果跳转定位
- 考勤支持休假标记;支持导出工作记录与考勤 CSV;总结草稿可复制、可 AI 润色(设置页配置 OpenAI 兼容接口);密码库 5 分钟无操作自动锁定
- 图标为自绘 SVG(src/components/icons.ts),界面不含表情与特殊符号
- **服务器是唯一数据权威**,本地 Dexie(IndexedDB)只是实时缓存:
每次写操作立即推送差异到服务器,并以服务器返回的快照全量重建缓存
- 同步引擎:`src/sync/engine.ts`(差异推送 + 快照重建 + SSE 实时通知 + 60s 兜底)
- 本地库按云端用户隔离:`intern_worklog_<云端userId>`
## 目录速览
src/
├─ views/ 页面(日历/详情/统计/总结/记账/备忘录/密码库/设置/用户管理)
├─ components/ 通用组件与自绘 SVG 图标(icons.ts)
├─ db/ schema(Dexie)/ repo(数据仓库,写后即推)/ auth(云端登录)/ vault(加密密码库)
├─ sync/ 同步引擎
├─ domain/ 考勤计算 / AI 润色
└─ lib/ 日期、加密、下载、toast、错误浮层、服务器基址
## 打包
- 桌面:`pnpm dist` → release/InternLog-Setup-*.exe(NSIS)与 win-unpacked/
- 安卓:`pnpm build && npx cap sync android` → android/gradlew.bat assembleDebug
(需 JDK 17:set JAVA_HOME=C:\Program Files\Java\jdk-17)
## 验证脚本(repro/)
开发期回归工具,不参与构建:
- `protocol-audit.mjs` / `admin-audit.mjs`:对本地同步服务(127.0.0.1:3780)的协议级审计
- `two-device.ts` / `engine-realtime.ts` / `unit-tests.ts`:引擎级与单元测试(用 esbuild 打包后 node 运行,命令见文件头注释)