Wednesday, June 21, 2006

RailsDay: 24 hours of solid Railing

Myself and a couple of friends (Craig and Simon Hildebrandt) spent 24 hours straight coding Ruby on Rails. We met up at a house in the city and coded from 2pm Saturday to 2pm Sunday. There was however method to out madness; we were competing in 'Rails Day 2006'.

We wanted to create something that we would find valuable in our own projects, and that we could use over and over again, and I am happy with the result.

The aim was to create, what will eventually become an engine, that will allow us to create custom CRM solutions for a fraction of the development time.

Our submission to the Rails Day contest looks like a very simple CRM application. Admin users are presented with a very simple/clean/intuitive interface to modify any data in the database, including relationships (task 1 belongs to a project 2, etc.). The Magic is that the whole admin section is auto-generated directly from the model, no coding required.

The admin controller looks for model classes and adds then to the list of editable types. For each type is displays a list of all instances and an edit/create form. It uses information from the column type and validation rules to decide which widget is required for each attribute of the model object. 'belongs_to' relationships are displayed as drop downs. 'has_many' is displayed as a list with an 'add to list' widget. We also demonstrated that this can be extended to account for 'acts_like' mix-ins and plug-ins by handling the 'file-column' plug-in.

We are hoping that by open-sourcing this projects we will be able to get people to extend the number of plug-ins, acts_like's, validation rules, etc., that the framework handles.

Already we are finding this engine valuable in our own projects, soon, I hope, you will in yours.

... keep watching for a rubyforge link soon...

Cheers,
Nigel

No comments:

GitHub Projects