myMoneyLog
myMoneyLog é um “aplicativo” para controle de finanças pessoais gratuito, open source, multiplataforma, pequeno, portátil, e que depende apenas de seu navegador para funcionar.
Utiliza um arquivo simples de html para armazenar seus lançamentos, não dependendo de servidor de banco de dados, internet ou serviços de terceiros. Você pode descompactá-lo em um pen-drive e utilizar em qualquer lugar (consulte seus requisitos). Somente tenha em mente que o myMoneyLog não é um aplicativo para ser utilizado em um servidor pois as operações de gravação de arquivo somente funcionam em arquivos locais.
Sua origem veio através do brilhante Aurélio Marinho Jargas que criou a pequena gema chamado MoneyLog Experience, achei a idéia excelente e seus conceitos deram o pontapé inicial para criar uma versão que fosse totalmente funcional através do navegador (a versão original apenas permite a visualização dos dados e a edição deve ser realizada por um editor de texto).
Funcionalidades
- entrada de dados simplificado:
- campos descrição, categoria e conta com função auto-completar
- lançamentos recursivos
- lançamentos reconciliáveis
- lançamentos duplos para transferência (débito e crédito)
- suporte a múltiplas categorias (tags)
- suporte a múltiplas contas com fácil visualização dos saldos
- sumário das despesas mensais por categoria com gráfico
- histórico do saldo das contas com gráfico
- editor de texto simples para a fonte de dados
- paginação dos lançamentos
- idiomas: português (pt-br) e inglês (en-us)
Requisitos
- suporte a Javascript ativado
- Navegadores
- Firefox 2 a 3
- Internet Explorer 7 a 8
- Opera 9*
- Safari 3*
- Plataformas suportadas: windows, linux e mac.
*Safari e Opera: é necessário possuir o Java runtime instalado.
Experimente
Acesse a página de demonstração, insira, apague, edite os lançamentos, fique a vontade, ao final basta recarregar a página para voltar ao estado inicial.
Download
Versão 1.216 – 22 de janeiro 2010:
mymoneylog_1.216.zip
*histórico ao final da página.
Uso
Descompacte o arquivo em um diretório e abra o arquivo “mymoneylog.html” pelo seu navegador.
Para atualizar uma versão, apenas descompacte sobre a versão anterior, como não existe o arquivo de dados “data.html” na instalação, não há perigo de sobrescrever seus dados. Mas lembre-se sempre de realizar um backup.
Se não houver um arquivo anterior de “data.html” no diretório do mymoneylog, os dados de contas e categorias serão inicializados com valores padrões.
Novas categorias e contas serão adicionadas a partir de um lançamento inserido. Assim como para removê-los, basta remover o(s) lançamento(s) associado(s) a ele(s).
Você também pode inserir múltiplas categorias (tags) em um único lançamento, basta separá-los com “; ” (ponto e vírgula + espaço). Exemplo: “mercado; moradia”
Habilitar suporte à escrita pelo javascript
Para salvar seus lançamentos no arquivo “data.html” será necessário habilitar o suporte à escrita de arquivo pelo javascript.
No Internet Explorer é necessário habilitar o acesso pelo ActiveX
No Firefox pela caixa de diálogo “Segurança na internet”.
No Opera e Safari será necessário possuir o Java runtime instalado e liberar permissão para o applet “DataWriter”.
Dúvidas
Internet Explorer 7 mostra um aviso de erro ao abrir a página do myMoneyLog:
causa: você pode estar utilizando um idioma não suportada pelo myMoneyLog (arquivo de tradução não encontrado).
solução: desabilite as mensagens de erros desmarcando a opção “Sempre exibir esta mensagem quando uma página contiver erros.”
Consulte também a ajuda do myMoneyLog sobre sua utilização.
Informações adicionais
Este projeto é open source e utiliza várias bibliotecas e arquivos disponíveis gratuitamente via internet, se necessitar usá-las, apenas siga suas respectivas licenças.
A licença adotada para os códigos específicos do myMoneyLog é a mesma do MoneyLog original, BSD License.
Você também pode acompanhar a evolução do projeto através do google code, onde está hospedado, e obter o código mais recente pelo repositório do subversion:
http://code.google.com/p/mymoneylog/
Histórico
versões em ordem crescente:
beta20080125 – 2008/01/25
- primeira versão pública.
(…) versões betas intermediárias omitidas.
versão 1.087 – 2008/06/21
- opção para exportar dados a partir de uma data selecionada;
- correção de bug: no Internet Explorer o campo categoria estava perdendo dois caracteres finais ao perder o foco;
- biblioteca jquery atualizada para 1.2.6
- VERSÃO 1 FINALMENTE!!! – a exportação de dados era minha última funcionalidade prevista desde que comecei o myMoneyLog. Ela era importante porque ao final deste ano terei mais de 5000 lançamentos, e o navegador não irá ajudar muito com esta quantidade de dados, e agora ao final do ano somente exportarei meus saldos e futuros lançamentos para outro arquivo e poderei começar o ano sem problemas com um arquivo bem menor.
Somente para esclarecer: 1.087 significa versão 1, revisão 87 do controle de versão, o qual indicará de agora em diante o número da versão.
versão 1.088 – 2008/06/23
- correção de bug: consultas pelo campo filtrar não estavam sendo realizadas corretamente devido à concatenação errada do separador de campos. Exemplo: não havia como realizar buscas pelo caractere separador – tabulação “\t” (barra invertida+t).
versão 1.099 - 2008/07/02
- correção de bug: ao apagar uma entrada à reconciliar, seu saldo era debitado da conta incorretamente;
- adicionada coluna de média na visualização geral.
versão 1.116 – 2008/08/15
- pesquisa e filtragem de lançamentos mais fácil:
- “nuvem” de categorias e contas;
- data inicial e final
- valores: débito e crédito
- filtro por texto ou expressão regular, como antes, mas sem necessidade de marcar uma opção a mais.
- confirmação ao apagar e reconciliar um lançamento.
versão 1.125 – 2008/09/08
- correção de bug: ao inserir lançamentos parcelados com uma data caindo em uma mudança de fuso horário, sua data era lançada como a última do mês anterior, exemplo:
- ao inserir um lançamento com 2 parcelas a primeira iniciando em 2008-09-12, o segundo lançamento era realizado na data 2008-09-30, ao invés de 2008-10-12.
Este erro foi reportado somente com o Mozilla FireFox rodando sob sistema operacional Linux, devido à uma diferença do cálculo da data quando ocorre a mudança de fuso horário.
- ao inserir um lançamento com 2 parcelas a primeira iniciando em 2008-09-12, o segundo lançamento era realizado na data 2008-09-30, ao invés de 2008-10-12.
- pequenos ajustes de HTML e CSS.
- melhoria no salvamento do arquivo de dados no Firefox, o arquivo agora é salvo corretamente no formato UTF-8, ou seja, você poderá utilizar caracteres acentuados em todos navegadores. Mas note que o IE (Internet Explorer) continua gerando um arquivo de dados 2 vezes maior, mais um motivo para não usar o IE.
versão 1.129 – 2008/09/12
- “TiddlySaver” substituído pelo “DataWriter”, uma versão com código reduzido e que permite gravação somente do arquivo “data.html”;
- Não há mais necessidade de configurar permissões do java applet para os navegadores Opera e Safari: applet assinado digitalmente, apenas note que não há uma “autoridade” oficial para gerar a assinatura e na prática este certificado não é “verdadeiro”, mas mesmo assim o applet deve funcionar a contento.
versão 1.139 – 2008/10/22
- Histórico do saldo das contas com gráfico;
- correção de bug: data do calendário incorreto em mês com mudança de fuso horário (linux);
- correção de bug: erro ao exportar os dados nos navegadores que usam o java applet “datawriter” (safari, chrome e opera).
versão 1.140 – 2008/10/23
- correção de bug: gráfico total na aba categorias sem legenda.
versão 1.146 – 2008/12/01
- correção de bug: sumário das contas na aba “lançamentos” com ordenação incorreta;
- atualizações plásticas;
- personalize a imagem de fundo, veja mais detalhes.
versão 1.158 – 2009/01/23
- filtragem dos lançamentos com data inicial configurada para o início do mês anterior, adaptada da idéia proposta pelo Walter Nimir;
- inclusão de modificações propostas pelos patches enviados pelo Pedro Faria e Leandro “xupisco”:
- lançamentos a serem conciliados com cores diferenciadas;
- uma opção para limpar o formulário ao inserir;
- “checkbox pendente” para marcar um lançamento como conciliável, ao invés de digitar “?” ao final da data;
- filtragem dos lançamentos com data final configurada para a próxima semana. - biblioteca jQuery atualizada para 1.3.1
- e outras pequenas melhorias no código, entre elas um melhor acerto na função de ordenação.
versão 1.169 – 2009/03/01

