logo
0
0
WeChat Login
feat: 初始化光阶Todo项目

光阶Todo (GuangJie Todo)

拾光而上,有序人生

一款使用 Rust (Tauri v2.8.0) + React 开发的现代化任务管理软件。

功能特性

📋 总览页面

  • 励志名言展示
  • GitHub 风格的贡献热力图
  • 目标进度和任务完成度统计
  • 多种图表可视化

📊 任务看板

  • Trello 风格的看板管理
  • 支持创建多个看板
  • 拖拽排序任务
  • 子任务支持
  • 优先级设置
  • 固定看板到侧边栏
  • 截止日期和提醒功能

🎯 目标管理

  • 创建和追踪长期目标
  • 进度百分比可视化
  • 子目标分解
  • 截止日期设置
  • 彩色标签分类

📅 日历视图

  • 月/周/日多视图切换
  • 24小时详细时间安排
  • 任务与日历集成
  • 跨天、跨月、跨年任务支持
  • 每日提醒设置

🍅 番茄钟

  • 倒计时/正计时模式
  • 自定义时长设置
  • 专注/短休息/长休息模式
  • 任务关联
  • 声音和弹窗提醒
  • 使用统计图表

👤 个人资料

  • 昵称、头像、手机号、邮箱
  • 个性签名设置
  • 个人简介

⚙️ 设置

  • 主题切换: 2个浅色主题 + 2个深色主题
  • 多语言: 英语(默认)、简体中文、繁体中文
  • 每周起始日: 周一/周日切换
  • 同步功能: 本地持久化存储,支持云端同步
  • 自动更新: 软件自动检查和更新

技术栈

后端 (Rust + Tauri)

  • Rust 2021 Edition
  • Tauri v2.8.0
  • serde/serde_json - 数据序列化
  • tokio - 异步运行时
  • chrono - 日期时间处理
  • dirs - 系统目录路径

前端 (React + TypeScript)

  • React 18.3
  • TypeScript 5.6
  • Vite 6.0 - 构建工具
  • Zustand 5.0 - 状态管理
  • Recharts 2.15 - 图表库
  • date-fns 4.1 - 日期处理
  • @hello-pangea/dnd 18.3 - 拖拽功能
  • lucide-react 0.462 - 图标库
  • Tauri API 2.1 - 前端API

插件

  • tauri-plugin-locale - 国际化
  • tauri-plugin-notification - 系统通知
  • tauri-plugin-updater - 自动更新
  • tauri-plugin-shell - 系统调用

项目结构

GuangJie/ ├── src/ # 前端源代码 │ ├── components/ # React 组件 │ │ ├── Sidebar.tsx # 侧边栏 │ │ ├── Overview.tsx # 总览页面 │ │ ├── ContributionGraph.tsx # 贡献热力图 │ │ ├── GoalProgress.tsx # 目标进度图表 │ │ ├── TaskCompletionChart.tsx # 任务完成度图表 │ │ ├── PomodoroStats.tsx # 番茄钟统计 │ │ ├── Boards.tsx # 看板页面 │ │ ├── BoardList.tsx # 看板列表 │ │ ├── BoardView.tsx # 看板视图 │ │ ├── BoardColumn.tsx # 看板列 │ │ ├── TaskCard.tsx # 任务卡片 │ │ ├── CreateBoardModal.tsx # 创建看板弹窗 │ │ ├── CreateTaskModal.tsx # 创建任务弹窗 │ │ ├── Goals.tsx # 目标页面 │ │ ├── GoalCard.tsx # 目标卡片 │ │ ├── GoalSubTargetItem.tsx # 子目标项 │ │ ├── CreateGoalModal.tsx # 创建目标弹窗 │ │ ├── Calendar.tsx # 日历页面 │ │ ├── DailyView.tsx # 日视图 │ │ ├── EventModal.tsx # 事件弹窗 │ │ ├── Pomodoro.tsx # 番茄钟页面 │ │ ├── PomodoroSettings.tsx # 番茄钟设置 │ │ ├── Profile.tsx # 个人资料 │ │ └── Settings.tsx # 设置页面 │ ├── store/ # 状态管理 │ │ └── useStore.ts # Zustand store │ ├── types/ # TypeScript 类型定义 │ │ └── index.ts │ ├── styles/ # 样式文件 │ │ └── App.css │ ├── i18n.tsx # 国际化配置 │ ├── App.tsx # 主应用组件 │ ├── main.tsx # 入口文件 │ └── index.css # 全局样式 ├── src-tauri/ # Rust 后端 │ ├── src/ │ │ ├── main.rs # 主入口 │ │ ├── state.rs # 数据结构定义 │ │ ├── commands.rs # Tauri 命令 │ │ └── storage.rs # 本地存储 │ ├── tauri.conf.json # Tauri 配置 │ ├── Cargo.toml # Rust 依赖 │ └── build.rs # 构建脚本 ├── package.json # Node 依赖 ├── tsconfig.json # TypeScript 配置 ├── vite.config.ts # Vite 配置 └── README.md # 项目说明

