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.

Reader Comments

  • July 23, 2008 at 1:57 a.m. #
    Nick chimed in with:

    Great article, very impressive. I understood that it is always better to have working website instead of pack of dusted shelved projects.

    May be next time could you please describe pinax in details? There are not so much info on their website. I mean when it’s better to use pinax or not to use it at all.

    Thank you!

  • July 23, 2008 at 5:07 a.m. #
    Nick Efford mentioned:

    Interesting stuff. I’ve been toying with a similar Django-based project myself for quite a while now – for runners rather than mountain bikers. I’ve got some integration with Google Maps working but haven’t gotten around to implementing uploading and parsing of GPS data yet.

  • July 23, 2008 at 7:17 a.m. #
    Apit responded:

    Yeah, very cool. If only i could make like that for bike community here. Btw, I second request about you write more about pinax. Thx.

  • July 23, 2008 at 7:18 a.m. #
    yml mentioned:

    Hello,
    It looks very nice for the amount time that you have put on it. I have been using :
    * http://sportstracker.nokia.com/
    For quite sometimes now and I have been a very happy user.
    Did you plan to open up the source code ?
    Congratulation for this web site.
    —yml

  • July 23, 2008 at 8:54 a.m. #
    Bill Williams added:

    Pretty impressive. I’ve always wondered how to get projects done period, much less in a week.

  • July 23, 2008 at 9:15 a.m. #
    John M mentioned:

    Great Article. I wanted to create a site of great freeway on/off ramps. Sounds weird I know, but if you’re a driving buff, it doesn’t.

    For us django noob’s, any source code for your site in our future.

    Congrats on meeting your deadlines. I think it looks great for what you did in the time.

    John

  • July 23, 2008 at 9:44 a.m. #
    AnarioN chimed in with:

    Great idea and very good website.

    Do you guys have any idea what app to use in a similar Django project, that would allow me to draw (plan) the route by hand ?

    AnarioN

  • July 23, 2008 at 11:03 p.m. #
    sean added:

    quite a useful tip for building website with Django!

    thanks a lot

  • July 27, 2008 at 8:25 a.m. #
    Empty commented:

    Great writeup and very inspirational. It’s exciting to see how you built on the Pinax platform. I guess the thing we can learn from the comments is that we need to do a better job of documenting things. Quite honestly we’ve really been building it out so fast that there hasn’t been much documentation focus yet.

Got something to say?





This was written on July, 20 2008 and is filed in trailmapping, django.

Our Products

Premier Real Estate Websites
Our simple and easy real estate CMS. Now open for full developer access.
Trailmapping
Still in development, Trailmapping is a GPS enabled trail guide and trip logger.

Categories

Archives

Elsewhere

What I’ve been up to online

  • wow, iwantsandyand now pownce both turning out the lights with 2 weeks notice
    15 hours, 37 minutes ago #
  • Hire managers of one - (37signals)
    Self-starters are better than people that need their hand held.
    4 days, 20 hours ago #
  • s3Slider jQuery plugin - Overview
    slick Flash-like slideshow with text overlays in jQuery
    5 days, 15 hours ago #
  • Hypothetically speaking, if a startup you worked for lost funding, owed you money and wouldn't respond to your messages, what would you do?
    1 week, 3 days ago #
  • Ugh, Apple is really embracing DRM http://tinyurl.com/5adkbg
    1 week, 3 days ago #
  • @ericholscher nice post: http://tinyurl.com/699vjh
    1 week, 3 days ago #
  • rebuilding the Lincoln Loop company intranet
    1 week, 3 days ago #
  • sign of the economy: I've spent 2 hours today trying to collect money for delinquent accounts. Probably more than I spent in the last year.
    1 week, 4 days ago #
  • A List Apart: Articles: A More Useful 404

    1 week, 5 days ago #
  • I'm strongly considering ditching Backpack in favor of Google Apps
    1 week, 6 days ago #
  • Scratching my own itch: "Drive-by" comments for git repos. No diffs, no patches, just click & comment. http://tinyurl.com/5kmos8
    2 weeks ago #
  • Rancho - Home
    Django Basecamp clone
    2 weeks ago #
  • our top-secret code commenting project
     
    2 weeks ago #
  • Cola: Real-Time Shared Editing on Vimeo

    2 weeks, 2 days ago #
  • If you need to pass HTTP Authorization headers through mod_wsgi, make sure you've turned WSGIPassAuthorization On http://tinyurl.com/6q2w98
    2 weeks, 3 days ago #

Interested in working with us?
Fill out the form below or contact us at:

PO Box 774441
Steamboat Springs, CO
80477

ph: 970.879.8810
fx:  970.367.8596
info@lincolnloop.com