[开源] itodo++ 一个开源、免费、可自行部署的多端待办任务管理软件,主打保护隐私。

052678 2026-07-14 10:18 1

iTodo++


一个多端待办任务管软件,包含 后端 API桌面 / 移动端 AppWeb 前端 三端,可跨平台使用同一套数据。


1783994519741.png



iTodo++: a Rails JSON API, a Flutter desktop/mobile app, and a Vue 3 web client.





功能特性



  • 任务管理:创建、编辑、完成、删除、拖拽排序;支持描述、优先级、标签。

  • 清单( Task Lists ):将任务归类到不同清单,内置「工作 / 个人 / 学习」默认清单。

  • 标签( Tags ):可自定义带颜色的标签,并按标签筛选任务。

  • 优先级:无 / 低 / 中 / 高 四级优先级,配合 Eisenhower (四象限)视图使用。

  • 提醒:支持「准时 / 提前 5 分钟 / 30 分钟 / 1 小时 / 1 天」提醒。

  • 重复:不重复 / 每天 / 工作日 / 每周 / 每月 / 每年。

  • 回收站:软删除、恢复、清空。

  • 多视图:收集箱( Inbox )、今天、未来 7 天、已完成、回收站、自定义清单、四象限、日历、专注模式。

  • 多端同步:后端提供统一 REST API ,Web 与 App 共享数据。


1783994622013.png




技术栈


























模块 技术 说明
todo_api Ruby on Rails 8.1 + PostgreSQL + Puma JSON API ,支持 Docker (Kamal / Thruster)部署、rack-cors 跨域
todo_app Flutter 3 (Dart) 桌面( macOS 优先)/ 移动 / Web ,使用 Provider + http + window_manager
todo_web Vue 3 + Vite + Pinia + Vue Router + axios 单页 Web 应用,开发时代理 /api 到后端 :3000

三端约定的后端地址均为 http://localhost:3000/api( Android 模拟器请改用 10.0.2.2)。




目录结构


.
├── todo_api/ # Rails JSON API ( PostgreSQL )
├── todo_app/ # Flutter 桌面 / 移动 / Web 客户端
└── todo_web/ # Vue 3 + Vite Web 前端



快速开始


1. 后端 API (todo_api)


环境要求:Ruby 3.2+、PostgreSQL 14+。


cd todo_api

# 安装依赖
bundle install

# 配置数据库(可通过 .env 设置 DB_HOST / DB_USERNAME / DB_PASSWORD / DB_NAME )
cp .env.example .env # 如存在,按需修改
rails db:create db:migrate

# 启动服务(默认监听 http://localhost:3000 )
bin/rails server

# 健康检查
curl http://localhost:3000/api/health

或使用 Docker 进行容器化部署(参见 DockerfileGemfile 中的 kamal)。


主要 API:



  • GET/POST/PUT/DELETE /api/tasks — 任务 CRUD ,支持 viewlist_idtag_idq 筛选

  • PATCH /api/tasks/:id/toggle — 切换完成状态

  • PATCH /api/tasks/:id/trashrestoreDELETE /api/tasks/trash/empty — 回收站

  • GET/POST/PUT/DELETE /api/task_lists — 清单

  • GET/POST/PUT/DELETE /api/tags — 标签


2. Web 前端 (todo_web)


环境要求:Node.js 18+。


cd todo_web

npm install

# 开发模式(默认 http://localhost:5173 ,/api 自动代理到后端 :3000 )
npm run dev

# 构建生产包到 dist/
npm run build

# 预览构建产物
npm run preview

3. 桌面 / 移动 App (todo_app)


环境要求:Flutter 3.11+(本机已配置 SDK )。


cd todo_app

flutter pub get

# 运行( macOS / Windows / Linux 桌面,或连接设备 / 模拟器)
flutter run

# 构建各平台产物
flutter build macos # macOS
flutter build windows # Windows
flutter build linux # Linux
flutter build apk # Android
flutter build ios # iOS
flutter build web # Web

App 默认使用本地存储(shared_preferences),并内置 TodoApi 服务可连接后端 todo_api 进行同步(修改 lib/services/api_service.dart 中的 _baseUrl)。




开发说明



  • 本地联调推荐:先启动 todo_api(:3000 ),再启动 todo_web(:5173 ,已配置代理)或 todo_app

  • 前后端通过 rack-cors 处理跨域;生产环境请在 todo_api/config/initializers/cors.rb 中限制允许的来源。

  • 各子目录均保留有各自的技术文档(如 todo_api/README.mdtodo_app/README.md),可查阅更细致的说明。




QQ 交流群


1783932065941.png


项目仓库


https://gitee.com/appbook/itodo

最新回复 (0)
    没有回复
* 帖子来源V2EX
返回