- edição do lançamento na própria visualização, pressione o icone do lápis para editar um lançamento realizado, note que as mesmas funcionalidade do calendário e auto-completar dos campos categoria e conta estão disponível na edição;
- gráficos com uma moldura semi transparente para facilitar a visualização se você estiver utilizando um fundo personalizado;
- biblioteca jQuery atualizada para 1.3.2.
versão 1.172 – 2009/03/04

- biblioteca flot (gráficos) atualizada para R139 disponível no repositório do projeto;
- gráfico com fundo degradê e “tooltip” em determinados pontos, mostrando a descrição e o valor associado;
- correção de bug: em determinados casos ao editar uma linha, a primeira página era carregada, ao invés da página corrente.
versão 1.187 – 2009/03/22

- campo de entrada de dados “descrição” com função de auto completar;
- inclusão da data no “tooltip” do gráfico contas – saldo diário;
- função de pular para o próximo campo pela tecla “enter” para os campos que não possuem a função de auto completar: data, pendente e valor;
- pequenas melhorias de código para aperfeiçoar o desempenho.
versão 1.193 – 2009/04/26
- funcionalidade “soma fácil”, na visualização dos lançamentos, apenas clique em mais de um valor para obter sua soma, é possível ainda subtrair do valor total apelas selecionando este valor no rodapé;
- duplo clique para editar um lançamento;
- fundo vermelho para o lançamento que será excluído.
versão 1.201 – 2009/05/27

