Giter VIP home page Giter VIP logo

time_reporting's Introduction

Working-time reporting tool

Badges:

PythonBlack PythonStyle

Main tab:

Main window example

Graph settings:

Graph settings window example

Report tab:

Report window example

User config tab:

User window example

Metrics tab:

Metrics window example

Usage:

>>> python3 time_reporting.py [--test]

NOTE:

The tool is in progress. It has not been released!

TODO:

Fill the README.md with content!

time_reporting's People

Contributors

milanbalazs avatar

Stargazers

 avatar

Watchers

 avatar

time_reporting's Issues

Creating User config page

The TK root should be a Notebook instead of simple frame and it should contain tabs.

  • Main tab
  • User config tab
  • Etc..

Invalid date range is possible in case of some time pickers.

For example on the Metrics tab or in case of visualization starting. It doesn't failed the script running but it cannot find data so the data will be empty. This invalid data range should be handled and the script should provide an error message. The methods should return with None and does nothing.

Improve logging

The script makes too many logs (Many of them are non-relevant.). It means about 7-8000 lines log only in init phase. Probably many logging should be removed and the logging levels should be changed (many of them should be only debug level instead of other).

Fix the report generation tab grid

The elements are not in the right positions because of the wrong grid.
Probably the column-span or the re-sizable method is not correct.
Eg.: The "Browse" button is not right next to the Entry widget but the stickies are correct.

Create authentication for users

The tools should handle more different users with different permissions. This feature needs to have
authentication strategy.

Make more efficient Y steps/range on "Overtime" chart.

Make more efficient range on "Overtime" chart.

Use rounded times around of the Overtime.

For example:
On the below chart the time in the red box should be:

  • 5:00
  • 4:00
  • (And one more "4:30" peg)

image

IMPORTANT:
The Y scale steps (range) should be fit to Overtime.
Tor example:
If the Overtime is 3 mins then the scale step should be ~1 min.

The ConfigParser cannot handle '%' in set method (date format)

The "original" config parser is not able to handle the "%" character in the set method.

Error:

  File "/usr/lib/python3.6/configparser.py", line 1193, in set
    super().set(section, option, value)
  File "/usr/lib/python3.6/configparser.py", line 894, in set
    value)
  File "/usr/lib/python3.6/configparser.py", line 402, in before_set
    "position %d" % (value, tmp_value.find('%')))
ValueError: invalid interpolation syntax in '%Y.%m.%d.' at position 0

Solution hint

Make chart to be configurable

Make chart to be configurable.
For example:

  • Create a "configure" button which triggers a pop-up config window which contains:
    • Colors of bars (and sections of bars)
    • X axis range (Time range of visualization)
    • What should be visible on graph
    • Y axis of Overtime chart
    • etc..

Write docstrings

Write doc-strings to file/calss/method/class.
If the doc-string is available but it is not completed, it should be completed and extended.

Make metrics tab faster

The Metrics tab generation takes about 3-4 second. It can be disturbing (Even in init phase). Probably many parts of code should be performed only once in the Init method (Eg.: selected data range).

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.