worklog

package module
v0.0.0-...-14cc66d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 30, 2022 License: MIT Imports: 2 Imported by: 0

README

worklog 📝

An opinionated note-taking tool for the developer's day-to-day.

Idea

After working at Hellosaurus for two years, I can really only remember the big features I built. But what about the tricky bugs solved, legacy code rewrites, or instrumental meetings attended? Those moments, arguably just as important as feature work, stuck somewhere in memory though seemingly inaccessible forever.

Wouldn't it be nice if there was a way to simply and quickly document one's day-to-day while at work? Something akin to the captain's log in Star Trek, with a way for easy perusal at a later time.

Inspired by git, I envision a CLI tool and package for documenting and parsing: tasks, notes, meetings, bug fixes, etc., automatically grouped by day in order to maintain a record of the day-to-day on the job.

Getting Started

Build

We can use make to run common/frequent commands, such as building an executable and cleaning the project.

$ make

This will compile an up-to-date executable called worklog in the root directory based on the latest code changes from across the project (worklog.go, internal/client, cmd/worklog). To use, see next section.

Usage

This is a work-in-progress and currently being used to drive development. Very likely to change in the future.

$ worklog
$ worklog --help
NAME:
   worklog - An opinionated note-taking tool for the developer's day-to-day.

USAGE:
   worklog [global options] command [command options]

VERSION:
   0.0.1

COMMANDS:
   add      Add entries to the log
   list     Show recorded entries
   clear    Delete all recorded entries
   help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   -h, --help     show help (default: false)
   -v, --version  print the version (default: false)
$ worklog add

Add entries to the log.

$ worklog add -im "got the project packaged" -c feature
2022-11-20 11:39:26	z5DWk2OVR	*  [feature]	'got the project packaged'

$ worklog add --help
NAME:
   worklog add - Add entries to the log

USAGE:
   worklog add [command options]

OPTIONS:
   -m MSG, --message MSG       Use the given MSG as the entry body
   -c value, --category value  Choose a category for the entry. Value must be one of:
                                 [bug|feature|fix|meeting|note|refactor] (default: "note")
   -i, --important             Mark/flag the entry as important (default: false)
   -h, --help                  show help (default: false)
$ worklog list

Show recorded entries. Current idea is for output to look similar to git log.

$ worklog list
2022-11-20 11:39:26	z5DWk2OVR	*  [feature]	'got the project packaged'
2022-11-19 19:01:50	ul-RHcdVR	   [refactor]	'starting to see worklog-package structure'
2022-11-19 19:01:12	Vu2eScO4g	*  [fix]	'got clear working finally'
2022-11-19 19:00:44	uDa3ScO4g	*  [feature]	'testing none defaults'
2022-11-19 19:00:35	zGd3S5OVR	   [note]	'adding entries from cli'

$ worklog list --help
NAME:
   worklog list - Show recorded entries

USAGE:
   worklog list [command options]

OPTIONS:
   -a DATE, --after DATE, --since DATE   Show entries newer than given DATE.
   -b DATE, --before DATE, --until DATE  Show entries older than given DATE.
   -f value, --filter value              Select only entries that are categorized:
                                           I marked important
                                           B bugs
                                           F features
                                           R repairs/fixes
                                           M meetings
                                           N notes
                                           C cleanups/refactors
   -h, --help                            show help (default: false)

TODOs

  • centralize project once installed (e.g. $HOME/.worklog) to prevent worklog.db being created anywhere command is ran
  • worklog list filtering:
    • filter by categor(y|ies)
    • filter by date (--after=DATE, --before=DATE)
  • validate --after, --before dates are ISO8601 instead of simply checking string length
    • skipping in favor of current behavior (seemingly random behavior if given DATE string is not ISO 8601-like)

Documentation

Index

Constants

View Source
const (
	ISO8601 string = "2006-01-02 15:04:05"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Entry

type Entry struct {
	ID        string
	Timestamp time.Time
	Important bool
	Category  string
	Message   string
}

func (Entry) String

func (entry Entry) String() string

Directories

Path Synopsis
cmd
worklog command
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL