The University of Chicago Library needed to do a full redesign and port of their 5,000+ page public facing website and staff intranet to a new content management system. My roll on this project consisted of planning and development.
In the planning stage of the project, I aided in coming up with technical specifications including the documentation of page models and content types. A major job I was tasked with, was a survey and analysis of content management systems currently available. Instead of just choosing one of the commonly used systems, we wanted to be sure we were choosing the best system for our technical needs as well as the needs of our content authors. After an exhaustive analysis, I found that the best system for the Library’s needs was a less conventional system called Wagtail (based on Python and Django). This recommendation turned out to be highly correlated to the success of the project.
In the development stage, I worked with another back-end developer and a designer/front-end developer to render the final site. My main roll in development consisted of Python programming and Django templating. Major contributions included writing the Django models for many of the content types, writing modules for custom page functionality, creating RESTful APIs and interfacing with RESTful APIs to render dynamic content. Some such functionality included the dynamic display of building hours based on what department a page belongs to, the rendering of alerts across all of the Library’s websites (including those not in Wagtail), and the dynamic display of featured Librarians and research guides.
In one major accomplishment, I collaborated with Wagtail developers in Switzerland and England in the development of a TableBlock streamfield for the display of html tables. This code was ultimately contributed back to the Wagtail core as a contrib module. Though not responsible for the initial development of this component, I was able to finalize the code written by Moritz Pfeiffer and David Seddon based on requests from the Wagtail team. I also wrote unit tests and documentation for the finalized component. In the end, our pull request, initiated by Moritz Pfeiffer, was called out by the Wagtail team as an, "example of how self-coordinating groups of strangers can initiate, refine and complete software projects".