# Energy Dashboard Prototype

A prototype of an energy dashboard for the Bosch Schwieberdingen facility. The development of this dashboard was carried out as part of sub-project 3.1 (_Effizienzsteigerung durch intelligente Vernetzung von Erzeugern und Verbrauchern in Gewerbegebieten am Beispiel der Robert Bosch GmbH, Standort Schwieberdingen_) of the iCity project.

## Features

- Retrieve raw observations at 15 minute and 60 minute sampling rates

- Aggregate the raw observations for daily or monthly intervals. The currently available aggregation options are `sum`, `maximum`, `minimum` and `average`

- Visualize the raw and aggregated observations using four types of charts: line, heatmap, scatter plot and column. These charts are based on the [Highcharts](https://www.highcharts.com/blog/products/highcharts/) JavaScript library

## Installation

- Clone this repository

- Create a `config.mjs` file and place it in the root of the `public/js` directory. This file should have the following structure:

```javascript
const CESIUM_ION_ACCESS_TOKEN = "your_cesium_ion_token";
const SENSORTHINGS_API_BASE_URL = "your_sensorthingsapi_server_url";
export { CESIUM_ION_ACCESS_TOKEN, SENSORTHINGS_API_BASE_URL };
```

- Install the application's dependencies

```bash
$ npm i
```

- Start the application (which should be available at `http://localhost:3000`)

```bash
$ nodemon index.js
```
