Skip to main content

Dynamic data analysis over the web. The logic to your data dashboards.

Project description

`bamboo <http://bamboo.io>`_
======

.. image:: https://secure.travis-ci.org/modilabs/bamboo.png?branch=master
:target: http://travis-ci.org/modilabs/bamboo

*bamboo* is an application that systematizes realtime data analysis. *bamboo*
provides an interface for merging, aggregating and adding algebraic
calculations to dynamic datasets. Clients can interact with *bamboo* through a
a REST web interface and through Python.

*bamboo* supports a simple querying language to build calculations
(e.g. student teacher ratio) and aggregations (e.g. average number of students
per district) from datasets. These are updated as new data is received.

*bamboo* is `open source <https://github.com/modilabs/bamboo>`_ software released
under the 3-clause BSD license, which is also known as the "Modified BSD
License".

Dependencies
------------

* python (tested on version 2.7)
* mongodb

for numpy, pandas, and scipy (in requirements.pip):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

on Arch Linux: ``# pacman -S blas lapack gcc-fortran``

on Debian based: ``# apt-get install gfortran libatlas-base-dev``

Installation
------------

::

$ ./scripts/install.sh

Running the server
------------------

Running the server in the foreground
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

start mongodb on localhost and standard port

::

$ python ./scripts/run_server.py

Running the server as a daemon
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

start mongodb on localhost and standard port

1. create a user named 'bamboo', with home directory ``/home/bamboo``
2. create a virtualenv using virtualenvwrapper called 'bamboo'
3. place the bamboo root directory in ``/var/www/bamboo/current``

start the daemon using:

::

$ /var/www/bamboo/current/scripts/bamboo.sh start

stop the daemon using:

::

$ /var/www/bamboo/current/scripts/bamboo.sh stop

Example Usage
-------------

On the remote server
^^^^^^^^^^^^^^^^^^^^

running the example basic commands

::

$ ./scripts/commands.sh

using `bamboo.JS <http://modilabs.github.com/bamboo_js/>`_

.. code-block:: javascript

var dataset = new bamboo.Dataset({url: 'http://bitly.com/ZfzBwP'});
bamboo.dataset_exists('nonexistentdataset_id');
dataset.query_info();
...


using `pybamboo <https://github.com/modilabs/pybamboo>`_

::

$ pip install pybamboo
$ python

.. code-block:: python

from pybamboo import PyBamboo
pybamboo = PyBamboo()
response = pybamboo.store_csv_file('http://formhub.org/mberg/forms/good_eats/data.csv')
dataset_id = response['id']
...

posting a dataset

::

$ curl -X POST -d "url=http://formhub.org/mberg/forms/good_eats/data.csv" http://bamboo.io/datasets

On your local server
^^^^^^^^^^^^^^^^^^^

start the bamboo server as above, then

run the example basic commands

::

$ ./scripts/commands.sh -l

make requests to your local server

::

$ curl -X POST -d "url=http://formhub.org/mberg/forms/good_eats/data.csv" http://localhost:8080/datasets

Testing
-------

install nose testing requirements

::

$ pip install -r requirements-test.pip

run tests

::

$ cd bamboo
$ ../scripts/test.sh

or run the profiler

::

$ cd bamboo
$ ../scripts/test.sh -p

Documentation
-------------

Viewing Documentation
^^^^^^^^^^^^^^^^^^^^^

The latest docs are available at http://bamboo.io/

Building Documentation
^^^^^^^^^^^^^^^^^^^^^^

Install graphviz for class structure diagrams:

on Arch Linux: ``# pacman -S graphviz``

on Debian based: ``# apt-get install graphviz``

::

$ pip install -r requirements-docs.pip
$ cd docs
$ make html

Contributing Code
-----------------

To work on the code:

1. fork this github project
2. add tests for your new feature
3. add the code for your new feature
4. ensure it is pep8

::

$ pip install pep8
$ pep8 bamboo

5. ensure all existing tests and your new tests are passing

::

$ cd bamboo
$ ../scripts/test.sh

6. submit a pull request

About
-----

*bamboo* is an open source project. The project features, in chronological order,
the combined efforts of

* Peter Lubell-Doughtie
* Mark Johnston

and other developers.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bamboo-data-0.5.2.tar.gz (3.1 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page