What do you wish existed? Write it!
Seriously, the less structure you impose on a personal project, the better. But I would start with some simple guidelines:
Start small. Think of something that you can get mostly working in a day or so. At the absolute most, a week.
Just like writers should "write what they know," you should "code what you know" or at least what you wish you knew. Pick a project that matters to you. Don't be afraid to re-create something that already exists. Do you wish you had better syntax highlighting? Write something to do syntax highlighting. Do you wish there was a better search engine? Write one. Think of something you do all the time, and figure out how to make it easier or more fun to do that.
Write unit tests. Until I started incorporating them into my daily coding, I always thought of them as something that was a safety net, but really they're just an easier way to write code. I know everyone already knows this, but it's worth repeating. Just because you're not writing a multi-person project, don't avoid unit tests. They'll make your life easier and give you a better sense of progress.
I wouldn't worry a whole lot about organization. For god's sake don't bother with UML. Sketch, think, draw, if you have access to a whiteboard draw all over it, brainstorm with your friends -- preferably in real life! preferably with argumentative ones! -- also don't be afraid to write code even if you think it's wrong. Write, test, think, refactor, repeat. Your editor, compiler and debugger are a great sketchpad.
Most importantly, have fun! Do something you'll enjoy! If it's an onerous task you won't learn much. If you're solving a problem you want to solve -- even if you don't solve it as well as others already have -- you'll learn, and that's the point, right?