GYSTBudget - um gerenciador pessoal de finanças em linha de comando (por enquanto)

GYSTBudget - Get Your Shit Together Budget

https://github.com/DiegoAscanio/GYSTBudget

No fim de 2022 e começo de 2023 me excedi muito nos gastos. Não controlei as despesas e quase me ferrei em termos financeiros.

Apesar de já usar um gerenciador de finanças (mobills) suas funções de integração automática aos apps dos bancos me fizeram perder o controle do que eu realmente estava gastando. A cada gasto com o cartão, a notificação do mobills era mais uma dentre outras quatrocentos e setenta e treze oriundas do whatsapp, instagram, twitter e outros apps. Por isso, fiquei às escuras com meus gastos.

Assim, concentrei todos os esforços em arrumar minha bagunça financeira (to get my shit together, lol) e a melhor forma de realizar isto foi me concentrar totalmente em arrumar minha bagunça financeira.

Para mim, isso só foi possível com a anotação manual de cada despesa, pois, a cada gasto com o cartão, eu tive plena ciência sobre o que estava gastando.

Por isso criei o GYSTBudget (Get Your Shit Together Budget) um simples aplicativo de linha de comando Python (por enquanto) para cadastrar transações, origens e categorias, excluir estas entidades e exportar estes dados em formato csv, para ter ciência a cada momento de tudo que eu tinha gasto ou recebido.

Já estou usando a ferramenta e tem me ajudado muito. Pretendo adicionar mais funcionalidades (como filtros de transações por data, valores, categorias e origens) e disponibilizar o aplicativo em múltiplas plataformas: linha de comando (atual), como aplicação web (backend através da fast API do python e frontend em react ou vue) e como um bot de telegram / whatsapp (se for viável).

O uso da aplicação é bem simples. Se eu quiser adicionar uma transação de 43.00 de uma pizza que eu comprei no dia 19/02/2023, por exemplo, basta executar o seguinte comando:

python gystbudget.py add transaction -d 2023-02-19 -c alimentacao "Pizza" 43.00

se a categoria desejada não existir ele vai me perguntar se eu desejo criá-la ou não.

Para excluir a transação basta executar:

python gystbudget.py delete transaction "Pizza"

Se houverem duas ou mais transações com o mesmo nome o aplicativo mostrará cada uma das transações e perguntar em um prompt se é para deletar (ou não) a transação.

Para exportar as transações como csv basta executar:

python gystbudget.py export transactions-as-csv [CSV_FILE]

Onde [CSV_FILE] é um argumento opcional para o nome do arquivo csv de exportação.

A ferramenta está em um estágio incipente, mas, minimamente viável. Foi construída utilizando sqlmodel para ORM dos dados e typer para construir a interface de linha de comando.

Todos são muito bem vindos para contribuir e aprendermos juntos conceitos de python e fundamentos das aplicações web.

Toda contribuição é muito bem vinda: no desenvolvimento, nas críticas, nas susgestões e eventuais elogios. Se puderem, peço que deem um star no repositório https://github.com/DiegoAscanio/GYSTBudget. Agradeço muito a cada um de vocês!

Excelente ferramenta! Já deixei uma estrela no repositório do GitHub. Gostei da maneira que organizou, com certeza vou me inspirar futuramente!

E uma dúvida, disse que o projeto é em Python "por enquanto", pretende refazer com outra linguagem ou algo parecido?

Interessante, mas nada viavel, eu nunca consegui usar apps de finanças por mais bonitos e bem organizados que fossem suas interfaces, e rápidas e fácieis de manipular, imagina controlar finanças por linha de comando. Mas parabéns pelo projeto.

Rapaz, muito interessante.. parabéns pelo projeto, simples e Prático!

Muito obrigado Ueverson!