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!