chore: tidy repo - DESIGN.md & scoring rules into docs/, icon generators into tools/, drop one-off junk, refresh app README
ci / test (push) Canceled after 0s
ci / test (push) Canceled after 0s
This commit is contained in:
+11
-51
@@ -1,56 +1,16 @@
|
||||
# 足迹 Footprints
|
||||
# 足迹 Footprints — 应用目录
|
||||
|
||||
个人留痕系统 · 桌面应用(Tauri 2 + React 19 + SQLite)+ 移动端 PWA。
|
||||
设计文档见仓库根目录 `DESIGN.md`;同步服务端见 `sync-server/`。
|
||||
React 19 前端 + Tauri 2 桌面壳 + 共用 Node 命令层。
|
||||
**云优先架构**:业务数据全部存服务器(`../sync-server`),浏览器 / PWA / 桌面三端共享同一命令契约。
|
||||
|
||||
## 目录结构
|
||||
## 结构
|
||||
|
||||
app/
|
||||
src/ React 前端(时间线 / 记录 / 统计 / 类型 / 字典)
|
||||
src-tauri/ Tauri 2 桌面壳 + Rust 后端(rusqlite,26 个 IPC 命令 + 同步地基)
|
||||
public/ PWA 清单 / Service Worker / 图标
|
||||
server/dev-bridge.mjs 开发桥接:HTTP 暴露与 Tauri IPC 相同的命令契约
|
||||
server/db.mjs 桥接与种子脚本共用的数据层(node:sqlite)
|
||||
server/seed.mjs 演示数据(仅当库为空时写入)
|
||||
schema.sql 数据库 schema(Rust 与 Node 共用同一份,v2 含同步元数据)
|
||||
tools/pnpm.cjs 自包含 pnpm(本机无全局 npm/pnpm 时使用)
|
||||
sync-server/ 自建同步服务(Docker 部署,协议已冻结)
|
||||
src/ React 前端(时间线 / 记录 / 成绩 / 统计 / 类型 / 字典 / 管理)
|
||||
public/ PWA:sw.js(v3,接口类请求绝不缓存)/ manifest / 图标
|
||||
src-tauri/ Tauri 2 桌面壳(Windows NSIS 安装包构建)
|
||||
server/ db.mjs 命令层(37 个命令,Web 与桌面共用)+ seed.mjs(本地演示数据)
|
||||
schema.sql 数据库 schema(Rust 与 Node 共用同一份,v2 含同步元数据)
|
||||
|
||||
## 浏览器预览(无需 Rust)
|
||||
图标再生成:`python ../tools/gen_icons.py`(桌面)与 `python ../tools/gen_pwa_icons.py`(PWA)。
|
||||
|
||||
node ../tools/pnpm.cjs bridge # 终端 1:数据桥接(含 dist 静态托管)
|
||||
node ../tools/pnpm.cjs dev # 终端 2:前端热更(http://localhost:5173)
|
||||
|
||||
或构建后直接访问桥接托管页:
|
||||
|
||||
node ../tools/pnpm.cjs build # tsc 类型检查 + vite 打包(含 PWA 资源)
|
||||
node server/seed.mjs # 可选:写入演示数据
|
||||
|
||||
## 桌面应用打包(Windows)
|
||||
|
||||
前置:Rust stable-msvc(scripts/setup-rust.ps1 一键安装,MSVC Build Tools 需已具备)。
|
||||
|
||||
node ../tools/pnpm.cjs build # 先产出 dist
|
||||
node ../tools/pnpm.cjs tauri build
|
||||
|
||||
产物:`src-tauri/target/release/bundle/nsis/*-setup.exe`(NSIS 安装包)。
|
||||
开发模式:`node ../tools/pnpm.cjs tauri dev`。
|
||||
|
||||
## 移动端(PWA)
|
||||
|
||||
前端已做响应式与 PWA 改造(manifest + Service Worker + 图标):
|
||||
|
||||
- 桌面壳内运行时自动跳过 SW 注册
|
||||
- 浏览器/手机访问托管页时自动注册 SW,可"添加到主屏幕"离线壳启动
|
||||
- 同步服务部署后,手机 PWA 直连同一账号数据
|
||||
|
||||
原生 Android 壳(Tauri mobile)为可选后续项,需要 Android SDK/NDK;iOS 构建需 macOS。
|
||||
|
||||
## 命令契约
|
||||
|
||||
前端统一经 `src/lib/api.ts` 调用:浏览器模式走 `POST /api/<command>`(开发桥接),
|
||||
桌面模式走 Tauri `invoke(command, { payload })`。两端实现同一组命令,
|
||||
含多端同步地基:每行携带 uuid/hlc/origin,删除为墓碑,写入进 sync_oplog。
|
||||
|
||||
数据与附件位置:桌面版在系统应用数据目录(`%APPDATA%/com.footprints.app`),
|
||||
开发预览在 `app/.data/`。备份 = 复制该目录。
|
||||
文档:[`../docs/DESIGN.md`](../docs/DESIGN.md)(设计底稿)· [`../docs/api.md`](../docs/api.md)(HTTP API)· [`../sync-server/`](../sync-server/)(服务器)。
|
||||
|
||||
Reference in New Issue
Block a user