Files
dodo/README.md
T
bboysoul 6c234d7d82
ci / gitleaks (push) Successful in 1m19s
ci / docker (push) Successful in 5m48s
feat: strengthen backup and mobile workflows
2026-09-16 21:12:52 +08:00

57 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# dodo
一个自托管、移动端友好的任务与生活管理 PWA,数据由自己掌控。
## 当前主要能力
- 文件夹、收集箱与自定义清单;清单归档后保留任务归属,恢复后原样可见
- 任务与一层子任务、优先级、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 + Pydantic v2 + SQLAlchemy 2 Async + Alembic
- DB: PostgreSQL(测试使用 SQLite
- Package: uv + pnpm
## 本地开发
```bash
cd /Users/bboysoul/PycharmProjects/dodo
uv sync
uv run uvicorn backend.main:app --host 0.0.0.0 --port 8781
cd frontend
pnpm install
pnpm run dev
```
配置项见 [`.env.example`](.env.example)API 与数据合同见 [`docs/api.md`](docs/api.md) 和 [`docs/data-model.md`](docs/data-model.md)。
## 验证
```bash
uv run ruff check backend tests
uv run pytest -q
cd frontend
pnpm test
pnpm build
cd ..
git diff --check
```