No description
Find a file
2026-04-09 21:43:46 +02:00
.planning docs(08-01): complete backend aggregation plan 2026-04-09 21:31:29 +02:00
assets fix(07): uniform control sizing, min cell 13px, center week view 2026-04-09 16:56:34 +02:00
Controller feat: add HeatmapService, API controller, and PHPUnit tests 2026-04-08 12:49:54 +02:00
DependencyInjection fix: register Twig template namespace for plugin views 2026-04-08 12:54:26 +02:00
dev feat: DI extension, services.yaml, and autoloader fix for plugin detection 2026-04-08 12:26:17 +02:00
docs docs: add README with screenshot 2026-04-08 18:21:36 +02:00
EventSubscriber fix: DashboardEvent::addWidget takes string ID, not widget object 2026-04-08 12:53:52 +02:00
Resources fix(07): uniform control sizing, min cell 13px, center week view 2026-04-09 16:56:34 +02:00
Service feat(08-01): add aggregation methods and filter support to HeatmapService 2026-04-09 21:23:25 +02:00
Tests test(08-02): add failing tests for mode dispatch and cascade endpoints 2026-04-09 21:43:46 +02:00
Widget feat: add streak, stats, weekend styling, week-start preference 2026-04-08 16:05:44 +02:00
.envrc feat(01-01): nix flake devshell with PHP 8.2, MariaDB, Node 22 2026-04-08 11:11:56 +02:00
.gitignore feat: add JS toolchain — esbuild, TypeScript, Vitest 2026-04-08 13:11:26 +02:00
CLAUDE.md docs: create roadmap (5 phases) 2026-04-08 10:52:40 +02:00
composer.json fix: restore root-level PHP dirs for Kimai PSR-4 autoloading 2026-04-09 10:38:40 +02:00
flake.lock feat(01-01): nix flake devshell with PHP 8.2, MariaDB, Node 22 2026-04-08 11:11:56 +02:00
flake.nix feat: DI extension, services.yaml, and autoloader fix for plugin detection 2026-04-08 12:26:17 +02:00
KimaiHeatmapBundle.php feat: add minimal plugin scaffold 2026-04-08 11:14:09 +02:00
LICENSE add MIT license 2026-04-08 18:23:00 +02:00
package-lock.json feat: add JS toolchain — esbuild, TypeScript, Vitest 2026-04-08 13:11:26 +02:00
package.json feat: add JS toolchain — esbuild, TypeScript, Vitest 2026-04-08 13:11:26 +02:00
README.md fix: add assets:install to install instructions 2026-04-08 21:31:08 +02:00
tsconfig.json feat: add JS toolchain — esbuild, TypeScript, Vitest 2026-04-08 13:11:26 +02:00
vitest.config.ts fix: layout polish — responsive filter, scroll, resize, min cell size 2026-04-08 17:14:48 +02:00

Kimai Heatmap Plugin

A GitHub-style activity heatmap for your Kimai dashboard. See where your time went at a glance.

Activity Heatmap

Features

  • Calendar heatmap showing daily tracked hours over the past year
  • Project filter dropdown
  • Click any day to jump to that day's timesheet
  • Streak counter and summary stats (total hours, daily average, busiest day)
  • Weekend visual distinction
  • Respects your configured start-of-week preference
  • Works with light and dark themes
  • Responsive — scrollable on small screens, resizes with the browser

Installation

composer config repositories.heatmap vcs https://git.toph.so/toph/kimai-plugin-heatmap
composer require kimai-plugin/heatmap-bundle
bin/console assets:install
bin/console kimai:reload

If you can't run composer require directly (e.g. Docker Compose, Nomad, or a custom image), add this to your composer.json instead:

{
    "repositories": [
        { "type": "vcs", "url": "https://git.toph.so/toph/kimai-plugin-heatmap" }
    ],
    "require": {
        "kimai-plugin/heatmap-bundle": "^1.0"
    }
}

Then rebuild your image or run composer install in the container.

Development

Requires Nix:

nix develop
process-compose up  # starts MariaDB + Kimai
npm test            # run JS tests

License

MIT