- Ubuntu 12.04+
- Git: Version control, pushing to different environments
- Apache HTTPD: Serving the site and its' assets
- WSGI module: WSGI interface between Python and Apache
- Python: Back-end language
- Django: Back-end framework
- Sass: CSS preprocessor
- Compass: Sass compiler
- CoffeeScript: JavaScript language
- CoffeeScript CLI: CoffeeScript compiler
When significant additions are anticipated they should be created on a branch separate from master. The master branch should not contain incomplete pieces of the app. When commits are made on the master branch they should be ready to be promoted to staging meaning all tests must pass and the source code within the master branch must be ready for the world to use.
Python, Sass: UpperCamelCase should be used for class names, UPPERCASE_WITH_UNDERSCORES should be used for constants, and lowercase_seperated_by_underscores should be used for variables.
JavaScript, CoffeeScript: Variable and method names should be lowerCamelCase. Constructors should use UpperCamelCase.
Use single quotes as often as possible. Double quotes should only be used when necessary. The source should be designed with modularity and portability in mind.
Version numbers should follow the standard pattern of the release version number followed by the production release number then the staging release number. When commits are made to master they are sent to the staging server at an arbitrary time and the staging number increases. Each production increment resets the staging increment to zero.
Ubuntu 12.04 or later should be the operating system used for serving the application. Other operating systems have not been tested nor configured to support the application, although it uses mostly cross compatible dependencies.