Compare commits
No commits in common. "data-driven" and "main" have entirely different histories.
data-drive
...
main
187
README.md
187
README.md
|
@ -1,182 +1,21 @@
|
||||||
# Punchin
|
# Tracking Time
|
||||||
|
|
||||||
A time billing tool for FOSS teams that want to spend as little time tracking time as possible
|
To start running PunchIn for a specific client, use:
|
||||||
|
|
||||||
# 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, browser session
|
|
||||||
- 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
|
|
||||||
- setup target browser session to monitor for research
|
|
||||||
- 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 <client>.json
|
||||||
```
|
```
|
||||||
> punchin
|
|
||||||
|
|
||||||
-> Select Client
|
Enter the projects as you start working on them. Each time you switch to a new
|
||||||
--> 1. ACME Co. [Default]
|
project, the current project will be committed and rounded to the next chunk
|
||||||
--> 2. John Doe Intustries
|
(by default, 30 minutes). Once finished, be sure to exit the program using
|
||||||
|
ctrl-d or EOL to properly save progress.
|
||||||
|
|
||||||
[Enter] for default
|
# Generating Reports
|
||||||
> 1
|
|
||||||
|
|
||||||
-> Time: 14:34 2024-12-06
|
PunchIn natively supports Markdown and CSV.
|
||||||
Last Update: Nov 5
|
|
||||||
Search time: Nov 3-5
|
|
||||||
|
|
||||||
-> Searching Events...
|
```sh
|
||||||
|
cargo run -- report <client>.json --format markdown --timescale hours
|
||||||
------------------------------------------------------------------
|
cargo run -- report <client>.json --format csv --timescale hours
|
||||||
-> Found meeting:
|
|
||||||
- Description: "Meeting: Discussing Priorities"
|
|
||||||
- Source: Email Invite
|
|
||||||
- Context: [Link]
|
|
||||||
- Timeframe: Nov 4 - Nov 5
|
|
||||||
- Participants: Joe C, Jim G., Bob H.
|
|
||||||
- Time: 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
|
|
||||||
|
|
||||||
------------------------------------------------------------------
|
|
||||||
-> 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]
|
|
||||||
> 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"
|
|
||||||
|
|
||||||
------------------------------------------------------------------
|
|
||||||
-> Time spent tracking time
|
|
||||||
-> Adjusted Total: 1h
|
|
||||||
-> Updated Invoice: "ACME Consulting - 2025/01/12"
|
|
||||||
```
|
```
|
||||||
|
|
Loading…
Reference in New Issue