Primary image for Building a Community Site with Django in 40 Hours or Less

Building a Community Site with Django in 40 Hours or Less

All the recent hub bub about 1 week and 1 day application development, motivated me to see how quickly I could launch a website for myself. I, like many developers, struggle with building and releasing personal sites. Ask a web developer and they’re likely to tell you about a couple of sites they started and never finished. Time is always an issue, but the bigger problems are striving for perfection prior to launch and always holding out for that one “killer” feature. As time goes on, interest in the project wanes until it finally gets shelved.

The Plan

Prior to development, I set a few goals for myself:

  1. Launching quickly was priority number one. I set a goal of 3 days.
  2. Use as much existing code as possible. Even if it wasn’t a perfect fit, if it was functional, use it.
  3. Optimize later.
  4. Stop scope/feature creep at all costs.
  5. Stay focused. I’m easily sidetracked when working on personal projects.

Notice “building a killer website” was not one of the goals. This project was strictly a speed challenge a’la Django Dash.

The Idea

I wanted to build a site cataloging mountain bike trails complete with full GPS data. I decided not to pigeon-hole the site into just mountain biking, so a general purpose trail catalog would be my focus. I know, there’s already a couple sites like this, but I felt I could do it better.

The features I set out to have by launch:

  • User account management
  • Accept and parse user generated trail GPS data
  • Mapping
  • Comments

Execution

The first step was to search for existing code.

These snippets helped behind the scenes:

Research, coding and deployment took about 20 hours, beating my goal of 3 days.

Enter Demons Scope Creep

As usual, scope creep crept in and I felt the need to do the following work above and beyond my initial feature set:

  • Gut Pinax templates of extra features not needed for initial launch
  • Clean up default Pinax templates with Blueprint CSS
  • Tinker with layout
  • Repurpose Pinax blogs as a Trip log feature
  • Add elevation maps via flot

Damn, I failed on goals 4 & 5, but I still did pretty well overall. Lots of use of existing code and total time spent is now about 40 hours.

The Result, Trailmapping.com

See for yourself. My idea is now live at Trailmapping.com.

It is far from a polished site, but for 1 week of development time, I’m very proud of the results. It is live and usable in its current state, so I consider the project a success. I held back on a lot of great features that I easily could have tinkered on for months. As expected, it was more satisfying to launch a functional site than toil for months in the development stage. I also suspect any further development will be more effective at improving the site than just creating an endless stream of “wouldn’t it be cool if” features as is typical with my personal projects.

I’ll be using the site for myself, but hopefully other people find it useful too. Let me know what you think.

Peter Baumgartner

About the author

Peter Baumgartner

Peter is the founder of Lincoln Loop, having built it up from a small freelance operation in 2007 to what it is today. He is constantly learning and is well-versed in many technical disciplines including devops, …