Folder Structure

Root Directory Structure

The root of your application contains the following items:

  • app - Contains code related specifically to your application. See below for a detailed description of each sub-folder.
  • ferris - Contains Ferris’ core code. Typically you won’t need to modify anything in here unless you’re updating Ferris.
  • plugins - Contains re-usable components that you can use from your application. See Plugins for more information.
  • packages - Contains 3rd party libraries (such as pytz, google apis, etc.). See Packages for more information.
  • app.yaml - Normal App Engine configuration.
  • settings.py - Global application (and plugin) configuration. You can load these settings by using the Settings API.

Application Directory Structure

The app folder contains the following items:

  • models - Contains model modules.
  • controllers - Contains controller modules.
  • templates - Contains template files and macros used by Views.
  • static - Contains static resources such as javascript, css, and images.
  • tests - Contains any test specs.
  • routes.py - Contains route and plugin configuration. You can enable plugins and change routing rules here. As most routing happens automatically, you’ll use this primarily to enable plugins.
  • listeners.py - Contains event listeners for the global event bus. You can use this to set the applications theme and enforce application-wide security settings.