Skip to content

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

 
 
 

Contributors

Languages