I have moved!

My new blog is at lindsaar.net

All the old content will stay here though. But check out the new blog

¿ 4/10/2007 - From nothing to Something. Design Driven Development with Ruby on Rails

I have to make a new website for an organization.

It is a fairly simple site, basic information, but they want the ability to accept payments and track payments, update stories etc.

This got me thinking.

Having built some good web applications in rails, I wondered what it would be like to build a website in rails?

Note... I think the distinction between a website and a webapp is disappearing, anyone just building a static webpage really is not going to get anywhere in terms of interest from the public.  Sure, it will answer questions, and if this is all you need, then fine.  But if you want to engage your public, then you need something more.

But how do you make an organizational website without going through the entire "web app" thing?

The web is full of how to make a blog and how to list products against categories, but how do you actually cross the line between being a ruby on rails programmer to a website designer?

Well, that is what the next series of posts is going to cover.

I am going to create a website from the bottom up, out of whole cloth and create it all using ruby on rails with Rspec every step of the way.

The end result will be a running website that fullfills the purpose that is needed.

And it might also help someone out there with a similar problem!

I find (per the technology of study and management that I have learnt from Hubbard Management Technology) it is good to have a battle plan.  A series of doable steps that get you from where you are to where you want to go.  The main 3 targets below are part of the Hubbard management technology.

This plan doesn't have to be concrete, it can change in the "heat of battle", but it is your overall set of things to do to get the whole job done.

So to do this web site, the following would be my basic battle plan:

  1. Get a communication going
    1. Establish a communication line with the person who wants the site.
    2. Make sure they know who you are, what you do, what you have done. Get a feel for them as well
  2. Find out what is needed and wanted
    1. TALK WITH YOUR CLIENT
    2. Draw, look at pervious websites together, look at websites they like, do they want professional and slick, or fun and friendly?  What is the mood they want to convey?  Safe and reliable, or cutting edge and in your face?  Get the feel.
    3. Get lists of things they want on the site
  3. Do, Produce or Present it
    1. Wireframe design and work out what is needed on the pages
    2. Basic look and feel design, how is the site going to hang together
    3. Getting the pages up by using Design Driven Development
    4. Getting the look and feel working (Lorem Ipsum stage)
    5. Coding the backend to the site using Behaviour Driven Development (BDD)
    6. Coding the interactions with other services (payment gateways etc) using BDD
    7. Populating the site with data
    8. Staging the server and inhouse testing
    9. Putting the site online!
See... how hard could that be?

This project / tutorial is going to start at the "Do, Produce or Present It" stage of the battle plan.  I am going to assume you know what is needed and wanted and you have your communication lines in with your client (or maybe you are doing this for yourself).  Regardless of if it is a client or yourself, be sure to do steps one and two first before step three otherwise you will find yourself lost in a hurry.

Anyway, I'm going to head off and get the first target of step three done, and I'll blog about it to you later.

Mikel
Post A Comment! :: Send to a Friend!

¿ 5/10/2007 - Rails?

Posted by Anonymous
You might want to consider using something lighter-weight, if it's mostly static content. Like http://staticmatic.rubyforge.org/


Permanent Link

¿ 5/10/2007 - Staticmatic

Posted by mikel
Thanks for the pointer. Looks interesting... but I think for this project I am going to stick with Rails.

I guess it comes down to what is static and what is dynamic and where do you draw the line.

They want the option to update sections of text, small blog on the page, login of members, and the payment gateway. Some of this requires some sort of DB backend.

The previous site is in PHP, and while I made it in PHP and it looks OK, I find I am repeating myself a lot and don't really need to.

But we will see how it goes!
Permanent Link

About Me

AKA Raasdnil, this site is about web coding, hosting and all other matters that relate to this... especially Ruby on Rails!

Links