{"id":20457733,"url":"https://github.com/Muriyoku/task-tracker-cli","last_synced_at":"2025-09-24T19:31:57.917Z","repository":{"id":255657323,"uuid":"850031866","full_name":"Zafkiel45/task-tracker-cli","owner":"Zafkiel45","description":"A simple task tracker made with node.js","archived":false,"fork":false,"pushed_at":"2024-09-23T18:46:45.000Z","size":42,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-15T12:08:47.011Z","etag":null,"topics":["backend","javascript","junior","junior-developer","node"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Zafkiel45.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-30T18:29:56.000Z","updated_at":"2024-09-29T01:55:41.000Z","dependencies_parsed_at":"2024-09-06T15:43:21.419Z","dependency_job_id":"0cb19ab3-3616-4a09-95bb-08647efff155","html_url":"https://github.com/Zafkiel45/task-tracker-cli","commit_stats":null,"previous_names":["zafkiel45/task-tracker-cli"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zafkiel45%2Ftask-tracker-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zafkiel45%2Ftask-tracker-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zafkiel45%2Ftask-tracker-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zafkiel45%2Ftask-tracker-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Zafkiel45","download_url":"https://codeload.github.com/Zafkiel45/task-tracker-cli/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234120021,"owners_count":18782763,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backend","javascript","junior","junior-developer","node"],"created_at":"2024-11-15T12:08:55.236Z","updated_at":"2025-09-24T19:31:57.909Z","avatar_url":"https://github.com/Zafkiel45.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# About\r\nBack-end project of [roadmap.sh](https://roadmap.sh/projects/task-tracker) made with Node.js. \r\n\r\n# How to use?\r\n\r\nClone o projeto com o seguinte comando: `git clone https://github.com/Zafkiel45/summer-2024.git` ou baixe os arquivos e execute ele em seu terminal.\r\n\r\nPara executar o **script**, digite em seu terminal`node program.cjs [comandos]`. Caso queira algo mais \"light\" menos argumentativo, você pode adicionar em suas variáveis de ambiente no seu sistema operacional o arquivo `.bath` para uma maior facilidade. \r\n\r\nO arquivo `.bath` é completamente opcional, e apenas uma feature extra. Todo o **script** dele esta na raiz do repositório e pode ser analisado por qualquer um. Além disso, nada impede de você altera-lo e simplesmente criar o seu próprio da forma que quiser. \r\n\r\nAs tarefas são organizadas em listas, sendo 4 delas padrões (já vem por padrão, mas você pode deleta-las). \r\n\r\n```json\r\n[\r\n  {\r\n    \"daily\": [\r\n      {\r\n        \"name\": \"\",\r\n        \"id\": 4,\r\n        \"status\": \"todo\",\r\n        \"createdAt\": \"[MM][DD][YYYY]\",\r\n        \"updateAt\": \"[MM][DD][YYYY]\",\r\n        \"type\": \"\",\r\n        \"finishAt\": \"\",\r\n        \"streak\": 0\r\n      }\r\n    ],\r\n    \"study\": [],\r\n    \"entretainment\": [],\r\n    \"revision\": [],\r\n  }\r\n]\r\n```\r\nPor padrão, ao executar o **script**, criará um arquivo `.json` no mesmo local que o `program.cjs` e também uma pasta com um arquivo `backup` que falarei mais sobre no final desta documentação. \r\n\r\nA estrutura para adicionar e realizar outras operações, em geral, é esta, mas com algumas nuances entre os comandos. Explicarei cada comando em detalhes logo abaixo.\r\n\r\n```bash\r\ntask daily add \"my daily task\"\r\n```\r\n\r\n# features: \r\n\r\nComo qualquer projeto do mesmo ramo, você pode **adicionar**, **deletar**, **atualizar** e tudo mais. Alguns comandos ainda estão sendo aperfeiçoados.  O projeto tenta cobrir todas as eventuais necessidades de ações. Se você apenas quiser fazer coisas simples, como adicionar e apagar tarefas, é possível. Se quiser editar, atualizar, determinar uma data de conclusão e outras coisas, também é possível.\r\n\r\nVale salientar que os comandos apenas afetam a lista específicada, então não precisa se preocupar sobre as outras tarefas. Se algum comando alterar além de seus limites, será explicitamente avisado.\r\n\r\n## add comando:\r\n\r\n```cmd\r\nnode program.cjs daily add name-of-task \r\n```\r\nexemplo com dados reais:\r\n\r\n```cmd\r\nnode program.cjs study add drink-water\r\n```\r\nAs aspas são opcionais, mas é a única forma de nomear tarefas com espaço sem resultar em comportamentos inesperados:\r\n\r\n```cmd\r\nnode program.cjs daily add 'Drink water'\r\n```\r\nSe algum erro ocorrer, o programa alertará no console. A estrutura desse comando é simples, você precisa específicar qual é a lista de tarefa, neste caso `study`. Logo em seguida determinar qual comando, neste caso `add` e o nome da tarefa, neste caso `Drink Water`.\r\n\r\n## Update comando:\r\n\r\nIsto atualizará o nome de uma task na lista que você determinar. \r\n\r\n```cmd\r\nnode program.cjs entretenment update 1 'my-new-name'\r\n```\r\nSe algum erro ocorrer, o programa alertará no console. A estrutura desse comando é simples, você precisa específicar qual é a lista de tarefa, neste caso `entretenment`. Logo em seguida determinar qual comando, neste caso `update` , o ID da tarefa que neste caso é `1`, o novo nome da tarefa `my-new-name`.\r\n\r\n## delete-task comando\r\n\r\nestrutura semelhante com a do `update`, mas com uma pequena diferença e papel. O delete delete uma tarefa específica determina pelo o `ID`. O `ID`da tarefa nunca é o mesmo, então não precisa se preocupar em conflitos. No momento não existe uma \"lixeira\", mas estou analisando a possibilidade.\r\n\r\n```cmd\r\nnode program.cjs revision delete-task 5\r\n```\r\nSe algum erro ocorrer, o programa alertará no console. Você precisa específicar qual é a lista de tarefa, neste caso `revision`. Logo em seguida determinar qual comando, neste caso `delete-task` , o ID da tarefa que neste caso é `5`. \r\n\r\n## List comando:\r\n\r\nPara listar todas as tarefas de uma lista específica, digite `list`, isto mostrará uma tabela com todas as informações atuais da tarefas. Além disso, esta é a única forma de visualiza-las para se orientar, como por exemplo, para se lembrar do `ID` específico da tarefa, é necessário lista-las antes.\r\n\r\n```cmd\r\nnode program.cjs daily list\r\n```\r\nSe algum erro ocorrer, o programa alertará no console. Você precisa específicar qual é a lista de tarefa, neste caso `daily`. Logo em seguida determinar qual comando, neste caso `list`.\r\n\r\nPara listar tarefas com um `status` específico, como `todo`, `done` e `in-progress`, basta adiciona-las logo em seguinta, como nos exemplos abaixo.\r\n\r\nExemplos: \r\n```cmd\r\nnode program.cjs study list done\r\n```\r\nAcima listará todas as tarefas com o status `done`.\r\n\r\n```cmd\r\nnode program.cjs study list in-progress\r\n```\r\nAcima listará todas as tarefas com o status `in-progress`.\r\n\r\n```cmd\r\nnode program.cjs study list todo\r\n```\r\nAcima listará todas as tarefas com o status `todo`.\r\n\r\n## mark-status:\r\n\r\nUsado para atualizar o `status` específico da tarefa. A estrutura é bem simples, `mark-` seguido com o `status` e o `ID` da tarefa, como mostrado abaixo.\r\n\r\n```cmd\r\nnode program.cjs entreteinment mark-done 1\r\n```\r\nIsto mudará o status atual para `done` da tarefa com `ID=1` em `entreteinment`.\r\n```cmd\r\nnode program.cjs entertaimnent mark-in-progress 10\r\n```\r\nIsto mudará o status atual para `in-progress` da tarefa com `ID=10` em `entreteinment`.\r\n```cmd\r\nnode program.cjs entertaimnent mark-todo 6\r\n```\r\nIsto mudará o status atual para `todo` da tarefa com `ID=6` em `entreteinment`.\r\n\r\n## delete-all comando:\r\n\r\nIsto excluíra todas as tarefas de uma determina lista. NÃO APAGARÁ NADA ALÉM DAS TAREFAS DA LISTA ESPECÍFICADO.\r\n\r\n```bash\r\nnode program.cjs study delete-all \r\n```\r\nIsto apagará todas as tarefas de `study`.\r\n\r\n## mark-all-status comando:\r\n\r\nMarca todas as tarefas de uma lista como: `done`, `todo` ou `in-progress` \r\n\r\n```bash\r\nnode program.cjs entertainment mark-all-done \r\n```\r\nMarcará todas as tarefas como `done` em `entertainment`.\r\n\r\n```bash\r\nnode program.cjs entertainment mark-all-todo \r\n```\r\nMarcará todas as tarefas como `todo` em `entertainment`.\r\n```bash\r\nnode program.cjs entertainment mark-all-in-progress\r\n```\r\nMarcará todas as tarefas como `in-progress` em `entertainment`.\r\n\r\n## type comando:\r\n\r\nMuda o tipo de uma tarefa específica para a `string` passada. Muito útil para organizar tarefas e classifca-las. No exemplo abaixo, eu classifquei uma tarefa como `node`. \r\n\r\n```bash\r\nnode program.cjs study type 5 \"node\"\r\n```\r\nMudará a tarefa de `study` com o `id=5` para `node`.\r\n\r\n## data-conclusion comando:\r\n\r\nIsto adicionará ou mudará a data de conclusão de uma tarefa, meramente ilustrativa no momento, apenas para o usuário ter uma noção sobre quando realiza-la. Não irá mostrar nenhuma notificação no momento e nem nada do tipo (até agora).\r\n\r\nA data é formatada para o modelo americano, então tem que ter a seguinte formatação: [MM][DD][YYYY]\r\n\r\n```bash\r\nnode program.cjs study data-conclusion 2 \"02/12/2024\"\r\n```\r\nAltera a data de conlusão da tarefa de `study` com o `id=2` para `02/12/2024`- dia 12 de fevereiro de 2024\r\n\r\n# configuration-task-field: \r\n\r\nEste comando é um comando especial pois tem uma estrutura um tanto diferente dos outros comandos. Este comando tem como principal utilidade alterar a estrutura de suas tarefas, adicionando mais listas ou removendo. Considere os seguintes exemplos: \r\n\r\n```cmd\r\ntask configurate-task-field add-field\r\n```\r\nAo apertar `enter` em seu teclado, você precisará passa o nome da nova lista formatado em `camelCase` para criar uma nova lista. \r\n\r\n```cmd\r\nnode program.cjs configurate-task-field delete-field\r\n```\r\nAo apertar `enter` em seu teclado, você precisará passa o nome da nova lista formatado em `camelCase` para deletar um campo. \r\n\r\nOBS: Não é possível deletar todos os campos, ao menos 1 restará e se você tentar apagar o último item, lançará um erro. Isto é intencional para preservar a estutura do arquivo `.json`.\r\n\r\n# date-conclusion-all \r\n\r\nFaz o mesmo que o `date-conclusion`, mas para todas as tarefas de uma lista. \r\n\r\n```cmd \r\nnode program.cjs study date-conclusion-all \"05/02/2024\"\r\n```\r\nEste também segue o padrão americano, sendo [MM][DD][YYYY]\r\n\r\n# type-all \r\n\r\nFaz o mesmo que o `type`, mas para todas as tarefas de uma lista. \r\n\r\n```cmd \r\nnode program.cjs study type-all 'node'\r\n```\r\n# help \r\n\r\nListará todos os comandos existentes no programa atualmente, com breve descrições. No momento somente esta documentação é uma forma completa de se orientar caso necessário. \r\n\r\n```cmd \r\nnode program.cjs help all\r\n```\r\n# backup \r\n\r\nNas versões mais recentes \u003e v1.2 o backup não é mais realizado automaticamente devido a erros. Antigamente, se você apagasse sem querer uma lista, automaticamente um backup da lista apagada seria feito, perdendo seu significado. \r\n\r\nAgora há um comando manual exclusivo para ele, que, uma vez executado, irá fazer uma cópia de seu `tasks.json` para a pasta `backup` dentro do mesmo diretório, com o nome de `backup.json`.\r\n\r\nÉ importante resaltar que, se por ventura você apagar o `tasks.json` e quiser recupera-la ao susbtitituir os arquivos perdidos pelo backup, é necessário que você mova o arquivo de `backup.json` para o mesmo diretório de `program.cjs` e susbtitua o nome para `tasks.json`.\r\n\r\n```cmd \r\nnode program.cjs backup run\r\n```\r\nirá realizar o backup.\r\n\r\n# notifação \r\n\r\nAs notificação chegam nas versões \u003e v1.2 e tem como intuito facilitar a procura pela as tarefas que precisa realizar hoje. \r\n\r\nUma vez que você digite o comando abaixo, será filtrado todas as tarefas que tem `finishAt` marcado para a data atual e armazenado dentro de um `array` separado. \r\n\r\nConsule `data-conclusion comando` aqui na documentação para ter um maior entendimento.\r\n\r\n```cmd \r\nnode program.cjs notification show\r\n```\r\n\r\n# bath file:\r\n\r\nCom o `.bath` file, você consegue encurtar a forma que o **script** é chamado, assim aprimorando a experiência. Se você optar por adicionr o `task.bat` a suas variavéis de ambiente em seu sistema operacional, ao invés de invoca-lo como: `node program.cjs [comandos]`, será como da forma abaixo. \r\n\r\n```bash\r\ntask study add \"new task\"\r\n```\r\nisto permite que você oculte a parte: `node program.cjs` e se concentre apenas nos comandos. \r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMuriyoku%2Ftask-tracker-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMuriyoku%2Ftask-tracker-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMuriyoku%2Ftask-tracker-cli/lists"}