My best advise is to think of it almost procedural. Start off making something and test it yourself and you'll start smelling all the things off about it. Ideas to get to a good understanding incorporate a MLS into a search and try to pull off the simplest search (less form elements) you can getting the queried data you want.