Meu primeiro empreendimento web com Rails

Quando comecei a aprender Rails a mais de um ano atrás, percebi logo de cara que ali estava a oportunidade de colocar algumas idéias em prática. Em Rails é muito fácil prototipar uma aplicação ou colocá-la em produção rapidamente. Decidi pegar uma de minhas idéias de sistemas web, que anoto em meu caderno de idéias sempre que tenho aquela lâmpada acesa sobre a cabeça, e usar o tempo investido em aprender Ruby e Rails para criar algo funcional, algo que eu pudesse chamar de empreendimento. Inspirado em outras aventuras da web brasileira em Rails (Brasigo, Just-remind.Us, Mapia), surgiu o sismiko.com.

Foram alguns meses de estudo e implementações feitas somente nas horas vagas, que não tenho como calcular a quantidade, já que em alguns desses meses não consegui escrever nenhuma linha de código nova, devido a acontecimentos imprevistos. Só sei que foram raros os dias que pude dedicar mais de 3 horas. Além disso, tive que me desdobrar para ser programador Rails, designer e construtor de HTML e CSS ao mesmo tempo.

Segui as premissas do livro "Caindo na Real" e fiz uma versão totalmente enxuta, apenas com as funcionalidades básicas, indo direto ao ponto. A função principal do sismiko é ser um catálogo de eventos, onde o usuário pode ver quais os eventos que irão acontecer na sua cidade e criar uma agenda própria com aqueles em que gostaria de comparecer. Quando eu digo eventos, me refiro a festas, baladas, feiras, cursos, peças de teatro, ou qualquer coisa que seja um encontro de pessoas com uma data definida. O sismiko é também um ranking dos melhores eventos, já que eles são sempre ordenados pelo número de pessoas que agendaram o acontecimento. O usuário pode ver qual o evento mais agendado para sua cidade, para seu estado, ou ainda, para o país (por enquanto só existe suporte ao Brasil). Leia mais no post de lançamento.

Não é uma idéia nova, já que sites como o upcoming.org fazem isso há algum tempo, mas o sismiko tem o propósito de oferecer um serviço voltado ao público brasileiro e com diferenciais que apresentarei em versões futuras. Acompanhe o blog do sismiko para ficar sabendo das novas funcionalidades.

Quanto à parte técnica, o sistema está rodando sobre o Rails 1.2.6 e hospedado em um servidor shared no RailsPlayground.com, com fastcgi apenas.

Utilizo os seguintes plugins do Rails:

  1. atachment_fu: para o envio de imagens, com redimensionamento feito pela gem Rmagick;
  2. exception_notification: Para ser avisado por e-mail sobre erros na aplicação;
  3. restful_authentication: Para criar contas de usuário de uma maneira REST;
  4. acts_as_fulltextable: Para implementar um sistema de busca simples em eventos e locais;
  5. geokit: Para mostrar eventos próximos à uma determinada localização geográfica e para tentar (nem sempre funciona) localizar a cidade de onde o usuário está acessando o site;
  6. will_paginate: Para paginar os resultados de busca, eventos e locais.

O sismiko foi desenvolvido de forma REST, mas nesta primeira versão os resursos respondem apenas ao formato HTML. As páginas possuem HTML e CSS validados em XHTML Strict 1.0 e CSS 2.1 respectivamente, com os eventos sendo apresentados através do microformato hCalendar. Existem alguns javascripts obstrusivos dentro do HTML, o que invalida algumas páginas, mas que logo serão substituídos utilizando o JQuery. Os ícones eu emprestei do http://www.famfamfam.com/

Pretendo manter o sistema em constante desenvolvimento, por isso aceito de bom grado sugestões de funcionalidades, de melhorias do layout e informações sobre erros. Na fila de novidades estão comentários nos eventos e locais, feeds de todas as listas, widgets para a agenda ser colocada em blogs e sites e algumas funções em javascript, como a ação "agendar" e a listagem de estados e cidades na barra de localização.

Espero que gostem!

Published on in Blog