20seven

Devigner blog about development and design

Django-Loupe for Design Collaboration

I’ve been using Basecamp for years and have a love/hate relationship with it simply because it costs me money for clients that don’t want to use it. However, I can’t get rid of it because there are a few clients I have that need collaboration for designs. For coding projects I use various ticketing systems from Trac to Sifter and I won’t get into that in this post.

noteform

During a current project Trac is being used for the backend parts but it falls apart on design collaboration. After a few late nights I’m thrilled with the progress of Django-Loupe for design collab.
h3. Features

  • Projects
  • Corkboards
  • Images (screenshots, sketches, etc.)
  • Comments
  • Image Notes
  • Fully pluggable so you can add it to your existing Django projects

How it works?

Like other project management tools Loupe allows the site admin to create projects and assign the users that have access to them.

project

Each project has what’s called corkboards. A corkboard is a grouping of images for a project such as home page mockups. The corkboard stores all revisions of this design and it’s relative conversations using django’s comments framework.

corkboard

Each image in the corkboard has it’s own comments thread and notes. Notes are flickr-style image notes drawn directly on the image to help pin-point problem areas in the design process.

ful image

Dependencies

  • Python imaging library
  • ImageKit
  • Django-extensions

Instructions

The project is hosted on bitbucket. Clone the project or download a package and add ‘Loupe’ to your projects settings under INSTALLED_APPS.

Add the following to your settings.py or local_settings.py and adjust appropriately:


# Width in pixels of the thumbnail
LOUPE_RESIZE_THUMB_WIDTH = 100
# Height in pixels of the thumbnail
LOUPE_RESIZE_THUMB_HEIGHT  = 75
# Crop thubmnails? True or False 
LOUPE_RESIZE_THUMB_CROP = True
# Width in pixels of the display size (not full size image)
LOUPE_RESIZE_DISPLAY_WIDTH = 800
# Pre-cache images on upload? True or False
LOUPE_PRE_CACHE_IMAGES = True
# Increment the view count on images? True or False
LOUPE_INCREMENT_COUNT = True

Loupe assumes that users are registered and authenticated and does not handle user registration. For that I suggest django-registration.

Included in the project is an sample project for an example of how to work with Loupe. It currently does not have registration included. You will be running this as the administrator.

Planned additional features

  • RSS and/or Atom feeds
  • Notifications

These features will be rolled into the project hopefully this weekend.

If anyone would like to see other features added to this, feel free to jump in, leave a ticket, shoot me an email at greg at 20seven dot org, or find me on twitter