Friday, April 11, 2008

So what did I do on the website?

I've gotten a lot of emails asking for specifics on what I did with http://nasascience.nasa.gov. I'll try and address this on several different levels. First details about the project and effort:

The project had about 20 people on it, with three of us being full time developer/engineers. The rest were system administrators, graphic designers, content editors, and the odd rotating management. The project took over a year.

The project was created using mostly open source tools. Comparable purchasable tools would have cost $200k-$250K to get started, required as much per year in licensing costs, and would have required just as much work. Several large firms and agencies use the same toolset that we do for this precise reason, with examples being Novell, Lufthansa, and the CIA (yes, the CIA can't afford overpriced tools).

My Role
Though the project officially started in Spring 2007, my effort started in Fall 2006. That was when I did a product comparison (with presentation) between a number of purchasable (COTS) and open source (OS) remedies to the issue of content management. I had been an advocate of OS efforts for some time. Apparently I did a good job so for the NASA Science project, they choose one of my OS suggestions.

A quick list of things I did once the project began includes:
  • Created over a hundred Plone views from the data. If you know how to view the source HTML, you can see thats my work. The CSS/Javascript/images were done by others. Because of code reuse techniques the amount of code generated is actually quite small.
  • Added and modified lots of different content types and their relations with other content types. Content types include things like Missions, Programs, Big Questions, and areas of the site you can't see yet. ;)
  • Wrote a script to map out the Zope 2 database architecture when our tool to handle that broke down. The database architecture is complex, arguably too complex and now that we are done with launch, we will be simplifying it (we hope).
  • Modified an existing third party Plone package to support handling of incoming RSS feeds that followed no standard but their own.
  • Created most of the Zope 3 feedback forms and their handlers on the site. I have to admit I really don't like the form api we used as the results are ugly and the library itself is annoying. You can read my thoughts on that subject here (warning - rather technical).
  • Added and modified existing relationships between content areas.
  • Created a Zope 3 captcha engine that eventually got shelved.
  • Ensured that HTML rendered is section 508 compliant and meets international usability requirements. Which means the visually disabled can use it without issue. I wasn't the 508 overseer, and the one we had sucked. But I certainly adhered to the protocols.
There is much other stuff that I did that I'll try to address in future blog posts. If you want the technicalese, you can visit my technical blog at http://pydanny.blogspot.com/.

Some of the open source tools we used include:
Note the lack of Microsoft, Sun, Oracle, and Java? Thats because we believe in true open source and choosing the best tools.

No comments: