I use this app to teach Ruby-on-Rails to beginners. The scope is small, and I know it well enough to live code it. While coding, I discuss the different parts of Rails. I touch on:
- Creating an app, Bundler, Gems
- Rails scaffolding, MVC and REST in general
- Models (adding validations to Task)
- Controllers (changing the flow of redirects in TasksController)
- Views (tweaking layout, removing some scaffolded links)
- Helpers (displaying a boolean value in a nicer way)
- Assets, SCSS (adding some color to the page, using Twitter's Bootstrap)
- Routes, REST (setting up a new action)
- Coffeescript (adding simple sorting with listjs)
- Rails API (using built-in helpers to point out the wealth of stuff in Rails)
- Heroku deployment
I will be adding:
- Acceptance testing with Capybara
- Unit testing with Rspec
- Something to the README
- Adding something completely different
The master branch is tagged at appropriate places, to allow me to recover from the embarrassement of drawing a blank in the middle of coding. I create a local branch before class and clear it out entirely (except for .rvmrc)