Code Documentation

This documentation is specific to BILUMI's main website. Documentation for other applications is here.

Skip To Specific Pages

Overview

The diagram on the right presents a high level overview of our application's server/client components.

Our server hosts a permanent storage system (eg, MySql, sqlite3, PostgreSQL) and an instance of the BILUMI backend. The backend consists of python, django template html and static media such as css and javascript. We use the Django web framework to abstract database calls and HTTP requests and responses.

The backend can be broken down into the following modules:

  • An additional abstraction layer (model mixins) on top of Django models. These provide
    • An API for getting and adding data
    • Calculations of ratings and status (not yet implemented)
  • View logic (could also be thought as a controller between template and database)
  • Data system for controlling information flow between BILUMI and external databases (currently specific to SMS app)
  • User interface components

Software

Our system is built using these components.

Helpful toosl:

  • Firebug and Firebug lite
  • Firefox view source (apple-u or ctrl-u) and error console
  • web developer
  • grep
  • twill - A simple scripting language for Web browsing
  • django-evolution - An extension to Django that allows you to track changes in your models over time, and to update the database to reflect those changes

Source Code

Our Django project is rooted in /huginmunin/trunk/web/hm

The rest of the paths on this page are relative to this location in the repository.

directory description
/ project root, urls root file
env/ user specific project settings
db/ django database models, calculations, fixtures, solr
app/ root url file
app/media/ static media; eg, css, flash, javascript, images
app/views/ url and view files
app/templates/ template files
app/lib/ helpers (eg json stuff)
lib/ middleware, patches

Attachments