Skip to content

Commit

Permalink
Merge pull request #206 from airbnb/caravel
Browse files Browse the repository at this point in the history
Caravel
  • Loading branch information
mistercrunch committed Mar 29, 2016
2 parents 5561a49 + 619d358 commit 1b4e750
Show file tree
Hide file tree
Showing 150 changed files with 227 additions and 226 deletions.
7 changes: 4 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,16 @@ babel
.coverage
_build
_static
dashed/bin/dashedc
caravel/bin/caravelc
envpy3
build
*.db
tmp
dashed_config.py
caravel_config.py
local_config.py
env
dist
dashed.egg-info/
caravel.egg-info/
app.db
*.bak

Expand Down
4 changes: 2 additions & 2 deletions .landscape.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ pep8:
full: true
ignore-paths:
- docs
- dashed/migrations/env.py
- dashed/ascii_art.py
- caravel/migrations/env.py
- caravel/ascii_art.py
ignore-patterns:
- ^example/doc_.*\.py$
- (^|/)docs(/|$)
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ before_install:
install:
- pip wheel -w $HOME/.wheelhouse -f $HOME/.wheelhouse .
- pip install --find-links=$HOME/.wheelhouse --no-index .
- cd dashed/assets
- cd caravel/assets
- npm install
- npm run lint
- npm run prod
Expand Down
30 changes: 15 additions & 15 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ Look through the GitHub issues for features. Anything tagged with

### Documentation

Dashed could always use better documentation,
whether as part of the official Dashed docs,
Caravel could always use better documentation,
whether as part of the official Caravel docs,
in docstrings, `docs/*.rst` or even on the web as blog posts or
articles.

Expand All @@ -49,14 +49,14 @@ If you are proposing a feature:

## Latest Documentation

