3 August 2009
Building A Grails App in 40 hrs
In a prior post, I talked about an experiment — to build a working task management application in about 40 hours.
The high-level constraints governing the experiment were as follows:
- The application should be web-based and ‘modern’ (AJAX, friendly URL’s, etc)
- It should be reasonably non-trivial.
- It should be developed as it were going to someday become a Software As A Service type of application.
- It should involve some new/untried/unfamiliar technology– just to make things more realistic/interesting
- Where possible, we’d explore some geeky ‘bells and whistles’
My biggest concern was the time constraint. 40 hours is not a heck of a lot of time, and given the other requirement of having to deal with some other unfamiliar technology I needed something that would allow for RAD. The resulting architecture for the application ended up looking something like this:
- The application was designed as a Grails (v1.1.1) application. No surprises here. I have used Grails on a number of prior efforts, and its my framework of choice.
- The more sophisticated/AJAXy UI components were provided courtesy of the excellent GrailsUI Plugin- which in turn is based on the excellent Yahoo UI JavaScript library.
- We decided to play around with deploying the application into a Cloud Computing infrastructure like Google’s AppEngine or Amazon’s Elastic Compute Cloud (EC2) platform. I had no experience with either prior to this effort.
The Cloud Computing aspect was the real twist — In one fell swoop, we attempted to meet the requirements for SaaS, ‘new or unfamiliar technology’ and high geek factor. As a bonus it could provide an online presence so that readers could visit and play with the app.
This post and a series of subsequent ones to follow, attempt to document in reasonable chronological order, the details associated with realizing this challenge. That is, the information is presented in the blog posts in the approximate order it was experienced in ‘real-life’– with a couple of notable exceptions.
In broad brushstrokes the application development cycle looked something like this:
- Build a standard Grails application locally that meets the basic functional requirements.
- Take the prototype from Step#1 and port it to Amazon’s EC2
- Take the prototype from Step#1 and port it to Google’s AppEngine
The above approach seemed reasonable, and at the time I started this endeavor, I had signed up for Google’s AppEngine Java SDK access, but had not yet been granted it– so implementing an EC2 version of the application first seemed only reasonable. More on this in later posts.
OK! this is the last of the non-technical intro posts. The next post in the series will talk about the design and construction of the basic/local application.
Technorati Tags: agile, grails, cloud computing, appengine, ec2, software development
Comments are locked.
Pete says:
don says:
@Pete haha! Yes, well as is usual, the documentation effort is lagging the coding effort!
Pramatr says:
REALLY interested in hearing some of the details, I’ve been looking for stories from the trenches for a while now.
don says:
@Pramatr… thanks for interest! Will probably be a few more days before I get the next post out
Pramatr says:
@don – Well you’ve got me hooked already, I’m a subscriber now ;-). I’ve been trying to find discussions like this for a while, I’ve read the articles, books, blogs and had a play with Grails but I’m interested in war stories and real life accounts. One thing that specifically got me interested was the design element, guess I can wait a few days ;-). As I said I’m hooked already.
ionel condor says:
thank you.
i am looking forward to read the next posts.
excellent posts.
ionel condor, romania.
ALTERthought Blogs » Grails Task Management App (part 3) says:
[...] part 1 and part 2 of this series we introduced a challenge to build a reasonably non-trivial application in just a [...]
ALTERthought Blogs » Grails App in ~40 hrs (part 5) says:
[...] Part 2: We talk about the basic app concept.. a todo list manager called (cleverly) twodo. We have decided on the general technical framework (Grails, etc) [...]
links for 2009-08-08 « edansys says:
[...] ALTERthought Blogs » Building A Grails App in 40 hrs (tags: grails) [...]


Ironically, it’s taken you nearly a month to post the second blog on building an app in 40 hours. :)