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:
- Launching quickly was priority number one. I set a goal of 3 days.
- Use as much existing code as possible. Even if it wasn’t a perfect fit, if it was functional, use it.
- Optimize later.
- Stop scope/feature creep at all costs.
- 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.
- Pinax (aka, Django Hot Club of France), would do the bulk of the work and also provide some great features for future development of the project
- pygpx was a good base for parsing GPX files
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.
Comments
Got something to say?
This was written on July, 20 2008 and is filed in django, trailmapping.
Our Products
Categories
- SEO
- accessiblity
- code
- company news
- django
- gondola
- portfolio
- presentation
- screencast
- software
- subversion
- trailmapping
- wordpress
Archives
- December, 2008
- November, 2008
- September, 2008
- August, 2008
- July, 2008
- June, 2008
- May, 2008
- April, 2008
Elsewhere
What we’ve been up to online
-
Aaron Mentele, Charisma 18 ยป Turns
Electric Pulp's experience of the last economic downturn
Pete, 0 minutes ago -
pushed to master at lincolnloop/django-beancounter
Pete, 1 hour, 45 minutes ago -
committed to lincolnloop/django-beancounter
Pete, 1 hour, 45 minutes ago -
committed to lincolnloop/django-beancounter
Pete, 2 hours, 24 minutes ago -
pushed to master at lincolnloop/django-beancounter
Pete, 2 hours, 24 minutes ago -
committed to lincolnloop/django-beancounter
Pete, 2 hours, 24 minutes ago -
pushed to master at lincolnloop/django-beancounter
Pete, 2 hours, 32 minutes ago -
committed to lincolnloop/django-beancounter
Pete, 2 hours, 32 minutes ago -
committed to lincolnloop/django-beancounter
Pete, 1 day, 1 hour ago -
committed to lincolnloop/django-beancounter
Pete, 1 day, 1 hour ago -
committed to lincolnloop/django-beancounter
Pete, 1 day, 1 hour ago -
committed to lincolnloop/django-beancounter
Pete, 1 day, 1 hour ago -
committed to lincolnloop/django-beancounter
Pete, 1 day, 1 hour ago -
pushed to master at lincolnloop/django-beancounter
Pete, 1 day, 1 hour ago -
applied fork commits to lincoln-loop-deploy/master
Pete, 1 week, 5 days ago


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!
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.
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.
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
Pretty impressive. I’ve always wondered how to get projects done period, much less in a week.
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
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
quite a useful tip for building website with Django!
thanks a lot
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.