Skip to content

blankarrayy/pomodoro-timer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Focus Forge

A beautiful, minimalist Pomodoro timer application built with Flutter that helps you stay productive and focused. Track your work sessions, manage tasks, and sync across devices with cloud integration.

✨ Features

🎯 Core Functionality

  • Pomodoro Timer - Customizable work and break intervals with visual countdown
  • Task Management - Create, edit, and track tasks with due dates and notes
  • Session Statistics - Detailed analytics and charts showing your productivity trends
  • Desktop Notifications - Get notified when sessions complete (Windows native notifications)
  • System Tray Integration - Quick access to timer status from the system tray

☁️ Cloud Sync & Multi-Device Support

  • Supabase Integration - Secure cloud storage for tasks and analytics
  • Automatic Resync - Tasks sync automatically every 5 minutes across all devices
  • Manual Resync - Instant sync button for immediate updates
  • Conflict Resolution - Smart "last write wins" strategy for seamless collaboration
  • Offline Support - Works offline with local storage, syncs when connected

🎨 User Experience

  • Clean, Modern UI - Distraction-free interface with glassmorphism design
  • Dark Theme - Easy on the eyes with beautiful gradients
  • Smooth Animations - Confetti celebrations when all tasks are completed
  • Responsive Design - Optimized for desktop (Windows, macOS, Linux)
  • Touchpad Scrolling - Full touchpad support on Windows

πŸ“Š Analytics & Tracking

  • Daily Stats - Track focus sessions, break sessions, and total focus time
  • Weekly Charts - Visual representation of your productivity over 7 days
  • Session History - Complete history of all your Pomodoro sessions
  • Task Completion Tracking - Monitor completed vs pending tasks

πŸ“¦ Installation

Windows

Option 1: MSIX Installer (Recommended)

  1. Download focusforge.msix from the installer folder or releases page
  2. Double-click the installer
  3. Click "Install" when prompted
  4. Find "Focus Forge" in your Start Menu

Note: The MSIX package is signed with a test certificate. You may need to enable Developer Mode on Windows or install the certificate to run the app.

Option 2: Portable Executable

  1. Navigate to build\windows\x64\runner\Release\
  2. Run focusforge.exe directly (no installation required)

Building from Source

Prerequisites

  • Flutter SDK (3.5.4 or higher)
  • Dart SDK
  • Windows SDK (for Windows build)
  • Visual Studio Build Tools with C++ support
  • Git

Setup Steps

  1. Clone this repository:

    git clone https://github.com/blankarray/pomodoro-timer.git cd pomodoro-timer
  2. Install dependencies:

    flutter pub get
  3. Set up environment variables:

    • Copy .env.example to .env
    • Add your Supabase credentials (optional, for cloud sync):
      SUPABASE_URL=your_supabase_url SUPABASE_ANON_KEY=your_supabase_anon_key 
  4. Build for your platform:

    # Windows flutter build windows # macOS flutter build macos # Linux flutter build linux
  5. Create Windows installer (optional):

    dart run msix:create

πŸš€ Usage

Getting Started

  1. Launch Focus Forge
  2. (Optional) Sign in with Supabase for cloud sync
  3. Set your preferred work and break durations in Settings
  4. Create tasks using the "+" button
  5. Start your first Pomodoro session!

Task Management

  • Add Task: Click the "+" button in the task list header
  • Edit Task: Click on any task to edit title, notes, or due date
  • Complete Task: Check the checkbox to mark as complete
  • Delete Task: Open task editor and click "Delete Task"
  • Resync Tasks: Click the refresh icon to sync with other devices

Cloud Sync

  • Tasks automatically sync every 5 minutes when signed in
  • Click the resync button for immediate synchronization
  • Sync status indicator shows current sync state
  • Works seamlessly across multiple devices

πŸ› οΈ Development

Project Structure

lib/ β”œβ”€β”€ models/ # Data models (Task, DailyStats, etc.) β”œβ”€β”€ providers/ # Riverpod state management β”œβ”€β”€ screens/ # Main app screens β”œβ”€β”€ services/ # Business logic and external services β”œβ”€β”€ ui/ # Theme and styling └── widgets/ # Reusable UI components 

Key Technologies

  • Flutter - Cross-platform UI framework
  • Riverpod - State management
  • Supabase - Backend as a Service (authentication, database)
  • Shared Preferences - Local storage
  • Google Fonts - Typography (Outfit font)
  • FL Chart - Analytics visualization
  • System Tray - Desktop integration

Recent Updates

  • βœ… Fixed Windows system tray icon issues
  • βœ… Fixed touchpad scrolling on Windows
  • βœ… Added automatic 5-minute resync functionality
  • βœ… Improved sync conflict resolution
  • βœ… Enhanced UI with better scroll physics

πŸ“Έ Screenshots

Screenshot 2024-11-12 081253 Screenshot 2024-11-12 081304 Screenshot 2024-11-12 081313 Screenshot 2024-11-12 081350 Screenshot 2024-11-12 081402 Screenshot 2024-11-12 080312

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘¨β€πŸ’» Author

iamvaar-dev

πŸ™ Acknowledgments


Focus Forge - Stay focused, stay productive! πŸš€