feat: strengthen backup and mobile workflows
This commit is contained in:
@@ -1,24 +1,32 @@
|
||||
# dodo
|
||||
|
||||
一个自托管的任务与习惯管理工具,目标是做一个温暖、紧凑、可自己掌控数据的 TickTick-like 应用。
|
||||
一个自托管、移动端友好的任务与生活管理 PWA,数据由自己掌控。
|
||||
|
||||
## 第一阶段能力
|
||||
## 当前主要能力
|
||||
|
||||
- 首次初始化管理员
|
||||
- 用户名密码登录,Cookie Session
|
||||
- 文件夹、清单、任务基础 CRUD
|
||||
- 任务支持截止时间,以及每天 / 每周 / 每月 / 每年和自定义重复(间隔、星期、月日期、次数或截止日期)
|
||||
- 收集箱系统清单
|
||||
- 习惯打卡与倒数纪念日
|
||||
- 倒数日支持倒数日、纪念日、生日,以及每周/月/年重复
|
||||
- Vue 3 + PWA 应用外壳
|
||||
- 手账生活感浅色 UI
|
||||
- 文件夹、收集箱与自定义清单;清单归档后保留任务归属,恢复后原样可见
|
||||
- 任务与一层子任务、优先级、Markdown 备注、日期/时间、回收站、拖拽排序
|
||||
- RFC 5545 计划重复与“完成后重复”;乐观锁避免并发覆盖
|
||||
- 今日页按逾期任务、今日任务、今日习惯分组,并提供进度与环境信息
|
||||
- 完成型/数值型习惯、日/周/月/间隔计划、暂停、历史与归档
|
||||
- 倒数日、纪念日、生日及公历/农历重复
|
||||
- Markdown 备忘录及软删除/恢复
|
||||
- 任务附件、登录设备管理与审计日志
|
||||
- 完整 ZIP v2 备份(含附件字节、manifest 与 SHA-256)及预检后合并/替换恢复
|
||||
- 兼容旧版 CSV / JSON v1 恢复
|
||||
|
||||
## 界面约定
|
||||
|
||||
- 弹层统一使用 `AppSheet` / `AppDialog`,共享遮罩、焦点陷阱、Escape、背景 inert 和嵌套栈行为
|
||||
- 设置页按“数据、账户与安全、登录设备、活动、危险操作”连续分组
|
||||
- 手机底栏直接进入今天、习惯、倒数日、设置,不再使用“更多”中转
|
||||
- 新增入口是普通的圆形 Plus FAB,共用于任务、习惯、倒数日和备忘录
|
||||
|
||||
## 技术栈
|
||||
|
||||
- Frontend: Vue 3 + TypeScript + Vite + Tailwind CSS
|
||||
- Backend: FastAPI + SQLAlchemy 2 Async
|
||||
- DB: PostgreSQL(测试环境使用 SQLite)
|
||||
- Backend: FastAPI + Pydantic v2 + SQLAlchemy 2 Async + Alembic
|
||||
- DB: PostgreSQL(测试使用 SQLite)
|
||||
- Package: uv + pnpm
|
||||
|
||||
## 本地开发
|
||||
@@ -33,18 +41,16 @@ pnpm install
|
||||
pnpm run dev
|
||||
```
|
||||
|
||||
## 环境变量
|
||||
|
||||
```bash
|
||||
DODO_DATABASE_URL=postgresql+asyncpg://user:pass@host:5432/dodo
|
||||
DODO_COOKIE_SECURE=false
|
||||
DODO_SESSION_DAYS=30
|
||||
```
|
||||
配置项见 [`.env.example`](.env.example),API 与数据合同见 [`docs/api.md`](docs/api.md) 和 [`docs/data-model.md`](docs/data-model.md)。
|
||||
|
||||
## 验证
|
||||
|
||||
```bash
|
||||
uv run pytest -q
|
||||
uv run ruff check backend tests
|
||||
cd frontend && pnpm run build
|
||||
uv run pytest -q
|
||||
cd frontend
|
||||
pnpm test
|
||||
pnpm build
|
||||
cd ..
|
||||
git diff --check
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user