Best way to manage LEGO blocks Maybe my question is not suitable for this forum, but I figure this is the place where people have the most experience, so, here goes.

My 4 year old son loves to play with LEGO and we encourage him. We built a few sets together and he mostly builds stuff from his own imagination. He likes to build new sets with us and to follow the schematics, even if we don't have all the parts (we try to make changes as needed).

The problem is - we have gathered a big LEGO box of parts from about 7-8 sets and looking for a specific block is becoming more and more difficult. When we build sets together it's my job to find the parts and his job to follow the schematic. Needless to say, it may take me 5 minutes to track down a specific part and it takes us too long to build the set. Once a set is built he plays with it for a while (a couple of hours or days) and then comes back apart.

For now we try to keep the parts sorted by color, but for some colors (grey or blue) we have too many parts and we need to empty the bag on the floor to look for parts (and this gets messy).

I wanted to ask for advice on the following topics:


What's the best way to sort LEGO blocks so that they are easier to find and in a way that they don't take too much space (e.g. I wouldn't want to have to sort them by shape - it's too many of them!)
For some sets we don't know if we have all the parts (obviously because we don't have those exact sets). Is there an "app" that I can tell which sets we have and that can generate a part list from those so that I can look to see if I have the needed part? Or, better yet, tell the app what I want to build and it should tell me what parts I have (without keeping track of color - only shape) and what I'm missing? I'm thinking it's not an impossible app and something like this may exist, but I haven't found it yet.
Now comes the "sci-fi" part. Can I find a phone app that can use the camera to "scan" a bunch of parts thrown on the floor and do image recognition of the part that I need in order to highlight it? Image recognition can do shape recognition, so, again, it should be possible to implement - I just haven't found any.


Any tips on handling LEGO for better management is welcome.
Thanks!
The best way I've ever seen this done is exactly the same way you'd see a handyman manage all of his nuts, bolts, and screws. The general idea is that you have lots of small compartments for each of your different kinds of legos - and it can be up to you whether you separate by color, or just by shape and size.

On a quick glance at a big box store website, this seems like it might be a good inexpensive starting point: 

http://www.homedepot.com/p/Husky-28-Drawer-Small-Parts-Organizer-222169/205053254