From 92e312fd680b8b9bd4b1c3aa818799d023178ade Mon Sep 17 00:00:00 2001 From: "Lance R. Vick" Date: Fri, 6 Dec 2024 15:51:08 -0800 Subject: [PATCH 1/3] Document desired data-driven end-game --- README.md | 173 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 160 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 1c2a0db..d15f07a 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,168 @@ -# Tracking Time +# Punchin -To start running PunchIn for a specific client, use: +A time billing tool for FOSS teams that want to spend as little time tracking time as possible + +# Features +- Invoice Management + - automatically log hours to draft invoices via invoice system integration +- Conversation discovery + - Find potentially billable conversations with tracked people, domains, or channels +- Work Discovery + - Find potentially billable commits, tickets, milestones +- Secret Management + - Store all credentials in hardware-token-backed PGP encrypted storage + +# Integrations +- Slack +- Matrix +- Forgejo +- Firefox +- IMAP +- InvoiceNinja +- git + +# Workflow + +## Setup + +1. Register data sources + + ``` + > punchin login [service] + ``` + - setup chat, email, git accounts, invoice system, etc + - Will be asked to add all services if none specified + +2. Register a new client + + ``` + > punchin client add + ``` + - Select client from list of clients defined in invoicing system + - Setup minimum time increment (e.g. 30m) + - Setup rate from list of supported rates in invoicing system + - Setup reduced rate for first x hours for retainers + - Setup monitored keywords, domains, repos + - Setup milestones, projects, issues to log time to + - Setup target invoice template + +## Usage -```sh -cargo run -- start .json ``` +> punchin -Enter the projects as you start working on them. Each time you switch to a new -project, the current project will be committed and rounded to the next chunk -(by default, 30 minutes). Once finished, be sure to exit the program using -ctrl-d or EOL to properly save progress. +-> Select Client +--> 1. ACME Co. [Default] +--> 2. John Doe Intustries -# Generating Reports +[Enter] for default +> 1 -PunchIn natively supports Markdown and CSV. +-> Time: 14:34 2024-12-06 +Last Update: Nov 5 +Search time: Nov 3-5 -```sh -cargo run -- report .json --format markdown --timescale hours -cargo run -- report .json --format csv --timescale hours +-> Searching Events... + +------------------------------------------------------------------ +-> Found meeting: +- Description: "Meeting: Discussing Priorities" +- Source: Email Invite +- Context: [Link] +- Timeframe: Nov 4 - Nov 5 +- Words: 345 +- Participants: Joe C, Jim G., Bob H. +- Time [Estimated]: 2.5h +--> 1. Bill [Default] +--> 2. Mark non-billable +--> 3. Update time +--> 4. Update description +> 1 + +------------------------------------------------------------------ +-> Found conversation +- Description: "Matrix Chat in 'Team'" +- Keywords: "ACME" +- Channel: #acme-team@matrix.org +- Participants: Joe C, Jim G. +- Words: 195 +- Context: [Link] +- Time [Estimated]: 30m +--> 1. Bill [Default] +--> 2. Mark non-billable +--> 3. Update time +--> 4. Update description +> 3 +New Total: +> 1h +> 4 +New Description: +> Architecture Discussion +> 1 +--> Invoice Line Submitted + +------------------------------------------------------------------ +-> Found commit +- Description: "Refactor to be more readable" +- Source: git@codeberg.org/acme/website.git#joe/refactor-stuff +- Channel: "Team" +- Ticket: [None] +- Milestone: [None] +- Participants: Joe C, Jim G. +- Lines: 2534 +- Context: [Link] +- Time [Estimated]: 5h +--> 1. Bill [Default] +--> 2. Mark non-billable +--> 3. Update time +--> 4. Update description +> 1 + +Error: Client "ACME" requires "Ticket" and "Milestone" to be set + +Choose ticket: +--> 1. Cleanup Refactor +--> 2. Spellcheck support +--> N. [New] +> 1 + +Choose milestone: +--> 1. Usability +--> 2. Doc Improvements +--> N. [New] +> N + +New Milestone Name +> Refactor/Cleanup + +-> Updated Hours: "acme/website - Cleanup Refactor" +-> Updated Invoice: "ACME Consulting - 2025/01/12" + +------------------------------------------------------------------ +-> Found review +- Description: "Review: add spell checking" +- Source: git@codeberg.org/acme/website.git#jim/spellcheck-support +- Issue: "#154" +- Context: [Link] +- Participants: Joe C, Jim G. +- Lines: 2534 +- Time [Estimated]: 1h +--> 1. Bill [Default] +--> 2. Mark non-billable +--> 3. Update time +--> 4. Update description +> 1 + +------------------------------------------------------------------ +-> Log manual hours? +--> [Y/n] +> Y +Start: +> 2024-12-06 15:41 PT +End: +> 2024-12-06 16:00 PT +Description: +> Took a walk trying to do debugging +-> Adjusted time: 30m +-> Updated Invoice: "ACME Consulting - 2025/01/12" ``` -- 2.40.1 From 968541d7bb9ca4dacef11f242241cdbc381a2753 Mon Sep 17 00:00:00 2001 From: "Lance R. Vick" Date: Fri, 6 Dec 2024 15:56:53 -0800 Subject: [PATCH 2/3] add time tracking for time spent tracking time --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index d15f07a..2cc42c5 100644 --- a/README.md +++ b/README.md @@ -165,4 +165,9 @@ Description: > Took a walk trying to do debugging -> Adjusted time: 30m -> Updated Invoice: "ACME Consulting - 2025/01/12" + +------------------------------------------------------------------ +-> Time spent tracking time +-> Total: 1h +-> Updated Invoice: "ACME Consulting - 2025/01/12" ``` -- 2.40.1 From de0a5769524e9402754a98c78af94b3d3333d575 Mon Sep 17 00:00:00 2001 From: "Lance R. Vick" Date: Fri, 6 Dec 2024 16:11:15 -0800 Subject: [PATCH 3/3] add browser monitoring support --- README.md | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2cc42c5..712eda6 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ A time billing tool for FOSS teams that want to spend as little time tracking ti - Conversation discovery - Find potentially billable conversations with tracked people, domains, or channels - Work Discovery - - Find potentially billable commits, tickets, milestones + - Find potentially billable commits, tickets, milestones, browser session - Secret Management - Store all credentials in hardware-token-backed PGP encrypted storage @@ -31,6 +31,7 @@ A time billing tool for FOSS teams that want to spend as little time tracking ti > punchin login [service] ``` - setup chat, email, git accounts, invoice system, etc + - setup target browser session to monitor for research - Will be asked to add all services if none specified 2. Register a new client @@ -70,9 +71,8 @@ Search time: Nov 3-5 - Source: Email Invite - Context: [Link] - Timeframe: Nov 4 - Nov 5 -- Words: 345 - Participants: Joe C, Jim G., Bob H. -- Time [Estimated]: 2.5h +- Time: 2.5h --> 1. Bill [Default] --> 2. Mark non-billable --> 3. Update time @@ -153,6 +153,15 @@ New Milestone Name --> 4. Update description > 1 +------------------------------------------------------------------ +-> Found Browser History +-> Session: Firefox profile "ACME" +-> Timeframe: 2024-12-06 12:20 - 2024-12-06 14:10 +-> Domains: + - https://wikipedia.org/Password_entropy + - https://doc.rust-lang.org/stable/book/ +- Time [Estimated]: 2.5h + ------------------------------------------------------------------ -> Log manual hours? --> [Y/n] @@ -168,6 +177,6 @@ Description: ------------------------------------------------------------------ -> Time spent tracking time --> Total: 1h +-> Adjusted Total: 1h -> Updated Invoice: "ACME Consulting - 2025/01/12" ``` -- 2.40.1