npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

krdm

v1.0.30

Published

Registro de Manutenções

Downloads

88

Readme

Registro de Manutenções (RDM)

Visão Geral

O Registro de Manutenções (RDM) é uma CLI (Command-Line Interface) desenvolvida para ajudar proprietários de veículos a gerenciarem e acompanharem as manutenções de seus carros de forma eficiente. Com comandos intuitivos, você pode adicionar, listar, remover manutenções, definir a quilometragem atual do veículo, verificar se alguma manutenção está vencida e muito mais.

Além disso, o RDM oferece uma Interface Web desenvolvida com jQuery e Bootstrap, proporcionando uma experiência mais amigável e visual para quem prefere interações gráficas.

Funcionalidades

  • Adicionar Manutenções: Registre detalhes sobre cada manutenção realizada.
  • Listar Manutenções: Visualize todas as manutenções registradas.
  • Remover Manutenções: Exclua manutenções indesejadas pelo índice.
  • Definir Quilometragem Atual: Atualize a quilometragem atual do veículo.
  • Verificar Manutenções Vencidas: Receba alertas sobre manutenções que ultrapassaram os intervalos recomendados.
  • Calcular Gasto Total: Veja o total gasto em manutenções.
  • Sincronizar Banco de Dados: Faça backup do seu registro de manutenções em um local externo.
  • Tempo Desde a Última Manutenção: Saiba quanto tempo se passou desde a última manutenção registrada.
  • Estimativa de Próxima Manutenção: Obtenha uma previsão de quando a próxima manutenção será necessária.
  • Interface Web com jQuery e Bootstrap: Gerencie suas manutenções através de uma interface amigável e responsiva no navegador.

Instalação

Certifique-se de ter o Node.js instalado em sua máquina.

[sudo] pnpm install -g krdm

Uso

Comandos Disponíveis

1. Adicionar uma Manutenção

Registre uma nova manutenção com detalhes como descrição, data, custo, tipo e quilometragem.

rdm add --descricao "Troca de óleo semissintético" --data "2024-12-28" --custo 150 --tipo "troca_oleo" --km 45000

Opções:

  • --descricao ou -d (Obrigatório): Descrição da manutenção.
  • --data ou -D (Obrigatório): Data da manutenção (YYYY-MM-DD).
  • --custo ou -c (Opcional): Custo da manutenção (default: 0).
  • --tipo ou -t (Opcional): Tipo da manutenção (ex.: troca_oleo, alinhamento).
  • --km ou -k (Opcional): Quilometragem no momento da manutenção (default: quilometragem atual do carro).

2. Listar Todas as Manutenções

Visualize todas as manutenções registradas.

rdm list

Saída Exemplo:

1. Descrição: Troca de óleo semissintético
   Data: 2024-12-28
   Custo: R$ 150
   Tipo: troca_oleo
   Quilometragem: 45000 km

3. Remover uma Manutenção

Exclua uma manutenção pelo índice.

rdm remove --indice 1

Opções:

  • --indice ou -i (Obrigatório): Índice da manutenção a ser removida.

4. Definir Quilometragem Atual

Atualize a quilometragem atual do seu carro.

rdm set-odometer --km 48000

Opções:

  • --km (Obrigatório): Valor atual do hodômetro.

5. Verificar Manutenções Vencidas

Receba alertas sobre manutenções que já ultrapassaram os intervalos recomendados.

rdm check-schedule

Descrição:

Este comando verifica cada tipo de manutenção registrada e compara a quilometragem atual com a última quilometragem registrada para determinar se a manutenção está vencida com base nos intervalos definidos.

Exemplo de Saída:

ALERTA: Manutenção "troca_oleo" está vencida! Última foi em 2024-12-28 (km 45000). Já se passaram 6000 km (intervalo recomendado: 5000 km).

6. Calcular Gasto Total em Manutenções

Veja o total gasto em todas as manutenções registradas.

rdm total

Saída Exemplo:

Gasto total: R$ 150

7. Sincronizar Banco de Dados

Faça backup do seu banco de dados de manutenções para um local externo.

rdm sync --destino "E:\backup\car-maintenance.json"

Opções:

  • --destino ou -d (Obrigatório): Caminho de destino para o backup.

8. Tempo Desde a Última Manutenção

Saiba quantos dias se passaram desde a última manutenção registrada.

rdm elapsed

Exemplo de Saída:

A última manutenção foi há 34 dias.

9. Iniciar a Interface Web

Inicie o servidor web para gerenciar as manutenções através de uma interface amigável e responsiva no navegador.

rdm ui [port]

Descrição:

Inicia o servidor web na porta especificada (padrão: 3000). Acesse a interface em http://localhost:3000.

Exemplo:

rdm ui 4000

Acessando http://localhost:4000 no navegador, você verá a interface web para gerenciar suas manutenções de forma mais visual e organizada.

10. Estimativa de Próxima Manutenção

Obtenha uma previsão de quando a próxima manutenção será necessária para um tipo específico.

rdm estimate --tipo "troca_oleo"

Opções:

  • --tipo ou -t (Obrigatório): Tipo da manutenção para a qual deseja a estimativa (ex.: troca_oleo).

Exemplo de Saída:

