hourtrack


Namehourtrack JSON
Version 1.7.4 PyPI version JSON
download
home_pageNone
SummaryPython program that tracks total time spent on projects and saves sessions. It supports multiple projects.
upload_time2025-01-26 14:11:09
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT License Copyright (c) 2024 Rodrigo Martín Núñez Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords hourtrack time track projects sessions hours minutes seconds time tracking project tracking session tracking time management project management session management
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ⌛ HourTrack

<br>

![Badge Workflow] 
[![Badge License]][License] 
![Badge Language] 
[![Badge Pull Requests]][Pull Requests] 
[![Badge Issues]][Issues] 

<br>

# Contents
- [📖 Description](#-description)
- [🚀 Quick start](#-quick-start)
- [✨ Features](#-features)
- [📦 Installation](#-installation)
- [📲 Usage](#-usage)
  - [Help!](#help)
  - [Initialize a project](#initialize-a-project)
  - [Start tracking](#start-tracking)
  - [Stop tracking](#stop-tracking)
  - [Reset project](#reset-project)
  - [Edit project](#edit-project)
  - [Delete project](#delete-project)
  - [List projects](#list-projects)
  - [Project Info](#project-info)
- [⚙ Options](#-options)
- [💻 Development](#-development)
- [👥 Contributing](#-contributing)
<!----------------------------------------------------------------------------->

# 📖 Description

💻 **Windows, Linux and Mac compatible.** 💻

A Python script to track time spent on various projects. This script allows you to start, stop, and monitor time tracking for different projects, as well as output data to files.

It is very lightweight since it doesnt have to be running in the background.

This script is going to help you track:
- Total time spent on different projects
- Work sessions information
- Time spent on each session
- Set a goal for each project

# 🚀 Quick start

```bash
pip install hourtrack
hourtrack start myProject
```

# ✨ Features

- **Supports multiple projects**: Track time for multiple projects.
- **Set goals**: Set an hour goal for each project.
- **Start/Stop tracking**: Start and stop tracking time for a project.
- **List projects**: List all projects being tracked.
- **Delete project**: Delete a project and all its data.
- **Reset project**: Reset a project's data.
- **Export data**: Export data to a `.txt` file.
- ...

# 📦 Installation

From [PyPI][PyPiLink]

```bash
pip install hourtrack
```

**Optional installation alternative**

```bash
git clone https://github.com/P-ict0/HourTrack.git
cd HourTrack
pip install .
```

# 📲 Usage

## Help!

```bash
hourtrack --help
hourtrack <command> --help
```

## Initialize a project

Create a project to start tracking time. You can also initialize a project with a goal.

```bash
hourtrack init <project>                  # Create a new empty project
hourtrack init <project> --goal <hours>   # Create a new project with a goal
```

## Start tracking

Start tracking session for a project. If the project does not exist, it will be created.
```bash
hourtrack start <project>
```

## Stop tracking

Stop current session for a project, saving the time spent. With option to delete all projects.
```bash
hourtrack stop <project> # Stop tracking for a project
hourtrack stop --all     # Stop tracking for all projects
```

## Reset project

Delete all sessions for a project or all projects and reset the timer to 0, but don't delete

```bash
hourtrack reset <project> # Reset a project
hourtrack reset --all     # Reset all projects
```

## Edit project

```bash
hourtrack edit <project> --rename <new_name>    # Rename a project

hourtrack edit <project> --goal <hours>         # Set/edit an hour goal for a project (or remove it with 0)

hourtrack edit <project> --add-session <hours>  # Add a session to a project 
                                                # ending now that started <hours> hours ago.

hourtrack edit <project> --delete-session <id>  # Delete session by its id (use `info` command to get the id)
hourtrack edit <project> --delete-session -1    # Delete last session
```

## Delete project

Delete a project and all its data. With option to delete all projects.

```bash
hourtrack delete <project> # Delete a project
hourtrack delete --all     # Delete all projects
```

## List projects

List all/active projects.

Available formats: `smart`, `full`, `short`, `hours`.
Note: If not specified, `smart` format is the default format.

```bash
hourtrack list all [-f <format>]      # List all projects
hourtrack list active [-f <format>]   # List active projects
```

## Project Info

Show the status of a specific project or of all projects. With option to output to a file.

Available formats: `smart`, `full`, `short`, `hours`.
Note: If not specified, `smart` format is the default format.
```bash
hourtrack info <project> [-f <format>]                      # Show project info
hourtrack info --all [-f <format>]                          # Show current active session info
hourtrack info <project|-all> -o <outputPath> [-f <format>] # Output to a file
```

# ⚙ Options

| Command                                                                                                           | Requirement                                                        | Default | Description                                                                                                                      |
|-------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------|---------|----------------------------------------------------------------------------------------------------------------------------------|
| `hourtrack --help`                                                                                                | None                                                               | None    | For help                                                                                                                         |
| `hourtrack init <project>`                                                                                        | Project name                                                       | None    | Create a new empty project.                                                                                                      |
| `hourtrack start <project>`                                                                                       | Project name                                                       | None    | Start tracking session for a project. If the project does not exist, it will be created.                                         |
| `hourtrack stop <project\|--all>`                                                                                 | Project name or `-a/--all` flag                                    | None    | Stop current session for a project, saving the time spent. With option to stop all projects                                      |
| `hourtrack reset <project\|--all>`                                                                                | Project name or `-a/--all` flag                                    | None    | Reset a project's data. With option to reset all projects                                                                        |
| `hourtrack edit <project> <--rename <name>\|--add-session <hours>\|--delete-session <id\|-1>\|-g/--goal <hours>>` | One of `--rename`, `--add-session`, `--delete-session`, `-g/--goal` | None    | Renames a project, edits hour goal, adds a session or deletes a session                                                          |
| `hourtrack delete <project\|--all>`                                                                               | Project name or `-a/--all` flag                                    | None    | Delete a project and all its data. With option to delete all projects                                                            |
| `hourtrack list <all\|active> [-f <smart\|full\|short\|hours>]`                                                   | None                                                               | format `smart` | List all/active projects.                                                                                                        |
| `hourtrack info [<project>] [-f <smart\|full\|short\|hours>] [-o <outputPath>]`                                   | None                                                               | format `smart` | Show the info of a specific project or show current active session if project is not specified. With option to output to a file. |

# 💻 Development

```bash
git clone https://github.com/P-ict0/HourTrack.git
cd HourTrack

# Note: You probably will need to remove the line from `utils/argument_parser.py`: from importlib.metadata import version
# And also remove the `version` option from the parser (below in the file).

# Run the script
python src/hourtrack.py --help
```

# 👥 Contributing

Contributions are welcome! Please fork the repository and submit a pull request with your suggested changes.

<!----------------------------------------------------------------------------->

[Stars]: https://starchart.cc/P-ict0/HourTrack
[DWS]: https://github.com/P-ict0/HourTrack

[Pull Requests]: https://github.com/P-ict0/HourTrack/pulls
[Issues]: https://github.com/P-ict0/HourTrack/issues
[PyPiLink]: https://pypi.org/project/hourtrack/

[License]: LICENSE

<!----------------------------------{ Badges }--------------------------------->

[Badge Workflow]: https://github.com/P-ict0/HourTrack/actions/workflows/release.yml/badge.svg

[Badge Issues]: https://img.shields.io/github/issues/P-ict0/HourTrack
[Badge Pull Requests]: https://img.shields.io/github/issues-pr/P-ict0/HourTrack
[Badge Language]: https://img.shields.io/github/languages/top/P-ict0/HourTrack
[Badge License]: https://img.shields.io/github/license/P-ict0/HourTrack
[Badge Lines]: https://img.shields.io/tokei/lines/github/P-ict0/HourTrack

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "hourtrack",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "Rodrigo Martin N\u00fa\u00f1ez <rodrigomartinnunez@gmail.com>",
    "keywords": "hourtrack, time, track, projects, sessions, hours, minutes, seconds, time tracking, project tracking, session tracking, time management, project management, session management",
    "author": null,
    "author_email": "Rodrigo Martin N\u00fa\u00f1ez <rodrigomartinnunez@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/d8/90/cbc4ecacf9896f23937ec9594bd4763a636c423949bbb93b2c265fc8e0a6/hourtrack-1.7.4.tar.gz",
    "platform": null,
    "description": "# \u231b HourTrack\n\n<br>\n\n![Badge Workflow] \n[![Badge License]][License] \n![Badge Language] \n[![Badge Pull Requests]][Pull Requests] \n[![Badge Issues]][Issues] \n\n<br>\n\n# Contents\n- [\ud83d\udcd6 Description](#-description)\n- [\ud83d\ude80 Quick start](#-quick-start)\n- [\u2728 Features](#-features)\n- [\ud83d\udce6 Installation](#-installation)\n- [\ud83d\udcf2 Usage](#-usage)\n  - [Help!](#help)\n  - [Initialize a project](#initialize-a-project)\n  - [Start tracking](#start-tracking)\n  - [Stop tracking](#stop-tracking)\n  - [Reset project](#reset-project)\n  - [Edit project](#edit-project)\n  - [Delete project](#delete-project)\n  - [List projects](#list-projects)\n  - [Project Info](#project-info)\n- [\u2699 Options](#-options)\n- [\ud83d\udcbb Development](#-development)\n- [\ud83d\udc65 Contributing](#-contributing)\n<!----------------------------------------------------------------------------->\n\n# \ud83d\udcd6 Description\n\n\ud83d\udcbb **Windows, Linux and Mac compatible.** \ud83d\udcbb\n\nA Python script to track time spent on various projects. This script allows you to start, stop, and monitor time tracking for different projects, as well as output data to files.\n\nIt is very lightweight since it doesnt have to be running in the background.\n\nThis script is going to help you track:\n- Total time spent on different projects\n- Work sessions information\n- Time spent on each session\n- Set a goal for each project\n\n# \ud83d\ude80 Quick start\n\n```bash\npip install hourtrack\nhourtrack start myProject\n```\n\n# \u2728 Features\n\n- **Supports multiple projects**: Track time for multiple projects.\n- **Set goals**: Set an hour goal for each project.\n- **Start/Stop tracking**: Start and stop tracking time for a project.\n- **List projects**: List all projects being tracked.\n- **Delete project**: Delete a project and all its data.\n- **Reset project**: Reset a project's data.\n- **Export data**: Export data to a `.txt` file.\n- ...\n\n# \ud83d\udce6 Installation\n\nFrom [PyPI][PyPiLink]\n\n```bash\npip install hourtrack\n```\n\n**Optional installation alternative**\n\n```bash\ngit clone https://github.com/P-ict0/HourTrack.git\ncd HourTrack\npip install .\n```\n\n# \ud83d\udcf2 Usage\n\n## Help!\n\n```bash\nhourtrack --help\nhourtrack <command> --help\n```\n\n## Initialize a project\n\nCreate a project to start tracking time. You can also initialize a project with a goal.\n\n```bash\nhourtrack init <project>                  # Create a new empty project\nhourtrack init <project> --goal <hours>   # Create a new project with a goal\n```\n\n## Start tracking\n\nStart tracking session for a project. If the project does not exist, it will be created.\n```bash\nhourtrack start <project>\n```\n\n## Stop tracking\n\nStop current session for a project, saving the time spent. With option to delete all projects.\n```bash\nhourtrack stop <project> # Stop tracking for a project\nhourtrack stop --all     # Stop tracking for all projects\n```\n\n## Reset project\n\nDelete all sessions for a project or all projects and reset the timer to 0, but don't delete\n\n```bash\nhourtrack reset <project> # Reset a project\nhourtrack reset --all     # Reset all projects\n```\n\n## Edit project\n\n```bash\nhourtrack edit <project> --rename <new_name>    # Rename a project\n\nhourtrack edit <project> --goal <hours>         # Set/edit an hour goal for a project (or remove it with 0)\n\nhourtrack edit <project> --add-session <hours>  # Add a session to a project \n                                                # ending now that started <hours> hours ago.\n\nhourtrack edit <project> --delete-session <id>  # Delete session by its id (use `info` command to get the id)\nhourtrack edit <project> --delete-session -1    # Delete last session\n```\n\n## Delete project\n\nDelete a project and all its data. With option to delete all projects.\n\n```bash\nhourtrack delete <project> # Delete a project\nhourtrack delete --all     # Delete all projects\n```\n\n## List projects\n\nList all/active projects.\n\nAvailable formats: `smart`, `full`, `short`, `hours`.\nNote: If not specified, `smart` format is the default format.\n\n```bash\nhourtrack list all [-f <format>]      # List all projects\nhourtrack list active [-f <format>]   # List active projects\n```\n\n## Project Info\n\nShow the status of a specific project or of all projects. With option to output to a file.\n\nAvailable formats: `smart`, `full`, `short`, `hours`.\nNote: If not specified, `smart` format is the default format.\n```bash\nhourtrack info <project> [-f <format>]                      # Show project info\nhourtrack info --all [-f <format>]                          # Show current active session info\nhourtrack info <project|-all> -o <outputPath> [-f <format>] # Output to a file\n```\n\n# \u2699 Options\n\n| Command                                                                                                           | Requirement                                                        | Default | Description                                                                                                                      |\n|-------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------|---------|----------------------------------------------------------------------------------------------------------------------------------|\n| `hourtrack --help`                                                                                                | None                                                               | None    | For help                                                                                                                         |\n| `hourtrack init <project>`                                                                                        | Project name                                                       | None    | Create a new empty project.                                                                                                      |\n| `hourtrack start <project>`                                                                                       | Project name                                                       | None    | Start tracking session for a project. If the project does not exist, it will be created.                                         |\n| `hourtrack stop <project\\|--all>`                                                                                 | Project name or `-a/--all` flag                                    | None    | Stop current session for a project, saving the time spent. With option to stop all projects                                      |\n| `hourtrack reset <project\\|--all>`                                                                                | Project name or `-a/--all` flag                                    | None    | Reset a project's data. With option to reset all projects                                                                        |\n| `hourtrack edit <project> <--rename <name>\\|--add-session <hours>\\|--delete-session <id\\|-1>\\|-g/--goal <hours>>` | One of `--rename`, `--add-session`, `--delete-session`, `-g/--goal` | None    | Renames a project, edits hour goal, adds a session or deletes a session                                                          |\n| `hourtrack delete <project\\|--all>`                                                                               | Project name or `-a/--all` flag                                    | None    | Delete a project and all its data. With option to delete all projects                                                            |\n| `hourtrack list <all\\|active> [-f <smart\\|full\\|short\\|hours>]`                                                   | None                                                               | format `smart` | List all/active projects.                                                                                                        |\n| `hourtrack info [<project>] [-f <smart\\|full\\|short\\|hours>] [-o <outputPath>]`                                   | None                                                               | format `smart` | Show the info of a specific project or show current active session if project is not specified. With option to output to a file. |\n\n# \ud83d\udcbb Development\n\n```bash\ngit clone https://github.com/P-ict0/HourTrack.git\ncd HourTrack\n\n# Note: You probably will need to remove the line from `utils/argument_parser.py`: from importlib.metadata import version\n# And also remove the `version` option from the parser (below in the file).\n\n# Run the script\npython src/hourtrack.py --help\n```\n\n# \ud83d\udc65 Contributing\n\nContributions are welcome! Please fork the repository and submit a pull request with your suggested changes.\n\n<!----------------------------------------------------------------------------->\n\n[Stars]: https://starchart.cc/P-ict0/HourTrack\n[DWS]: https://github.com/P-ict0/HourTrack\n\n[Pull Requests]: https://github.com/P-ict0/HourTrack/pulls\n[Issues]: https://github.com/P-ict0/HourTrack/issues\n[PyPiLink]: https://pypi.org/project/hourtrack/\n\n[License]: LICENSE\n\n<!----------------------------------{ Badges }--------------------------------->\n\n[Badge Workflow]: https://github.com/P-ict0/HourTrack/actions/workflows/release.yml/badge.svg\n\n[Badge Issues]: https://img.shields.io/github/issues/P-ict0/HourTrack\n[Badge Pull Requests]: https://img.shields.io/github/issues-pr/P-ict0/HourTrack\n[Badge Language]: https://img.shields.io/github/languages/top/P-ict0/HourTrack\n[Badge License]: https://img.shields.io/github/license/P-ict0/HourTrack\n[Badge Lines]: https://img.shields.io/tokei/lines/github/P-ict0/HourTrack\n",
    "bugtrack_url": null,
    "license": "MIT License\n        \n        Copyright (c) 2024 Rodrigo Mart\u00edn N\u00fa\u00f1ez\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE.\n        ",
    "summary": "Python program that tracks total time spent on projects and saves sessions. It supports multiple projects.",
    "version": "1.7.4",
    "project_urls": {
        "Bug Reports": "https://github.com/P-ict0/HourTrack/issues",
        "Homepage": "https://github.com/P-ict0/HourTrack.git"
    },
    "split_keywords": [
        "hourtrack",
        " time",
        " track",
        " projects",
        " sessions",
        " hours",
        " minutes",
        " seconds",
        " time tracking",
        " project tracking",
        " session tracking",
        " time management",
        " project management",
        " session management"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "05ecb77a4392a99a8145516ce11f1bac07707e145b4d6336195a9ab36d670607",
                "md5": "e6a4d1d90ae35818692b50a2f8ccf95b",
                "sha256": "4a1d77a6da8412e0baf1fcb4782eec62dc4988c5b477dd84f803080393872bc1"
            },
            "downloads": -1,
            "filename": "hourtrack-1.7.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e6a4d1d90ae35818692b50a2f8ccf95b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 15179,
            "upload_time": "2025-01-26T14:11:07",
            "upload_time_iso_8601": "2025-01-26T14:11:07.959532Z",
            "url": "https://files.pythonhosted.org/packages/05/ec/b77a4392a99a8145516ce11f1bac07707e145b4d6336195a9ab36d670607/hourtrack-1.7.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d890cbc4ecacf9896f23937ec9594bd4763a636c423949bbb93b2c265fc8e0a6",
                "md5": "cbd0b388ab9880f1b444fbca0417fee3",
                "sha256": "06b0b164e1cc553680971ca9979e992ca5b280a1ac285de508088adfdc6c627a"
            },
            "downloads": -1,
            "filename": "hourtrack-1.7.4.tar.gz",
            "has_sig": false,
            "md5_digest": "cbd0b388ab9880f1b444fbca0417fee3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 12906,
            "upload_time": "2025-01-26T14:11:09",
            "upload_time_iso_8601": "2025-01-26T14:11:09.317044Z",
            "url": "https://files.pythonhosted.org/packages/d8/90/cbc4ecacf9896f23937ec9594bd4763a636c423949bbb93b2c265fc8e0a6/hourtrack-1.7.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-26 14:11:09",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "P-ict0",
    "github_project": "HourTrack",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "hourtrack"
}
        
Elapsed time: 0.39743s