Flask-Bitmapist 0.1.2
Flask extension that creates a simple interface to Bitmapist analytics library
License: MIT
Keywords: Flask,Bitmapist

===============
Flask-Bitmapist
===============

.. image:: https://travis-ci.org/cuttlesoft/flask-bitmapist.svg?branch=master
	:target: https://travis-ci.org/cuttlesoft/flask-bitmapist

.. image:: https://coveralls.io/repos/github/cuttlesoft/flask-bitmapist/badge.svg?branch=master
	:target: https://coveralls.io/github/cuttlesoft/flask-bitmapist?branch=master

Flask extension that creates a simple interface to the Bitmapist analytics library.


About
-----

`Bitmapist <https://github.com/Doist/bitmapist>`_ is:

    [A] Python library [that] makes it possible to implement real-time, highly scalable analytics that can answer the following questions:

    - Has user 123 been online today? This week? This month?
    - Has user 123 performed action "X"?
    - How many users have been active this month? This hour?
    - How many unique users have performed action "X" this week?
    - What % of users that were active last week are still active?
    - What % of users that were active last month are still active this month?
    - Which users performed action "X"?


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

::

    $ pip install flask-bitmapist


Usage
-----

Example app:

.. code-block:: python

    from flask import Flask
    from flask_bitmapist import FlaskBitmapist, mark

    app = Flask(__name__)

    flaskbitmapist = FlaskBitmapist()
    flaskbitmapist.init_app(app)

    @app.route('/')
    @mark('index:visited', 1)  # current_user.id
    def index():
        """using the mark decorator, the first argument is the event
           and the second is the id of the current_user
        """
        return 'Hello, world!'

    if __name__ == '__main__':
        app.run()


For documentation on the ``mark`` decorator, look at the ``mark_event`` `Bitmapist function <https://github.com/Doist/bitmapist#examples>`_.


Config
------

=============================== =========== ======================================================================
Name                            Type        Description
=============================== =========== ======================================================================
``BITMAPIST_REDIS_SYSTEM``      ``string``  Name of Redis System; defaults to ``default``
``BITMAPIST_REDIS_URL``         ``string``  URL to connect to Redis server; defaults to ``redis://localhost:6379``
``BITMAPIST_TRACK_HOURLY``      ``boolean`` Tells Bitmapist to track hourly; can also be passed to ``mark`` (e.g., ``@mark('active', 1, track_hourly=False)``)

``BITMAPIST_DISABLE_BLUEPRINT`` ``boolean`` Disables registration of default Bitmapist Blueprint
=============================== =========== ======================================================================


Cohort Blueprint
----------------

One of the nice things about Bitmapist is its simple bit operations API and the data cohort that you get.
For more information about the cohort, visit the `Bitmapist README <https://github.com/Doist/bitmapist#bitmapist-cohort>`_.

When you initialize the ``flask-bitmapist`` extension, a blueprint is registered with the application.

======== ===================== ============================================
Name     Path                  Description
======== ===================== ============================================
`index`  ``/bitmapist/``       Default Bitmapist index
`cohort` ``/bitmapist/cohort`` Demo cohort retrieval and heatmap generation
======== ===================== ============================================


Tests
-----

To run the tests, ensure that you have Redis running on port 6399::

    $ redis-server --port 6399


Then you can simply run::

    $ python setup.py test


To seed fake data for testing, run::

    $ python scripts/seed.py


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

The full Flask-Bitmapist documentation is available at `ReadTheDocs <http://flask-bitmapist.readthedocs.io/en/latest/>`_.


Contributing
------------

If you're interested in contributing to Flask-Bitmapist, get started by creating an issue `here <https://github.com/cuttlesoft/flask-bitmapist/issues>`_. Thanks!


.. :changelog:

Release History
---------------

0.1.0 (2016-03-30)
++++++++++++++++++

- First release.