Portfolio
The following is a list work I've done. Both drupal based and software based.
Friend Finder module based on Octazen Solutions Address Book Importer
The company I'm working for at the moment asked me to write a module that took advantage of Octazen Solutions Address Book Importer to find friends on their site, and invite individuals that are not on the site.
The module looked very much like the contact importer on facebook. The user could enter the email address information, or upload a CSV file from outlook or thunderbird.
The second page was a list of users that were already on their site. This list was built from a basic query to see if the email address was on the site. The adding of friends is facilitated by using the user_relationship module.
The next page is a list of users that are not on the list that could be invited. This invitation process uses the invite module. The selected users are put together in an array, and invited using drupal_execute to submit the form programmatically.
Pluralism Ported to Drupal 6

After a Toronto Drupal User Group meet up discussion and presentation by walkah on the changes to Drupal's theme system for Drupal 6, I was inspired to create and share a Drupal theme for Drupal 6 with the community. I looked around http://www.freecsstemplate.com and found the Pluralism template and thought it was a good candidate to create the new theme.
http://www.freecsstemplates.org/preview/pluralism
The icons on the template were not sufficient for the theme, so I grabbed a few icons from Lullabot. The biggest problem with this approach was that the icons were created with transparent png which IE6 can not render properly. I'll be trying to fix this in the next few weeks.
I'm not a big fan of the list of taxonomy terms on a page, so I used jQuery and fieldset tag to hold them show/hide them. This is the same technique I used for the Dreamy theme which seems to be very popular.
IBEW 223 Drupal Site and Theme Upgrade

The IBEW 223 website used to be very dark. The client did not like it so much so they asked the company I worked for to make it a bit brighter. I guess they mean more white (and more white space) in the actual design. The inspiration they gave us was to make the site look like the IBEW international site. Since I thought the IBEW's site looked really old and dated, I took the colour scheme and applied it to an open source theme I found at freecsstemplates.org called Asterisk.
I changed the theme by removing some of the graphics, using the standard events module calendar, and using the jquery collapse and collapsible functionality to hide the category information from the user. I always thought that information was annoying and wanted to be able to hide it.
I designed it so it works in IE6, IE7, FF, and Safari. Since it was going to be the last theme I build for drupal in a while, I thought I would put some effort into this one.
CitizenSpeak Port to Drupal 5
The company I worked for asked me to port an old deprecated module from 4.7 to 5 because no one within the community had done so yet.
The CitizenSpeak module allows the creation of email petition campaign nodes.
Due to the large amount of changes in the Form generation in Drupal, there was quite a bit of work to be done to get it going on Drupal 5. I did test the module quite thoroughly, but as many developers know, you'll need to see it working under a heavy load before you can say for sure that it works well.
You can check it out here.
Drupal based UFCW 464A
Based on the Drupal 5 release. The design was heavily influenced by Congressman Mike Ferguson’s website which includes colour schemes, navigation, and basic format of the pages. The site uses the nice menu’s module to get the drop down menus at the top menu bar, and also for the menu at the side for directions. The design is web standards compliant, using CSS and XHTML for page construction.
The client was heavily involved in page design, information architecture, and imagery for the pages. To keep the costs down, the client did not partake in the CiviCRM module, labour news updates, and other modules that support the labour movement. This is the only basic Drupal based website I havve ever done. No fancy functionality on the back end. Not even a multi-user setup. But in the end, a very design heavy project.
Drupal Module to Notify Admin of Account Creation and Changes
A small and simple module that notifies the site admin (at the admin email address) that a user has registered, or that a user is changing their account information. This was necessary to let the admin of the site know when a user has registered so that they can grant certain permissions. This module solved the problem of clients complaining that they did not know when a user was registering. The previous solution was to have the admin constantly monitor the users of the site in the user management section of the admin panel. Now that many of the admins monitor their email religiously, the notify_admin module solved this problem beautifully.
Drupal Notify News Aggregator Module
I wrote a module that sends out news aggregator content based mostly on the Notify module’s basic implementation. This module uses quite a bit of hook_form_alter() to change add form fields to the admin form for the Notify module. The module uses Notify’s user maintenance functionality while the functionality of the module is actually separate from the system.
The creation of this module was based on a support request I made to the developers of Notify that asked them nicely to add news aggregator content to the notification emails. Based on their post about their priorities, they just do not get to feature requests at all. Many developers would say, "why not just write a patch and submit the patch?" I could have done that, but then I would submit that patch to the feature request queue. Since the maintainers don’t look at the feature request queue, I’d be wasting my time.
Duplicate Prevention Module for Drupal and CiviCRM
I wrote a module that prevented duplicate record duplication in CiviCRM. The basic problem was that users who registered in on a Drupal site with CiviCRM has a decent amount of information associated with their account. If they forget their password, they are more than likely going to create a new account rather than request a new password. The module I wrote was a basic small module that prevented that from happening.
Even though users can create whatever accounts they want to create, it becomes a hassle on the back end for the administrator to remove the duplicate accounts. What the module I created does is monitors the admin-selected registration fields in a hierarchical manor to make sure an existing record in CiviCRM does not have a Drupal user associated with it. If the Drupal user exists based on the selected criteria, registration for the user will be denied, their username shows up as their potential old record, and the user is told to request a new password or contact the site admin.
Drupal based CIS Department
Based on Drupal 5. Theme is completely CSS based. One of my first big Drupal projects. Used LDAP for authentication, and a considerable amount of theme customization. Flash slideshow used for the splash page. SEO optimized, etc.
I would have done some things differently now than I did back then, but I guess these things come with experience.
Drupal Based IBEWLU380
My first theme I had to design using their corporate identity. I didn't have very much creative freedom (or time), so I used tables for the theme. The site was developed using Drupal 5. You can still see some remnants of the bluemarine theme I based it on. Not my best work, but time was a factor.







