DevGang
Авторизоваться

Трекер времени с Node.JS CLI

После того как я много лет использовал timetrap от Ruby (к сожалению, больше не поддерживаемый), я понял, что в экосистеме Node.JS нет аналога, и решил создать его.

Представляю track-time-cli, утилиту для отслеживания времени, которое вы тратите на свои проекты, и со временем просмотра полезных метрик и статистики о вашей производительности.

Это приложение Node.JS CLI, написанное на TypeScript и поддерживающее ввод времени начала/окончания задачи на естественном языке (например, "1 час назад" или "12 минут назад").

Большинство команд предлагают аргументы для изменения отображения длительности на обычном языке (например, 33:00 как 33 minutes) или времени как относительного (например, 12/24/2023, 6:51:39 PM как 26 minutes ago).

Начало работы

Установите это с помощью npm i -g track-time-cli; точка входа/команда - tt, и по умолчанию, при вызове без аргументов, он показывает активную в данный момент запись табеля учета рабочего времени.

Все данные хранятся в ~/.track-time-cli/db.json - папке, которую вы можете превратить в git-репозиторий для резервного копирования данных по мере роста количества записей.

Выполните команду tt --help, чтобы просмотреть список поддерживаемых команд:

track-time-cli now

Display all active time sheet entries

Commands:
  track-time-cli in <description..>    Check in to a time sheet     [aliases: i]
  track-time-cli now                   Display all active time sheet entries
                                                                       [default]
  track-time-cli out                   Check out of the currently active time
                                       sheet entry                  [aliases: o]
  track-time-cli week [sheets..]       Display a summary of activity for the
                                       past week                    [aliases: w]
  track-time-cli list [sheets..]       List all time sheet entries  [aliases: l]
  track-time-cli edit [description..]  View, modify, or delete a time sheet
                                       entry                        [aliases: e]
  track-time-cli today [sheets..]      Display a summary of activity for today
                                                                    [aliases: t]
  track-time-cli sheet [name]          Switch to or delete a sheet by name
                                                                    [aliases: s]
  track-time-cli sheets                List all sheets             [aliases: ss]
  track-time-cli resume                Resume the last active entry [aliases: r]
  track-time-cli yesterday [sheets..]  Display a summary of activity for
                                       yesterday                    [aliases: y]
  track-time-cli breakdown [sheets..]  Display total durations per day for one
                                       or more sheets               [aliases: b]

Options:
      --version   Show version number                                  [boolean]
  -h, --humanize  Print the total duration in human-readable format    [boolean]
      --help      Show help                                            [boolean]

Examples:
  tt in --at "20 minutes ago" fixing a bug  Check in at a custom time
  tt out --at "5 minutes ago"               Check out at a custom time
  tt list --today --all                     View all entries from today
  tt b                                      Show a breakdown of your activity
  tt today --all                            View activity for the current day

Замечание о псевдонимах команд

Почти у всех команд есть короткие псевдонимы, которые я буду использовать исключительно в этой заметке. Например, tt yesterday - это то же самое, что и tt y. Информацию о доступных псевдонимах можно найти в выводе команды tt --help.

Табели учета рабочего времени

Задача в track-time-cli называется записью в табеле учета рабочего времени и относится к нему. Табели времени могут представлять любую группу или категорию задач, но в основном они предназначены для представления отдельных проектов.

Чтобы просмотреть список табелей, выполните команду tt sheets или более короткую tt ss.

Управление табелями рабочего времени

Чтобы создать новый график или перейти к существующему, выполните команду tt s [имя]. Если выполнить команду tt s без имени, отобразится активный в данный момент табель учета рабочего времени.

При инициализации БД создается временная таблица с именем main, которая по умолчанию устанавливается как активная.

Чтобы удалить временную таблицу, выполните команду tt s --delete [имя временной таблицы].

Отслеживание задач

Чтобы начать или зарегистрироваться в табеле учета рабочего времени, выполните команду tt in [описание]. Если вы начали работать раньше и забыли отметиться, вы можете сделать это задним числом с помощью аргумента --at, т. е. tt in --at '10 minutes ago' developing feature X создаст запись в табеле учета рабочего времени, начатую 10 минут назад, с описанием developing feature X.

Если вы хотите начать новую запись с тем же описанием, что и предыдущая, можно воспользоваться командой tt resume (или tt r), которая зарегистрирует новую запись с тем же описанием, что и последняя активная запись в списке.

Аналогично, чтобы завершить задание или выйти из него, запустите команду tt out, дополнительно указав аргумент --at (например, tt out --at '5 minutes ago'), если вы прекратили работу и забыли выписаться из табеля учета рабочего времени.

Все перечисленное ниже является допустимыми значениями времени входа/выхода:

  • '19 minutes ago'
  • 'forty five minutes ago'
  • '1 hour and 20 minutes ago'
  • '1 day, three hours, and 2 minutes ago'

Просмотр задач

Для просмотра предыдущих и активных задач существует команда списка, tt l, которая выводит список задач. Она довольно мощная; вот вывод команды tt l --help:

track-time-cli list [sheets..]

List all time sheet entries

Options:
      --version          Show version number                           [boolean]
  -r, --ago, --relative  Print dates as relative time (e.g. 5 minutes ago)
                                                                       [boolean]
  -h, --humanize         Print the total duration in human-readable format
                                                                       [boolean]
  -s, --since            Only list entries since the specified date     [string]
  -t, --today            Show results for today                        [boolean]
      --all-sheets       Show results for all sheets                   [boolean]
  -a, --all              Show all sheet entries                        [boolean]
  -y, --yesterday        Show results from yesterday                   [boolean]
  -c, --concise          Exclude start and end dates from output, showing
                         duration only                                 [boolean]
      --help             Show help                                     [boolean]
      --sheets           Show results for the specified sheets
  [array] [choices: "track-time-cli", "cst", "personal", "time-speak", "coding",
    "gaming", "blog", "node-ts-lib-template", "track-time-cli-ui", "to-numbers"]

По умолчанию он показывает данные за последние 24 часа, что можно изменить с помощью аргумента --since. Например, для моей собственной временной таблицы track-time-cli запуск tt l track-time-cli --since '7 days ago' приводит к следующему результату:

Удобные команды

Есть три команды для перечисления определенных отрезков времени, которые, как мне кажется, часто используются:

  • tt today (tt t)
  • tt yesterday (tt y)
  • tt week (tt w)

Их вывод и аргументы аналогичны tt l; вот вывод tt week -t -h в моем случае:

Планы на будущее

В настоящее время команда разбивки показывает общее время, потраченное за час дня или за день недели, для записей, полученных из нескольких табелей учета рабочего времени.

Это еще не доработанный вариант, который будет улучшен в будущем; планируется использовать сохраненные данные, чтобы определить, когда вы наиболее продуктивны, и просматривать другие достоверные производные данные.

В этом посте я описал не все функции, так что не стесняйтесь проверять их самостоятельно!

Для получения дополнительной информации ознакомьтесь с README.md и самим репозиторием GitHub.

Любые отзывы, комментарии и предложения будут только приветствоваться!

Всем счастливых праздников! 🎅🎄

Источник:

#NodeJS #TypeScript
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу