From: Christopher Allan Webber Date: Sun, 17 Mar 2013 19:16:19 +0000 (-0500) Subject: Better description of the structure of the application X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=6b92dca59d450004d65b4dfb7a81685f8b10ea10;p=mediagoblin.git Better description of the structure of the application --- diff --git a/docs/source/devel/codebase.rst b/docs/source/devel/codebase.rst index 73e938e7..5e8cbcc6 100644 --- a/docs/source/devel/codebase.rst +++ b/docs/source/devel/codebase.rst @@ -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 +