Files
dodo/README.md
T
bboysoul a535f69cae
ci / gitleaks (push) Successful in 7s
ci / docker (push) Successful in 3m34s
feat: add local pomodoro focus timer
Frontend-only 25m focus / 5m break timer with pause-resume-reset, deadline-based absolute timing, versioned localStorage persistence, cross-tab conflict protection, midnight-completion attribution, accessible stage controls, and reduced-motion support. Adds 专注 entry to desktop sidebar; mobile bottom nav unchanged; no notifications, task association, history, or cross-device sync. Also fixes mobile E2E task isolation and the stale calendar 390px overflow assertion.
2026-09-22 09:10:05 +08:00

58 lines
2.0 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 计划重复与“完成后重复”;乐观锁避免并发覆盖
- 今日页按逾期任务、今日任务、今日习惯分组,并提供进度与环境信息
- 完成型/数值型习惯、日/周/月/间隔计划、暂停、历史与归档
- 本地专注计时器:25 分钟专注、5 分钟休息、暂停/继续/重置与当日完成次数
- 倒数日、纪念日、生日及公历/农历重复
- 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
```