aboutsummaryrefslogtreecommitdiffstats
path: root/docs/codebase.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/codebase.rst')
-rw-r--r--docs/codebase.rst61
1 files changed, 61 insertions, 0 deletions
diff --git a/docs/codebase.rst b/docs/codebase.rst
index 2c73e7d3..1f6ce220 100644
--- a/docs/codebase.rst
+++ b/docs/codebase.rst
@@ -7,6 +7,18 @@
This chapter covers the libraries that GNU MediaGoblin uses as well as
various recipes for getting things done.
+.. Note::
+
+ This chapter is in flux. Clearly there are things here that aren't
+ documented. If there's something you have questions about, please
+ ask!
+
+ See `the join page on the website <http://mediagoblin.org/join/>`_
+ for where we hang out.
+
+For more information on how to get started hacking on GNU MediaGoblin,
+see :ref:`hacking-howto`.
+
Software Stack
==============
@@ -59,6 +71,55 @@ Software Stack
* `JQuery <http://jquery.com/>`_: for groovy JavaScript things
+
+What's where
+============
+
+After you've run buildout, you're faced with the following directory
+tree::
+
+ mediagoblin/
+ |- mediagoblin/ source code
+ | |- tests/
+ | |- templates/
+ | |- auth/
+ | \- submit/
+ |- docs/ documentation
+ |
+ | the rest of these directories are generated by
+ | buildout.
+ |
+ |- bin/ scripts
+ |- develop-eggs/
+ |- eggs/
+ |- mediagoblin.egg-info/
+ |- parts/
+ |- user_dev/ sessions, etc
+
+
+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
+:models.py: holds the mongodb schemas---these are the data structures
+ we're working with
+
+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
+``models.py`` in addition to some other code.
+
+
Recipes
=======