ScrumDo Development Notes

redy edited this page Sep 16, 2011 · 3 revisions

Here are a set of notes we keep to help remember some stuff...

Development branch: master
Production branch: production

Public Server: http://scrumdo.com/

Developer environment set up guide: Set Up

Data model diagram: Models

Special URLS
http://scrumdoo.com/stats - Displays statistics about # of users, projects, and stories over time
http://scrumdoo.com/projects/PROJECT-SLUG/test_data/#### - generates #### test stories. Try not to do this on the public server so we don't run into capacity problems.

Notes:

Never edit files in pinax-env, there's usually a way to copy that into the site first and have it override those files. pinax-env is uniuquely generated for each user.

The server doesn't use manage.py, it uses mod_wsgi on apache, so don't edit that and expect things to carry over.

ScrumDo.com Server Technologies:
Running on a Linux instance of Amazon EC2

Server Technologies
DJango - python web framework
Pinax - A set of Django apps used as a starting point http://pinaxproject.com https://github.com/pinax
Blog with some pinax tutorials: http://www.paolocorti.net/tag/the-pinax-tutorial/

Client Technologes:
JQuery - Javascript library http://jquery.com/
JQuery UI - UI lib built on JQuery http://jqueryui.com/
FaceBox - Those nice in page popups http://chriswanstrath.com/facebox/
Flot - javascript charting http://code.google.com/p/flot/

Icon Reference: http://www.famfamfam.com/lab/icons/silk/previews/index_abc.png - use {% silk "iconname" %} to add one.

Common Problems:
You run the server, and it fails like so:

python manage.py runserver
Traceback (most recent call last):
  File "manage.py", line 12, in 
    from django.conf import settings
ImportError: No module named django.conf

You forgot to source the pinax-env/bin/activitate this session

Django Command Extensions
The Django Command Extensions are installed in the app, some great stuff here, watch this screencast: http://ericholscher.com/blog/2008/sep/12/screencast-django-command-extensions/

Update Schema
django_evolution is installed, it helps to manage schema changes.

python manage.py syncdb - this is a normal django command that will create new tables. You still need to do this.

python manage.py evolve --hint Run this to see if an evolution is neccessary.
python manage.py evolve --hint --sql Run this to see what it would do.
python manage.py evolve --hint --execute Run this to actually do it.

If you pip install is complaining about python.h install python-dev package.