Git Product home page Git Product logo

mochi-app's Introduction

Mochi

Mochi is a Chrome application for interacting with various databases. Currently, it is a proof of concept with PostgreSQL support with more integrations planned in near future.

Usage

Prerequisites

Project Structure

Uses Phosphorjs for application base. Application structure is heavily inspired from Jupyterlab.

src directory includes the source code for the application. Application is split into so called extensions, where each extension has a specific purpose. Extensions can depend each other using phosphor extension system.

Extension system might look overwhelming at first sight, but it makes architecture simpler on scale at a cost of minimum code repetition. Extensions should be considered as 3rd parties, which means they should only use public APIs exposed by each extension.

UI uses phosphor widgets for layouting and React for rendering.

For more reference about architecture please refer to Jupyterlab Development Guide.

Setup

yarn

Build in watch mode

terminal

yarn watch

Load extension to chrome

Load dist directory

mochi-app's People

Contributors

dependabot[bot] avatar necmttn avatar osmanmesutozcan avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

necmttn

mochi-app's Issues

How to separate cards in markdown for import?

How to separate cards in markdown for import?

For importing from .md, you mention to use --- in the markdown to separate sides of cards โ€ฆ

but you don't mention how to separate cards themselves. How do we do this?

(Maybe I missed it?)

please reply, and update your docs to explain this to new users. :)

QueryEditor model

User will be able to pass a query editor model when activating the widget.

Widget will be able to notify the user about the changes made/commands run

Query Variable

User should be able to create query variables. Much similar to postman

Handle connect/disconnect states of the connectors

We must implement a heartbeat to the connector interface. We will use this interface on connector manager to poll all connections to detect disconnect state. If a connection is disconnected we should give user a feedback.

Give feedback to user about query errors

Query errors received from the connector should be shown to user.

Best way to that may be to create generic connector errors and throw them in the connector code instead of plain errors.

we can catch these errors in the extension level and handle accordingly.

History widget

We want to add a history widget to the left area.
This widget will keep track of the history and save it to the mochi service.

We can implement this widget in the query editor extension.

TableViewer model

Whenever a new table viewer is activated user will also pass a viewer modal. User will be able to manipulate the viewer view using the modal and modal will be able to notify the user about changes made to viewer view.

Editable query results

Query results should be editable.

Main challenge is to come up with a unified way to handle commits.

Best way to handle this could be to give connector author a way to get notified when a cell is edited.

Author can collect the updates until it they are committed and save when it is updated.

But this way would create a confusing dataconnector interface.

Maybe instead we can create another interface to wrap query result edits. With each edit we can ask connector author to update the wrap. and wrap interface can have a build method to generate a
publishable query.

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.