Ellpeck / ObsidianSimpleTimeTracker

Multi-purpose time trackers for your notes!
MIT License
145 stars 25 forks source link

Reporting Summary Based On Tags #61

Closed serrnovik closed 3 weeks ago

serrnovik commented 3 weeks ago

Overview

This PR adds new summary / reporting capabilities to the Plugin. It introduces functionalities for tracking time entries, managing streams (topics) like development or accounting, and generating summary reports for easier visualization and analysis.

image

  1. Time Tracking Entries with Tags: Track work sessions with tags to categorize different activities.

    • Example of an entry: #tt_dev #tt_client_a #tt_frontend represents time spent working on the development (frontend) for a specific client.
  2. Enhanced Reporting Functionality: Generate time tracking reports for specific time periods, allowing detailed insight into how time was allocated.

    • Topic-based Reports: View summaries of time based on specific topic such as Development, Accounting, etc.
    • Multiple parallel topics possible: Track multiple dimensions.
    • Sub tags: track specific tags and group them in parent's

The output within Obsidian will render detailed information for each time segment, as shown in the first image.

Example Report

Call command Ctrl+P select Insert Time Tracking Summary image

The reporting capability allows generating summaries for specific time ranges and topics:

These examples help demonstrate how you can leverage the new tracking and reporting capabilities.

How to Use

  1. Tag Configuration
    • Configure your tags, icons, and sub tags using YAML in the settings of the plugin.
    • Example configuration can be found in the settings:
  2. Tag your records with one or more tags / sub tags
  3. Inserting Time Tracking Summary
    • Use the newly added command to insert the time tracking summary snippet into a markdown file.
    • This will generate a report for a given period, optionally filtered by a specific topic.
# You can have as many 'sections' as you want to track different domains separately or in parallel

# Example secction / topic 1
streams:
  name: "🌊 Streams"
  items:
    - topic: "Accounting"
      icon: "🧮"
      tag: "#tt_accounting"
      subTags: []

    - topic: "Development"
      icon: "💗"
      tag: "#tt_dev"
      subTags:
        - topic: "Frontend"
          tag: "#tt_frontend"
          subTags: []

        - topic: "Backend"
          tag: "#tt_backend"
          subTags: []

# Example section / topic 2
clients: 
  name: "👨🏼‍💼 Clients"
  items:
    - topic: "Client A"
      tag: "#tt_client_a"
      subTags: []

    - topic: "Client B"
      tag: "#tt_client_b"
      subTags: []`

Staged Changes Summary

The following files have been updated as part of this PR:

Future Improvements

Please review the changes and let me know if there are any questions or further refinements needed.

Ellpeck commented 3 weeks ago

Hi! I really wish you'd discussed this feature idea with me before implementing it, as I'm not really interested in having a feature like this in Super Simple Time Tracker, and now it feels like you wasted all this great work :(

As the name implies, the plugin is meant to provide the bare minimum for time tracking, and anything more can be done through the dataview API. On top of that, I don't have the time to actively maintain all my Obsidian plugins in the best of times, and any additional major features like this one just add to that issue.

However, if you want to publish this feature idea as a Dataview snippet or something similar for other users of this plugin to use, I'd love to include a link to it in a new "community scripts/snippets" section of the README.

serrnovik commented 3 weeks ago

Actually I had/have a dataview snippet and it is not optimal in terms of configuration / usability. Understand your position. No problem. I guess I'll live with a fork then. Tracking without a good summary is not very usable.