development.
+What's where
+============
+
+After you've run checked out mediagoblin and followed the virtualenv
+instantiation instructions, you're faced with the following directory
+tree::
+
+ mediagoblin/
+ |- mediagoblin/ # source code
+ | |- db/ # database setup
+ | |- tools/ # various utilities
+ | |- init/ # "initialization" tools (arguably should be in tools/)
+ | |- tests/ # unit tests
+ | |- templates/ # templates for this application
+ | |- media_types/ # code for processing, displaying different media
+ | |- storage/ # different storage backends
+ | |- gmg_commands/ # command line tools (./bin/gmg)
+ | |- themes/ # pre-bundled themes
+ | |
+ | | # ... some submodules here as well for different sections
+ | | # of the application... here's just a few
+ | |- auth/ # authentication (login/registration) code
+ | |- user_dev/ # user pages (under /u/), including media pages
+ | \- submit/ # submitting media for processing
+ |
+ |- docs/ # documentation
+ |- devtools/ # some scripts for developer convenience
+ |
+ |- user_dev/ # local instance sessions, media, etc
+ |
+ | # the below directories are installed into your virtualenv checkout
+ |
+ |- bin/ # scripts
+ |- develop-eggs/
+ |- lib/ # python libraries installed into your virtualenv
+ |- include/
+ |- mediagoblin.egg-info/
+ \- parts/
+
+
+As you can see, all the code for GNU MediaGoblin is in the
+``mediagoblin`` directory.
+
+Here are some interesting files and what they do:
+
+:routing.py: maps url paths to views
+:views.py: views handle http requests
+:forms.py: wtforms stuff for this submodule
+
+You'll notice that there are several sub-directories: tests,
+templates, auth, submit, ...
+
+``tests`` holds the unit test code.
+
+``templates`` holds all the templates for the output.
+
+``auth`` and ``submit`` are modules that enacpsulate authentication
+and media item submission. If you look in these directories, you'll
+see they have their own ``routing.py``, ``view.py``, and forms.py in
+addition to some other code.
+
+You'll also notice that mediagoblin/db/ contains quite a few things,
+including the following:
+
+:models.py: This is where the database is set up
+:mixin.py: Certain functions appended to models from here
+:migrations.py: When creating a new migration (a change to the
+ database structure), we put it here
+
+
Software Stack
==============
* `JQuery <http://jquery.com/>`_: for groovy JavaScript things
-
-What's where
-============
-
-After you've run checked out mediagoblin and followed the virtualenv
-instantiation instructions, you're faced with the following directory
-tree::
-
- mediagoblin/
- |- mediagoblin/ # source code
- | |- db/ # database setup
- | |- tools/ # various utilities
- | |- init/ # "initialization" tools (arguably should be in tools/)
- | |- tests/ # unit tests
- | |- templates/ # templates for this application
- | |- media_types/ # code for processing, displaying different media
- | |- storage/ # different storage backends
- | |- gmg_commands/ # command line tools (./bin/gmg)
- | |- themes/ # pre-bundled themes
- | |
- | | # ... some submodules here as well for different sections
- | | # of the application... here's just a few
- | |- auth/ # authentication (login/registration) code
- | |- user_dev/ # user pages (under /u/), including media pages
- | \- submit/ # submitting media for processing
- |
- |- docs/ # documentation
- |- devtools/ # some scripts for developer convenience
- |
- |- user_dev/ # local instance sessions, media, etc
- |
- | # the below directories are installed into your virtualenv checkout
- |
- |- bin/ # scripts
- |- develop-eggs/
- |- lib/ # python libraries installed into your virtualenv
- |- include/
- |- mediagoblin.egg-info/
- \- parts/
-
-
-As you can see, all the code for GNU MediaGoblin is in the
-``mediagoblin`` directory.
-
-Here are some interesting files and what they do:
-
-:routing.py: maps url paths to views
-:views.py: views handle http requests
-:forms.py: wtforms stuff for this submodule
-
-You'll notice that there are several sub-directories: tests,
-templates, auth, submit, ...
-
-``tests`` holds the unit test code.
-
-``templates`` holds all the templates for the output.
-
-``auth`` and ``submit`` are modules that enacpsulate authentication
-and media item submission. If you look in these directories, you'll
-see they have their own ``routing.py``, ``view.py``, and forms.py in
-addition to some other code.
-
-You'll also notice that mediagoblin/db/ contains quite a few things,
-including the following:
-
-:models.py: This is where the database is set up
-:mixin.py: Certain functions appended to models from here
-:migrations.py: When creating a new migration (a change to the
- database structure), we put it here
-