Eu até gosto de planilhas, mas sempre penso: “Porque usar planilhas se eu sei Ruby on Rails?”
Meu grande problema é saber:
- Quanto eu ganho
- Quanto eu gasto
- Quanto eu tenho para receber
- Quanto eu tenho para pagar
- Quanto eu já recebi
- Quanto eu já gastei
Parece simples! Mas é preciso abstrair isso para um modelo genérico onde qualquer pessoa possa controlar suas contas de casa.
Normalmente esses dados estão no extrato de banco, fatura do cartão de crédito, comprovantes de despesa, comprovantes de pagamento, canhotos de cheques, etc …
Se eu me lembro das minhas aulas de contabilidade guardamos tudo em Contas
Por exemplo nosso cartão de crédito é uma conta para Contabilidade, e ela tem débitos e créditos, o chamado método das Partidas Dobradas
Esse modelo tb aparece na conta corrente, no dinheiro que temos na carteira, na dívida que temos com a Sogra e até no nosso talão de cheques.
É importante organizar as contas para depois totaliza-las. Em contabilidade o nome certo disso é Plano de Contas ou Contas Contábeis o que é na verdade, fundamento para o balanço contabil.
As contas do plano de contas tem a sua hierarquia. O ActiveRecord nos primórdios tinha o acts_as_tree que agora é uma gem.
Mas existem tb boas opções em 7 Tree Data Structure Plugins for Rails
Basicamente existem três tipos de contas, e aqui não vamos falar de contabilidade:
- As coisas, ou contas que pagamos que aqui chamaremos de Contas de Saida
- As contas que recebemos que aqui chamaremos de Contas de Entrada
- As contas que tem entradas e saídas chamadas de Contas Correntes
Exemplos: Despesas em geral, água, luz, telefone, aluguel
Exemplos: Recebimentos em Geral, Salário, Mesada, Bonus, etc …
Exemplos: Sua Conta no Banco, A sua fatura de cartão de crédito e até o controle do seu talão de cheques
Eu não me sentiria bem de um provedor de serviço ter acesso aos meus dados bancários, mesmo que ele fique com dó das minhas dívidas e me de algum dinheiro, prefiro meus dados sigilosos. Mesmo porque o sistema terá outros usuários e por isso é interessante manter os dados siglosos.
Portanto, faz parte do escopo do projeto contas.mobi criptografar dados de valores das contas.
Penso em usar o https://github.com/shuber/attr_encrypted ou ainda
PS.: É necessário um estudo mais aprofundado, pois encriptar números que precisarão passar por totalização não costuma ser uma grande idéia.
Esse projeto vai usar nomes de métodos e tabelas em Português, pelo simples fato de que não tenho familiaridade com os nomes contábeis em Inglês.
Para isso:
config.active_record.pluralize_table_names = false
Vou tentar colocar a primeira versão Beta em pouco tempo no ar! Pull Requests são bem vindos!