Stuff that I'm actively working on is in ~/dev. Once I'm no longer actively working on it, I move it to ~/Projects with a subdir name that is the name of the project. I don't do any further organization than that because filesystem tools make it easy for to find things from there.
All project notes are in a Wiki I host on my main server. These notes include where the project files are being stored. In practice, the wiki is my primary gateway/index to the projects.
The one hiccup to this is with projects that aren't software-only. CAD files, PCB layout files, photos, etc. I don't put them in ~/dev because in my mind, that's for software. So I just put them straight into ~/Projects. It's not ideal to have project files split like that, but I haven't come up with a better solution yet.