Kepler uses a package-based architecture, meaning that the entirety of its codebase resides in /packages path. In addition to this standard design adopted by many large-scale Meteor applications KeplerJs implements a plugins mechanism that allows you to split different functionality into different packages, this option facilitates the work of developers that will be able to connect their services or their customizations without modifying the API core.
These packages are indispensable for a basic presentation of data platform:
- keplerjs:lib includes 3rd party libraries and external meteor packages
- keplerjs:i18n contains all languages for base packages
- keplerjs:core implement the base business logic
- keplerjs:ui define the base User Interface
In addition, these packages show content with a better look and allow the data entry by users:
- keplerjs:theme include custom CSS styles icons and images
- keplerjs:edit KeplerJs plugin to edit/remove places’s data
All this set of base packages can be included in a single hit by installing the meta-package keplerjs:base, probably your starting case study will need only this package.
The Kepler plugin packages provide useful features for your Kepler application. A plugin package only need to make your own package depend on keplerjs:core or others plugins if needed.
A Kepler plugin is a standard Meteor package that contains a plugin.js file that defines the UI structure, custom settings and others configuration in the kepler environment, similar in concept to Package.js. The following is an example of a plugin definition: