Maneater/Django development lessons: Part 1 (Prologue)

Through a series of posts, I'm counting down to a public test of the new Maneater Web site by the end of the weekend. We're hoping to launch Tuesday.

If you're interested in understanding the history of the project and the underlying technology that powers a fully-functional, cutting-edge newspaper site, then read up. If not, wait 'til the final post Sunday afternoon or evening. To be fair, there's a chance this ends up being a treatise on why frameworks are awesome and why I like Django so much right now.

This is mostly a technical writeup. For those that aren't programmers, the final post (Part 4) is a general "layman's terms" overview of new features on the site.

---

I'm not much of a quitter. Really. At some points last semester I still held all four of my jobs -- you know, the jobs that sucked the life out of me during the disaster semester I bombed -- even though I said I'd quit half of them. That's a dead giveaway to me. (I've since made good on my word to only work two of those jobs and on a more limited basis than before.)

But I also haven't been very good at finishing anything last year after say... Spring? I've recently bitched and moaned to a few people about how I have added absolutely nothing to my web, photo, and writing portfolios since right around November 2006.

To start this new year I decided, "to hell with it all, I'm going to finish things right now." And I jumped headfirst into this project, aiming to finish it once and for all.

Backstory

From 2005 to 2006, Chase Davis and Brian Hamman worked on building news sites based on Django, a Python-based framework. The Maneater site they built was the first Django site they worked on. They later launched successful Django-powered sites for the local Columbia Missourian and Vox Magazine.

The Maneater site never got off the ground. Although the site was complete, the project was marred by one false start after another after another due to its knack for crashing and burning. I came in and thought I'd solved the server load issues and we launched again. The site again buckled under any standard load. Over the course of the past two years, the project became a textbook example of vaporware.

Goodbye Django, Hello Drupal

I stepped down from my post as Online Editor this school year so I could put more focus on school and have fewer outside responsibilities. (I did mention that disaster semester, and I did not want to repeat those results.) We assembled a new Web team and after much deliberation we decided to scrap the Django project and build a site in Drupal, a PHP-based content management platform. We developed a new template and actually had a decently functional site going.

I wasn't a big fan of Drupal, as it represented a very static way of using data. Everything was represented by "Nodes," which sounded simple enough to extend into different types of data, but became a nightmare when trying to create the type of cross-linking data models I had in mind for the Maneater. But I wasn't in charge, so the argument became moot; I just put my faith in our project lead and our team and went with it.

We stuck with the Drupal project until our project lead flaked out and I became frustrated with the prospect of finishing programming the site myself and importing the archives from the old Maneater site -- Drupal's database structure is not the friendliest once "nodes" are extended. (For reference, the old site's database table of articles alone weighs in at over 27,000 rows and is larger than 80MB.)

---

Next: Going back to Django and creating the initial features, data models, and admin site.