爱意满满的作品展示区。
052678

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

  •  
  •   052678 · 10h 51m ago · 208 views

    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

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3182 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 147ms · UTC 13:10 · PVG 21:10 · LAX 06:10 · JFK 09:10
    ♥ Do have faith in what you're doing.