Skip to content

aulanchik/task-tracker-cli

Repository files navigation

Task Tracker CLI

Task Tracker CLI is a simple yet powerful command-line tool for managing your daily tasks. Built with Python, it allows you to add, update, delete, and track your to-dos directly from your terminal. All tasks are saved locally in a tasks.json file.

Features

  • Add Tasks: Quickly add new tasks with a description.
  • List Tasks: View all tasks, conveniently grouped by their status (To Do, In Progress, Done).
  • Filter Tasks: Display tasks filtered by a specific status: todo, in-progress, or done.
  • Update Tasks: Easily modify the description of an existing task.
  • Change Status: Progress tasks through your workflow by marking them as in-progress or done.
  • Delete Tasks: Remove tasks that are no longer needed.
  • View Details: Get detailed information for a specific task, including its ID, status, and timestamps.
  • Local JSON Storage: All tasks are persisted in a human-readable tasks.json file in the project's root directory.

Getting Started

Prerequisites

  • Python 3.8+
  • The uv package manager is recommended for running the run.sh script.

Installation & Running

  1. Clone the repository to your local machine:

    git clone https://github.com/aulanchik/task-tracker-cli.git
    cd task-tracker-cli
  2. Execute commands using the provided run.sh script. This script automatically handles the environment and runs the application.

    ./run.sh <command> [arguments]

    For example, to list all tasks:

    ./run.sh list

Usage

The CLI provides a set of commands to manage your tasks efficiently. You can see all available commands by running ./run.sh help.

Commands

Command Description
add <description> Adds a new task with the given description.
list [status] Lists all tasks. Optionally filter by todo, in-progress, or done.
get <id> Shows detailed information for a specific task by its ID.
update <id> <desc> Updates the description of an existing task.
delete <id> Deletes a task by its ID.
mark-in-progress <id> Marks a task as "in-progress".
mark-done <id> Marks a task as "done".
help Displays the help message with all commands and examples.

Examples

Here are some common usage examples:

# Add a new task (remember to use quotes for descriptions with spaces)
./run.sh add "Finalize the project report"

# List all tasks, grouped by status
./run.sh list

# List only the tasks that are done
./run.sh list done

# View details for the task with ID 1
./run.sh get 1

# Mark task 1 as in progress
./run.sh mark-in-progress 1

# Update the description for task 1
./run.sh update 1 "Finalize and submit the project report"

# Mark task 1 as completed
./run.sh mark-done 1

# Delete task 1
./run.sh delete 1

This application has been developed as Python 'Task Tracker' challenge issued by Roadmap.sh

About

Task Tracker CLI - Manage your tasks efficiently

Topics

Resources

Stars

Watchers

Forks