- calculadora no campo valor.
versão 1.216 – 2010/01/22
- correção de bug: problema na exibição do gráfico contas (issue: 4);
- correção de bug: na aba contas, a soma estava calculando também os valores pendentes;
- aba categorias com uma melhor distribuição das datas no rodapé, e inclusão da data na etiqueda do gráfico (tooltip);
- estilo da linha dos lançamentos futuros e reconciliáveis com mais destaque;
- atualizações de bibliotecas (jQuery 1.4 entre outras).


@Manoel Neto
é, tá chegando a hora de reformular o layout para melhorar a usabilidade, concordo completamente contigo a respeito da sugestão 1.
A número 2 preciso experimentar, mas me pareceu interessante.
Abraços.
@Giu Vicente
normalmente se vc cadastrar as contas futuras e o salário a receber vc tem mais ou menos como ver pelo gráfico das contas alterando a data para uma no futuro, claro que normalmente temos vários outros gastos no meio do caminho, então isto é só uma indicação e não um orçamento real.
Abraços.
Ricardo, tudo bem?
Tem alguma maneira de colocar no meu servidor, onde hospedo meu site, o myMoneyLog para que possa editar, lançar e trabalhar com ele online? Senão, há alguma previsão de podermos fazê-lo?
Ricardo, cada vez está melhor o myMoneyLog. Parabéns! A soma nos campos clicados ficou demais. Ótimo mesmo. Uma pergunta: Estou queria apanhar todos os lançamentos do MoneyLog do Aurélio e colar no myMoneyLog, mas os campos não são iguais. Uso somente uma categoria no MoneyLog e copiar e colar não deu certo. Tem como fazer de forma simples? Lá no Moneylog a categoria termina usando | e depois vem a descrição. Pensei em usar o smultron para trocar os | para um espaço tabulado, mas não sei como fazer isso. Teclar TAB faz pular para o campo seguinte ao invés de colocar o espaço para substituir. Desculpe o “textão” aí em cima, mas não sei falar o que preciso de forma mais resumida, ok?
Agradeço se tiver alguma dica/sugestão.
Oi Ricardo, creio que esta pergunta deve servir a outras pessoas também.
Eu utilizo ha bastante tempo a versão do Aurélio “MoneyLog 3″. A formatação do texto da versão “MoneyLog 3″ que uso é diferente desta versão sua “myMoneyLog”. Tem alguma forma mais prática e eficiente para migrar os dados para a sua versão? Tipo, uma aba “importar”? Como são muitas linhas para migrar manualmente, as chances de erros são muitas. Abs.
@Farley e @Jociel
Por enquanto não há planos de uma versão “online” do myMoneyLog, alguém se habilita?
Utilizei o MoneyLog antes de suportar as tags, então não tenho experiência de como migrar o arquivo de dados para o myMoneyLog, se eu achar uma forma rápida de fazê-lo eu posto em um artigo.
Desculpe a resposta atrasada, estava em viagem a trabalho.
@Jociel
Criei uma pequena ferramenta para ajudar na conversão do MoneyLog para o myMoneyLog.
Acesse o link:
nishimura.eti.br/mymoneylog/moneylog2my.html
Abraços.
nishimura,
Parabéns pelo trabalho!
Eu tenho interesse em ajudar a tonar o myMoneyLog uma versão online. Eu já até pensei num forma fácil de fazer, poderia ser usando o mesmo formato de dados, mas o arquivo poderia ser opcionalmente parseado por uma liguagem server side usando AJAX, bastaria passar via AJAX o registro a gravar para o parser (posso fazê-lo em PHP) e o arquivo data.html seria atualizado. O interessante é que o parser poderia ser escrito em qualquer linguagem web. A função saveFile poderia fazer o trabalho de chamar a função AJAX que faria o resto.
O que acha? É viável?
@wasare
Acho que colocar a chamada no saveFile pode funcionar somente enquanto os dados forem poucos, mas como essa função sempre armazena todos os dados, após um tempo isso se tornará meio pesado.
Para fazer uma versão online “correta” todas chamadas às funções do “entries.js”, “categories.js” e “accounts.js” deveria ser executada no servidor.
Desculpe a resposta atrasada, o seu comentário havia ficado na caixa de spam e só agora fui perceber.
Será que teria como usar o sqlite para fazer a tal versão online que o pessoal fala, já pensou nisto nishimura, já que o banco fica em um arquivo!
@Anderson
O Sqlite seria a primeira opção com certeza.
Grande Ricardo!
Escuta, é possível fazer com que o campo “Mostrar últimos” (em Contas) permita outras entradas? Por exemplo, há vezes que eu quero consultar os últimos 17 meses, ou os últimos 14… o que acha?
Mais uma vez, parabéns pelo trabalho!
Abs!
@Everton
Este valor está fixo na caixa de seleção, colocarei mais opções na próxima versão.
Quando coloquei estes valores achei que o javascript não suportaria mais de 1 ano de lançamentos e ficaria lento, mas devido a evolução dos navegadores acho que dá para extender mais esta faixa, eu pelo menos já tenho quase 2 anos de lançamentos e a performance ainda está boa.
Abraços.
Oi Ricardo. Achei o aplicativo perfeito.
Já estou usando, via pendrive.
Ótima solução.
E parabéns também ao Aurélio, né?
Abraços.
E parabéns também ao Aurélio, né?
x2
@Bruna Bites
Só não se esqueça de criptografar o pendrive, eu aposentei o meu depois que conheci o DropBox.
Ricardo,
em muitos lugares consigo acessar apenas o email, entao fiz um pequeno processo em Perl para permitir que eu fizesse os lançamentos por email. Funciona assim:
– Envio um email para uma conta cadastrada com os detalhes do lançamento, tipo:
data: 2010-01-30#
valor: -78,01#
descricao: Plano de saude#
categoria: saude#
conta: dinheiro#
- O processo valida os emails (verifica se email é permitido e veio de uma conta que possui permissao pra fazer os lançamentos)
- Cadastra o lançamento no aplicativo instalado em meu computador.
Ou seja, todas característica que vc faz diretamente nos campos de inserção do registro é feito por email (lançamentos futuros, …)
Se achar que pode ser util para alguem – assim cmo é para mim – me avise que melhoro o código e te envio.
Att.
@Jackson
é uma alternativa interessante, deve funcionar bem com dispositivos que só podem enviar/receber emails.
Se quiser enviar para mim, meu email é
ricardo (arroba) nishimura. eti. br
[]s.
Hey, Ricardo, com o código atual, o myMoneyLog deveria funcionar no chrome/chromium?
Pergunto porque ao tentar lançar algo no chromium por aqui eu recebo erro de “não foi possível gravar dados”.
Como sei que o chromium é mais atrasado que o chrome, não sei se o problema é dele mesmo.
Abraços!
Olá @Renato Lond , qual sistema operacional vc está usando?
No meu Ubuntu 9.10 o Chromium ainda não consegue carregar o plugin do java para permitir o armazenamento dos dados.
Em meu notebook tenho o WinXP e funciona perfeitamente, aliás fazia alguns dias que não utilizava ele neste computador e assim que carreguei o myMoneyLog pelo Chrome ele apenas pediu para atualizar o plugin do java para uma nova versão mas funcionou normal. Acabei fazendo a atualização da “4.0.249.78 (36714)” para a versão “5.0.307.1 dev” e mesmo assim está tudo funcionando perfeitamente.
[]s.
@ricardo aqui eu uso Gentoo, Chromium 4.0.302.2. Ele não dá aviso nenhum, não pede autorização pra nada de java, e só reclama mesmo quando eu tento escrever alguma coisa.
Acho que provavelmente deve ser coisa do Chromium mesmo. Qualquer atualização sobre o assunto apareço por aqui
Oi Ricardo, tudo bem?
Uso sua ferramenta desde que descobri e acho fantastica.
Vc é de qual lugar do Brasil?
Olá @Wallace , obrigado.
Campinas – SP
[]s.
2 Sugestões:
- Cores de categorias personalizadas (como nos marcadores do Gmail Labs)
- Criar campo personalizado [para outros tipos de anotações, no meu caso separar Nr (Doc. 999999) e tipo de operação (Saque, Depósito, Transferência, Cred Juros, Rem Básica, TED etc..) das descrições]
VocÊs são demais!
Estou buscando a tempos uma solução para controlar as contas pessoais e em paralelo as contas da minha pequena empresa (banho e tosa de cães).
Vou avaliar e testar sua solução e postarei minhas impressões! Por hora vou parabenizar a sua iniciativa, a idéia interessante de uma solução simples e objetiva e principalmente a dedicação (visto que você mantem o blog sempre ativo!).
Boa sorte!
Leo
Estou usando o myMoneyLog diariamente, e é impressionante o que algo tão simples faz tão bem. É EXTREMAMENTE funcional e informativo do jeito que está agora. Quaisquer melhorias, apesar de bem vindas, são um bônus.
E um bônus que eu acharia interessante de ver é a possibilidade de, na aba “Categorias”, exibir um gráfico em torta dos gastos do período. Dessa forma ficaria mais DIRETO ver que categoria está consumindo mais dinheiro, qual está consumindo menos. Esse tipo de coisa.
Mas, como falei antes, isso é só uma coisa a MAIS numa ferramenta fantástica que estou recomendando pra todos os meus amigos.
Parabéns, cara.
Obrigado @Filipe Aguiar .
O problema de implementar um gráfico em torta para as categorias é que um lançamento pode possuir mais de uma categoria, e isso quebra a distribuição no gráfico.
As categorias multiplas foram implementadas para funcionar com “tags” (foi uma opção pela simplicidade do arquivo), mas acho que seria melhor deixar uma só categoria por lançamento e adicionar uma coluna de tags, aí sim não teríamos problema com o gráfico de torta. Ou então gerar o gráfico de torta levando em consideração somente a primeira categoria do lançamento (se existirem mais de uma), o quê no meu caso seria uma boa opção também e sem comprometer o formato do arquivo, vou analisar.
Abraços.
Olá Ricardo, aproveitando os pedidos de features, vou botar uma sugestão..
Acho que em operações do tipo transferência, em que o campo de categoria é deixado em branco, poderia ser gerado um número único que linkasse as duas operações (a de saída e a de entrada). Assim, quando uma fosse apagada, a outra também poderia ser. Isso poderia, por exemplo, ser feito aproveitando o campo de categoria vazio.
E qualquer novidade sobre o Chromium apareço por aqui. Abraço!