Blog do Urubatan
msgbartop
Desenvolvedor, Palestrante, Escritor, Nerd Assumido e Pai do Marcus :D
msgbarbottom

15 Feb 08 Novo “pet project” em Rails (planejamento)

A idéia básica do projeto é um sistema simples para orçamento doméstico onde seja possível cadastrar as receitas previstas, os débitos previstos, realizar estas previsões e logo depois ter relatórios de previsão de saldo no final do mes, final do ano, e coisas do gênero :D

Bom, eu sei que existe o Fincanças on Rails do Maximiliano Guzenski, mas ele não funcionava exatamente como eu queria, e eu fiquei com preguiça de alterar ele.
Sim, seria mais vantajoso para a comunidade Open Source se eu colaborasse com ele em vez de criar outro, mas eu achei mais divertido pegar a planilha excel que a minha esposa usa para controlar as finanças de casa e transformar em um sisteminha :D
E com isto naceu o projeto “planejamento”, claro o nome tinha que ser algo completamente sem criatividade :D
Por enquanto a única coisa que esta pronta é o cadastro de créditos e débitos previstos e a realização destas previsões.
O projeto é todo feito com javascript não instrusivo e funciona se não houver suporte para javascript também.
Ainda não escrevi os testes, e a parte de relatórios que é a parte mais importante do sistema não esta pronta …

Estou utilizando alguns plugins bem legais do rails:

  • mydry – um plugin que eu criei que se assemelha ao scaffold antigo, mas gera models ja com algum código de relacionamento e validações que podem ser inferidas a partir do banco de dados, e controllers restfull para estes models, ele gera o código utilizando o will_paginate para paginação, eu criei este plugin por que eu achava muito chato criar as migrations, definir ali os campos not null, definir os campos de relacionamento, definir tamanhos máximos para strings e assemelhados e depois ter que definir tudo novamente no model. Por enquanto este plugin só existe dentro deste projeto, mas se mais alguem se interessar em usar ele eu crio um projeto separado :D
  • annotate_models – um plugin show de bola que coloca o schema da tabela como comentários nos arquivos dos models, facilita bastante a minha vida
  • will_paginate – o melhor plugin para paginação no RoR que eu conheço :D
  • calendar_date_select – um plugin que adiciona um helper para criar um input com um icone de calendário e um calendário popup para seleção de datas, bem mais bonito do que o padrão do rails :D
  • client_side_validation – achei este plugin espetacular, ele cria javascript para validação client side a partir das validações definidas nos models
  • validation_reflection – dependencia do client_side_validation

E estou utilizando também duas bibliotecas Javascript espetaculares:

  • lowpro – extensão da prototype que adiciona um suporte extremamente prático e fácil de usar para javascript não instrusivo (vou escrever um post sobre isto assim que eu me animar :D )
  • prototype-ui – outra extensão da prototype que adiciona alguns widgets, por enquanto apenas janelas popup e carrousel, estou utilizando apenas as janelas popup, de forma totalmente não intrusiva para os links de formulários, utilizando esta biblioteca em combinação com a lowpro

O próximo passo é escrever testes, adicionar os relatórios, adicionar suporte a tags e disponibilizar uma versão online para vocês brincarem :D

Estou utilizando o GIT para controle de versões, e quem quiser dar uma olhada no código fonte, ele esta hospedado no gitorious.

Se ninguem mais se interessar pelo projeto, ele vai evoluir pelo menos até atender todas as minhas necessidades, mas todos são bem vindos a dar sugestões e se alguem quiser colaborar eu posso dar direito de escrita no projeto no gitorious, ou então posso buscar os patches que forem criados a partir de qualquer repositório git que vocês estiverem usando :D .

Para baixar o código fonte é só rodar o comando:
git clone git@gitorious.org:planejamento/mainline.git se você ja tiver uma conta no gitorious
ou
git clone git://gitorious.org/planejamento/mainline.git se você não tiver uma conta por la :D

Tags: