test-nest-commander-0
v0.0.2
Published
Downloads
1
Readme
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
- commits -> for commits' durations
- git switch [current-branch] || git checkout -b [new-branch] -> feature's pausings
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:
- fetch a repo or package with the code
- "install" it
- 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
- Build pomogito CLI without git integration (low lvl)
- Intergarate to git (hight to low lvl)