Better description of the structure of the application

This commit is contained in:
Christopher Allan Webber 2013-03-17 14:16:19 -05:00
parent f6097b2eac
commit 6b92dca59d

View File

@ -117,13 +117,27 @@ tree::
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
@ -131,8 +145,7 @@ tree::
|- 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
@ -142,8 +155,7 @@ Here are some interesting files and what they do:
: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, ...
@ -154,5 +166,14 @@ 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