Skip to content

A simple, elegant desktop timer application for Windows that helps you stay focused on your tasks with customizable audio notifications.

License

Notifications You must be signed in to change notification settings

MilanG-Ne/TaskBeat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

TaskBeat

A simple, elegant desktop timer application for Windows that helps you stay focused on your tasks with customizable audio notifications.

TaskBeat .NET License

Features

Core Functionality

  • Task Management: Create, edit, and delete tasks with custom names and durations
  • Timer: Visual countdown timer showing remaining time in HH:MM:SS format
  • One Task at a Time: Focus on a single task without distractions
  • System Tray Integration: Runs quietly in the background, accessible via system tray icon
  • Persistent Storage: Tasks are saved locally and persist between sessions

Customizable Notifications

  • Multiple Notification Triggers: Set unlimited notifications at different intervals before task completion
  • Flexible Timing: Configure notifications for any number of minutes before the task ends (e.g., 15 min, 5 min, 0 min)
  • Pleasant Sounds: Choose from 5 different Windows system sounds:
    • Beep (default)
    • Asterisk
    • Exclamation
    • Hand
    • Question
  • Sound Preview: Test sounds before adding them with quick preview buttons
  • Adjustable Beep Count: Set 1-10 beeps per notification for different urgency levels
  • Windows Toast Notifications: Visual pop-up notifications appear in the bottom-right corner at 5 minutes remaining and when task completes
  • Always Audible: Notifications play even when the app is minimized to the system tray

User Interface

  • Modern Design: Clean, minimal interface with Material Design-inspired styling
  • Clear Visual Feedback: Color-coded buttons with proper enabled/disabled states
  • Intuitive Controls: Easy-to-use task management and timer controls
  • Responsive Layout: Well-organized sections for timer, task input, and task list

Screenshots

Main Window

The main interface shows the countdown timer, task input form, and your list of saved tasks.

Settings

Customize notification triggers with specific timings, sounds, and beep counts.

Installation

Download Pre-built Executable

  1. Download the latest release from the Releases page
  2. Extract TaskBeat.exe from the archive
  3. Run TaskBeat.exe - no installation required!

Build from Source

Prerequisites

Steps

  1. Clone the repository:

    git clone https://github.com/yourusername/TaskBeat.git
    cd TaskBeat
  2. Build the project:

    cd TaskBeat
    dotnet build -c Release
  3. Run the application:

    dotnet run
  4. (Optional) Publish as a self-contained executable:

    dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true

    The executable will be located at: bin\Release\net9.0-windows\win-x64\publish\TaskBeat.exe

Usage

Getting Started

  1. Launch TaskBeat: Run the executable or double-click the system tray icon
  2. Create a Task:
    • Enter a task name (e.g., "Deep Work Session")
    • Set duration in hours and minutes
    • Click "Add Task"
  3. Start Timer: Select a task from the list and click "▶ Start"
  4. Work Focused: The timer counts down and notifies you at configured intervals
  5. Stop or Complete: Click "■ Stop" to end early, or let the timer complete

Managing Tasks

  • Edit: Click the "Edit" button next to any task to modify its name or duration
  • Delete: Click the "Delete" button to remove a task from your list
  • Reuse: Tasks persist between sessions - create your daily routine once and reuse it

Customizing Notifications

  1. Click "⚙ Settings" at the bottom of the window
  2. Preview Sounds: Use the quick preview buttons at the bottom to hear each sound type
  3. Add Notification:
    • Set "Minutes Before" (0 = when task completes)
    • Choose number of beeps (1-10)
    • Select sound type
    • Click "🔊 Preview" to test your configuration
    • Click "Add" to save
  4. Edit/Delete: Modify or remove existing notification triggers
  5. Click "Save" to apply changes

System Tray

  • Minimize: Close the window to minimize to system tray
  • Restore: Double-click the tray icon to restore the window
  • Exit: Right-click the tray icon and select "Exit" to close the app completely

Data Storage

TaskBeat stores your data locally in:

%AppData%\TaskBeat\
├── tasks.json      # Your saved tasks
└── settings.json   # Notification preferences

This data is never sent to external servers and remains completely private on your device.

Default Notification Settings

TaskBeat comes with three pre-configured notification triggers:

  • 15 minutes before: 1 beep (Beep sound)
  • 5 minutes before: 2 beeps (Beep sound)
  • Task completion: 3 beeps (Exclamation sound)

You can modify, add, or remove these in Settings.

Technology Stack

  • Framework: .NET 9.0
  • UI: WPF (Windows Presentation Foundation)
  • Language: C#
  • Data Storage: JSON files (Newtonsoft.Json)
  • Audio: Windows System Sounds (System.Media)

Project Structure

TaskBeat/
├── Models/
│   ├── TaskItem.cs              # Task data model
│   ├── NotificationTrigger.cs   # Notification configuration
│   └── AppSettings.cs           # Application settings
├── Services/
│   ├── StorageService.cs        # JSON file persistence
│   ├── SoundService.cs          # Audio notification handler
│   └── TimerService.cs          # Countdown timer logic
├── Windows/
│   ├── SettingsWindow.xaml      # Settings UI
│   └── SettingsWindow.xaml.cs   # Settings logic
├── MainWindow.xaml              # Main UI
├── MainWindow.xaml.cs           # Main application logic
└── App.xaml.cs                  # Application entry point

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.

Acknowledgments

  • Inspired by the Pomodoro Technique and other focus timer methodologies
  • Built with love for developers, writers, and anyone who needs to manage their time effectively

Support

If you find TaskBeat helpful, please consider:

  • ⭐ Starring this repository
  • 🐛 Reporting bugs via Issues
  • 💡 Suggesting features via Issues
  • 📣 Sharing with others who might benefit

Made with ❤️ for focused work

About

A simple, elegant desktop timer application for Windows that helps you stay focused on your tasks with customizable audio notifications.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages