mediagoblin/
|- mediagoblin/ # source code
- | |- tests/
- | |- templates/
- | |- auth/
- | \- submit/
+ | |- 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
|- lib/ # python libraries installed into your virtualenv
|- include/
|- mediagoblin.egg-info/
- |- parts/
- |- user_dev/ # sessions, etc
+ \- parts/
As you can see, all the code for GNU MediaGoblin is in the
:routing.py: maps url paths to views
:views.py: views handle http requests
-:models.py: holds the sqlalchemy schemas---these are the data structures
- we're working with
+:forms.py: wtforms stuff for this submodule
You'll notice that there are several sub-directories: tests,
templates, auth, submit, ...
``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
-``models.py`` in addition to some other code.
+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
+