GithubHelp home page GithubHelp logo

merico-dev / table Goto Github PK

View Code? Open in Web Editor NEW
25.0 10.0 6.0 11.03 MB

Build your own data presentation using SQL and multiple data sources including big data. The most flexible and powerful low-code data workflow loved by developers.

License: Apache License 2.0

HTML 0.28% TypeScript 99.24% CSS 0.24% JavaScript 0.24% Shell 0.01%
data-analysis low-code data-workflow airtable

table's People

Contributors

basicthinker avatar gerilleto avatar joncodo avatar miguel-lansdorf avatar renovate[bot] avatar sikong48 avatar zeekozhu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

table's Issues

Dashboard CRUD API sample

Tasks

Dashboard DB

  • SQLs for creating a database and a table
  • DB migration
  • a dump SQL for demo
  1. use pg for database
  2. following is an example of that table's structure
CREATE TABLE
    "public"."dashboard" (
        "id" serial,
        "name" VARCHAR NOT NULL DEFAULT '',
        "content" jsonb NOT NULL DEFAULT '{}',
        "created_at" TIMESTAMP NOT NULL DEFAULT NOW(),
        "updated_at" TIMESTAMP NOT NULL DEFAULT NOW(),
        "is_removed" bool NOT NULL DEFAULT 'false',
        PRIMARY KEY ("id")
    );

Dashboard API

  • get dashboard list (name & id)
  • get dashboard detail
  • create dashboard
  • update dashboard
  • delete dashboard (set is_removed true)

v1.0.0 - Multiple SQL data sources

Goals

Configure and use multiple PG data sources in panels

Tasks

  • @miguel-lansdorf Configure multiple PG connections in .env file. Note: name them uniquely
  • @miguel-lansdorf An API for getting connection list as available data sources
  • @GerilLeto Add dataSources to dashboard.definition, including these info
    1. type (Currently only postgresql)
    2. name (which db connection is being used to run query)
    3. query (query: { sql: string })
    4. id
  • @GerilLeto Change panel.sql to panel.dataSourceID, referencing dashboard.definitions.dataSources
  • @miguel-lansdorf Let /query API accepts dataSource as params instead of SQL
  • @GerilLeto Add a new config modal for editing dashboard.definitions.dataSources
  • @GerilLeto Change panel's SQL tab to Data Source tab

Major goals for 2022-June,July and August

  • v1.0.0 Multiple SQL data sources #20
  • v1.x.0 Apply UX design & improvements
  • v2.0.0 Schema migration method
  • v3.0.0 A plugin system for visualization components
  • v4.0.0 Platform MVP

need predefined sql snippets to reduce SQL complexity

problem

this kind of query conditions would appears in most panels of a dashboard

"author_time BETWEEN '\$\{timeRange?.[0].toISOString()\}' AND '\$\{timeRange?.[1].toISOString()\}'"

"`\${emails.length > 0 ? \`author_email IN (\${emails.map(v => "'" + v + "'").join(",")})\` : 'TRUE' }`"

but currently users have to copy&paste them repeatedly into almost every panel

proposal

SQL Snippets: users may save snippets into a dashboard, refer them in panels, use them to build panels' queries

[VizCartesianChart] Multiple y axes

  • from 1 y axis to multiple y axes
  • each y axis has value_formatter
  • remove series.y_axis_data_formatter
  • add sereis.y_axis_id
  • change tooltip.formatter accordingly

concept clarification: "data source" vs "query"

data source should be pg / mysql / graphql / http etc.
query is SQL / http request definition

unfortunately these two concepts are now both data source, following changes should be made to clarify them:

  1. dashboard.definition.dataSources -> dashboard.definition.queries
  2. dashboard.panels.dataSourceID -> dashboard.panels.queryID

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.