[API Documentation](http://pythonhosted.com/dashed)
[API Documentation](http://pythonhosted.com/caravel)

## Setting up a Python development environment

# fork the repo on github and then clone it
# alternatively you may want to clone the main repo but that won't work
# so well if you are planning on sending PRs
# git clone git@github.com:mistercrunch/dashed.git
# git clone git@github.com:mistercrunch/caravel.git

# [optional] setup a virtual env and activate it
virtualenv env
Expand All @@ -66,24 +66,24 @@ If you are proposing a feature:
python setup.py develop

# Create an admin user
fabmanager create-admin --app dashed
fabmanager create-admin --app caravel

# Initialize the database
dashed db upgrade
caravel db upgrade

# Create default roles and permissions
dashed init
caravel init

# Load some data to play with
dashed load_examples
caravel load_examples

# start a dev web server
dashed runserver -d
caravel runserver -d


## Setting up the node / npm javascript environment

`dashed/assets` contains all npm-managed, front end assets.
`caravel/assets` contains all npm-managed, front end assets.
Flask-Appbuilder itself comes bundled with jQuery and bootstrap.
While these may be phased out over time, these packages are currently not
managed with npm.
Expand Down Expand Up @@ -116,7 +116,7 @@ new `node_modules/` folder within `assets/`.
npm install
```

To parse and generate bundled files for dashed, run either of the
To parse and generate bundled files for caravel, run either of the
following commands. The `dev` flag will keep the npm script running and
re-run it upon any changes within the assets directory.

Expand All @@ -132,7 +132,7 @@ For every development session you will have to start a flask dev server
as well as an npm watcher

```
dashed runserver -d -p 8081
caravel runserver -d -p 8081
npm run dev
```

Expand All @@ -157,12 +157,12 @@ Generate the documentation with:
cd docs && ./build.sh

## CSS Themes
As part of the npm build process, CSS for Dashed is compiled from ```Less```, a dynamic stylesheet language.
As part of the npm build process, CSS for Caravel is compiled from ```Less```, a dynamic stylesheet language.

It's possible to customize or add your own theme to Dashed, either by overriding CSS rules or preferably
It's possible to customize or add your own theme to Caravel, either by overriding CSS rules or preferably
by modifying the Less variables or files in ```assets/stylesheets/less/```.

The ```variables.less``` and ```bootswatch.less``` files that ship with Dashed are derived from
The ```variables.less``` and ```bootswatch.less``` files that ship with Caravel are derived from
[Bootswatch](https://bootswatch.com) and thus extend Bootstrap. Modify variables in these files directly, or
swap them out entirely with the equivalent files from other Bootswatch (themes)[https://github.com/thomaspark/bootswatch.git]

Expand Down
14 changes: 7 additions & 7 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
recursive-include dashed/templates *
recursive-include dashed/static *
recursive-exclude dashed/static/assets/node_modules *
recursive-include dashed/static/assets/node_modules/font-awesome *
recursive-exclude dashed/static/docs *
recursive-include caravel/templates *
recursive-include caravel/static *
recursive-exclude caravel/static/assets/node_modules *
recursive-include caravel/static/assets/node_modules/font-awesome *
recursive-exclude caravel/static/docs *
recursive-exclude tests *
recursive-include dashed/data *
recursive-include dashed/migrations *
recursive-include caravel/data *
recursive-include caravel/migrations *
56 changes: 28 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,33 @@
Dashed
Caravel
=========

[![PyPI version](https://badge.fury.io/py/dashed.svg)](https://badge.fury.io/py/dashed)
[![Coverage Status](https://coveralls.io/repos/airbnb/dashed/badge.svg?branch=master&service=github)](https://coveralls.io/github/airbnb/dashed?branch=master)
[![Code Health](https://landscape.io/github/airbnb/dashed/master/landscape.svg?style=flat)](https://landscape.io/github/airbnb/dashed/master)
[![Requirements Status](https://requires.io/github/airbnb/dashed/requirements.svg?branch=master)](https://requires.io/github/airbnb/dashed/requirements/?branch=master)
[![Join the chat at https://gitter.im/airbnb/dashed](https://badges.gitter.im/airbnb/dashed.svg)](https://gitter.im/airbnb/dashed?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![PyPI version](https://badge.fury.io/py/caravel.svg)](https://badge.fury.io/py/caravel)
[![Coverage Status](https://coveralls.io/repos/airbnb/caravel/badge.svg?branch=master&service=github)](https://coveralls.io/github/airbnb/caravel?branch=master)
[![Code Health](https://landscape.io/github/airbnb/caravel/master/landscape.svg?style=flat)](https://landscape.io/github/airbnb/caravel/master)
[![Requirements Status](https://requires.io/github/airbnb/caravel/requirements.svg?branch=master)](https://requires.io/github/airbnb/caravel/requirements/?branch=master)
[![Join the chat at https://gitter.im/airbnb/caravel](https://badges.gitter.im/airbnb/caravel.svg)](https://gitter.im/airbnb/caravel?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

Dashed is a data exploration platform designed to be visual, intuitive
Caravel is a data exploration platform designed to be visual, intuitive
and interactive.

[this project used to be named **Panoramix**]


Video - Introduction to Dashed
Video - Introduction to Caravel
---------------------------------
[![Dashed - ](http://img.youtube.com/vi/3Txm_nj_R7M/0.jpg)](http://www.youtube.com/watch?v=3Txm_nj_R7M)
[![Caravel - ](http://img.youtube.com/vi/3Txm_nj_R7M/0.jpg)](http://www.youtube.com/watch?v=3Txm_nj_R7M)

Screenshots
------------
![img](http://i.imgur.com/bi09J9X.png)
![img](http://i.imgur.com/aOaH0ty.png)

Dashed
Caravel
---------
Dashed's main goal is to make it easy to slice, dice and visualize data.
Caravel's main goal is to make it easy to slice, dice and visualize data.
It empowers its user to perform **analytics at the speed of thought**.

Dashed provides:
Caravel provides:
* A quick way to intuitively visualize datasets
* Create and share interactive dashboards
* A rich set of visualizations to analyze your data, as well as a flexible
Expand All @@ -40,14 +40,14 @@ Dashed provides:
displayed in the UI,
by defining which fields should show up in which dropdown and which
aggregation and function (metrics) are made available to the user
* Deep integration with Druid allows for Dashed to stay blazing fast while
* Deep integration with Druid allows for Caravel to stay blazing fast while
slicing and dicing large, realtime datasets


Database Support
----------------

Dashed was originally designed on to of Druid.io, but quickly broadened
Caravel was originally designed on to of Druid.io, but quickly broadened
its scope to support other databases through the use of SqlAlchemy, a Python
ORM that is compatible with
[most common databases](http://docs.sqlalchemy.org/en/rel_1_0/core/engines.html).
Expand All @@ -68,36 +68,36 @@ power analytic dashboards and applications.*
Installation
------------

Dashed is currently only tested using Python 2.7.*. Python 3 support is
Caravel is currently only tested using Python 2.7.*. Python 3 support is
on the roadmap, Python 2.6 won't be supported.

Follow these few simple steps to install Dashed.
Follow these few simple steps to install Caravel.

```
# Install dashed
pip install dashed
# Install caravel
pip install caravel
# Create an admin user
fabmanager create-admin --app dashed
fabmanager create-admin --app caravel
# Initialize the database
dashed db upgrade
caravel db upgrade
# Create default roles and permissions
dashed init
caravel init
# Load some data to play with
dashed load_examples
caravel load_examples
# Start the development web server
dashed runserver -d
caravel runserver -d
```

After installation, you should be able to point your browser to the right
hostname:port [http://localhost:8088](http://localhost:8088), login using
the credential you entered while creating the admin account, and navigate to
`Menu -> Admin -> Refresh Metadata`. This action should bring in all of
your datasources for Dashed to be aware of, and they should show up in
your datasources for Caravel to be aware of, and they should show up in
`Menu -> Datasources`, from where you can start playing with your data!

Configuration
Expand Down Expand Up @@ -134,14 +134,14 @@ More screenshots

Related Links
-------------
* [Dashed Google Group] (https://groups.google.com/forum/#!forum/airbnb_dashed)
* [Gitter (live chat) Channel](https://gitter.im/airbnb/dashed)
* [Caravel Google Group] (https://groups.google.com/forum/#!forum/airbnb_caravel)
* [Gitter (live chat) Channel](https://gitter.im/airbnb/caravel)


Tip of the Hat
--------------

Dashed would not be possible without these great frameworks / libs
Caravel would not be possible without these great frameworks / libs

* Flask App Builder - Allowing us to focus on building the app quickly while
getting the foundation for free
Expand All @@ -153,4 +153,4 @@ getting the foundation for free
Contributing
------------

Interested in contributing? Casual hacking? Check out [Contributing.MD](https://github.com/airbnb/dashed/blob/master/CONTRIBUTING.md)
Interested in contributing? Casual hacking? Check out [Contributing.MD](https://github.com/airbnb/caravel/blob/master/CONTRIBUTING.md)
4 changes: 2 additions & 2 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# TODO
List of TODO items for Dashed
List of TODO items for Caravel

## Important
* **Getting proper JS testing:** unit tests on the Python side are pretty
solid, but now we need a test suite for the JS part of the site,
testing all the ajax-type calls
* **Viz Plugins:** Allow people to define and share visualization plugins.
ideally one would only need to drop in a set of files in a folder and
Dashed would discover and expose the plugins
Caravel would discover and expose the plugins

## Features
* **Stars:** set dashboards, slices and datasets as favorites
Expand Down
2 changes: 1 addition & 1 deletion alembic.ini
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ script_location = migrations
# are written from script.py.mako
# output_encoding = utf-8

sqlalchemy.url = scheme://localhost/dashed
sqlalchemy.url = scheme://localhost/caravel

# Logging configuration
[loggers]
Expand Down
8 changes: 4 additions & 4 deletions dashed/__init__.py → caravel/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@


APP_DIR = os.path.dirname(__file__)
CONFIG_MODULE = os.environ.get('DASHED_CONFIG', 'dashed.config')
CONFIG_MODULE = os.environ.get('CARAVEL_CONFIG', 'caravel.config')

# Logging configuration
logging.basicConfig(format='%(asctime)s:%(levelname)s:%(name)s:%(message)s')
Expand All @@ -28,15 +28,15 @@
class MyIndexView(IndexView):
@expose('/')
def index(self):
return redirect('/dashed/welcome')
return redirect('/caravel/welcome')

appbuilder = AppBuilder(
app, db.session,
base_template='dashed/base.html',
base_template='caravel/base.html',
indexview=MyIndexView,
security_manager_class=app.config.get("CUSTOM_SECURITY_MANAGER"))

sm = appbuilder.sm

get_session = appbuilder.get_session
from dashed import config, views # noqa
from caravel import config, views # noqa
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
var $ = window.$ = require('jquery');
var jQuery = window.jQuery = $;
var px = require('./modules/dashed.js');
var px = require('./modules/caravel.js');
var d3 = require('d3');
require('bootstrap');

var ace = require('brace');
require('brace/mode/css');
require('brace/theme/crimson_editor');

require('./dashed-select2.js');
require('./caravel-select2.js');
require('../node_modules/gridster/dist/jquery.gridster.min.css');
require('../node_modules/gridster/dist/jquery.gridster.min.js');

Expand Down Expand Up @@ -137,7 +137,7 @@ var Dashboard = function (dashboardData) {
};
$.ajax({
type: "POST",
url: '/dashed/save_dash/' + dashboard.id + '/',
url: '/caravel/save_dash/' + dashboard.id + '/',
data: {
data: JSON.stringify(data)
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@
// js
var $ = window.$ = require('jquery');
var jQuery = window.jQuery = $;
var px = require('./modules/dashed.js');
var px = require('./modules/caravel.js');

require('jquery-ui');
$.widget.bridge('uitooltip', $.ui.tooltip); // Shutting down jq-ui tooltips
require('bootstrap');

require('./dashed-select2.js');
require('./caravel-select2.js');

require('../node_modules/bootstrap-toggle/js/bootstrap-toggle.min.js');

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class App extends React.Component {
render () {
return (
<Jumbotron>
<h1>Dashed</h1>
<h1>Caravel</h1>
<p>Extensible visualization tool for exploring data from any database.</p>
</Jumbotron>
);
Expand Down
Loading

0 comments on commit 1b4e750

Please sign in to comment.