GithubHelp home page GithubHelp logo

benature / timereport Goto Github PK

View Code? Open in Web Editor NEW

This project forked from yujishen/timereport

0.0 1.0 0.0 1.01 MB

Analysis time records in aTimeLogger, create daily/weekly/monthly report in Evernote.

Python 100.00%

timereport's Introduction

Time Report

Integrate time tracking app aTimeLogger, note taking app Evernote and Mac productivity app Alfred to easily generate self time analysis report.

Introduction

Stage

Early. In latest update, transform developing environment from Jupyter Notebook to PyCharm. Making it more like a program.

Target User

It is highly customized, so currently only myself.

Know Issue

  • Design: This program is full of functions, without Object-Oriented Design. Next step is to learn and practice how to design this program in OOD.
  • Edit: The whole database is based on data in aTimeLogger. Changes in local database will not affect remote data, and each time I change historical entries or types settings in aTimeLogger, I have to rebuild my local database.
  • Depth: The analysis stays on descriptive level, need to dig deeper for more useful and hidden relations.

Goal

My final goal is to build a webapp to replace aTimeLogger as my customized time tracking tool, for more flexibility to edit data and better integration with task management system. But this will not happen very soon, both my knowledge and time are not enough.

Basic Flow

After retrieving all history data from aTimeLogger, building MySQL database, for each day/week/month, simply use Alfred to choose an action:

Underlying procedures:

  1. Get new data from aTimeLogger API, update database.
  2. Utilize pandas, numpy to transform, aggregate, analyze data according to different time frame.
  3. Draw plots and tables in matplotlib, save in files. See 'Gallery' for examples.
  4. Create note via Evernote API, add images and headings, push to my Evernote account.

Gallery

Sleep Comparison Table

Compare today's sleep status with yesterday, and its rank in last 7 days. Usually used in daily report.

Task Table

I use 'Comment' filed in aTimeLogger as Task or some activity I want to highlight, then aggregate its statistics everyday for morning review.

Sleep Analysis

Analyze sleep conditions for weekly or monthly review. Inspired by app Sleep Cycle. In this picture (monthly report), X axis bottom is week number, top is month abbreviation.

Group Pie Chart

Pie chart for each group to see total conditions. Mimic the pie chart in aTimeLogger, but add Average statistic.

Type Descriptive Table

Type detailed table replicate the 'Detail' function in aTimeLogger with a lot more statistics.

Group Stacked Bar Chart

Stacked bar chart (horizontal) to see group trends inside a month or a week. Numbers in bar represents its percentage.

Type Grid Stacked Bar Chart

This 3x3 grid stacked bar chart (horizontal) to get the trends of each types in given time frame. Numbers in bar represents its hours.

Aggregation Line Plot

A flexible plot to compare given types or groups in line plot.

timereport's People

Contributors

yujishen avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.