Git Product home page Git Product logo

existdb-dashboard's Introduction

eXist-db Admin Dashboard

Admin Dashboard is a replacement of the older Dashboard and will replace it from eXist-db 5.0.0 onwards.

Building for development

The application is build with Apache Ant by executing

ant xar

This creates an unoptimized package for development purposes.

Building for production

To create a minified package execute:

ant production-xar

A note on client-side dependencies

Admin Dashboard is made of Web Components using bower for handling client-side dependency management. bower builds upon the nodejs stack and therefore require a nodejs installation to work.

Usually when using dependency tools the dependent modules are loaded dynamically from remote repositories. This has certainly advantages but also introduce the danger of undetected deep version changes and other problems when sources become unavailable for some reason. A discussion on this topic can be found here. Furthermore it requires the installation of npm and bower.

As nodejs (npm) is not available or common to everyone the dependencies are therefore kept in the repo which eases building the app.

What it does

Admin Dashboard provides a common UI for adminitration tools in a responsive sidebar layout. The layout uses the Material Design Guidelines to provide a common UI across a wide range of devices.

Currently it contains:

  • Launcher (not strictly an admin tool but here for convenience)
  • PackageManager
  • UserManager
  • Settings

More modules can be plugged later on.

Features

  • made of modular Web Components
  • making use of latest HTML5 standard features like Custom Elements, Shadow DOM and HTML Templates
  • responsive sidebar layout following Material Design
  • the modules (like Packagemanager and Usermanager...) can be bookmarked for direct access
  • allows to install, upload, update and remove packages (PackageManager component)
  • manage users and groups (UserManager component)
  • Settings panel showing eXist-db version and public repo URL. This will likely be extended for configuration.

Architecture

Admin Dashboard composes a set of Web Components into a common UI. As Web Component support is not on the same level in all browsers Polymer is used to polyfill the gaps. E.g. while Chrome already fully implements the current state of Web Components natively Firefox does not have a shadowDOM implementation at the time of this writing. Polymer bridges this gap as good as possible and provides cross-browser compatibility for all modern browsers.

For more information see https://webcomponents.org

To truly understand the impact of Web Components just a few points should be mentioned: Web Components provide truly encapsulated custom HTML elements that behave as any other HTML element but may attach styling, logic and shadowDOM to the element. As part of HTML5 they'll become native browser functionality once fully estabilshed.

Use of components in Admin Dashboard

Admin Dashboard is made of a lot of Web Components that can be found in 'bower_components' directory.

Most of those are publicly available components available from webcomponents.org but there is also a set of components specifically developed for eXist-db. These are organised in logical groups that are hosted in their own repositories.

Usually you don't have to deal with these details as this is done via bower (see bower.json) but this information is just provided for developers that want to enhance Admin Dashboard.

Here's a list repositories involved:

Hybrid Components

PackageManager, UserManager and Launcher are not just Web Components but fully functional as a standalone xar application in eXist-db. As such each of them can be checked out and build separatly. This allows to have eXist-db installations that have no Admin Dashboard at all but just e.g. a Launcher. On production system however you might want no launcher at all and only a PackageManager.

These scenarios are made possible by these hybrid components.

Compatibility

The application has been tested on:

  • Chrome 65.0.3325.181 / OSX 10.13.3
  • Firefox 59.0.2 / OSX 10.13.3
  • Safari 11.0.3 / OSX 10.13.3

Admin Dashboard is built with Polymer 2. See their compatibility table here.

existdb-dashboard's People

Contributors

adamretter avatar dizzzz avatar joewiz avatar

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.