Python Case Studies

DiGpedia content management solution

DiGpedia is an interactive and engaging encyclopedia of information (bank of product claims, product demos, etc.) for marketers and partner agencies across regions to consult and use to enhance communications activities and fabric care product development. It's an internal application of the client, not available for the general public, and it was developed in partnership with Bürocratik who created the design and concept. We developed the tools to manage the multimedia content of the encyclopedia – videos, articles in pdf format - and implemented a custom validation and registration system for users.

DiGpedia overview

Web-based administration screens

Content managers access a secure web panel, restricted to authorized users, to create and edit claims, demos (videos) and articles. A Rich-Text editor implements a user interface familiar to any Microsoft Word user, enabling even novice computer users to quickly format text in a variety of styles. The administration screens provide easy media file management, allows uploading new files to the server, delete unused files and the automatic thumbnail generation for uploaded images.

Django admin with grappelli skin

Rich multimedia content

Research articles can be listed by category or searched by text or tag. Users can download the articles in PDF format, or request a ZIP archive with all the documents in a category. Videos uploaded through the administration screens are automatically converted the flv format for online viewing on the website and a thumbnail, which is displayed in the listing pages, is also automatically grabbed from the uploaded video. These demos can also be listed by category or searched by tag or title. The system dinamically generates the XML document used by the interactive Flash claims explorer. Claim data selected by the user can be exported to a CSV document.

Claims explorer

Video playing on the DiGpedia website

Technical details

Deployed with Apache and WSGI on a dedicated host running Linux. All authentication is handled by Django's auth system, with custom UserProfile and Authentication Backed to accomodate extra needed features (validity dates, login using email address, unliever/non-unilever profiles). Uses django's Admin screens with the Grappelli skin to manage content. FileBrowser is used to upload files to the server. A custom FileBrowser hook provides integration with ffmpeg to automatically create a flv version of the movies for online viewing and grab a frame as a png image to create a thumbnail. Zip archives of PDF documents are created on the fly using python's zipfile module. Tags in demos and research articles is implemented with the django-tagging module. Search on the website is powered by Haystack and Whoosh. Sensitive media files are efficiently served by the apache web server through mod x-sendfile to prevent direct unauthorized access.