{"id":15525075,"url":"https://github.com/staabm/timetracker","last_synced_at":"2025-06-25T22:06:34.463Z","repository":{"id":145007442,"uuid":"79060547","full_name":"staabm/timetracker","owner":"staabm","description":"Provides a simple way to tracking your time per task on CLI","archived":false,"fork":false,"pushed_at":"2017-01-16T07:34:48.000Z","size":54,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-05T10:45:33.504Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/staabm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-01-15T21:25:11.000Z","updated_at":"2019-07-13T08:24:14.000Z","dependencies_parsed_at":"2023-04-09T11:00:56.834Z","dependency_job_id":null,"html_url":"https://github.com/staabm/timetracker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/staabm/timetracker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staabm%2Ftimetracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staabm%2Ftimetracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staabm%2Ftimetracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staabm%2Ftimetracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/staabm","download_url":"https://codeload.github.com/staabm/timetracker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staabm%2Ftimetracker/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261960542,"owners_count":23236574,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-02T10:54:30.772Z","updated_at":"2025-06-25T22:06:34.448Z","avatar_url":"https://github.com/staabm.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"```\n  ~~~~~~~~~~~~~   _______ _             _______             _             \n ( .'11 12 1'. )  |__   __(_)           |__   __|           | |\n | :10 \\    2: |     | |   _ _ __ ___   ___| |_ __ __ _  ___| | _____ _ __\n | :9   @-\u003e 3: |     | |  | | '_ ` _ \\ / _ \\ | '__/ _` |/ __| |/ / _ \\ '__|\n | :8       4; |     | |  | | | | | | |  __/ | | | (_| | (__|   \u003c  __/ |\n | '..7 6 5..' |     |_|  |_|_| |_| |_|\\___|_|_|  \\__,_|\\___|_|\\_\\___|_|\n  ~-----------~ \n```\nTimeTracker is an ultra simple time tracking tool with no deps and made to live as a require-dev in your project.\n\n[![Build Status](https://travis-ci.org/stahlstift/timetracker.svg?branch=master)](https://travis-ci.org/stahlstift/timetracker)\n[![Coverage Status](https://coveralls.io/repos/stahlstift/timetracker/badge.svg)](https://coveralls.io/r/stahlstift/timetracker)\n[![Latest Stable Version](https://poser.pugx.org/stahlstift/timetracker/version)](https://packagist.org/packages/stahlstift/timetracker)\n[![Total Downloads](https://poser.pugx.org/stahlstift/timetracker/downloads)](https://packagist.org/packages/stahlstift/timetracker)\n[![License](https://poser.pugx.org/stahlstift/timetracker/license)](https://packagist.org/packages/stahlstift/timetracker)\n\n## About\nFor a new project I need to track my time investment. The existing tools are to heavy and/or are to mighty for my needs. I just want to be able to track my time in a fast and dev friendly way. So I came up with this solution. It can easily handle small teams, it's really fast and most important, you can commit it, because it can be merged by a vcs. \n\n## Usage\n### Requirements\n* PHP \u003e= 7.0\n* pcntl extension\n\n### Installation\n```\ncomposer require-dev \"stahlstift/timetracker\"\n```\nUltra-Secret-Hint: \nIt's also possible to install it globally and use TimeTracker in every project - even non composer or php projects.  \n```\ncomposer global require \"stahlstift/timetracker\"\n```\nCaution: The command will then be just \"track\" and not \"./vendor/bin/track\" \n\n### Time tracking\n```\n./vendor/bin/track time username [ticket/project/whatever]\n\nExample:\n\n./vendor/bin/track time stahlstift tracker_unittest\nTracking started for 'stahlstift' with ticket 'tracker_unittest'\n............... 15 ............... 15 ............... 15 ............... 60\n........\n\nPress ctrl + c when done to write tracking\n\n^CTotal:         01h 08m 23s\n\n```\n\n### Stats\n```\nTo see all available commans use:\n./vendor/bin/track stats help\n\nExamples:\n\nOverview for December in 2016\n╔════════════════╦═════════════════════╗\n║ Username       ║ Time                ║\n╠════════════════╬═════════════════════╣\n║ markus         ║     01d 36h 33m 06s ║\n║ peter          ║     01d 36h 49m 13s ║\n║ very_long_name ║     01d 38h 58m 39s ║\n║ wilhelm        ║     01d 40h 14m 59s ║\n╚════════════════╩═════════════════════╝\n\nTotal for 'markus' in 2016\n╔══════════╦═════════════════════╗\n║ Username ║ Time                ║\n╠══════════╬═════════════════════╣\n║ markus   ║ 02w 02d 46h 34m 50s ║\n╚══════════╩═════════════════════╝\n```\n\n### How to add manual entries?\nWell, it's a csv - open the file and add a new line.   \nWarning: Use \"\\n\" as LF!\n\n### How to delete an entry?\nWell, I think you can guess it now...\n\n### CSV Format\n\n```\n{d-m-y},{ticket},{username},{duration_in_seconds},id_{random_int}\n2014-07-07,write_readme,stahlstift,2053,id_1588960344\n```\n\n## Benchmark / Performance\n### How?\nI created a mock database with random entries between 2014 and 2016 for 5 different users between 15 mins and 60 mins. The benchmark was running on a Macbook Air (late 2010 - Core2Duo 1.4 ghz) with php 7.1.0 and xdebug enabled.   \n\nI benchmarked the most complex view in TimeTracker with the Console renderer and print out the average time needed to render.\n\n### Results\n\nEven with 1 000 000 entries in the csv file - it's still usable with 25 seconds on a slow device. Thx to the streams and generators!\n\n| Entries   | Runs  |  Avg / Run |\n|----------:|------:|-----------:|\n| 1 000 000 |   10  |  25s       |\n|   500 000 |   10  |  20s       |\n|   100 000 |   10  |   2s       |\n|    10 000 |  100  |  \u003c0s       |\n\n\n### Run yourself\n```\n#create mockdata (takes some time)\n# (optionally) open the file and modify the values\nphp benchmark/buildMockData.php\n\n#run benchmark\n# (optionally) open the file and modify the values\nphp benchmark/benchmark.php\n```\n\n## Todos before release\n* global installation support (check for the usage strings in stats.php and track.php and build it dynamically)\n* Make installable and usable with composer\n* UnitTests\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstaabm%2Ftimetracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstaabm%2Ftimetracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstaabm%2Ftimetracker/lists"}