0.0.2 • Published 1 year ago

test-nest-commander-0 v0.0.2

Weekly downloads
-
License
UNLICENSED
Repository
-
Last release
1 year ago

NOTE: The solution seems to fine. A user doesn't need to do anything when starting / pausing (even if a ) a timer. It's restricted to only writing code, but it should be enough for MVP.

MOTIVATION

I hate spending time on managing tasks and timers, but I desperately need to track how much time is spent on a particular task from different entities (projects (Exbot & Gologin) -> repos (back, front, bot, extractor, etc.) -> features/fixes/hotfixes). What if, I do all the stuff I usually do with git but the timers managing is done for me without my involvement?

PROBLEM

Let's say I want to see how much time I've spent on a feature called 'table-pagination'. It's a feature that dwells in two repos of the 'Exbot' project - 'backend' and 'frontend' as a branch named 'feature/table-pagination'.

I need to see how much time is spent on:

  • on the feature in total
  • on the back-end and front-end parts of it separately
  • on its commits

The first solution coming to the mind of mine is simply to track:

  • the feature/table-pagination branches' creation timestamps -> START (x2 for back and front in this particular case)
  • the commits' timestamps -> commits' durations

The big BUTs
There needs to be a smooth way to pause and stop the timer. Any git pause or git stop do not solbe the underlying problem of a seemless UI - without tedious interactions.

Some background pauses (there's actually no need to stop any timer) can be triggered by

BUT WHAT ABOUT THOSE BREAKS IN BETWEEN?

  • SOMEWHAT_OK do a cron job for every pomodoro period of time (e.g. 25 mins) asking a user "Still working on feature/table-pagination?", which can be answered with (y) yes / (n) no;
  • NOT_REALLY_OK users DOES run a git pomogito p (pause) [feature]
  • KINDA_OK fswatch.sh - this CLI is only for macOS and for sole tracking activity of writing code (BUT no other-than-IDE activities are tracked, which seems to be fine for now)

INSTALLATION

Somehow make a user: 1. fetch a repo or package with the code 2. "install" it 3. run config --global alias.pomogito '!pomogito' (check how it's done for simillar apps)

USAGE

  • git pomogito s / start name --> by default starts a timer with the current branch's name otherwise with the specified name
  • git pomogito p / pomodoro --> starts a pomodoro-pattern timer (25 min work, 5 min break)
  • git pomogito l / keep --> keep a pomodoro timer (skip a break)
  • git pomogito

APP FLOW

TimerSchema = {
  name: 'feature/table-pagination',
  repos: [{
    name: 'backend',
    createdAt: 167000000,
    ref: '687sd6ff76fs7d6fsdf7', // to access commits or make an its own field of `commits: object[]`
    timings: [[167000000, 167000000], [167000000, 167000000], [167000000, 167000000]],
  }, {
    name: 'frontend',
    createdAt: 167000500,
    ref: '687fh89h9gjgh9jg8hjf',
    timings: [[167000000, 167000000], [167000000, 167000000], [167000000, 167000000]],
  }],
}

ROADMAP

  1. Build pomogito CLI without git integration (low lvl)
  2. Intergarate to git (hight to low lvl)