Giter Site home page Giter Site logo

totalhack / zillion-web Goto Github PK

View Code? Open in Web Editor NEW
15.0 4.0 1.0 908 KB

Zillion Web: A Demo UI and Web API for Zillion

License: Other

Shell 1.28% Python 22.13% Mako 0.13% HTML 4.34% Dockerfile 0.37% JavaScript 1.88% Vue 54.17% TypeScript 13.36% CSS 2.36%
vue dockerswarm demo-ui docker-swarm-mode zillion analytics warehouse data-warehousing fastapi typescript

zillion-web's Introduction

Zillion Web: A Web UI/API for Zillion

Zillion Web Demo UI

Table of Contents

About Zillion Web

โš ๏ธ Warning: This project is experimental and mostly for demo purposes at this time.

Zillion Web is a monorepo frontend UI and backend API with a main objective of demonstrating and testing some use cases for Zillion. The project was initially created using this project generator but has drifted a bit in terms of docker setup, library versions, and stylistic choices. It retains the same general code structure so reviewing those docs and the docs at dockerswarm.rocks will be helpful if you are looking to develop or deploy this on your own.

Some general things to know:

  • This includes the zillion[nlp] extension to support experimental text-to-report functionality. As such you will need NLP config settings to run. See the Zillion docs for more details, set up a custom zillion config with your OpenAI settings, or look at the docker files to see what environment vars you can set.
  • The frontend is currently Vue 2.6+ with Vuetify 2.3+. It utilizes vue-property-decorator and vue-class-component.
  • Billboard JS is used for charting.
  • There is not much in terms of automated testing, but it is expected to work well on recent Chrome and Firefox desktop versions. YMMV elsewhere.
  • The backend is a FastAPI python server. You can run this separately if you are just looking for a web API to access a Zillion backend.

Demo

There is currently no hosted demo but the default settings will bring up a warehouse with data from the Baseball Databank.

ChatGPT Plugin

This project contains experimental support for accessing your warehouse as a ChatGPT plugin. This requires some extra environment settings as well as you setting up the plugin within ChatGPT.

By default in dev mode (more precisely when the SERVER_HOST setting has localhost in it) there is no authentication. In production you would set a Bearer token and give that to ChatGPT to access the plugin. Additionally since ChatGPT doesn't understand the concept of deciding which warehouse to query you must hardcode a warehouse ID. The following environment variables must be set:

PLUGIN_TOKEN=<some secure token>
PLUGIN_WAREHOUSE_ID=<your integer warehouse id>
[email protected]
PLUGIN_LEGAL_INFO=<your domain legal info url>

The plugin is installed as a sub app with its own OpenAPI specification at /plugin/openapi.json.

Installation

Install docker, clone this repo, and bring it up with Docker Compose. Generally speaking you should reference the docs for the base project generator. You will need to change variables in the .env file at the project root, including adding the ones commented out or setting them otherwise in your environment before starting the project locally with docker-compose up.

I've also added an "extdb" version of the docker deployment that may be more flexibly integrated with existing databases. This would be useful if you had an existing load balancer and database in the cloud that you wanted to use.

How To Contribute

Any help/feedback is greatly appreciated. Please check out the basic contributing guide for Zillion as a guideline.

zillion-web's People

Contributors

totalhack avatar yazgoo avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

Forkers

touristshaun

zillion-web's Issues

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.