url: https://roadmap.sh/projects/task-tracker
This command line tool (CLI) allows you to manage your task list. You can add, search, display, count, update and delete tasks. The data is stored in the task_list.json file.
- Python 3.x
 - Python standard libraries (datetime, json, os)
 
- 
Copy the
task-cli.pyandutils.pyfiles to the same directory. - 
Make sure you have Python 3.x installed.
 
Run the task-cli.py script from the command line:
python task-cli.pyAfter launching, you will be offered a menu with available commands:
*** Task Manager ***
1) Add new task
2) Search and sort
3) Display all tasks
4) Count 'todo'
5) Count 'in-progress'
6) Count 'done'
7) Update the task
8) Delete the task or group
9) Quit
- Add new task:
 
- Requests the name, group, and description of the task.
 - Adds the task to the list.
 - Limitations: task name (30 characters), group (20 characters), description (50 characters).
 
- Search and sort:
 
- Requests the search criteria (id, name, description, group, status).
 - Displays the search results.
 
- Display all tasks:
 
- Displays all tasks in a table.
 - Allows you to filter and sort tasks within the table.
 
- filter: Filters tasks by id, name, group, status, date.
 - sort: Sorts tasks by id, name, group, status, date.
 - exit: Exit subcommands.
 
- Count 'todo':
 
- Counts the number of tasks with the "todo" status.
 
- Count 'in-progress':
 
- Counts the number of tasks with the "in-progress" status.
 
- Count 'done':
 
- Counts the number of tasks with the "done" status.
 
- Update the task:
 
- Requests the task ID to update.
 - Allows you to change the name, group, description, and status of the task.
 - Updates updatedAt when the status changes.
 
- Delete the task or group:
 
- Allows you to delete a task by ID or a group of tasks by group name.
 
- Quit:
 
- Exit the program.
 
The task_list.json file stores tasks in the following format:
{
"TaskList": [
{
"id": 1,
"name": "Write a report",
"group": "Work",
"description": "Prepare a monthly report",
"status": "todo",
"createdAt": "10/20/2023 10:00",
"updatedAt": null
},
{
"id": 2,
"name": "Call a client",
"group": "Work",
"description": "Specify project details",
"status": "in-progress",
"createdAt": "10/20/2023 11:00",
"updatedAt": "10/20/2023 12:00"
} ]
}
If the task_list.json file does not exist, it will be created automatically. When working with dates, the format is "DD/MM/YYYY HH:MM". The input length limits help maintain the readability of the table. Author redavoeigor
License
This README.txt provides a complete description of your project, including installation and usage instructions. You can add or modify sections to suit your needs.