Friday, August 19, 2011

Building a Web Directory

The project that consumed a large chunk of my time this summer was being project manager for our new university web site. It launched August 1 (on time and on budget, I'm happy to report), after a very intense summer of teamwork. Knowmad Technologies is the web development company that we partnered with to identify strategies, do design and architecture work, and deploy the site in a WebGUI content management system. On the university side I am fortunate to have a talented and dedicated team: Josh Nypaver and Erin Phipps. I took on small pieces of the project myself; one of those was the site directory.Together with William McKee at Knowmad, we created an end-to-end process for creating and maintaining a web-based directory of staff, faculty, and offices. Here's how it works:

1. I built a light-weight forms solution in openIGOR. The usual way of handling form data is to create a database table to save the entries. In order to maintain flexibility at the cost of query ability, I used plain text files instead, with a name=value syntax, like FirstName=David. Nothing is ever deleted--when entries are edited, it just appends the new version. This allows for complete roll-back and journaling. It also allows me to change the form without destroying a link to database tables.  Most of the form is shown below.

2. Users log in to IGOR using their normal authentication through LDAP. This gives me lots of information about them since IGOR keeps track of who belongs to what group. So we know who's a biology professor and who works in the financial aid office, and so on. This is important because the directory is searchable by this criterion. Even better, these memberships are controlled by group administrators, so I don't have to personally modify them (although I spent several days cleaning it up, and we still don't have a great way to purge ex-employees other than manual changes).

3. When the user saves their directory information, the server sends an email to the web editor, who has administrative access to fix spelling, grammar, and standardize building names. Photos have to be hand edited right now to specification.

4. A Perl script is run to download all of this, as well as the names of groups for the directory (there's a flag to say which ones those are--we don't want committees showing up on the public web), and the index that says who is in what group. The three files (directory, groups, and index) are comma delimited text files.

5. The directory data along with edited photos is uploaded to the web server. Two scripts that William wrote put everything in place.Once that's done, it's live.

6. There are two sorts of queries that can be run on the web directory, which you can find here: (click the image)

The first searches on all fields, and the second just on the group name relationships. This allows us to display office directories as well as more general searches. This was William's wonderful idea, and it gives us a simple implementation that is very powerful.

It's hard to keep directories up to date, but by giving staff and faculty members direct control, we can shift responsibility from IT to the users. It seems to make them happy too. So far, the system has worked flawlessly, and the web directory is all I could have hoped it would be.Not all of the information from the IGOR form is yet on the web, and some of the fields really need validation or restricted options (like building names). But as just one element in a huge web project, we're quite happy with how it turned out.


  1. Thanks for sharing your incredible thoughts on Web application development services. it is valuable.

  2. Thanku so much for writing such a nice blog regarding web designing.I am getting help from this blog