Coder Social home page Coder Social logo

tanqueta / shevek Goto Github PK

View Code? Open in Web Editor NEW

This project forked from eeng/shevek

0.0 0.0 0.0 3.53 MB

Interactive data exploration UI for Druid, aimed at end users.

License: MIT License

Ruby 0.03% Clojure 94.93% JavaScript 0.20% Shell 0.42% Dockerfile 0.10% Makefile 0.12% Less 4.20%

shevek's Introduction

Shevek

Shevek is an interactive data exploration UI for Druid, aimed at end-users.

Build Status

Features

  • Easy to use report designer. End-users can build their own reports without any knowledge of a query language, by using drag and drop in a similar way to pivot tables in Excel.
  • Automatic simple charts generation.
  • Multiple dashboards. Related reports can be grouped into dashboards to provide at-a-glance views of key performance indicators.
  • Multi-user support. Each user can have their own reports and dashboards.
  • Fine-grained authorization. An administrator can configure which cubes, dimensions or measures a user is allowed to see. It's also possible to define filters based on dimension values (e.g. when a user can only view data from a certain region).
  • Possibility to share dashboards or individual reports between users.
  • Automatic discovery of Druid data sources. Upon start, the application will search the available cubes and its dimensions and measures, which can be customized afterward.

WARNING: Please bear in mind this software is still in beta status. It's actively used in production, but it is under development and could change at any time.

Quickstart

If you just want to try the application, the fastest way to set it up is with Docker. It'll download all the requirements, install a minimal Druid cluster, and finally start Shevek so you can query its data.

NOTE: Druid is quite heavy because it starts several JVM processes, so make sure Docker has at least 4GB available.

Clone the repo, open the folder in a terminal, and then execute:

make demo.start

Go grab a cup of coffee while Docker does its thing. After a while, if you see the following messages it means everything went well:

Starting web server on http://localhost:4000

Schema seeding done

Now, let's load the sample data provided by Druid to have something to play with:

make demo.druid.seed
# => {"task":"index_wikipedia..."}

The task usually takes a while to complete. You can monitor its progress in the Druid Console at http://localhost:8888/. When it's completed, check also that the wikipedia datasource is fully available.

Finally, you can head to http://localhost:4000 and you should see the Shevek login screen. Enter with user admin and password secret123.

Installation

To use the application without Docker, you need the following requirements:

  • Java 1.8 (not tested yet on newer versions).
  • MongoDB. Upon start, a shevek database will be created here.
  • A Druid cluster with some data, of course.

Now, follow these instructions:

  1. Download the latest release and extract the package.

  2. Edit the config.edn if necessary to point to your Druid and MongoDB hosts.

  3. Change directory to the extracted folder and start the application:

java -Dconf=config.edn -jar shevek.jar
  1. Open http://localhost:4000 in your browser, you should see the login page. Enter with user admin and password secret123.

Contributing

We welcome everyone to contribute to this project. To do so, please read the following instructions:

  1. Copy dev/resources/config.edn.example to dev/resources/config.edn

  2. Make sure you have Druid and MongoDB running on localhost, or point to their respective locations in the previous file.

  3. Execute the following command on the project folder: lein cooper This command is a convenient alias to start both the backend (Clojure) and frontend (ClojureScript with Figwheel and less support) in the same terminal window.

  4. After a while, the UI should be accessible through http://localhost:4000.

Connecting to the Clojure REPL (backend)

You can connect to the nREPL server (port 4001 by default) with your favorite editor to evaluate expressions on the running backend. In the file dev/clj/user.clj there are some useful functions used during development.

lein repl :connect :4001

Connecting to the ClojureScript REPL (frontend)

lein repl :connect :4002
user=> (cljs-repl)

Building from Source

bin/build.sh

Acceptance Testing

To run the whole acceptance tests suite do:

lein acceptance-tests

To run each test one at a time do:

lein acceptance-tests-repl

Then connect to it on port 4101, eval the (start-system) forms, and finally eval the test blocks. It should run against the test database and web server.

shevek's People

Contributors

eeng avatar dependabot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.