Skip to content
awe0bitPublic

About

心流 FlowTime · 专注高效的个人效率工具。Flutter 跨平台 App,集番茄钟、日程、云盘、博客、AI 助手与云端工具套件于一体。

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

80 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

心流 FlowTime

专注高效的个人效率工具 · Flutter 跨平台 App

Version Flutter Dart Platform License Build

一款以番茄钟为核心,集日程、文件云盘、博客、AI 助手与多云端工具于一体的生产力 App。支持 Android、iOS、Web、macOS、Windows、Linux 等多平台,采用 MIT 开源协议,允许商业使用和自由修改。

📥 下载 APK · 📖 在线博客 · 🐛 问题反馈 · 💬 讨论 · 📄 许可证


📚 快速导航


✨ 核心功能

FlowTime 集成了 8 个核心功能模块,为用户提供一体化的生产力解决方案。

模块 功能说明 亮点
📅 日程管理 日历、提醒、节假日、本地通知 支持农历、自定义提醒
🍅 番茄专注 自定义时长、白噪音、统计图表、MIUI 风格 UI 深度专注追踪、数据可视化
🌤️ 每日一句 & 天气 一言 API、实时天气、定位服务 自动定位、多城市切换
🤖 AI 助手 DeepSeek 深度对接、快捷指令、多轮对话 上下文记忆、快捷命令库
📝 博客系统 文章发布、分享链接 SSR 预览、评论、搜索 SEO 友好、实时预览
📁 云端文件 上传、下载、分享、断点续传、Unicode 文件名安全处理 真实进度动画、秒传支持
☁️ 云端工具套件 6 项开源服务统一接入、一键测试通路 并发探测、延迟显示
⚙️ 多账户 & 数据隔离 登录门控、防套壳、完整性校验、HMAC-SHA256 签名 企业级安全

云端工具一览

FlowTime 集成了 6 项开源服务,通过统一的 API 网关进行管理。用户可在「设置 → 云端工具 → 测试通路」中并发探测所有服务的可用性与延迟。

工具 用途 技术栈 路径
Watermark 图片 / 视频去水印 FFmpeg /api/cloud-tools/watermark/
Netdisk 网盘直链解析(百度云、阿里云等) Python /api/cloud-tools/netdisk/
AList 多网盘聚合挂载 Go /api/cloud-tools/alist/
SpeedTest 网络测速 Speedtest CLI /api/cloud-tools/speedtest/
Pandoc 文档格式转换(Markdown、PDF、Word 等) Pandoc /api/cloud-tools/pandoc/
Netdata 服务器实时监控 Netdata /api/cloud-tools/netdata/

🏗️ 技术架构

系统分层架构

┌─────────────────────────────────────────────────────────────┐
│  客户端层 (Flutter App)                                      │
│  ├─ Android / iOS / Web / macOS / Windows / Linux           │
│  ├─ Provider (状态管理)                                      │
│  ├─ Hive (本地存储)                                          │
│  └─ shared_preferences (配置存储)                            │
└────────────────┬────────────────────────────────────────────┘
                 │ HTTPS + 签名请求
                 │ (X-Timestamp / X-Nonce / X-Signature)
