1. Approach an entity that doesn't have a lot of money (e.g. school, library, city council, county park, church, whatever) and ask them if they need anything improved or fixed IT-wise. You can take an off-the-shelf route like just reskinning phpBB for a library forum or implement a server for voting on new books to acquire or an announcement system for school closings or even a static calendar page for events. Maybe you build it from the ground up like new reservation system for people who want to reserve a book at the library before they drive 40 minutes to pick it up. If the facility likes it, they'll use it. If they don't, well at least you learned something. The thing is, you'll build experience working with real-ish requirements and even if it amounts to nothing you'll learn why. Aim for something simple to ensure success and try not to reinvent the wheel. Now-a-days with Rails' scaffold system, you can stand up CRUD apps in no time. I remember a lot of broken processes as a kid that I saw at Boy Scouts, parks, libraries, etc where a simple registration form would have saved a couple people a lot of work.
This. Not only will you learn something, you can make some good contacts, and above all you have the chance to help an organization that may not have the means to help themselves if they are funding constrained.
The first 90% of a project takes 90% of the time, the last 10% takes the other 90% of the time.