reflectoring / infiniboard Goto Github PK
View Code? Open in Web Editor NEWinfiniboard a customizable, general purpose project dashboard
Home Page: http://projects.reflectoring.io/infiniboard
License: MIT License
infiniboard a customizable, general purpose project dashboard
Home Page: http://projects.reflectoring.io/infiniboard
License: MIT License
Currently harvester does not process any configured widget source. After starting via bootRun
or docker it just idles.
configure idea
task to import settings.jar
resources:
for each gradle module copy test reports to build artifacts
e.g. harvester/build/reports/tests/*
Since UMLed is only available for windows, we should consider switching to an UML editor working for Windows, Mac OS X and Linux.
Todos for the Schudulingjob
helpful resources
platform-version
add the basic spring boot application as subproject harvester.
The standard conversion of LocalDate objects is making out JSON results big and unreadable. There should be a converter from LocalDate to (maybe) the ISO-Datetime format.
update spring boot to current stable version: 1.3.6.RELEASE
Currently gulp packages the whole content of bower_components
, this is ok for the start, but blowes up the package application. Thats why we should add a list of bower dependencies we like to package with the client.
In order for angular2 HTML5 navigation to work properly, all angular2 app request must be redirected to index.html.
An example on how to configure this redirect for apache2 can be found here:
http://serverfault.com/questions/188373/apache-2-2-rewrite-force-all-requests-to-index-html
Also the quartermaster /api/**/*
requests have to be routed to spring boot app!
Running $ ./gradlew -t classes
after cloning repo (as README.md suggests) leads to errors since infiniboard-app has no valid npm configuration.
(Do not know why, :infiniboard-app:node-setup seems to be inserted too late in the dependency hierarchy and is never called.)
$ (cd infiniboard-app && npm install)
beforehand fixes the issue.
Also, please add that a Python in [2.5, 3.0) must be available on the system and that gulp-cli should have been installed globally (on npm).
Add sonarqube analysis to github checks.
Sonarqube should analyze using:
Each official CircleCI master build should update the Rest-API docs generated by Spring Rest Doc (PR #103).
idea
Currently the AdminLTE layout is broken when the angular2 app is loaded.
After initialization of the app.component
the javascript function $.AdminLTE.layout.fix()
must be called to fix this. thanks to @acetous for reporting the fix.
further readings:
SonarQube should analyze all incomming PRs and add comments on how to improve the PRs quality.
In the current implementation there is no way to unschedule jobs for a deleted sourceconfig. The task is to extend the job-managerjob so that the job automaticly unschedule updatejobs of deleted sources.
Publishing SpringRestDocs to GitHub Pages using Gradle.
Replace custom HalJsonResource with Spring HATEOAS and HalJson rendering.
integrate gradle-plugin activation into idea
task
UrlRewriteFilter doesn't seem to behave correctly, e.g. /dashboards or /widgets return the SpringBoot error page.
evaluate concourse.ci as continuous delivery platform for releases
check following features
harvester
, quartermaster
, infiniboard-app
I just realized that we are checking the messages of exceptions in unit tests (e.g. ). IMO we shouldn't check for exception messages. Instead we should check only the exception type. If we use the same exception type for different error cases we run into problems as these cases can only be detected by parsing the exception messages, which is a bad style.
So instead of using expectedException.expectedMessage("message")
we should use expectedException.expect(IllegalArgumentException.class)
.
When using npm start
the app works as expected and angular2 loads. But after using gulp
to concat / minify css and js angular2 doesn't load.
Add a type to the widget component. With the type the client must be able to distignuish als widgets for rendering and updating.
it should be possible to add an optional link while creating a platform-status-widget, which points to the application beeing monitored.
Currently the docker containers are trying to connect to localhost
.
The containers should be able to override the application.properties and connect to host mongo
.
Evaluate a code quality tool with the following features:
java
typescript / js
first ideas
Rewrite infiniboard-app
using angular-cli
and rename it to dashy
.
As Spring HATEOAS renders not nicely (links vs. _links, no embedded relation) a custom HalJson representation will be written for infiniboard APIs.
HalJson Draft: https://tools.ietf.org/html/draft-kelly-json-hal-08#section-4.1
28 errors are output when cross-compiling TypeScript independent of whether gulp
is invoked with or without the dev
argument. Problem occurs with gulp 3.9.1 (cli 1.2.2) on node 6.3.1
[23:49:06] Starting 'ts'...
[gulp-typescript] 2300 Duplicate identifier 'PropertyKey'.
> file: typings\browser\ambient\es6-shim\es6-shim.d.ts:
> [8] // Definitions by: Ron Buckton <http://github.com/rbuckton>
[gulp-typescript] 2300 Duplicate identifier 'done'.
> file: typings\browser\ambient\es6-shim\es6-shim.d.ts:
> [11]
[gulp-typescript] 2300 Duplicate identifier 'value'.
> file: typings\browser\ambient\es6-shim\es6-shim.d.ts:
> [12]
[gulp-typescript] 2300 Duplicate identifier 'EPSILON'.
> file: typings\browser\ambient\es6-shim\es6-shim.d.ts:
> [250] small(): string;
[gulp-typescript] 2300 Duplicate identifier 'MAX_SAFE_INTEGER'.
> file: typings\browser\ambient\es6-shim\es6-shim.d.ts:
> [285]
[gulp-typescript] 2300 Duplicate identifier 'MIN_SAFE_INTEGER'.
> file: typings\browser\ambient\es6-shim\es6-shim.d.ts:
> [292] * @param mapfn A mapping function to call on every element of the array.
[gulp-typescript] 2300 Duplicate identifier 'flags'.
> file: typings\browser\ambient\es6-shim\es6-shim.d.ts:
> [348] */
[gulp-typescript] 2300 Duplicate identifier 'prototype'.
> file: typings\browser\ambient\es6-shim\es6-shim.d.ts:
> [500]
[gulp-typescript] 2300 Duplicate identifier 'size'.
> file: typings\browser\ambient\es6-shim\es6-shim.d.ts:
> [563]
[gulp-typescript] 2300 Duplicate identifier 'prototype'.
> file: typings\browser\ambient\es6-shim\es6-shim.d.ts:
> [572] /**
[gulp-typescript] 2300 Duplicate identifier 'size'.
> file: typings\browser\ambient\es6-shim\es6-shim.d.ts:
> [583]
[gulp-typescript] 2300 Duplicate identifier 'prototype'.
> file: typings\browser\ambient\es6-shim\es6-shim.d.ts:
> [592] */
[gulp-typescript] 2300 Duplicate identifier 'prototype'.
> file: typings\browser\ambient\es6-shim\es6-shim.d.ts:
> [607]
[gulp-typescript] 2300 Duplicate identifier 'prototype'.
> file: typings\browser\ambient\es6-shim\es6-shim.d.ts:
> [621]
[gulp-typescript] 2300 Duplicate identifier 'PropertyKey'.
> file: typings\browser\ambient\es6-shim\index.d.ts:
> [8] // Definitions by: Ron Buckton <http://github.com/rbuckton>
[gulp-typescript] 2300 Duplicate identifier 'done'.
> file: typings\browser\ambient\es6-shim\index.d.ts:
> [11]
[gulp-typescript] 2300 Duplicate identifier 'value'.
> file: typings\browser\ambient\es6-shim\index.d.ts:
> [12]
[gulp-typescript] 2300 Duplicate identifier 'EPSILON'.
> file: typings\browser\ambient\es6-shim\index.d.ts:
> [250] small(): string;
[gulp-typescript] 2300 Duplicate identifier 'MAX_SAFE_INTEGER'.
> file: typings\browser\ambient\es6-shim\index.d.ts:
> [285]
[gulp-typescript] 2300 Duplicate identifier 'MIN_SAFE_INTEGER'.
> file: typings\browser\ambient\es6-shim\index.d.ts:
> [292] * @param mapfn A mapping function to call on every element of the array.
[gulp-typescript] 2300 Duplicate identifier 'flags'.
> file: typings\browser\ambient\es6-shim\index.d.ts:
> [348] */
[gulp-typescript] 2300 Duplicate identifier 'prototype'.
> file: typings\browser\ambient\es6-shim\index.d.ts:
> [500]
[gulp-typescript] 2300 Duplicate identifier 'size'.
> file: typings\browser\ambient\es6-shim\index.d.ts:
> [563]
[gulp-typescript] 2300 Duplicate identifier 'prototype'.
> file: typings\browser\ambient\es6-shim\index.d.ts:
> [572] /**
[gulp-typescript] 2300 Duplicate identifier 'size'.
> file: typings\browser\ambient\es6-shim\index.d.ts:
> [583]
[gulp-typescript] 2300 Duplicate identifier 'prototype'.
> file: typings\browser\ambient\es6-shim\index.d.ts:
> [592] */
[gulp-typescript] 2300 Duplicate identifier 'prototype'.
> file: typings\browser\ambient\es6-shim\index.d.ts:
> [607]
[gulp-typescript] 2300 Duplicate identifier 'prototype'.
> file: typings\browser\ambient\es6-shim\index.d.ts:
> [621]
[23:49:10] TypeScript: 28 semantic errors
[23:49:10] TypeScript: emit succeeded (with errors)
A docker-compose configuration to startup:
Creation of a static mockup to:
implement the following json APIs using mocked data:
api/dashboards
- GET - fetch all configured dashboard idsapi/dashboards/{dashboardId}
- GET - fetch the specified dashboard including all widgets configurations for this dashboardapi/widgets/{widgetId}
- GET - fetch widget config for specified widgetapi/widgets/{widgetId}
- POST - create a widgetapi/widgets/{widgetId}/data
- GET - fetch the current widget data for specified widgetexample json to create a widget:
{
"title" : "myUrlWidget",
"sourceConfigs" : [
{
"id" : "urlSource",
"type" : "urlSource",
"interval" : 1000,
"configData" :
{
"url" : "https://echo.getpostman.com/get?test=123"
}
}
]
}
Widget IDs are globally unique
Upgrade angular2 to 2.0.0
infiniboard-app
uses gulp-minify-css
which is deprecated.
replace with gulp-clean-css
If an error occurs while updating a sourceconfig data, the error must be handled in the widget itself (for example by showing an errorflag for a label) and for the quartermaster (for example by logging the error out). The task here is to evaluate and implement a proper way to handle errors within sourceconfig-update-jobs.
UrlSourceJob ignores SSL certificate validation for now. Preferably it should use an own keystore or the one from the java distribution.
Test current stable node version (6.3.0) as it seems to be a lot faster.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.