rex2002xp / mongoui

MongoDB admin UI server written in Node.js

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MongoUI

MongoUI (mongoui) is a web browser admin interface for MongoDB. Currently a standalone tool (run as an app locally or on your server); middleware later.

Here's a one and a half minute video that shows filtering, editing, and switching collections:

mongoui rocks!

Branches

  • Master — major releases, main branch
  • Develop — current development branch (make your pull requests here)

Why

Tired of typing db.users.findOne({_id:ObjectId(...)}) just to look up data structure. Even more typing to modify the data. Can't find Node.js implementaton (not true any more, there is exprss-mongo).

How to Use

Installation

git clone git@github.com:azat-co/mongoui

or

git clone https://github.com/azat-co/mongoui.git

or

curl -O https://github.com/azat-co/mongoui/archive/master.zip

or

wget https://github.com/azat-co/mongoui/archive/master.zip
unzip master.zip
cd mongoui-master

or

mkdir node_modules
npm install mongoui
cd node_modules/mongoui

Configs

Copy config_default.json file as config.json:

$ cp config_default.json config.json

Modify as needed (remote databases should work just fine!).

Running the app

Assuming that MongoDB is running ($ mongod), to start the server run:

$ node .

or:

$ node index.js

or

$ node index

Using

Open http://localhost:1313/ in your favorite browser. If you use Chrome, there is a nice extension for viewing raw json: Chrome extension.

Optional: Download and install JSONView Chrome extension to view JSON in a human readable format.

Contributors

Via git shortlog -s -n:

61  Azat Mardanov
14  cultofmetatron
 1  Jan Carlo Viray

TODO

The list is in the GitHub Issues.

Contributing

Pull requests are always welcome as long as an accompanying test case is associated.

This project is configured to use git flow and the following conventions are used:

  • develop - represents current active development and can possibly be unstable.

  • master - pristine copy of repository, represents the currently stable release found in the npm index.

  • feature/** - represents a new feature being worked on

If you wish to contribute, the only requirement is to:

  • branch a new feature branch from develop (if you're working on an issue, prefix it with the issue number)
  • make the changes, with accompanying test cases
  • issue a pull request against develop branch

Although I use git flow and prefix feature branches with "feature/" I don't require this for pull requests... all I care is that the feature branch name makes sense.

Pulls requests against master or pull requests branched from master will be rejected.

Examples

Examples of good branch names:

  • 12-amd-support
  • feature/12-amd-support

Running Tests

In order to run the tests which are in test folder, you will need:

  • Node.js
  • NPM

With those installed, running npm install and ''npm test'' will run the tests.

Non-node.js alternatives

Screenshots

Select a database from the local server (can be remote server):

Select a collection from the dropdown menu:

Collection view with a single element (if there's only one element, it can be edited):

Edit an item (if there's only one element, it can be edited):

Editing text property (if there's only one element, it can be edited):

Server logs (real-time updates as you type):

Filter/find based on property(ies):


The MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

MongoDB admin UI server written in Node.js


Languages

Language:JavaScript 51.6%Language:HTML 33.3%Language:CSS 15.1%