Goals

Understand what the models, views, and controllers of a Rails app do and how they work together.

Get more comfortable using error messages as guideposts and not as scary things.

What’s Going to Happen?

We’re going to build a message board system, where there are posts on the front page and you click through to see the original post plus discussion below.

We’ve divided this into challenges:

Challenge 1: Create a new rails app with a static home page

Challenge 2: Install Devise

Challenge 3: Make it pretty with Bootstrap

Challenge 4: Add pages to create and look at individual posts

Challenge 5: Make a posts index page

Challenge 6: Add replying

Challenge 7: Inline replying on a post

Challenge ∞: Other features of your choice

Each time you get your app into a functional state, before adding any more features, COMMIT TO GIT! The new features will probably break things, which is neat, but you’ll want to be able to roll back to a prior version if necessary.

MAJORLY IMPORTANT NOTE: We called the sections challenges because they are challenging! This curriculum will be most fun as a collaboration — talk things through with your teacher, TAs, and other students. This is a very different style of curriculum than Suggestotron, so don’t be discouraged if you aren't quite sure what to do next.

How to use this curriculum

Challenges are the big chunks of stuff to work on at a given time. These are gated by requirements — once you (or your group) has completed a set of requirements, go on to the next set.

Requirements in this curriculum are not entirely divorced from what a requirement is in the agile software development methodology — things that should be in the application as defined by whoever is designing/deciding things about the product. Except here, we’ve also thrown in some non-application requirements, like the ability to explain a concept to a peer.

Discussions are led by the teacher; this is the closest this curriculum gets to lecture-y teaching.