Friday, February 17, 2006

The Technology behind JobJitsu.com

JobJitsu Technology Overview:
So now a little bit about the technology behind the job board...

JobJitsu is more of a home grown web app. we have some general purpose modules that handle most of the common web application facilities:

  • cache -- a wrapper around the memcache client provided by tummy.com
  • conf -- where we keep common configuration settings
  • db -- a data access module that manages connections and uses Greg Stein's DTuple.py
  • dispatch -- this guy handles the url to resource mapping, sessions and a few other things.
  • log -- wrapper around python logging module
  • mail -- mail wrapper
  • re -- common precompiled regex's (email, url and etc.)
  • sesh -- our session module
  • util -- utility stuffs like (string manipulation, url parsing and etc.)

The presentation is handled by Cheetah. Cheetah has nice syntax (no-xml), flexibility, and performance (precompiled templates). One other feature that I find hard to live without is the template inheritance. Cheetah allows you to define a base page which other pages can extend (good for header + sidebar + footer).

We are using MySQL 5.0 (which supports stored procedures) on top of the innodb storage engine for persistence.

Finally what modern web app would be complete without some cool AJAX? Matt has some neat JSON stuffs that he is working on.

Next post will be an in depth look at how we manage our data including how we defined our data model, a quick discussion on stored procedures, indexing strategies and how we actually pass data back and forth between Python and the MySQL

1 comment:

Chris Perkins said...

Have you looked into sqlalchemy?