python-pytm 0.0.16
PyTM - an Open Source Python Time Management Tool for Mankind
License: MIT
Keywords: PyTM

 .. 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/>`_.



Documentation
-------------

The full documentation is at http://PyTM.rtfd.org.



History
-------

0.0.1 (2018-10-23)
------------------

* First release on PyPI.

0.0.2 (2018-11-09)
------------------

* Second release on PyPI.
* Created Skeleton of the command line Interface.

0.0.3 (2023-10-18)
------------------

* Implemented data store in home directory. 
* Made project commands functional.

0.0.4 (2023-10-28)
------------------

* Implemented state.
* Improved project commands.

0.0.5 (2023-10-30)
------------------

* Made task commands functional.
* Improved project summary.
* Project summary now shows total duration of the project.

0.0.6 (2023-10-31)
------------------

* bug fix
* readme and doc update
* Improved Command line interface outputs.

0.0.7 (2023-11-01)
------------------

* Added show sub command for project.
* Added json sub command for project.
* refactored project and task commands output messages.
* fixed bugs in project sub commands.

0.0.8 (2023-11-01)
------------------

* Added config sub command.
* added command to save default user information.
* refactored project and task commands.
* fixed bugs.
* added config command to configure project meta data such as title, billable? etc.
  
0.0.9 (2023-11-02)
------------------

* Added config invoice command for configuring default invoice texts and logo.
* Added invoice sub command.
* Added invoice manual command to generate manual invoice using prompts.
* Added invoice auto <Project> command to generate invoice from existing projects.
* invoice manual and auto command generates HTML invoices using Tailwind CSS and opens it in a Browser.

0.0.10 (2023-11-03)
-------------------

* open invoices using python's standard library.
* code refactor
* bug fix

0.0.11 (2023-11-03)
-------------------

* Major bug fix.

0.0.12 (2023-11-04)
-------------------

* Bug fix.

0.0.13 (2023-11-07)
-------------------

* Made the init command optional.

0.0.14 (2023-11-07)
-------------------

* config invoice command bug fix.
* copy logo instead of moving it permanently when configuring invoice.
* fixed f strings quote issue.
* made init command hidden.
* improved doc strings and help texts.

0.0.15 (2023-11-08)
-------------------

* added new command rename for renaming existing projects.
* added new command rename for renaming existing tasks.
* updated show command to show active task and project when available.
* Simplified project start command.
* New projects can be started without project name. 
* Project started without a name will now have a default name which can be renamed later.
* Simplified task start command.
* New tasks can be started without task name. 
* Task started without a name will have a default name which can be renamed later at ease.
* Bug fix

0.0.16 (2023-11-11)
-------------------

* added new command summary.
* fixed bug and refactored invoice handler.
* added tests for project handler.
* added tests for task handler.
* added tests for invoice handler.
* updated make command to update README coverage percentage while testing.