GoForum🌐 V2EX

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

052678 · 2026-07-14 10:23 · 0 次点赞 · 0 条回复

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 条回复
添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: 052678
发布: 2026-07-14
点赞: 0
回复: 0