Um gerenciador de tarefas em linha de comando (CLI) simples e eficiente desenvolvido em Python, com persistência de dados em formato JSON.
💡 Nota do Projeto: Este projeto foi desenvolvido para fins de estudo e prática, baseado na ideia e requisitos do desafio Task Tracker do roadmap.sh.
O Task Tracker permite gerenciar tarefas diretamente pelo terminal sem a necessidade de dependências externas. O objetivo principal do desafio foi praticar conceitos essenciais de programação como:
- Manipulação de arquivos no sistema de arquivos local (
tasks.json). - Leitura, escrita e serialização em formato JSON.
- Manipulação de argumentos de linha de comando (
sys.argv). - Manipulação de datas e horários em formato ISO (
datetime). - Lógica de CRUD (Criar, Ler, Atualizar e Deletar tarefas).
- ➕ Adicionar tarefa: Cria uma nova tarefa com status padrão
todo, identificador único (id) e data/hora de criação. - 📋 Listar tarefas:
- Listagem geral de todas as tarefas cadastradas.
- Filtragem por status específico (
todo,in-progress,done, etc.).
- ✏️ Atualizar descrição: Altera o texto descritivo de uma tarefa existente e atualiza a data/hora de modificação (
updatedAt). - 🔄 Atualizar status: Altera o status da tarefa (por exemplo:
in-progressoudone). - 🗑️ Excluir tarefa: Remove uma tarefa cadastrada a partir do seu identificador (
id). - 💾 Persistência local: Salva as alterações automaticamente no arquivo
tasks.json.
- Python 3.x instalado na sua máquina. Não é necessária a instalação de nenhuma biblioteca externa (utiliza apenas módulos da biblioteca padrão do Python:
json,os,sys,datetime).
git clone https://github.com/euopedror/Task_Tracker.git
cd Task_Trackerpython task-cli.py add "Estudar Python"Saída:
Tarefa 1 criada em 2026-09-25T16:00:00.000000
Listar todas as tarefas:
python task-cli.py listListar tarefas filtrando por status (todo, in-progress, done):
python task-cli.py list todo
python task-cli.py list in-progress
python task-cli.py list doneInforme o ID da tarefa e a nova descrição:
python task-cli.py update 1 "Estudar Python e Estrutura de Dados"Saída:
Tarefa 1 atualizada com sucesso!
Informe o ID da tarefa e o novo status:
python task-cli.py updatestatus 1 in-progressou para marcar como concluída:
python task-cli.py updatestatus 1 doneSaída:
Tarefa 1 alterada com sucesso!
Informe o ID da tarefa a ser removida:
python task-cli.py delete 1Saída:
Tarefa 1 deletada com sucesso!
Cada tarefa é armazenada em formato JSON com as seguintes propriedades:
[
{
"id": 1,
"description": "Estudar Python",
"status": "todo",
"createdAt": "2026-09-25T16:00:00.000000",
"updatedAt": "2026-09-25T16:00:00.000000"
}
]id: Identificador numérico único da tarefa.description: Descrição textual da tarefa.status: Status atual (todo,in-progress,done).createdAt: Data e hora em que a tarefa foi criada (padrão ISO 8601).updatedAt: Data e hora da última modificação da tarefa.
- Desafio original: roadmap.sh - Task Tracker