aboutsummaryrefslogtreecommitdiffstats
path: root/docs/beardomatic.rst
diff options
context:
space:
mode:
authorChristopher Allan Webber <cwebber@dustycloud.org>2011-04-30 08:27:15 -0500
committerChristopher Allan Webber <cwebber@dustycloud.org>2011-04-30 08:27:15 -0500
commit776331fd96b55dba004e8bb5a10e02a555bf76c1 (patch)
tree5cf332de13e8cd47d72e9916896e14c93886a8ba /docs/beardomatic.rst
parent1bb0fdf2f4f568019c3449f269c69f406507bd7c (diff)
parent87b44d61ef4c1ace855540ab35f047a2067e277c (diff)
downloadmediagoblin-776331fd96b55dba004e8bb5a10e02a555bf76c1.tar.lz
mediagoblin-776331fd96b55dba004e8bb5a10e02a555bf76c1.tar.xz
mediagoblin-776331fd96b55dba004e8bb5a10e02a555bf76c1.zip
Merge branch 'master' into celerysubmit
Diffstat (limited to 'docs/beardomatic.rst')
-rw-r--r--docs/beardomatic.rst86
1 files changed, 86 insertions, 0 deletions
diff --git a/docs/beardomatic.rst b/docs/beardomatic.rst
new file mode 100644
index 00000000..14130f6a
--- /dev/null
+++ b/docs/beardomatic.rst
@@ -0,0 +1,86 @@
+.. _beardomatic-chapter:
+
+===========================================
+ Beardomatic: Infrastructure Documentation
+===========================================
+
+What the hell is Beardomatic?
+=============================
+
+You might be wondering, "Gah! What the hell is Beardomatic!?"
+
+Well, I'll tell you. GNU MediaGoblin is a piece of software that sits
+on a stack of libraries that do a bunch of stuff. It makes it easier
+to differentiate the bits of code that encompass GNU MediaGoblin from
+the bits of code that GNU MediaGoblin sit on top of. Thus, we came up
+with the TOTALLY AWESOME name Beardomatic.
+
+Now you might be saying, "Holy crap!? Another web framework? Are you
+going to write a mocking framework and an enumeration library, too!?"
+
+No, we're not. We're just calling this Beardomatic so that it's
+easier to talk about things. However, at some point, we can take
+these infrastructure bits from GNU MediaGoblin and turn them into a
+full-blown "web framework". We wouldn't do this to compete for
+mindshare with other web frameworks. We would do this to make it
+easier for us to bootstrap other similar projects.
+
+
+Beardomatic software stack
+==========================
+
+Beardomatic is a software stack "web framework" composed of the
+following bits:
+
+* Project infrastructure
+
+ * `Python <http://python.org/>`_: the language we're using to write
+ this
+
+ * `Nose <http://somethingaboutorange.com/mrl/projects/nose/>`_:
+ for unit tests
+
+ * `buildout <http://www.buildout.org/>`_: for getting dependencies,
+ building a runtime environment, ...
+
+* Data storage
+
+ * `MongoDB <http://www.mongodb.org/>`_: the document database backend
+ for storage
+
+* Web application
+
+ * `Paste Deploy <http://pythonpaste.org/deploy/>`_ and
+ `Paste Script <http://pythonpaste.org/script/>`_: we'll use this for
+ configuring and launching the application
+
+ * `WebOb <http://pythonpaste.org/webob/>`_: nice abstraction layer
+ from HTTP requests, responses and WSGI bits
+
+ * `Routes <http://routes.groovie.org/>`_: for URL routing
+
+ * `Beaker <http://beaker.groovie.org/>`_: for handling sessions
+
+ * `Jinja2 <http://jinja.pocoo.org/docs/>`_: the templating engine
+
+ * `MongoKit <http://namlook.github.com/mongokit/>`_: the lightweight
+ ORM for MongoDB we're using which will make it easier to define
+ structures and all that
+
+ * `WTForms <http://wtforms.simplecodes.com/>`_: for handling,
+ validation, and abstraction from HTML forms
+
+ * `Celery <http://celeryproject.org/>`_: for task queuing (resizing
+ images, encoding video, ...)
+
+ * `RabbitMQ <http://www.rabbitmq.com/>`_: for sending tasks to celery
+
+* Front end
+
+ * `JQuery <http://jquery.com/>`_: for groovy JavaScript things
+
+
+How to ... in Beardomatic?
+==========================
+
+FIXME - write this