All Projects → discoveryjs → Discovery

discoveryjs / Discovery

Licence: mit
Frontend framework for rapid data (JSON) analysis, sharable serverless reports and dashboards

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Discovery

Data Forge Ts
The JavaScript data transformation and analysis toolkit inspired by Pandas and LINQ.
Stars: ✭ 967 (+385.93%)
Mutual labels:  json, data-analysis, data-visualization
Countly Sdk Web
Countly Product Analytics SDK for websites and web applications
Stars: ✭ 165 (-17.09%)
Mutual labels:  data-analysis, data-visualization
Report Designer
🚀 打印设计、可视化、大屏、编辑器、设计器、数据分析、报表设计、组件化、表单设计、h5页面、调查问卷、pdf生成、流程图、试卷、SVG、图形元素、物联网
Stars: ✭ 160 (-19.6%)
Mutual labels:  data-analysis, data-visualization
Data Science Resources
👨🏽‍🏫You can learn about what data science is and why it's important in today's modern world. Are you interested in data science?🔋
Stars: ✭ 171 (-14.07%)
Mutual labels:  data-analysis, data-visualization
Ml Workspace
🛠 All-in-one web-based IDE specialized for machine learning and data science.
Stars: ✭ 2,337 (+1074.37%)
Mutual labels:  data-analysis, data-visualization
Sourced Ce
source{d} Community Edition (CE)
Stars: ✭ 153 (-23.12%)
Mutual labels:  data-analysis, data-visualization
Matplotplusplus
Matplot++: A C++ Graphics Library for Data Visualization 📊🗾
Stars: ✭ 2,433 (+1122.61%)
Mutual labels:  data-analysis, data-visualization
Awesome Scientific Python
A curated list of awesome scientific Python resources
Stars: ✭ 127 (-36.18%)
Mutual labels:  data-analysis, data-visualization
Matplotlib Doc Zh
📖 [译] Matplotlib 用户指南
Stars: ✭ 178 (-10.55%)
Mutual labels:  data-analysis, data-visualization
Dtale
Visualizer for pandas data structures
Stars: ✭ 2,864 (+1339.2%)
Mutual labels:  data-analysis, data-visualization
Redata
Monitoring system for data teams. Computing health checks on data, visualizing and alerting on them.
Stars: ✭ 181 (-9.05%)
Mutual labels:  data-analysis, data-visualization
Data Science Portfolio
A Portfolio of my Data Science Projects
Stars: ✭ 149 (-25.13%)
Mutual labels:  data-analysis, data-visualization
Aachartkit Swift
📈📊📱💻🖥️An elegant modern declarative data visualization chart framework for iOS, iPadOS and macOS. Extremely powerful, supports line, spline, area, areaspline, column, bar, pie, scatter, angular gauges, arearange, areasplinerange, columnrange, bubble, box plot, error bars, funnel, waterfall and polar chart types. 极其精美而又强大的跨平台数据可视化图表框架,支持柱状图、条形图、…
Stars: ✭ 1,962 (+885.93%)
Mutual labels:  data-analysis, data-visualization
Etl unicorn
数据可视化, 数据挖掘, 数据处理 ETL
Stars: ✭ 156 (-21.61%)
Mutual labels:  data-analysis, data-visualization
Dtale Desktop
Build a data visualization dashboard with simple snippets of python code
Stars: ✭ 128 (-35.68%)
Mutual labels:  data-analysis, data-visualization
Dabestr
Data Analysis with Bootstrap Estimation in R
Stars: ✭ 169 (-15.08%)
Mutual labels:  data-analysis, data-visualization
Gradio
Create UIs for your machine learning model in Python in 3 minutes
Stars: ✭ 4,358 (+2089.95%)
Mutual labels:  data-analysis, data-visualization
Pbpython
Code, Notebooks and Examples from Practical Business Python
Stars: ✭ 1,724 (+766.33%)
Mutual labels:  data-analysis, data-visualization
Datasist
A Python library for easy data analysis, visualization, exploration and modeling
Stars: ✭ 123 (-38.19%)
Mutual labels:  data-analysis, data-visualization
Eegrunt
A Collection Python EEG (+ ECG) Analysis Utilities for OpenBCI and Muse
Stars: ✭ 171 (-14.07%)
Mutual labels:  data-analysis, data-visualization

Discovery.js project logo

Discovery

NPM version Twitter

Hackable JSON discovery tool

Documentation in progress...

Articles

Examples

Related projects

  • Discovery CLI – CLI tools to serve & build projects based on Discovery.js
  • JsonDiscovery – Chrome/Firefox browser extension built on Discovery which allows to discover a JSON document and make reports
  • Jora – data query language
  • Jora CLI – a tool to process JSON data using Jora in command line interface

Plugins

Install

> npm install @discoveryjs/discovery

Base concepts

Model goes through data->prepare->render chain. Data can be modified with prepare function and rendered by various views and its combinations.

View is a function(el, config, data, context) where:

  • el - DOM-element in which view will be rendered
  • config - configuration of view
  • data - data to render
  • context - contains of model data, metaifo (createdAt, etc), router (optional), any user defined or view defined additional data

Page is a root view function(el, data, context). Similar to view it has all of its arguments except config.

Page

To define a page you should call discovery.page.define(pageId, render(el, data, context), options) where:

  • pageId - unique page identifier
  • render - page render function described above
  • options - object with options:
    • reuseEl - do not clear container before render page (skiped for first render or pageId change)
    • init - invokes on first page render or pageId change
    • keepScrollOffset - dont scroll to page top if pageId didn't changed since last page render
    • encodeParams
    • decodeParams

Other handy methods for working with page:

  • discovery.renderPage()
  • discovery.setPage(pageId, pageRef, renderParam), discovery.setPageParams(renderParams) triggers renderPage()
  • discovery.getPageContext() gets context of page

Special pages

There are some built-in special pages:

  • default
  • report
  • not-found

You can override this pages with page.define() method

View

To define new view just call discovery.view.define(viewId, render, options) where:

  • viewId - unique view identifier
  • render - function(el, config, data, context) or view definition object
  • options - object with following fields:
    • tag - a tag name for a view container element. When value is false or null then DocumentFragment is used as a container

You can render your view with discovery.view.render(el, view, data, context) where:

  • view can be string viewId, ViewDefinition or Array<ViewDefinition> viewId will expand to { view: viewId }.

Also you can specify view as viewId:query, that will give you handy shortcut to { view: viewId, data: query }

  • viewDefinition object with view definition settings:
    • view: string viewId
    • when: query, will be coerced to Boolean (but empty arrays and objects will coerce to false)
    • data: query (will be described later)
    • Also there can be view specific additional fields

Special views

Also special built-in sidebar view is available you can override this view with view.define

Queries

As a query you can specify string which will be processed by Jora so your data will be a result of following flow:

jora(value) -> function(data, context) -> data

Or you can use function(data, context) as query as well. Also you can use any data as query right away.

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].