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
Add a type to the widget component. With the type the client must be able to distignuish als widgets for rendering and updating.
UrlRewriteFilter doesn't seem to behave correctly, e.g. /dashboards or /widgets return the SpringBoot error page.
Evaluate a code quality tool with the following features:
java
typescript / js
first ideas
Upgrade angular2 to 2.0.0
Replace custom HalJsonResource with Spring HATEOAS and HalJson rendering.
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.
Rewrite infiniboard-app
using angular-cli
and rename it to dashy
.
Creation of a static mockup to:
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 the basic spring boot application as subproject harvester.
helpful resources
resources:
Currently harvester does not process any configured widget source. After starting via bootRun
or docker it just idles.
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).
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:
Each official CircleCI master build should update the Rest-API docs generated by Spring Rest Doc (PR #103).
idea
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.
evaluate concourse.ci as continuous delivery platform for releases
check following features
harvester
, quartermaster
, infiniboard-app
SonarQube should analyze all incomming PRs and add comments on how to improve the PRs quality.
for each gradle module copy test reports to build artifacts
e.g. harvester/build/reports/tests/*
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)
.
it should be possible to add an optional link while creating a platform-status-widget, which points to the application beeing monitored.
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.
A docker-compose configuration to startup:
Since UMLed is only available for windows, we should consider switching to an UML editor working for Windows, Mac OS X and Linux.
configure idea
task to import settings.jar
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!
Publishing SpringRestDocs to GitHub Pages using Gradle.
platform-version
infiniboard-app
uses gulp-minify-css
which is deprecated.
replace with gulp-clean-css
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
.
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.
update spring boot to current stable version: 1.3.6.RELEASE
integrate gradle-plugin activation into idea
task
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)
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
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
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.
Add sonarqube analysis to github checks.
Sonarqube should analyze using:
Todos for the Schudulingjob
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.