<commit_before># isodash

> An isomorphic js dashboard framework.

Isodash permit to build dashboards. Its based on Fetchers (to get data) and Visualizers (to display it). Both are linked with an ergonomic Angular2 web-app.

# Development

## Requirements

* node > 4

## Procedure

```bash
npm install
npm run dev
```

Other terminal

```bash
node build/app/server/app.js
```

# Roadmap

## Version 1

* Globale Architecture
  * [x] [Fetcher](app/server/fetcher/Fetcher.ts)
  * [x] [Fetcher example](app/server/IDF/Test.ts)
  * [x] [Visualizer](app/client/visualizer/Visualizer.ts)
  * [x] [Visualizer example](app/client/IDV/TestIdv.ts)
  * [x] Communication [server->client](app/server/service/Client.ts) & [client->server](app/client/service/Server.ts)
  * [x] Configuration + [check](app/server/service/CheckFetcherOption.ts) (with a file server side in [isodash.conf.json](isodash.conf.json))
   
* Brick maker
  * [ ] Drag&Drop empty case -> open popup with visu
  * [ ] Popup visu to select one + select compatible fetcher(s) 
  * [ ] Add brick inside dashboard
  * [ ] Size + move a brick
  * [ ] Edit/Delete in editing mode
  
* Mode edit/Password
  * [ ] If a dashboard is in password mode (setting in conf server side), to edit it need to fill a password
  * [ ] When selecting an url without dashboard -> create it and user can configure it
  * [ ] If a no passworded dashboard is not seen during 48H (can ba a setting) delete it
 
* [ ] Install it to raspberry with restart auto

## Version 2

* Visualizers
  * [ ] map
  * [ ] charts 
    * [ ] camembert
    * [ ] line
    * [ ] bar
  * [ ] digital number
  * [ ] gauge
  * [ ] percent horizontal gauge
  * [ ] social (avatar, title, description => twitter, rss, wordpress...)
  * [ ] weather
  * [ ] clock
  * [ ] pictures
  
* Fetchers
  * [ ] piwik
  * [ ] elastic-search (ELK)
  * [ ] twitter
  * [ ] Facebook
  * [ ] rss
  * [ ] picture of a local directory
  * [ ] Coffee machine _(reserved by sam)_
  * [ ] Service rest (can be used internally to get plots, products, cultural-practices...)
  * [ ] Jenkins build status
  * [ ] [Trade (cac40) of soybean, corn, wheat, coffee...](https://github.com/manland/isodash/issues/1)

## Version 3

* DB to save data

* Plugin management
  * [ ] Fetchers can be installed with npm
  * [ ] Visualizers can be installed with npm
  * [ ] Fetchers + Visualizers can be installed at runtime
  
* Admin
  * [ ] All config is editable in an admin page
  * [ ] Fetchers + Visualizers can be installed in an admin page
  * [ ] All dashboard can be editable by an admin<commit_msg>good readme<commit_after># Angular 2 : Bien ou Pas Bien ?

Au travers d'une petite partie théorique, puis pratique et enfin d'une démo, découvrez les principaux concepts d'Angular2 :

* [Template](app/client/1-firstCompo/)
* [Component](app/client/2-useCompo/)
* [Use Service](app/client/3-httpService/)
* [Build Service](app/client/4-firstService/)
* [Router](app/client/5-firstRoute/)
* [Injection Singleton](app/client/5.1-firstRouteOneServer/)
* [Form](app/client/6-firstForm/)
* [Custom Validator](app/client/7-firstDirective/)
* [Tests](app/client/8-firstTest/)
* NativeScript

## Lancer localement

> git clone <EMAIL>:manland/angular2-bien-ou-pas-bien.git

> cd angular2-bien-ou-pas-bien

> npm install

> npm run dev

Dans un autre terminal :

> npm start

Ouvrir dans un browser : `http://127.0.0.1:8122/0-theory/`
{'fraction_non_alphanumeric': 0.13028169014084506, 'fraction_numerical': 0.010269953051643193, 'mean_word_length': 3.4796320630749014, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 16, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 1, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5574142', 'n_tokens_mistral': 1192, 'n_tokens_neox': 1138, 'n_words': 340}