The SampleApp on http://ruby.railstutorial.org (Chapter 3)