Skip to content

A lightweight and easy-to-use CLI for task management, allowing you to add, update, list, and track task progress directly from the terminal.

License

Notifications You must be signed in to change notification settings

oheyek/Task-Tracker-CLI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

23 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Task Tracker CLI

A sleek, lightweight command-line task management tool built with Python. Keep your productivity on track with simple commands and JSON-based storage.

✨ Features

  • Simple & Fast: Add, update, delete, and manage tasks with single commands
  • Status Tracking: Organize tasks with todo, in-progress, and done statuses
  • Timestamp Management: Automatic creation and update timestamps
  • Flexible Filtering: List tasks by status or view all at once
  • JSON Storage: Human-readable task storage in tasks.json
  • Error Handling: Robust input validation and helpful error messages

πŸ› οΈ Installation

Quick Setup

# Clone the repository
git clone https://github.com/oheyek/Task-Tracker-CLI.git
cd Task-Tracker-CLI

# Install dependencies
pip install -r requirements.txt

# Install as a CLI tool (optional)
pip install -e .

Using as Installed CLI

After installation, you can use task-cli directly:

task-cli add "Learn Python"

Using Python Script

Alternatively, run directly with Python:

python main.py add "Learn Python"

🎯 Usage

Adding Tasks

# Add a new task
task-cli add "Complete project documentation"
task-cli add "Review pull requests"

Listing Tasks

# List all tasks
task-cli list

# List tasks by status
task-cli list todo
task-cli list in-progress
task-cli list done

Updating Tasks

# Update task description
task-cli update 1 "Complete comprehensive project documentation"

Managing Task Status

# Mark task as in-progress
task-cli mark-in-progress 1

# Mark task as done
task-cli mark-done 1

# Mark task back to todo
task-cli mark-todo 1

Deleting Tasks

# Delete a task by ID
task-cli delete 1

πŸ“‹ Command Reference

Command Arguments Description Example
add <description> Add a new task task-cli add "Buy groceries"
list [status] List tasks (all, todo, in-progress, done) task-cli list done
update <id> <description> Update task description task-cli update 2 "New description"
delete <id> Delete a task task-cli delete 3
mark-todo <id> Mark task as todo task-cli mark-todo 1
mark-in-progress <id> Mark task as in-progress task-cli mark-in-progress 1
mark-done <id> Mark task as completed task-cli mark-done 1

πŸ“Š Task Structure

Each task is stored with the following structure:

{
    "id": 1,
    "description": "Complete project documentation",
    "status": "todo",
    "createdAt": "2025-01-15T10:30:00",
    "updatedAt": "2025-01-15T10:30:00"
}

Status Options

  • todo - Task is pending
  • in-progress - Task is currently being worked on
  • done - Task is completed

πŸ—‚οΈ File Structure

Task-Tracker-CLI/
β”œβ”€β”€ main.py           # Main application logic
β”œβ”€β”€ tasks.json        # Task storage (auto-generated)
β”œβ”€β”€ requirements.txt  # Python dependencies
β”œβ”€β”€ setup.py         # Package setup configuration
└── README.md        # This file

πŸ”§ Technical Details

  • Language: Python 3.8+
  • Storage: JSON file-based persistence
  • Dependencies: Standard library + datetime package
  • Error Handling: Comprehensive input validation
  • ID Management: Auto-incrementing task IDs

🚦 Error Handling

The CLI provides helpful error messages for common issues:

  • Invalid task IDs
  • Missing required arguments
  • Invalid status values
  • File operation errors

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ Examples

Typical Workflow

# Add some tasks
task-cli add "Set up development environment"
task-cli add "Write unit tests"
task-cli add "Deploy to production"

# Start working on first task
task-cli mark-in-progress 1

# Check progress
task-cli list in-progress

# Complete and move to next
task-cli mark-done 1
task-cli mark-in-progress 2

# View all completed tasks
task-cli list done

πŸ“„ License

This project is open source and available under the MIT License.


Happy Task Tracking! πŸŽ‰

Author

Made with ❀️ by ohey
Buy Me A Coffee


If you find this project useful, consider buying me a coffee!

https://roadmap.sh/projects/task-tracker

About

A lightweight and easy-to-use CLI for task management, allowing you to add, update, list, and track task progress directly from the terminal.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published

Languages