Code Monkey home page Code Monkey logo

trac-proj's Introduction

Track time spent on different activities

Very simple project tracker that (manually) tracks how much time is spent on a project and outputs overviews.

Background

During work, I noticed that I spent more time on unpleasant activities (e.g., reading e-mails, meetings) than I would have liked to and too little time on projects that I enjoyed. In order to get an idea on the time spent n different activities, I decided to write this little tool. Most tools that I found were either not free and/or too complex for simply monitoring activities (e.g., including billing support for projects). I simply wanted to track the time I spent on e-mail, meetings, and a handful of projects. Periodically, I wanted to look at some statistics and see if I can improve my time management.

This program can also be handy for checking if the time you spend on a project is within the boundaries you defined or have been imposed. It can be use as a helper for improving your own time management.

Configuration

The program is written in python. I recommend to use a virtual environment or a Python distribution like Anaconda. Anaconda is also the preferred method to install a complete Python environment on a Windows machine. If you are using Anaconda, I advise you to create an environment within which you run the code. You can directly create the environment for running the notebooks using the provided environment.yml file using conda env create -f environment.yml. You can then activate the envinronment using conda activate track_project.

To configure the program, you can press the Settings button in the program, which will open a small window where you can type in the name of the buttons inside the field. Each line corresponds to a button. The buttons are redrawn after you save the dialog file and then reloaded the next time you start the tracker.

Alternatively, you can also configure the program by editing the config.ini file. In the [Buttons] section, you can specify the different tasks and projects. Every task is assigned a ButtonX variable, where X should be replaced by a numeral counting from 1 to the number of buttons. For example

  • Button1 = Research
  • Button2 = Powerpoint

will create two buttons correspondings to two projects "Research" and "Powerpoint".

The file config.ini contains another parameter in the [Output] section, namely Percentage. This parameter controls if the weekly statistics are given in terms of percent or in absolute time (minutes).

Usage

The usage is pretty straightforward. Every project/task is assigned a button that can be toggled. If active, the button turns white with red font and time is counted on that task. If the button is either deactivated or another button activated, time spent on that task is counted and written into a file (in the datafiles directory). For every day a file is created that contains the seconds spent on each task.

Pressing the convert button generates an Excel file with daily statistics (number of minutes spent per day on each task) and, in a different worksheet, weekly statistics (either number of minutes or percentage of time spent on each task in a week. That's about it. The consolidate button cleans the database files but is disabled in the current version.

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.