Architecture

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.

Base packages

These packages are indispensable for a basic presentation of data platform:

In addition, these packages show content with a better look and allow the data entry by users:

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.

Plugins packages

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.

Plugin.js

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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

K.Plugin({
name: 'pluginName',
templates: {
navSidebar: 'navSidebar_pluginName',
panelProfile: 'panelProfile_pluginName',
panelUser: 'panelUser_pluginName',
popupPlace: 'popupPlace_pluginName'
},
schemas: {
place: {
fieldName: [], /* extend base model with additional fields */
},
pluginModel: {
updatedAt: '',
fieldId: '',
/* define new model of data, */
}
},
filters: {
placePanel: { /* extend a default filter */
fields: {
fieldName: 1
}
},
pluginFilter: { /* define new filter */
fields: {
fieldName: 1
}
}
},
settings: {
"public": {
"pluginName": {
/* settings */
}
}
}
});
Edit on GitHub
Licensed under Creative Commons