Skip to main content

Python program that tracks total time spent on projects and saves sessions. It supports multiple projects.

Project description

⌛ HourTrack


Badge Workflow Badge License Badge Language Badge Pull Requests Badge Issues


Contents

📖 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

🚀 Quick start

pipx install hourtrack
hourtrack start myProject

✨ Features

  • Supports multiple projects: Track time for multiple projects.
  • 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

pipx install hourtrack

pipx is recommended, but you can use pip instead.

Optional installation alternative

git clone https://github.com/P-ict0/HourTrack.git
cd HourTrack
pipx install .  # You can also use `pip`

📲 Usage

Help!:

hourtrack --help

(Optional) Initialize a project:

Create a project to start tracking time. (This is not necessary, as the project will be created when you start tracking time for it.)

hourtrack init <project>

Start tracking:

Start tracking session for a project. If the project does not exist, it will be created.

hourtrack start <project>

Stop tracking:

Stop current session for a project, saving the time spent. With option to delete all projects.

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

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

Edit project:

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

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

hourtrack edit <project> --delete-session <id>  # Delete session by its id (use `info` 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.

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.

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.

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 <--rename |--add-session |--delete-session <id -1>>` One of --rename, --add-session, --delete-session None
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>] format smart None List all/active projects.
hourtrack info [<project>] [-f <smart|full|short|hours>] [-o <outputPath>] format smart None 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

git clone https://github.com/P-ict0/HourTrack.git
cd HourTrack
python -m venv venv
pip install -r requirements.txt
source venv/bin/activate # Windows: .\venv\Scripts\activate.ps1

# 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hourtrack-1.6.3.tar.gz (50.2 kB view details)

Uploaded Source

Built Distribution

hourtrack-1.6.3-py3-none-any.whl (37.6 kB view details)

Uploaded Python 3

File details

Details for the file hourtrack-1.6.3.tar.gz.

File metadata

  • Download URL: hourtrack-1.6.3.tar.gz
  • Upload date:
  • Size: 50.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for hourtrack-1.6.3.tar.gz
Algorithm Hash digest
SHA256 6308cc77eee016f79553d26e523a2f78f6e202196a885abe095c0a2c78d35729
MD5 2bcd72280f1df0129584b562d1613511
BLAKE2b-256 0e45b84699edc57f15fac6157f0dd149158201d2a4eb0c67345e6b70c098984b

See more details on using hashes here.

File details

Details for the file hourtrack-1.6.3-py3-none-any.whl.

File metadata

  • Download URL: hourtrack-1.6.3-py3-none-any.whl
  • Upload date:
  • Size: 37.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for hourtrack-1.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ee72ed4d0e1c6b7a269386654d508473238803c06522aacda5fa9156615bbe95
MD5 2182e8406c34413e072831d11975c409
BLAKE2b-256 4b9c10cac7840b9d6b6e2679904bbefc1892012b58206a255a1da1a53fbd56ac

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page