Skip to main content

Blogs

I like drupal but...

Drupal is a major improvement over our previous CMS solution. I like the fact that it uses standard web technologies that are widely used. I like that I can go back to the source code to answer a question or address a problem. I like that it's flexible and extensible. I like that it has a large community of knowledgeable and helpful users.

But one thing I don't like about drupal is it's documentation. For the most part it's pretty good (it's better than many other open source projects). In fact, A good portion of Drupal is very well documented, especially older features. If you're needs are basic or you are familiar with Drupal 6 you should be able to get by without too much trouble. However because Drupal is a somewhat large project, there is a large amount of documentation. This can make getting up to speed a daunting task for new Drupal developers. This is compounded by the fact that Drupal was designed to be a modular system in which many apis have an impact on the end result of any code. This means that after you grasp the Block api well enough to create the traditional 'hello world' block, to do more you need to go read the Database api, then the Render api, then the Theme api, and so on.

Additionally, Drupal 7 introduced substantial changes, and the documentation has not entirely caught up yet. Some of documentation for the api changes are still in transition or incomplete (see Field api, Field Attach Api, Cache api).

Despite the documentation issues, drupal is still a pretty great platform to work with. And with some persistence there is enough information available to get you started. One of the best is the Examples module http://drupal.org/project/examples. api.drupal.org has some good information on it, but it can be difficult to navigate. Don't forget about "<?php drupal_set_message('<pre>' . print_r($whatever, true) . '</pre>') ?>" for when you need to examine the contents of a variable. And if you're really stumped, you can always go back to the source.

Oxford Rewrite

For those of you that have used UK's writing center before, you may be familiar with the Oxford scheduling system. All in all, its a rather advanced system that matches the best qualified consultants with the needs of the clients based on the answers to a few questions.

Due some technical and administrative issues with the system, as well as a change in requirements by the new administration at the Writing Center Oxford will be receiving a major rewrite. The new system will be much simpler. It will no longer do any advanced matching, leaving the selection of consultants up to the clients. This means we can do away with the list of questions asked everytime an appointment is made.

Our plan is for the new version of Oxford to be written as a drupal module. This does several things for us. First of all it will show off drupal, a technology we're excited to be using. Secondly, it will allow our entire team to become more experienced with drupal and module development. Those two aspects will help us to meet one of our new goals here at A&S computing, namely, becoming more agile so that we can rapidly push out useful applications.

The current concept and design for the new Oxford is as follows. To schedule an appointment the client would be presented with a list of appointments (each labeled with the associated consultant), selecting one would schedule the appointment. Upon logging in consultants would be shown a page of their upcoming appointments. Additionally there will be some sort of report screen, where a log of all appointments will be kept, and statistics can be generated that give the percentage of undergrad students using the service, for example.

To do this as a drupal module we have to create a few database tables. We need a users table with fields for user group (client/consultant), ESL (for logging purposes), student status (grad/undergrad again for logging). We need a schedule table that stores the schedules of the consultants. Lastly we'll need an appointments table that links client users to consultant schedules.

Overall this should be a great project for getting our feet wet with drupal and when its finished it'll be a useful application.