Django Projects
Over the past few years I’ve been extremely active developing Django applications both on a freelance and personal basis and for my employer, Stone Ward for their clients. Below is a mostly complete listing of those applications and web sites and small description of what they do. Not all of them are publicly accessible so I’ve included screen shots.
Please do not email me requesting the source code for the sites. In almost every case, it is owned by my clients and I have no say over what is done with it.
Freelance, personal, and Pro Bono Work
python-googleanalytics (Python)
This is a python client that talks to the official Google Analytics API and can retrieve any amount of data that you might normally extract in a structured way from the Google Analytics website.
There is an extremely detailed usage document included with the project, which you can read here. There is also a lot of documentation within the client code itself, in addition to extensive tests for every major feature.
If you don’t want to grab it from Github, you can also just type sudo easy_install python-googleanalytics from most systems with a command line (Linux, Mac OS X).
Ping.FM Smasher (Django)
This is a Django application that consumes RSS feeds and then delivers those updates to a Ping.FM account over email. You can configure your Ping.FM account to then deliver those updates to any number of social networks (Facebook, MySpace) or microblogging services (Twitter, Identi.ca, Plurk, et cetera).
In addition, the application supports running your URLs through a shortening service (should be easy enough to set it up for almost any shortener, including custom built) and the addition of custom Google Analytics campaign parameters on a per-feed basis.
TwitterSmash (Django)
This is a Django application that consumes the RSS feeds of any number of Twitter accounts, merges them and delivers those to an output Twitter account. It supports a number of features like:
- Filtering on hashtag or @replies
- Removing or reorganizing the hashtags from the messages before delivering the messages
- Appending the messages with a “signature” like ^CE (for Clint Ecker) based on who the original tweet came from.
irccat-rss-feeds (Python/Irccat)
This is a Python script that takes an RSS feed as an argument and the name of a few IRC channels (#mychannel). The script idles until it detects a new item in the feed and then pipes the new items out over netcat. This is for use with the IRCcat bot which accepts messages prefixed with channel names and pushes them out over IRC.
Django-clint-helpers (Django)
A set of some Django template tags, context processors, and shortcuts that I found myself using a lot.
django-friendly
This is a reusable Django application that allows you to bring FriendFeed information into your site. FriendFeed is a service that monitors all your activity (you opt into this, of course) on social website (e.g. Digg, your blog, YouTube, Flickr, and about 30 more services). django-friendly consists of several database models to hold this information and includes the FriendFeed concepts of Likes and Comments.
django-friendly also defines a feed management command that makes it easy to set up a cron job to pull down your FriendFeed entries and likes on a regular basis.
For displaying the FriendFeed data in your templates, there are several template tags (e.g. {% get_friendfeed_entry_list %}, {% get_friendfeed_media_list %}, {% get_friendfeed_comment_list %}, and more).
For a full description of all the good stuff in django-friendly please read my initial post on the project. I recently wrote a secondary post highlighting some of the other tags.
django-galaxy
Django-galaxy is essentially some models to represent Blogs and Posts, some basic templates for basic display, and it tries to make as much use of generic views (and other such things) as to be as extensible and configurable as possible.
The real magic comes in with the script you have to run on a regular basic to comb your feeds. This uses the venerable feedparser project by Mark Pilgrim and goes above and beyond to determine if an RSS feed has bad date-support, supports tagging (and uses django-tagging) when appropriate. There’s a bunch of other junk in there to handle janky feed, which are more prevalent than you might imagine!
django-chunks
An extremely simple, open-source Django application that provides facilities for inserting small snippets of content into your Django templates which are manageable from the Django admin interface. Read more about django-chunks.
django-google-analytics
Another simple Django application that allows developers or site managers to attach a Google Analytics code to a site and then insert a small unobtrusive template tag to output the proper HTML and JavaScript codes. Read more about django-google-analytics.
RestrictMiddleware
A simple Django middleware component that allows a developer to restrict access to a Django project to users who have certain IP addresses, HTTP referrers, or special URL codes. Read more about RestrictMiddleware
TruGreen Heroes
An extremely complex, internal employee-outreach program that allowed TruGreen employees to nominate their coworkers for recognition. The finalists were allowed to upload videos they produced with Flip cameras, and all employees could vote on the best videos. Winners were awarded prizes.

Bridge2Rwanda
A simple CMS site that allows site managers to edit all content via the Django admin application. A robust membership system allows donors or volunteers to sign up for accounts, donate money through a custom payment system, signup for volunteer opportunities and newsletters.

View the Bridge2Rwanda website
Clinton School of Research / Speaker Series
A content managed site that aggregates online video, downloadable MP4, and podcasts of speakers who have given talks at the Arkansas Bill Clinton School of Public Service. Talks are discovered by exploring by speaker, date of talk, keyword, or by a tag cloud. This site is currently in the process of being redesigned and getting a tighter focus on usability.

View the Clinton School Speaker Series
Arkansas Heart Ball Online Auction
The Arkansas Heart Ball Auction for 2007 was taking place in a physical location in Little Rock and its organizers wanted to conduct an online virtual auction of the pieces prior to the event. The entire site is built in Django and exhibits the pieces as if they were actually in a gallery. Artist profiles and high-resolution art work is displayed in Lightbox-style dialogs. Bidding is conducted through authenticated and semi-verified accounts.

This project makes use of many third party projects including django-registration, typogrify, and django-countries. This piece was designed by Kyle Floyd of Stone Ward and the HTML/CSS development was performed by the excellent Lee Aylward.
Writers Reports version 2.0
The second version of this website was rewritten from the ground up using Django best practices including generic views, and an extreme adherence to “Don’t Repeat Yourself” (e.g. named views, the {% url %} tag, and more).
A revamped separation of models and a more robust, pluggable web searching system allows for tons more metadata to be pulled in from the web. In fact, this system is so flexible it could theoretically be targeted at any number of online publishing websites.
Other than the behind the scenes coding, the look of the site remained intact, except the use of the light-weight Google Charts API.




Facebook application: “my iTunes purchases”
This is a Django application built with PyFacebook and DjangoFB libraries provided by the Facebook team. Apple provides an RSS feed of your iTunes Purchases and my Facebook application instructs users how to obtain that feed, and then provide it. The application then regularly checks that feed and updates the user’s profile and mini-feed when new items are purchased. The album art, title, artist, and a link to the iTunes Music Store are listed.

If you’re a registered user on Facebook, you can check out the application page. You can see how the application displays the data in the screen shot above.
Meineke Thump Bowl (Gaming API):
My most recent Django project was the development of a backend API for the extremely popular online game, Meineke Thump Bowl. The front end was designed by Tim Hicks and developed completely in Flash by Jason Marlin, both of Stone Ward. The flash piece communicates with my backend server using POST requests and returns information in a special XML format. The backend is fairly general and can be reused for almost any online gaming scenario that requires the creation and storage of user accounts, individual games, their associated metadata, the production of high score lists, rankings, and more.
Ars Technica’s Job Board
The job board is my most visited and widely used site. It is also the site in which I was forced to make darn sure I had my scaling strategy well planned out. On our first day, the site was hit pretty hard and it continues to be beat up on a daily basis, just by the virtue of the property it is featured on. This is the only site on which I currently use memcached and it works beautifully.

The job board is a fully custom application which integrates into two payment processors, Paypal (using their express method) and Authorize.NET using their Advanced Integration Method. It also provides a few standard RSS feeds for the all listings, listings of just certain types of listings, and also search feeds which are essentially infinite. This design for this site is almost entirely done by Aurich Lawson. Most of the CSS was developed by Kurt Mackey of Mubble.
Ars Technica’s Writers Reports
This is a website that has been in nearly continuous use for over two and half years. It is an internal aggregator for the writers and journalist of a major online technology news site called Ars Technica. It aggregates statistics for over 10,000 distinct articles, reviews, and postings and performs a number of aggregations on that data by specific writer, month, and site section. Each section and author has their monthly production graphed dynamically. This application also monitors other aggregation sites via their APIs when available to give writers a snapshot of a particular article’s popularity (i.e. Technorati, Digg, et cetera).


This is one of the first major projects I undertook with Django and the underlying code reflects that. Not only is it one of my oldest attempts with Django, it has endured at least two major updates to the underlying Django framework. This site was designed by Clint Ecker, but was heavily influenced by Aurich Lawson’s original design for Ars Technica’s main site.
Ars Technica Secret Santa
Ars Technica Secret Santa is a community driven event for the readers and posters of the Ars Technica open forum. It allows forums users to sign up, create a profile, and eventually be anonymously matched with another member that could reside anywhere in the world. The system also allows for regional preferences (i.e. “I only want to be matched with someone in my own country”).

The secret santa application allows for online anonymous messaging between Santa and recipient as well as from recipient to Santa (and reverse) and email notifications. The Ars Technica Secret Santa design, HTML, and CSS was done entirely by Clint Ecker.
-
clint posted this