Skip to content

AlphaGit/worklogger

Repository files navigation

Worklogger

Detecting logs from different sources and applying them to different outputs.

The particular objective of this system is to allow me to automate my timesheet work, while my clients keep changing the way that they want it logged.

Application data flow

  1. Inputs read worklogs from different data sources. Each worklog represents a particular instance of work to be outputed somewhere. After reading the input from all the sources, they all get added into a WorklogSet instance.
  2. WorklogSetOperations allow to transform that end-result of worklog set. For example, operations like adding new worklogs or merging different worklogs together would work here. The worklog set gets modified to leave a new set of worklogs.
  3. Transformation actions operate on each particular worklog, by reading and modifying data on it. Most of the modifications will be done over a tagging system: every worklog has tags that will determine if it goes through any particular flow. These transformations will create more tags to them.
    1. Conditions will filter worklogs from reaching a particular action.
  4. Outputs will write on an output channel the resulting worklog set.
    1. Conditions will filter worklogs from reaching a particular output.
    2. Formatters will transform the WorklogSet into a data format that this particular output can use. Note that a formatter is tied to a particular Output.

Application flow (graphical)

Installation

There are three big ways to set up worklogger.

  1. Docker containers (recommended)
  2. Serverless framework
  3. Local installation

Configuration

Also, here is information on how to setup the different input/output integrations.

  1. General configuration
  2. Inputs
    1. Google Calendar Input
    2. Harvest App
  3. Conditions
    1. HasTag
    2. SummaryMatches
    3. True
  4. Transformations
    1. AddTag
    2. RemoveTag
  5. Formatters
    1. SummaryText
    2. NoFormat
    3. FormatterAggregator
    4. SummaryHtml
    5. SummaryText
    6. TableList
    7. TableHtml
  6. Outputs
    1. Jira
    2. Harvest App
    3. TextFile
    4. AWS SES
    5. Logger

About

Generating work logs (timesheets) from multiple formats to multiple formats, and a tagging system to classify them

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages