Heavy documentation updates
* Nixed codedocs and software stack chapters in favor of a chapter on Beardomatic! * Switched workflow to vision and added an additional caveat at the top
This commit is contained in:
parent
cafc7451cc
commit
34366952a2
84
docs/beardomatic.rst
Normal file
84
docs/beardomatic.rst
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
===========================================
|
||||||
|
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
|
@ -1,5 +0,0 @@
|
|||||||
====================
|
|
||||||
Code Documentation
|
|
||||||
====================
|
|
||||||
|
|
||||||
FIXME - stub!
|
|
@ -17,10 +17,9 @@ Table of Contents:
|
|||||||
deploymenthowto
|
deploymenthowto
|
||||||
hackinghowto
|
hackinghowto
|
||||||
theminghowto
|
theminghowto
|
||||||
softwarestack
|
|
||||||
designdecisions
|
designdecisions
|
||||||
workflow
|
vision
|
||||||
codedocs
|
beardomatic
|
||||||
|
|
||||||
|
|
||||||
Indices and tables
|
Indices and tables
|
||||||
|
@ -1,127 +0,0 @@
|
|||||||
=======
|
|
||||||
Stack
|
|
||||||
=======
|
|
||||||
|
|
||||||
The software stack for this project might change over time, but this
|
|
||||||
is what we're thinking right now.
|
|
||||||
|
|
||||||
There's some explanation of design decisions in the
|
|
||||||
:ref:`design-decisions-chapter`.
|
|
||||||
|
|
||||||
|
|
||||||
Python
|
|
||||||
======
|
|
||||||
|
|
||||||
* http://python.org/
|
|
||||||
|
|
||||||
The core team does a lot of work in Python and it's the language we're
|
|
||||||
most likely to do a project like this in.
|
|
||||||
|
|
||||||
|
|
||||||
MongoDB
|
|
||||||
=======
|
|
||||||
|
|
||||||
* http://www.mongodb.org/
|
|
||||||
|
|
||||||
A "document database". Because it's extremely flexible and scales up
|
|
||||||
well, but I guess not down well.
|
|
||||||
|
|
||||||
|
|
||||||
MongoKit
|
|
||||||
========
|
|
||||||
|
|
||||||
* http://namlook.github.com/mongokit/
|
|
||||||
|
|
||||||
A lightweight ORM for mongodb. Helps us define our structures better,
|
|
||||||
does schema validation, schema evolution, and helps make things more
|
|
||||||
fun and pythonic.
|
|
||||||
|
|
||||||
|
|
||||||
Jinja2
|
|
||||||
======
|
|
||||||
|
|
||||||
* http://jinja.pocoo.org/docs/
|
|
||||||
|
|
||||||
For templating. Pretty much django templates++ but allows us to pass
|
|
||||||
arguments into method calls instead of writing custom tags.
|
|
||||||
|
|
||||||
|
|
||||||
WTForms
|
|
||||||
=======
|
|
||||||
|
|
||||||
* http://wtforms.simplecodes.com/
|
|
||||||
|
|
||||||
For form handling, validation, abstraction. Almost just like Django's
|
|
||||||
templates.
|
|
||||||
|
|
||||||
|
|
||||||
WebOb
|
|
||||||
=====
|
|
||||||
|
|
||||||
* http://pythonpaste.org/webob/
|
|
||||||
|
|
||||||
Gives nice request/response objects (also somewhat Django-ish).
|
|
||||||
|
|
||||||
|
|
||||||
Paste Deploy and Paste Script
|
|
||||||
=============================
|
|
||||||
|
|
||||||
* http://pythonpaste.org/deploy/
|
|
||||||
* http://pythonpaste.org/script/
|
|
||||||
|
|
||||||
This will be the default way of configuring and launching the
|
|
||||||
application. Since GNU MediaGoblin will be fairly WSGI minimalist though,
|
|
||||||
you can probably use other ways to launch it, though this will be the
|
|
||||||
default.
|
|
||||||
|
|
||||||
|
|
||||||
Routes
|
|
||||||
======
|
|
||||||
|
|
||||||
* http://routes.groovie.org/
|
|
||||||
|
|
||||||
For URL Routing. It works well enough.
|
|
||||||
|
|
||||||
|
|
||||||
JQuery
|
|
||||||
======
|
|
||||||
|
|
||||||
* http://jquery.com/
|
|
||||||
|
|
||||||
For all sorts of things on the JavaScript end of things, for all sorts
|
|
||||||
of reasons.
|
|
||||||
|
|
||||||
|
|
||||||
Beaker
|
|
||||||
======
|
|
||||||
|
|
||||||
* http://beaker.groovie.org/
|
|
||||||
|
|
||||||
For sessions, because that seems like it's generally considered the
|
|
||||||
way to go I guess.
|
|
||||||
|
|
||||||
|
|
||||||
Nose
|
|
||||||
====
|
|
||||||
|
|
||||||
* http://somethingaboutorange.com/mrl/projects/nose/1.0.0/
|
|
||||||
|
|
||||||
For unit tests because it makes testing a bit nicer.
|
|
||||||
|
|
||||||
|
|
||||||
Celery
|
|
||||||
======
|
|
||||||
|
|
||||||
* http://celeryproject.org/
|
|
||||||
|
|
||||||
For task queueing (resizing images, encoding video, ...).
|
|
||||||
|
|
||||||
|
|
||||||
RabbitMQ
|
|
||||||
========
|
|
||||||
|
|
||||||
* http://www.rabbitmq.com/
|
|
||||||
|
|
||||||
For sending tasks to celery, because I guess that's what most people
|
|
||||||
do. Might be optional, might also let people use MongoDB for this if
|
|
||||||
they want.
|
|
@ -1,21 +1,26 @@
|
|||||||
==========================================================================
|
=========================================
|
||||||
Design Document: Workflow, and other structurally significant braindumps
|
Design Document: GNU MediaGoblin vision
|
||||||
==========================================================================
|
=========================================
|
||||||
|
|
||||||
.. Note::
|
.. Note::
|
||||||
|
|
||||||
When we get a wiki, this will get moved there. It's here for now
|
When we get a wiki, this will get moved there. It's here for now
|
||||||
mostly because we didn't have a better place for it.
|
mostly because we didn't have a better place for it.
|
||||||
|
|
||||||
|
.. Note::
|
||||||
|
|
||||||
This document attempts to describe the envisioned workflow of
|
By the time you read this, it's very likely it'll be out of date.
|
||||||
mediagoblin, from a structural standpoint. For now, *nothing* in this
|
|
||||||
|
|
||||||
|
This document attempts to describe the envisioned workflow of GNU
|
||||||
|
MediaGoblin, from a structural standpoint. For now, *nothing* in this
|
||||||
document is probably the eventual, final way that things will work.
|
document is probably the eventual, final way that things will work.
|
||||||
Eventually as things come to exist, this document will hopefully be
|
Eventually as things come to exist, this document will hopefully be
|
||||||
refactored to describe how things *do* work.
|
refactored to describe how things *do* work.
|
||||||
|
|
||||||
This documented on hopes, dreams, rainbows, and unicorns. And it will
|
This documented on hopes, dreams, rainbows, and unicorns. And it will
|
||||||
come to fulfillment through a lot of hard work.
|
come to fulfillment through a lot of hard work. Your hard work and my
|
||||||
|
hard work.
|
||||||
|
|
||||||
|
|
||||||
Look and feel
|
Look and feel
|
||||||
@ -31,6 +36,7 @@ here.
|
|||||||
|
|
||||||
http://mairin.wordpress.com/2010/03/09/another-design-hub-mockup/
|
http://mairin.wordpress.com/2010/03/09/another-design-hub-mockup/
|
||||||
|
|
||||||
|
|
||||||
User profile mockup
|
User profile mockup
|
||||||
-------------------
|
-------------------
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user