┌────────────────▼────────────────────────────────────────────┐
│  网关层 (Nginx)                                              │
│  ├─ TLS 1.3 加密                                             │
│  ├─ /api/*            → productivity-api (8900)             │
│  ├─ /blog/<slug>      → Flask SSR Preview                   │
│  ├─ /api/cloud-tools/ → Docker 云端工具反代                  │
│  └─ /admin · /blog/   → SPA 静态资源                         │
└────────────────┬────────────────────────────────────────────┘
                 │
┌────────────────▼────────────────────────────────────────────┐
│  应用层 (Python Backend)                                     │
│  ├─ productivity-api (Gunicorn × 4)                         │
│  ├─ Flask + SQLite                                          │
│  ├─ HMAC-SHA256 安全签名验证                                  │
│  ├─ 增量包生成 (bsdiff)                                      │
│  └─ SSR 博客预览                                             │
└────────────────┬────────────────────────────────────────────┘
                 │
┌────────────────▼────────────────────────────────────────────┐
│  云端工具层 (Docker Services)                                │
│  ├─ Watermark (FFmpeg)                                      │
│  ├─ Netdisk (Python)                                        │
│  ├─ AList (Go)                                              │
│  ├─ SpeedTest · Pandoc · Netdata                            │
│  ├─ Redis (缓存)                                             │
│  ├─ MySQL (数据库)                                           │
│  └─ 自动重启 & 日志聚合                                       │
└─────────────────────────────────────────────────────────────┘

核心技术栈

层级 技术 版本 说明
前端 Flutter 3.9+ 跨平台 UI 框架
前端 Dart 3.0+ Flutter 编程语言
状态管理 Provider 6.0+ 响应式状态管理
本地存储 Hive 2.0+ 高性能 NoSQL 数据库
后端 Flask 2.3+ 轻量级 Web 框架
后端 Gunicorn 20.0+ WSGI HTTP 服务器
数据库 SQLite 3.0+ 轻量级关系数据库
缓存 Redis 6.0+ 高性能缓存存储
容器 Docker 20.0+ 容器化部署
反向代理 Nginx 1.20+ 高性能 Web 服务器
云端工具 FFmpeg / Go / Python 多版本 多种开源工具

🚀 快速开始

本地开发

前置要求

  • Flutter SDK 3.9.0 或更高版本
  • Dart SDK 3.0.0 或更高版本
  • Android SDK (仅 Android 开发)
  • Xcode 14.0+ (仅 iOS 开发)
  • Git 2.0+

开发流程

# 1. 克隆项目
git clone https://github.com/FelixZoe/flowtime.git
cd flowtime

# 2. 获取依赖
flutter pub get

# 3. 运行开发版本
flutter run

# 4. 构建 APK (Android)
flutter build apk --release

# 5. 构建 IPA (iOS)
flutter build ios --release

服务器部署

详细的部署文档请参考 DEPLOYMENT.md。

快速部署 (3 步)

# 1. 进入部署目录
cd server_deploy

# 2. 运行一键部署脚本
chmod +x deploy.sh
sudo ./deploy.sh

# 3. 按照提示输入配置信息
# 脚本会自动完成所有配置和启动

部署完成后

# 查看服务状态
docker-compose ps

# 查看实时日志
docker-compose logs -f

# 验证 API 健康状态
curl https://YOUR_DOMAIN/api/health

📦 项目结构

完整的项目目录

flowtime/
├── lib/                          # Flutter 应用源代码
│   ├── main.dart                 # 应用入口
│   ├── models/                   # 数据模型
│   │   ├── user_model.dart       # 用户模型
│   │   ├── task_model.dart       # 任务模型
│   │   └── ...
│   ├── services/                 # 业务服务层
│   │   ├── api_service.dart      # API 调用
│   │   ├── auth_service.dart     # 认证服务
│   │   ├── storage_service.dart  # 本地存储
│   │   └── ...
│   ├── providers/                # 状态管理
│   │   ├── user_provider.dart    # 用户状态
│   │   ├── task_provider.dart    # 任务状态
│   │   └── ...
│   ├── pages/                    # 页面组件
│   │   ├── home_page.dart        # 主页
│   │   ├── task_page.dart        # 任务页
│   │   └── ...
│   ├── widgets/                  # 可复用组件
│   │   ├── task_card.dart        # 任务卡片
│   │   ├── timer_widget.dart     # 计时器
│   │   └── ...
│   ├── utils/                    # 工具函数
│   │   ├── constants.dart        # 常量定义
│   │   ├── validators.dart       # 验证器
│   │   └── ...
│   └── config/                   # 配置文件
│       ├── theme.dart            # 主题配置
│       └── routes.dart           # 路由配置
│
├── server_deploy/                # 服务器部署文件
│   ├── deploy.sh                 # 一键部署脚本
│   ├── docker-compose.yml        # Docker 编排
│   ├── nginx.conf                # Nginx 配置
│   ├── config.example.env        # 配置模板
│   ├── snapshots/                # 快照工具
│   │   ├── server.py             # Python 服务器
│   │   ├── blog_adapter.py       # 博客适配器
│   │   └── ...
│   └── patches/                  # 补丁文件
│
├── android/                      # Android 原生代码
│   ├── app/                      # App 模块
│   ├── gradle/                   # Gradle 配置
│   └── build.gradle              # 构建配置
│
├── ios/                          # iOS 原生代码
│   ├── Runner/                   # App 模块
│   └── Podfile                   # CocoaPods 配置
│
├── web/                          # Web 版本
│   ├── index.html                # HTML 入口
│   └── manifest.json             # Web 清单
│
├── docs/                         # 文档
│   ├── API.md                    # API 文档
│   ├── ARCHITECTURE.md           # 架构文档
│   └── ...
│
├── pubspec.yaml                  # Flutter 依赖配置
├── pubspec.lock                  # 依赖锁定文件
├── analysis_options.yaml         # Dart 分析配置
├── .gitignore                    # Git 忽略规则
├── LICENSE                       # MIT 开源协议
├── README.md                     # 项目说明
├── DEPLOYMENT.md                 # 部署指南
├── CONTRIBUTING.md               # 贡献指南
├── CODE_OF_CONDUCT.md            # 行为准则
├── SECURITY.md                   # 安全政策
└── CHANGELOG.md                  # 版本日志

模块化设计

FlowTime 采用分层模块化架构,确保代码的可维护性和可扩展性。

前端模块划分:

  • Models — 数据模型和业务对象
  • Services — API 调用、认证、存储等业务逻辑
  • Providers — 使用 Provider 进行状态管理
  • Pages — 页面级组件
  • Widgets — 可复用的 UI 组件
  • Utils — 工具函数和常量

后端模块划分:

  • server.py — 核心 API 服务
  • blog_adapter.py — 博客 SSR 预览
  • auth_module.py — 认证模块
  • file_module.py — 文件管理模块
  • utils/ — 工具函数库

🔐 安全特性

FlowTime 采用多层安全防护机制,确保用户数据的安全性和隐私性。

请求签名验证

所有 API 请求都需要经过签名验证,防止请求被篡改:

X-Timestamp: 1704067200000
X-Nonce: abc123def456
X-Signature: HMAC-SHA256(timestamp + nonce + body, secret_key)

数据加密

  • 传输层:HTTPS + TLS 1.3
  • 存储层:敏感数据加密存储
  • 认证:JWT Token + Refresh Token

防护措施

  • 防套壳:验证应用签名和包名
  • 完整性校验:HMAC-SHA256 签名验证
  • 多账户隔离:用户数据完全隔离
  • 速率限制:防止暴力攻击
  • 输入验证:防止 SQL 注入和 XSS 攻击

🤝 贡献指南

我们欢迎所有形式的贡献!详细信息请参考 CONTRIBUTING.md。

贡献流程

  1. Fork 项目 — 在 GitHub 上 Fork 本仓库
  2. 创建分支 — git checkout -b feature/your-feature
  3. 提交更改 — git commit -m "feat: 你的功能描述"
  4. 推送分支 — git push origin feature/your-feature
  5. 提交 PR — 在 GitHub 上提交 Pull Request

代码规范

  • 遵循 Dart 风格指南
  • 使用 flutter analyze 检查代码质量
  • 添加适当的注释和文档
  • 编写单元测试

📄 许可证

FlowTime 采用 MIT 开源协议。详细信息请参考 LICENSE 文件。

MIT 协议说明

您可以自由地:

  • ✓ 使用本软件进行任何目的(包括商业用途)
  • ✓ 复制、修改和分发本软件
  • ✓ 在您的项目中集成本软件
  • ✓ 创建衍生作品

您需要:

  • • 在复制或修改后的代码中保留本协议和版权声明
  • • 在分发时附带本协议

您不需要:

  • ✗ 开源您的修改(可以闭源)
  • ✗ 获得作者的许可
  • ✗ 支付任何费用

📞 联系方式


🙏 致谢

感谢所有为 FlowTime 做出贡献的开发者和用户!


最后更新:2026 年 5 月 3 日 · 版本 2.10.6

About

心流 FlowTime · 专注高效的个人效率工具。Flutter 跨平台 App,集番茄钟、日程、云盘、博客、AI 助手与云端工具套件于一体。

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages