Skip to content

A full stack boilerplate for building metadata manager and dashboard

License

Notifications You must be signed in to change notification settings

ryncsn/metadash

Repository files navigation

Metadash

Live Demo

Build Status codecov

What is it?

  • Metadash is a (meta)data manager, a data aggregator, or a data gateway, a dashboard center, and supports plugins.
  • Metadash make use of concepts like "Generic Foreign Key(GKF)", "Entity attribute value model(EAV)", and there are two type of data in metadash, entity and attribute, each entitie have UUID for indexing and caching. Though sometimes, some of thoes conceptions are considered anti-pattern, but with powerful ORM and helpers, it's extremely flexible with acceptable performence.
  • Metadash uses Flask, SQLAlchemy, Vue, Webpack, and some plugins for them. There are some 'magic' and workaround, by which I try to make the model and api layer neat and clean, and make plugins as simple as possible. More documents is comming later.

Quick start:

(Docker and docker-compose required)

Build docker image

docker build -t metadash .

Setup containers

docker-compose up -d

Setup Development Enviroment:

Dev enviroment (With hot reload and dev server) (npm and pipenv required, and python > 3.5)

Setup dependency

bin/md-manager setup --develop --no-build

Config Redis and SQL Database

(Optinal: Required if you want to try async tasks or have better performance)

cp config/config.py.dev.example config/config.py

# Edit config according to your requirement
$EDITOR config/config.py

Start devel server

npm run ui-dev
bin/md-manager runserver

Any contribute, suggestion, issue is high welcomed! It's not well documented and not fully implemented yet, so everything could go wrong.

About

A full stack boilerplate for building metadata manager and dashboard

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published