We're creating a new version of http://autism.healingthresholds.com/, which (among many other changes) will include a comprehensive directory of autism therapy providers (e.g., speech therapists, chiropractors, autism-friendly dentists, etc.).

We're looking for a developer or firm to build the directory portion of the site and then help us tweak the functionality.  We'd like you to demonstrate the work in a new Drupal 6.x site you build, and we'll then integrate it into the updated Drupal 6.x version of our existing site that we're working on.  Here are the details of the directory functionality we want:

+ Each directory listing will be a CCK node.  We will pre-populate the database, and users will be allowed to claim and update a listing.  Listings can be upgraded between 3 status levels:
1) Free - name, phone number, address, multiple tags for therapy types
2) Silver - same as free listing plus email, website link and picture
3) Gold - same as silver listing, plus testimonials and tags for type of insurance accepted

+ Use drupal-paypal-nodes and drupal-paypal-subscriptions to enable self-serve upgrade of listings from free to silver and gold (lm_paypal and ecommerce are alternative options).

+ Using location module, users can search by zip code or city name.  Search result page will display results on map using the gmap module, then list results, with gold and silver at top.  This can likely best be done with Views.  Advanced search will allow specifying distance and selecting tags for kinds of providers.

+ For SEO purposes, use Views to create a page for every city in the GeoIP database, with a URL like this: http://autism.healingthresholds.com/therapist/california/fresno-ca/.  Also using Views, create a list of all of these city pages, split by state and with 100 cities per page.  Include a static page with a US imagemap linking to state pages.

+ Use GeoIP information to dynamically generate a block of featured directory listings customized for the user's location.  So, a New York user will see New York listings in this block, even when they're browsing the About Us page.  This would use geoip or ad geoip. Using Views, the 4 enhanced listings will change randomly on each page view, because this block will not be cached.  Since the rest of site needs to support boost cache, we need to have the geolocated directory block served dynamically.  This can probably best be done by serving that block via AJAX.  See this thread (or the Google cache version, since that link isn't working right now).

We'd like to get bids on developing the prototype and then an hourly or similar fee for ongoing enhancements.  All module discussions above are just suggestions; we're open to any public or custom modules that will do the job.  We will happily contribute any custom modules to the community.  If any one piece of work is dominating the bid, please describe the issue.  In general, the more transparency you can provide into your bid (e.g., 10 hours for x plus 20 hours for y times z dollars, with a 20% markup for unexpected issues), the better.  We don't have a huge budget, but are looking for someone with the expertise and experience to work through the inevitable challenges.  In particular, we would appreciate seeing any related projects that you've been involved in.

Please contact me via my Drupal contact form.  Or, if you have any advice on the project (pitfalls to avoid, modules to use or not use) please reply here. Thanks.