All Projects → mongodb-js → Compass

mongodb-js / Compass

Licence: other
The GUI for MongoDB.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Compass

Mongo Express
Web-based MongoDB admin interface, written with Node.js and express
Stars: ✭ 4,403 (+995.27%)
Mutual labels:  mongodb, gui
Living Mongo
A MongoDB Web GUI
Stars: ✭ 42 (-89.55%)
Mutual labels:  mongodb, gui
Mogollar
A MongoDB UI built with Electron
Stars: ✭ 251 (-37.56%)
Mutual labels:  mongodb, gui
Shell
Infrastructure Management Shell - Linux
Stars: ✭ 381 (-5.22%)
Mutual labels:  mongodb
Mineos
Home of MineOS and it's software for OpenComputers mod
Stars: ✭ 381 (-5.22%)
Mutual labels:  gui
Mystiq
Qt5/C++ FFmpeg Media Converter
Stars: ✭ 393 (-2.24%)
Mutual labels:  gui
Koa11y
Easily check for website accessibility issues
Stars: ✭ 403 (+0.25%)
Mutual labels:  gui
Dbeaver
Free universal database tool and SQL client
Stars: ✭ 23,752 (+5808.46%)
Mutual labels:  gui
Stackoverflow Clone
This project is a simplified a full stack clone of Stackoverflow.
Stars: ✭ 395 (-1.74%)
Mutual labels:  mongodb
Compose Jb
Jetpack Compose for Desktop and Web, a modern UI framework for Kotlin that makes building performant and beautiful user interfaces easy and enjoyable.
Stars: ✭ 7,562 (+1781.09%)
Mutual labels:  gui
Data Driven Web Apps With Flask
Course demo code and other hand-out materials for our data-driven web apps in Flask course
Stars: ✭ 388 (-3.48%)
Mutual labels:  mongodb
Go Astilectron
Build cross platform GUI apps with GO and HTML/JS/CSS (powered by Electron)
Stars: ✭ 4,150 (+932.34%)
Mutual labels:  gui
Micronaut Microservices Poc
Very simplified insurance sales system made in a microservices architecture using Micronaut
Stars: ✭ 394 (-1.99%)
Mutual labels:  mongodb
Wxgo
Golang wxWidgets Wrapper
Stars: ✭ 383 (-4.73%)
Mutual labels:  gui
Spruce
A social networking platform made using Node.js and MongoDB
Stars: ✭ 399 (-0.75%)
Mutual labels:  mongodb
Notebook
🍎 笔记本
Stars: ✭ 381 (-5.22%)
Mutual labels:  mongodb
Adapt authoring
A server-based user interface for authoring eLearning courses using the Adapt framework.
Stars: ✭ 395 (-1.74%)
Mutual labels:  mongodb
Egg Mongoose
Stars: ✭ 386 (-3.98%)
Mutual labels:  mongodb
Cutelog
GUI for logging
Stars: ✭ 386 (-3.98%)
Mutual labels:  gui
Vugu
Vugu: A modern UI library for Go+WebAssembly (experimental)
Stars: ✭ 4,251 (+957.46%)
Mutual labels:  gui

MongoDB Compass

The MongoDB GUI.

Aggregation Pipeline Builder Tab in Compass

Development

Running Compass locally requires Node.js and npm:

  • Node.js: ^12.4.0
  • npm: >=6.13.0
npm install
npm start [compass|compass-readonly|compass-isolated]

Plugins

Current Plugin API Version: 3.0.0

Majority of Compass' functionality lives in various plugins outside the main repo. This repo just brings them all together. All external plugins are tagged via the compass-plugin topic in the mongodb-js organisation. There are also various compass-tools and compass-ui-tools packages that help put together the application.

Plugins can be added to Compass by requiring them as a dependency in package.json, and by adding their installed location to the distribution plugin list also in the package.json. Plugin's apiVersion field has to match Compass'. Currently it's at 3.0.0.

Example of adding a dependency:

npm i -S @mongodb-js/[email protected]

And in package.json:

"distributions": {
  "plugin-prefix": "@mongodb-js/compass",
  "default": "compass",
  "compass": {
    "name": "mongodb-compass",
    "plugins": [
      "node_modules/@mongodb-js/compass-aggregations", // add compass-aggregations
      // rest of the plugins required for this distribution
    ],
    "styles": [
      "index"
    ]
  },
  // other distribution config
}

Plugin Roles

Compass determines functionality of a plugin based on its registered Role. There are a few mains ones that we use:

  • Instance.Tab - Display as tabs in the instance context of the app. For example, server-status-plugin.
  • Database.Tab - Display as tabs in the database context of the app. compass-collections-ddl is registered as a Database.Tab, for example.
  • Collection.Tab - Display as sub tabs in the collection context of the app. A good example of this is the compass-crud.
  • Global.Modal - Will open as modal dialogs in any context of the app. These can be separate plugins entirely, or part of an existing plguin that does something else. For example, compass-aggregations is an Collection.Tab, but also registers a Global.Modal.
  • Collection.ScopedModal - Will open as a modal scoped in the collection context. compass-import-export, for example, registers 2 ScopedModals - one for import and the other for export.

Creating a New Plugin

We use a template to create new plugins. It comes set up with packages we might need to be using, and an electron environment to debug and test the plugin. The template is managed by khaos

npm i -g khaos
khaos create mongodb-js/compass-plugin ./my-plugin

Contributing

For issues, please create a ticket in our JIRA Project.

For contributing, please refer to CONTRIBUTING.md

Is there anything else you’d like to see in Compass? Let us know by submitting suggestions in out feedback forum.

License

SSPL

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].