http://www.railstutorial.org/book/demo_app#sec-planning_the_application