[ Pitch ] Seu To do List no terminal
Introdução:
O que começou com um simples projeto para treinar Node.js, se tornou minha ferramenta no dia a dia.
Um simples To Do list, aquele projeto que todos começam quando querem aprender uma área nova ou algo do tipo. Como eu queria mexer com Node.js a muito tempo, criei este aqui para treinar e estou tentanto refaze-lo com C++ com outra abordagem.
Com isto, terminei o do Node.js, e acabei curtindo muito o resultado e achei que seria interessante compartilhar pois pode te ajudar também. Meu primeiro projeto Node concreto!
O que tem de diferente dos outros To do List?
Bom, a ideia veio do roamap.sh
, onde o projeto com o nome task-tracker
me chamou atenção, dado que eu já tenho certa experiência com este tipo de projeto no front-end.
Porém, achei ele um tanto simples. Inicialmente o projeto era apenas adicionar
, deletar
, atualizar
, adicionar descrição
e adicionar status
.
Com isto em mente, e a minha raiva pelo o Microsoft ToDo List (muito bugado), resolvi adaptar as minhas necessidades aos poucos, tornando parecido com o que eu precisava no Microsft ToDo List, sem usar o app bugado deles.
Features:
O projeto conta com as seguintes features:
adicionar
;
deletar
;
alterar status
;
adicionar tipo
;
atualizar nome da tarefa
;
listar tarefas por status
;
adicionar data de conclusão
;
notificação
;
copia do arquivo principal no intuito de fazer um backup
;
criar listas
;
deletar listas
;
apagar todas as tarefas de uma lista
;
marcar todas as tarefas com um status específico
;
adicionar data de conclusão para todas as tarefas de uma lista
;
adicionar tipos a todas as tarefas de uma lista
;
help command para se guiar entre todos os comandos disponíveis
;
Explicações adicionais sobre o projeto:
Ele roda diretamente no terminal e tudo que você precisa saber para usa-lo está na documentação.
OBS: É necessário ter o node instalado
Sobre o terminal, eu recomendo baixar o que tem na microsoft store, se você está no Windows: terminal. Este terminal tem um suporte melhor a emojis, e justamente por isto que eu recomendo, pois como tudo é muito preto e branco, eu utilzei emotes de forma estratégica para sinalizar algumas informações no terminal.
Outro ponto é que o projeto é beseado no conceito de listas. Então, você pode criar uma lista de estudos
, casa
, escola
, trabalha
e adicionar a cada lista específica uma tarefa respectiva.
[
{
daily: [
{
"name": "",
"id": 4,
"status": "todo",
"createdAt": "[MM][DD][YYYY]",
"updateAt": "[MM][DD][YYYY]",
"type": "",
"finishAt": "",
"streak": 0
}
],
study: [],
entreteiment: [],
revision: [],
}
]
Este é o esqueleto do arquivo. Quando você tentar adicionar uma tarefa, um arquivo json
será criado no mesmo diretório que o script
do programa está, e será criado com quatro listas padrões, que estão acima. Você pode criar mais listas e pode até apagar estas listas padrões.
Como utilizar cada comando estará descrito na documentação (link mais abaixo).
OBS: Em primeira instância, quando você tentar adicionar um tarefa, você precisa criar a lista ou utilizar as padrões, pois se a lista não exisitir, irá disparar um erro.
Exemplo de como adicionar uma tarefa na lista study
para testar o programa:
node program.cjs study add "my task"
Conclusão:
Então é isso pessoal. Um projeto simples, mas que tem sido uma mão na roda para mim mesmo. Espero que ajude vocês de alguma forma. Por favor, leia a documentação caso tenha interesse. Lá tem todas as informações sobre cada comando e como executa-los, além de um arquivo bat
para facilitar no dia a dia.