Monday, April 18 2011 9 a.m.
National Geographic creates educational programs, reference material and news used by teachers, students and parents in the United States and across the world to promote geo-literacy. And now this content is available online using a custom CMS built with Django.
One of the challenges of creating this site was NatGeo’s unique requirement for the CMS. Much of the content is available in special versions for each of the 5 audience types targeted by NatGeo. Not only is the content often different depending on audience type, but the look of the page and even the individual content items available are different, depending on who you are. In addition to the different audience types, many CMS fields support different text difficulties for novice to expert readers. For example, see the teacher's version versus the family version of the same biodiversity encyclopedic entry.
To accomplish this, we extended the Django admin to allow for multiple audience versions of text to be created within one text field. The default version is stored in the model’s field and all the other versions are stored in a generic detail table used by all the models that allow for audience aware fields.
The CMS itself, the foundation of which was created for the news side of NatGeo, allows for any module to be placed on any page with content attached. It also allows for inheritance of modules between related pages. For example, all encyclopedic entry pages are very similar. We create one template and use that for all pages, then allow for overriding of modules for those pages that require something special.
Another unique feature of the site is search. The search page combines searching across the education site, all of National Geographic and also all Verizon Thinkfinity partners. You can filter by grade, audience type, resource type or subject matter. Try it here.
The site is built using Django, Postgresql, Memcache, Google Search Appliance, Solr, Buildout, SVN, Hudson, Jira, Trac, Apache and Squid.
A site this large takes quite a few people to create. The graphic, information and tech design for the site was created by Blenderbox of which I headed the tech portion. On the tech side, the main developers working on the site, in alphabetical order are: Matthew Farver, Esteban Feldman, Julia Gonzalez, Anton Kolechkin, Rudy Menendez and Dmitry Shevchenko. Non-technical Blenderbox resources include Jacqueline Maupai, Sarah McLoughlin and Matt Raw. On the National Geographic side our main points of contact are Johnny Dobbins, Sean Crickenberger and Patricia Norris. And of course the entire NatGeo content team!
More Blog Entries