Northern California SBDC

NCSBDC site screenshot

The Northern California Small Business Development Center (at the time of this writing, the main site wasn’t live yet, so the site on the other side of that link may look different from the screenshot above… more about that later) is an organization which aims to help small businesses start up and thrive. They’re based out of Humboldt State University in Arcata, California, and have a dozen or so regional offices between the Oregon border and the San Francisco Bay area.

The SBDC project was a big project, as they wanted a site for the entire organization, plus individual sites for each regional office. As seems to be typical for large projects like this, the client provided us with a detailed timetable and spec sheet, and we provided the client with a detailed line-by-line projected budget, and both fell apart soon after the project started due to feature creep, occasional periods of slow responses from the client, and unexpected difficulties. (If nothing else, it was a learning experience on how to avoid these problems from occurring in the future…)

One of those difficulties had to do with events. The organization uses some ugly enterprisey system called WebCATS to track events now. (To give you an idea of how ugly and enterprisey it is, their site throws you an error if you try to log in when you’re not using Internet Explorer. But if I have WebKit-based OmniWeb pretend to be IE by giving it a fake User-Agent header, it works just fine.) I originally assumed the site would be replacing this, but it turns out instead that the site was to import the events into the site from WebCATS. But the only way to do so is to connect to their back-end database, which uses SQL Server (of course). SQL Server supports ODBC, but the client wanted to host the sites on a low-end shared hosting service, so I couldn’t reconfigure/recompile PHP to add in its ODBC support. Long story short, the Rube Goldbergish method of getting this working involved uploading a compiled Java runtime binary along with a Java-powered ODBC client called SQL Workbench/J. In a module’s hook_cron(), we use shell_exec() to use the ODBC client to connect to the server and dump the event data in CSV format, which is then parsed by the module and event nodes are created, updated or deleted accordingly. It works most of the time now. Barf.

As mentioned before, this was a multi-site project (my first major one, and my first one for a client period). As the client wanted the ability to easily share data and users between sites, we opted for a Domain Access approach, which worked well, though there was a bit of a learning curve for both me and the client in terms of wrapping one’s mind around how we can get some data to appear in some places but not in others. It was fun, though, and this project is the reason for one of my simple pet patches which I hope will make it into Drupal 7, if not earlier. The site uses six different themes (if I recall correctly - as an example of the feature creep involved, there were only four originally planned), though the other five are basically just cosmetic changes of the base one (different background patterns, etc). The base theme is a Zen subtheme, and four other themes are subthemes of that first theme, and then one other theme is a subtheme of one of the four subthemes. All the theme designs were created by Ray Estrada, a very talented graphic artist who has since left the area, unfortunately. I think there were a total of thirteen sites at the point when our contact at the NCSBDC took everything over; he’s since added a couple more himself.

As mentioned parenthetically above, at the time of this writing, the main Nor Cal SBDC site wasn’t live yet (way beyond the aforementioned timetable, but everything’s in the client’s hands now - it’s their job to take it live when they have content for it…), but a few of the subsites are. Check out the Alameda SBDC, or the SBDC Technology Advisory Program. Heck, after the handover, a subsite was even created which is being used by the SBDC organization for all of California!

Back to my Portfolio page

About RGR

Ray Gun Robot is the personal site of Garrett Albright, a fairly decent web developer living in northern California. Find out more about me or check out some projects I’ve worked on.