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/
|- mediagoblin/ # source code |- mediagoblin/ # source code
| |- tests/ | |- db/ # database setup
| |- templates/ | |- tools/ # various utilities
| |- auth/ | |- init/ # "initialization" tools (arguably should be in tools/)
| \- submit/ | |- 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 |- docs/ # documentation
|- devtools/ # some scripts for developer convenience |- devtools/ # some scripts for developer convenience
| |
|- user_dev/ # local instance sessions, media, etc
|
| # the below directories are installed into your virtualenv checkout | # the below directories are installed into your virtualenv checkout
| |
|- bin/ # scripts |- bin/ # scripts
@ -131,8 +145,7 @@ tree::
|- lib/ # python libraries installed into your virtualenv |- lib/ # python libraries installed into your virtualenv
|- include/ |- include/
|- mediagoblin.egg-info/ |- mediagoblin.egg-info/
|- parts/ \- parts/
|- user_dev/ # sessions, etc
As you can see, all the code for GNU MediaGoblin is in the 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 :routing.py: maps url paths to views
:views.py: views handle http requests :views.py: views handle http requests
:models.py: holds the sqlalchemy schemas---these are the data structures :forms.py: wtforms stuff for this submodule
we're working with
You'll notice that there are several sub-directories: tests, You'll notice that there are several sub-directories: tests,
templates, auth, submit, ... templates, auth, submit, ...
@ -154,5 +166,14 @@ templates, auth, submit, ...
``auth`` and ``submit`` are modules that enacpsulate authentication ``auth`` and ``submit`` are modules that enacpsulate authentication
and media item submission. If you look in these directories, you'll and media item submission. If you look in these directories, you'll
see they have their own ``routing.py``, ``view.py``, and see they have their own ``routing.py``, ``view.py``, and forms.py in
``models.py`` in addition to some other code. 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