Estimativa para a próxima manutenção de "troca_oleo":
- Quilometragem: 50000 km
- Data: 2025-06-28

Opção Avançada: Especificar Banco de Dados

Por padrão, o RDM utiliza o arquivo car-maintenance.json localizado no diretório home do usuário. Para usar um arquivo de banco de dados diferente (útil para testes ou configurações personalizadas), utilize a opção --db.

rdm add --descricao "Troca de filtro de ar" --data "2025-01-15" --custo 80 --tipo "filtro_ar" --km 50000 --db "/path/to/custom-db.json"

Interface Web com jQuery e Bootstrap

A interface web permite gerenciar suas manutenções de forma visual e interativa. Ela foi desenvolvida utilizando jQuery e Bootstrap, oferecendo todas as funcionalidades disponíveis na CLI com uma experiência mais amigável e responsiva.

Funcionalidades Disponíveis na Interface Web

  • Adicionar Manutenção: Formulário para adicionar novas manutenções.
  • Listar Manutenções: Lista todas as manutenções registradas com opção de remoção.
  • Calcular Gasto Total: Exibe o gasto total em manutenções.
  • Definir Quilometragem Atual: Atualiza a quilometragem atual do carro.
  • Verificar Manutenções Vencidas: Exibe alertas sobre manutenções vencidas.
  • Tempo Desde a Última Manutenção: Mostra quantos dias se passaram desde a última manutenção.
  • Sincronizar Banco de Dados: Permite sincronizar o banco de dados para um destino externo.
  • Estimativa de Próxima Manutenção: Obtém a previsão da próxima manutenção para um tipo específico.

Acessando a Interface Web

Após iniciar o servidor web com o comando rdm ui, acesse http://localhost:3000 (ou a porta especificada) no seu navegador.

Estrutura dos Arquivos da Interface Web

  • public/index.html: Estrutura da interface web aprimorada com Bootstrap.
  • public/style.css: Estilos personalizados adicionais para a interface.
  • public/script.js: Lógica do frontend usando jQuery para interagir com a API REST.

Exemplo de Uso

  1. Adicionar uma Manutenção:

    • Preencha o formulário na seção "Adicionar Manutenção" e clique em "Adicionar".
    • A manutenção será adicionada e exibida na lista abaixo.
  2. Listar Manutenções:

    • Clique em "Atualizar Lista" para garantir que todas as manutenções estejam listadas.
  3. Remover uma Manutenção:

    • Clique no botão "Remover" ao lado da manutenção que deseja excluir.
  4. Definir Quilometragem Atual:

    • Preencha o campo na seção "Definir Quilometragem Atual" e clique em "Atualizar".
  5. Verificar Manutenções Vencidas:

    • Clique em "Verificar" na seção correspondente para receber alertas sobre manutenções vencidas.
  6. Calcular Gasto Total:

    • Clique em "Atualizar Total" para ver o gasto total em manutenções.
  7. Sincronizar Banco de Dados:

    • Preencha o campo de destino na seção "Sincronizar Banco de Dados" e clique em "Sincronizar".
  8. Estimativa de Próxima Manutenção:

    • Preencha o tipo de manutenção na seção "Estimativa de Próxima Manutenção" e clique em "Obter Estimativa".
    • A estimativa será exibida abaixo do formulário.

Testes

O projeto inclui uma suite de testes automatizados para garantir o correto funcionamento da CLI e da API. Os testes utilizam um banco de dados separado para evitar interferências com os dados reais.

Executando os Testes

  1. Certifique-se de ter todas as dependências instaladas:

    pnpm install
  2. Execute os testes:

    pnpm test

Estrutura dos Testes

  • Banco de Dados Independente: Os testes utilizam um arquivo temporário (test-car-maintenance.json) localizado no diretório temporário do sistema para garantir que os dados de teste não afetem o banco de dados principal.
  • Cobertura de Comandos: Os testes abrangem todos os comandos principais (add, list, remove, set-odometer, check-schedule, total, sync, elapsed, estimate, ui) para garantir que funcionem conforme esperado.
  • Ciclos de Criação e Destruição: Antes de cada suite de testes, o arquivo de banco de dados de teste é removido para garantir um ambiente limpo.

Contribuindo

Contribuições são bem-vindas! Sinta-se à vontade para:

  1. Abrir Issues para relatar problemas ou sugerir novas funcionalidades.
  2. Enviar Pull Requests com melhorias no código, documentação ou testes.

Guia de Contribuição

  1. Fork o Repositório

  2. Crie uma Branch para sua Feature ou Correção

    git checkout -b minha-nova-feature
  3. Comite suas Alterações

    git commit -m "Descrição da minha feature"
  4. Faça Push para a Branch

    git push origin minha-nova-feature
  5. Abra um Pull Request

Licença

Este projeto está licenciado sob a ICS License. Isso significa que você pode usar, modificar e distribuir à vontade, desde que mantenha o arquivo de licença.

CHANGELOG

Este é o CHANGELOG caso queira acompanhar!


Aproveite para manter seu carro sempre em dia e economizar planejando suas manutenções com o RDM! Se tiver dúvidas ou sugestões, sinta-se à vontade para abrir uma issue ou nos contatar. Boas manutenções!

Contato

  • Email: kaeyosthaeron@gmail.com
  • GitHub: ktfth