Intermediate Rails
Let's build a message board!
Assumptions made by this curriculum
- You've gone through the standard RailsBridge installfest and have successfully completed the Get a Sticker step.
- You've gone through the RailsBridge Suggestotron curriculum at least once before, or maybe a couple of times, or maybe you feel decently comfortable with Rails for some other reason.
- You want to learn more Rails!!!
Goals
- Make a thing!
- 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.
Hints are what they sound like, as are Tools & References.
Teachers only!: there's a teaching guide at http://bit.ly/int-railsbridge-guide