PyTM icon indicating copy to clipboard operation
PyTM copied to clipboard

A Python :snake: :three: CLI time tracker with invoice generation

.. image:: https://github.com/wasi0013/PyTM/raw/master/ext/images/PyTM-logo.png :target: https://github.com/wasi0013/PyTM/ :alt: PyTM - Logo

PУΓM - A CLI time tracker for projects with invoice generation

|image1| |coverage| |image3| |Contributors| |DownloadStats| |DocsStats| |image2|

.. |image1| image:: https://badge.fury.io/py/python-pytm.png :target: https://badge.fury.io/py/python-pytm .. |image2| image:: https://img.shields.io/pypi/l/python-pytm.svg :target: https://pypi.org/project/python-pytm/ .. |image3| image:: https://img.shields.io/pypi/pyversions/python-pytm.svg :target: https://pypi.org/project/python-pytm/ :alt: Supported Python Versions .. |Contributors| image:: https://img.shields.io/github/contributors/wasi0013/PyTM.svg :target: https://github.com/wasi0013/PyTM/graphs/contributors :alt: List of Contributors .. |DownloadStats| image:: https://pepy.tech/badge/python-pytm :target: https://pepy.tech/project/python-pytm :alt: Download Stats .. |DocsStats| image:: https://readthedocs.org/projects/pytm/badge/?version=latest :target: https://pytm.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status .. |coverage| image:: https://img.shields.io/badge/coverage-56%25-blue :target: https://pytm.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status

Goals

Project time management, billing, and invoice generation.

Preview

.. image:: https://github.com/wasi0013/PyTM/raw/master/ext/images/demo.gif :target: https://github.com/wasi0013/PyTM/raw/master/ext/images/demo.gif :alt: PyTM - Preview

Screenshots

.. image:: https://github.com/wasi0013/PyTM/raw/master/ext/images/demo.png :target: https://github.com/wasi0013/PyTM/ :alt: PyTM - Screenshot

.. image:: https://github.com/wasi0013/PyTM/raw/master/ext/images/Demo-Invoice.png :target: https://github.com/wasi0013/PyTM/ :alt: PyTM - Invoice

Installing PyTM

  • First download and install pyenv <https://github.com/pyenv/pyenv#installation>_. Use the command::

    curl https://pyenv.run | bash

  • Next, install Python 3.12 using the command::

    pyenv install 3.12.0

    Alternatively, you can skip pyenv installation and download python 3.12 or above from the official website and setup a virtualenv as well.

  • Next, install PyTM from PyPI <https://pypi.org/project/python-pytm/>_ using :code:pip::

    python -m pip install python-pytm

Check the version by typing the following in your terminal.::

 pytm --version

Basic commands

To see the available commands type::

pytm --help

Commands related to projects

  • Start a new project with a default name: :code:pytm project start
  • Start a new project with the given name or, start an existing project: :code:pytm project start PROJECT_NAME
  • Rename a project: :code:pytm project rename OLD_PROJECT_NAME NEW_NAME
  • Remove a project: :code:pytm project remove PROJECT_NAME
  • Check the status of a project: :code:pytm project status PROJECT_NAME
  • Check the list of tasks and duration of a project: :code:pytm project summary PROJECT_NAME
  • Finish active project: :code:pytm project finish
  • Pause active project: :code:pytm project pause
  • Abort active project: :code:pytm project abort

Commands related to Task

  • Start a new task with a default name in the current active project: :code:pytm task start
  • Start a new task with the given name or existing task in the current active project: :code:pytm task start TASK_NAME
  • Rename a task of the active project: :code:pytm task rename OLD_TASK_NAME NEW_NAME
  • Remove a task: :code:pytm task remove TASK_NAME
  • current task's status: :code:pytm task status
  • Finish active task: :code:pytm task finish
  • Pause active task: :code:pytm task pause
  • Abort active task: :code:pytm task abort

Others

Configure project, user and invoice info::

pytm config project PROJECT_NAME
pytm config user
pytm config invoice

Generate Invoice::

pytm invoice auto PROJECT_NAME
pytm invoice manual

Check version::

pytm --version
pytm -v

Check summary of all the projects::

pytm summary

For a list of all the available commands try::

pytm --help

Running the tests

  • Clone this repository <https://github.com/wasi0013/PyTM>_

  • Install dependencies::

    pip install -r requirements.txt

  • run the tests::

    py.test

Notes

  • Author - Wasi <https://www.wasi0013.com/>_ - (wasi0013 <https://github.com/wasi0013>_).
  • License - see the LICENSE <LICENSE>_ file.
  • Contributing - see CONTRIBUTING.rst <CONTRIBUTING.rst>_ for detail. You can also help by creating issues <https://github.com/wasi0013/PyTM/issues/new/>_.
  • Version - see the tags on this repository <https://github.com/wasi0013/PyTM/tags>_.
  • Acknowledgments - bootstrapped using this cookiecutter package <https://github.com/audreyr/cookiecutter-pypackage>_.
  • Built With :heart: using Python <https://python.org/>_.