Skip to content

A robust, efficient, and easy-to-use command-line tool for managing your tasks. The Task Tracker CLI allows you to add, list, complete, and delete tasks while saving all your data in a JSON file for persistence.

License

Tum-404/task_tracker_cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Task Tracker CLI

A robust, efficient, and easy-to-use command-line tool for managing your tasks. The Task Tracker CLI allows you to add, list, complete, and delete tasks while saving all your data in a JSON file for persistence. This tool is perfect for keeping track of your daily to-dos and longer-term goals.

Sample solution for the task-tracker challenge from roadmap.sh.

Features

  • Add tasks: Easily create new tasks.
  • Update tasks: Easily update tasks.
  • List tasks: View all tasks, including their completion status.
  • Mark In-progress tasks: Mark tasks as in-progress.
  • Complete tasks: Mark tasks as done.
  • Delete tasks: Remove tasks from your list.
  • JSON persistence: All tasks are stored in a JSON file for persistent storage, meaning your tasks will remain saved even after you close the CLI. This makes it easy to retrieve and manage your tasks across different sessions.
  • Auto-Incrementing Task IDs: Each task is automatically assigned a unique, auto-incrementing ID upon creation, ensuring that each task has a distinct identifier without requiring user input.

Roadmap

To make this tool accessible to developers of varying backgrounds, we plan to implement the Task Tracker CLI in multiple languages:

By providing the tool in different languages, our aim is to help developers learn and compare different programming paradigms through practical experience.


Usage

Installation

  1. Clone the repository:

    bash

    Copy code

    git clone https://github.com/Tam643/task_tracker_cli.git
    cd task-tracker-cli
  2. Choose the language you want to work with. Currently, only Nodejs is supported, but more languages (Rust, Python, Java, C++) will be added soon.

  • For Nodejs:

    • Navigate to the nodejs folder.
    • Follow the instructions in the Nodejs README to build and run the Task Tracker CLI.
  • For other languages (coming soon):

    • Check back later or contribute to the roadmap for additional language support.
    • Each language folder will contain its own README.md with specific instructions.

Commands

  • Add a task:

    Add a new task to the tracker with a simple description.

    task-cli add "Buy groceries"
    #Task added successfully (ID: 1)
  • Update Task: Update description task

    task-cli update 1 "Buy groceries and cook dinner"
    #Task updated successfully (ID: 1)
  • Delete a task: Delete a task from the tracker by specifying its ID.

    task-cli delete 1
    #Task deleted successfully (ID: 1)
  • Mark in-progress: Mark in-progress task

     task-cli mark-in-progress 1
     #Task marked in progress successfully (ID: 1)
  • Mark done: Mark done task

     task-cli mark-done 1
     #Task marked done successfully (ID: 1)
  • List all tasks: List all tasks in the tracker.

    task-cli list
  • List done tasks: List all tasks in the tracker.

    task-cli list done
  • List todo tasks: List all tasks in the tracker.

    task-cli list todo
  • List in-progress tasks: List all tasks in the tracker.

    task-cli list in-progress

Vision

This project aims to go beyond being just a utility tool; it is also a learning project for new developers. Each language implementation will come with step-by-step tutorials, explaining:

  • How to build CLI applications from scratch.
  • How to test or debug my function
  • The basics of task management logic (CRUD operations).
  • How to work with file-based persistence using formats like JSON.
  • Writing efficient and clean code, following best practices in each language.

I aim to make each tutorial beginner-friendly, ensuring new developers feel comfortable experimenting with code, building out features, and gaining confidence in real-world projects.

Contributing

We welcome contributions from developers at all levels. If you'd like to contribute:

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

Support

Buy Me A Coffee

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

A robust, efficient, and easy-to-use command-line tool for managing your tasks. The Task Tracker CLI allows you to add, list, complete, and delete tasks while saving all your data in a JSON file for persistence.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published