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).

clique para abrir demonstração

clique para abrir demonstração

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:
downloadmymoneylog_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.
  • 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

  • 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).
  1. nishimura
    28, junho, 2009 em 10:51 | #1

    @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.

  2. nishimura
    28, junho, 2009 em 10:58 | #2

    @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.

  3. 8, julho, 2009 em 21:35 | #3

    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?

  4. 9, julho, 2009 em 22:51 | #4

    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.

  5. Jociel
    10, julho, 2009 em 09:50 | #5

    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.

  6. nishimura
    13, julho, 2009 em 19:39 | #6

    @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.

  7. nishimura
    14, julho, 2009 em 19:32 | #7

    @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.

  8. 25, julho, 2009 em 11:47 | #8

    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?

  9. nishimura
    4, agosto, 2009 em 09:51 | #9

    @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.

  10. 20, agosto, 2009 em 21:20 | #10

    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!

  11. nishimura
    21, agosto, 2009 em 09:12 | #11

    @Anderson
    O Sqlite seria a primeira opção com certeza.

  12. 21, agosto, 2009 em 18:36 | #12

    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!

  13. nishimura
    21, agosto, 2009 em 21:50 | #13

    @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.

  14. 6, novembro, 2009 em 14:30 | #14

    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.

  15. 6, novembro, 2009 em 18:23 | #15

    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.

  16. Jackson
    1, fevereiro, 2010 em 14:30 | #16

    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.

  17. 1, fevereiro, 2010 em 16:24 | #17

    @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.

  18. 2, fevereiro, 2010 em 08:30 | #18

    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!

  19. 2, fevereiro, 2010 em 09:22 | #19

    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.

  20. 2, fevereiro, 2010 em 23:50 | #20

    @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 :)

  21. Wallace
    4, fevereiro, 2010 em 10:13 | #21

    Oi Ricardo, tudo bem?
    Uso sua ferramenta desde que descobri e acho fantastica.

    Vc é de qual lugar do Brasil?

  22. 4, fevereiro, 2010 em 10:29 | #22

    Olá @Wallace , obrigado.
    Campinas – SP
    []s.

  23. 5, fevereiro, 2010 em 18:46 | #23

    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!

  24. 15, fevereiro, 2010 em 18:12 | #24

    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

  25. 27, fevereiro, 2010 em 10:40 | #25

    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.

  26. 1, março, 2010 em 09:28 | #26

    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.

  27. 2, março, 2010 em 20:29 | #27

    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!

Página de comentários
  1. 13, setembro, 2008 em 01:42 | #1
  2. 22, outubro, 2008 em 23:21 | #2
  3. 1, dezembro, 2008 em 23:20 | #3
  4. 3, dezembro, 2008 em 19:35 | #4
  5. 16, dezembro, 2008 em 18:41 | #5
  6. 24, abril, 2009 em 01:28 | #6
  7. 28, abril, 2009 em 02:56 | #7
  8. 25, junho, 2009 em 18:28 | #8
  9. 13, agosto, 2009 em 10:37 | #9