1 ===========================================
2 Beardomatic: Infrastructure Documentation
3 ===========================================
5 What the hell is Beardomatic?
6 =============================
8 You might be wondering, "Gah! What the hell is Beardomatic!?"
10 Well, I'll tell you. GNU MediaGoblin is a piece of software that sits
11 on a stack of libraries that do a bunch of stuff. It makes it easier
12 to differentiate the bits of code that encompass GNU MediaGoblin from
13 the bits of code that GNU MediaGoblin sit on top of. Thus, we came up
14 with the TOTALLY AWESOME name Beardomatic.
16 Now you might be saying, "Holy crap!? Another web framework? Are you
17 going to write a mocking framework and an enumeration library, too!?"
19 No, we're not. We're just calling this Beardomatic so that it's
20 easier to talk about things. However, at some point, we can take
21 these infrastructure bits from GNU MediaGoblin and turn them into a
22 full-blown "web framework". We wouldn't do this to compete for
23 mindshare with other web frameworks. We would do this to make it
24 easier for us to bootstrap other similar projects.
27 Beardomatic software stack
28 ==========================
30 Beardomatic is a software stack "web framework" composed of the
33 * Project infrastructure
35 * `Python <http://python.org/>`_: the language we're using to write
38 * `Nose <http://somethingaboutorange.com/mrl/projects/nose/>`_:
41 * `buildout <http://www.buildout.org/>`_: for getting dependencies,
42 building a runtime environment, ...
46 * `MongoDB <http://www.mongodb.org/>`_: the document database backend
51 * `Paste Deploy <http://pythonpaste.org/deploy/>`_ and
52 `Paste Script <http://pythonpaste.org/script/>`_: we'll use this for
53 configuring and launching the application
55 * `WebOb <http://pythonpaste.org/webob/>`_: nice abstraction layer
56 from HTTP requests, responses and WSGI bits
58 * `Routes <http://routes.groovie.org/>`_: for URL routing
60 * `Beaker <http://beaker.groovie.org/>`_: for handling sessions
62 * `Jinja2 <http://jinja.pocoo.org/docs/>`_: the templating engine
64 * `MongoKit <http://namlook.github.com/mongokit/>`_: the lightweight
65 ORM for MongoDB we're using which will make it easier to define
66 structures and all that
68 * `WTForms <http://wtforms.simplecodes.com/>`_: for handling,
69 validation, and abstraction from HTML forms
71 * `Celery <http://celeryproject.org/>`_: for task queuing (resizing
72 images, encoding video, ...)
74 * `RabbitMQ <http://www.rabbitmq.com/>`_: for sending tasks to celery
78 * `JQuery <http://jquery.com/>`_: for groovy JavaScript things
81 How to ... in Beardomatic?
82 ==========================