快速开始

环境要求

  • Rust 1.70+ (推荐 1.91)
  • Node.js 18+ (推荐 24)
  • pnpm/npm/yarn

安装依赖

# 克隆仓库 git clone https://github.com/your-repo/guangjie-todo.git cd guangjie-todo # 安装前端依赖 pnpm install # Rust 依赖会在构建时自动安装

开发模式

# 启动开发服务器 pnpm tauri dev # 或使用构建脚本 ./build.sh dev

构建发布版本

# 使用 Tauri 构建 pnpm tauri build # 或使用构建脚本 ./build.sh build # 生产构建 ./build.sh clean # 清理构建 ./build.sh all # 完整构建(清理+构建)

构建产物将位于 src-tauri/target/release/bundle/ 目录。

📦 跨平台打包

本项目支持在 Windows、macOS 和 Linux 三个平台上打包发布。

快速打包(当前平台)

# Linux/macOS ./scripts/build-all-platforms.sh # Windows (PowerShell) .\scripts\build-all-platforms.ps1

详细打包指南

请查看 CROSS_PLATFORM_BUILD.md 获取完整的跨平台打包指南,包括:

  • 各平台详细构建步骤
  • 图标生成
  • 代码签名
  • 自动化发布流程(GitHub Actions)
  • 安装包格式说明

支持的安装包格式

平台格式说明
WindowsMSI, NSISWindows 安装程序
macOSDMG, APPmacOS 磁盘映像和应用包
LinuxAppImage, DEB, RPM便携式应用和发行版包

GitHub Actions 自动构建

推送带有版本标签的提交即可触发自动构建:

git tag v0.1.0 git push origin v0.1.0

构建完成后,安装包会自动上传到 GitHub Releases。

生成应用图标

# 需要准备一个 1024x1024 的 PNG 源图 ./scripts/generate-icons.sh source-icon.png

数据存储

本地存储

  • Windows: %APPDATA%\guangjie\
  • macOS: ~/Library/Application Support/guangjie/
  • Linux: ~/.config/guangjie/

数据文件

  • settings.json - 应用设置
  • data.json - 用户数据(看板、任务、目标等)

云端同步

  • 支持登录后启用同步
  • 可在设置中开启/关闭同步
  • 数据实时同步到服务器

多语言支持

应用支持以下语言(可在设置中切换):

  • English (默认)
  • 简体中文
  • 繁體中文

主题

提供 4 种主题:

  • Light 1 - 默认浅色主题
  • Light 2 - 备选浅色主题
  • Dark 1 - 深色主题
  • Dark 2 - 备选深色主题

更新功能

应用支持自动更新检测:

  • 默认开启自动更新
  • 可在设置中手动检查更新
  • 支持静默后台下载

开发说明

添加新功能

  1. src/components/ 创建新组件
  2. src/store/useStore.ts 添加状态和方法
  3. src-tauri/src/commands.rs 添加后端命令(如需要)
  4. 更新 src/i18n.tsx 添加多语言翻译

Tauri 命令示例

// 前端调用 import { invoke } from '@tauri-apps/api/core'; const result = await invoke('command_name', { param1: value1 });
// Rust 实现 #[tauri::command] pub async fn command_name(param1: String) -> Result<(), String> { // 实现逻辑 Ok(()) }

License

MIT

作者

GuangJie Team


拾光而上,有序人生 🌟