Skip to content

bvjpr1498/TomatoTimer

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

34 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ… TomatoTimer with Grafana Monitoring

A Pomodoro timer application built with C++ and Qt Framework, featuring real-time productivity metrics visualization through Prometheus and Grafana.

Forked from: lmartinking/TomatoTimer


Application Screenshots

Application Menu

Tomato Timer Menu

Timer Status Icons

The application displays different colored icons to indicate the current state: Pomodor Short Break Long Break Stopped

Main Application Interface

Pomodoro Application

Application Preferences

Tomato Timer Preferences

Grafana Dashboard

Grafana Dashboard

Metrics Endpoint

Metrics Endpoint

Prometheus Targets

Prometheus Targets


What's New in This Fork

This fork adds comprehensive monitoring and metrics collection:

  • Prometheus Metrics Server - HTTP endpoint exposing 6 productivity metrics
  • Grafana Dashboard - Real-time visualization with 7 panels
  • Customizable Daily Goals - Set and track daily Pomodoro targets
  • Docker Compose Setup - Easy deployment of monitoring stack
  • Goal Achievement Tracking - Monitor productivity percentage

Architecture

TomatoTimer (Port 8080) β†’ Prometheus (Port 9090) β†’ Grafana (Port 3000)

The Qt application exposes metrics every 15 seconds, Prometheus collects them, and Grafana visualizes the data.


Prerequisites

  • Qt Creator 5.15+ - Download
  • Git - Download
  • Docker Desktop - Download
  • C++ Compiler - MinGW (Windows) / GCC (Linux) / Clang (macOS)

Quick Start

1. Clone Repository

git clone https://github.com/bvjpr1498/TomatoTimer.git
cd TomatoTimer

2. Build Application

Using Qt Creator:

  1. Open TomatoTimer.pro in Qt Creator
  2. Configure project (select compiler)
  3. Click Build (Ctrl+B)
  4. Click Run (Ctrl+R)

Using Command Line:

mkdir build && cd build
qmake ../TomatoTimer.pro
make
./TomatoTimer  # or TomatoTimer.exe on Windows

3. Start Monitoring Stack

docker-compose up -d

4. Access Dashboards


Metrics

Metric Description Example
pomodoro_total_completed Total Pomodoros completed 30
pomodoro_today_completed Today's Pomodoros (resets daily) 27
work_time_minutes_total Total work time in minutes 750
breaks_taken_total Total breaks taken 24
daily_goal_achievement Goal achievement percentage 208%
daily_goal_target User's daily Pomodoro target 13

Dashboard Panels

The Grafana dashboard includes:

  1. Total Pomodoros Completed - Lifetime count (30)
  2. Today's Pomodoros - Daily count (27)
  3. Daily Goal Progress Gauge - Visual progress (27/13)
  4. Total Work Time - Cumulative minutes (750)
  5. Total Breaks Taken - Break count (24)
  6. Pomodoros Over Time - Trend line chart
  7. Daily Goal Achievement Rate - Percentage gauge (208%)

Usage

  1. Start Pomodoro - Click "Start Pomodoro" for 25-minute work session
  2. Set Daily Goal - Preferences β†’ Timer tab β†’ Daily Goal (1-20)
  3. View Metrics - Open Metrics at http://localhost:8080/metrics
  4. Track Progress - Open Grafana Dashboard at http://localhost:3000, it auto-refreshes every 30 seconds

Troubleshooting

Application won't build?

  • Clean and rebuild in Qt Creator (Build β†’ Clean All β†’ Rebuild)

Metrics endpoint not accessible?

  • Verify app is running and port 8080 is free

Docker containers won't start?

  • Ensure Docker Desktop is running
  • Check ports 9090 and 3000 are available

Grafana shows "No Data"?


Author

This Fork: @bvjpr1498

Original Project: lmartinking/TomatoTimer by Lucas Martin-King


License

LGPLv3 - Same as original project. See LICENSE and COPYING.LESSER.

Copyright (c) 2017 Lucas Martin-King (original)

Monitoring additions (c) 2026


Acknowledgments

  • Original TomatoTimer by Lucas Martin-King
  • Built with Qt Framework, Prometheus, Grafana, and Docker

About

A Simple Pomodoro Timer that lives in the Menu Bar!!

Resources

License

LGPL-3.0, GPL-3.0 licenses found

Licenses found

LGPL-3.0
COPYING.LESSER
GPL-3.0
LICENSE

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C++ 94.8%
  • Makefile 3.1%
  • C 1.5%
  • Other 0.6%