Skip to content
Giovanni Gaglione edited this page May 4, 2015 · 8 revisions

Introduction

This page tells you about:

  1. Requirements
  2. Domain model
  3. Architecture

Requirements

Connection (database), schema, documents

  • we want to manage database connection urls
  • a connection is identified by triple:
    • host
    • port
    • database name
  • each connection identifies a list of collections
  • each collection is a list of documents
  • we want to show data related to current collection, and current connection
  • for each collection, we want to let customize the schema that reflects what the tabular visualization shows

Query

  • we want to manage queries
  • each query is represented by its script - like the CLI
  • it can be executed
  • it can be associated to a unique label
  • the label can be saved to be accessed in the future
  • we want to count the number of times a query is executed. Doing so, we can sort the set of queries in a different way than alphabetically way
  • of course, each query is associated to a database connection, and collection

Widget (Proposal)

  • the user should be able to create a custom page that shows a set of widget (e.g. kibana-like)
  • each widget should have a title, a visualization, and a query that it is associated to
  • each widget could be associated to more than one collection
  • candidate of widgets are
  • simple count
  • avg
  • frequency counter (based on a field)
  • → check kibana for more info

Domain model

domain-model

Architecture

You can find the code here.

The architecture is composed by the following components:

  • TokuMx database - to store user data
  • mongo-express http server - to let the frontend app to connect to external databases
  • Wongo API Http Server - to let the frontend save user data
  • Wongo frontend - AngularJS App -
  • restful-mongo - the core component to instantly create an Http API layer on top of MongoDB

Clone this wiki locally