All Projects → openeew → openeew-dashboard

openeew / openeew-dashboard

Licence: Apache-2.0 license
Dashboards for monitoring devices, events, users, data and more. Built on Carbon and React.

Programming Languages

javascript
184084 projects - #8 most used programming language
SCSS
7915 projects
HTML
75241 projects

Projects that are alternatives of or similar to openeew-dashboard

openeew
Introduction to OpenEEW, an open-source Earthquake Early-Warning toolkit
Stars: ✭ 137 (+522.73%)
Mutual labels:  earthquakes, linux-foundation, call-for-code, openeew
openeew-nodered
Flows and nodes for earthquake detection and alerts
Stars: ✭ 20 (-9.09%)
Mutual labels:  linux-foundation, call-for-code, openeew
Project-Catalog
This repository links to projects created as part of Call for Code activities, including those that are not officially hosted by The Linux Foundation.
Stars: ✭ 29 (+31.82%)
Mutual labels:  linux-foundation, call-for-code
alpine-grafana
alpine-grafana
Stars: ✭ 14 (-36.36%)
Mutual labels:  grafana
grafana-plugin-sdk-go
A Go SDK for building backend plugins for Grafana
Stars: ✭ 151 (+586.36%)
Mutual labels:  grafana
fastify-metrics
📊 Fastify plugin that integrates metrics collection and dispatch to statsd
Stars: ✭ 62 (+181.82%)
Mutual labels:  grafana
OpenMAMA
OpenMAMA is an open source project that provides a high performance middleware agnostic messaging API that interfaces with a variety of proprietary and open source message oriented middleware systems.
Stars: ✭ 117 (+431.82%)
Mutual labels:  linux-foundation
mlapp
ML model serving app based on APIs
Stars: ✭ 70 (+218.18%)
Mutual labels:  grafana
CSVServer
Simple node-based CSV adapter for Grafana Simple JSON data source
Stars: ✭ 28 (+27.27%)
Mutual labels:  grafana
predict-wildfire-intensity
WARNING: This repository is no longer maintained ⚠️ This repository will not be updated.
Stars: ✭ 32 (+45.45%)
Mutual labels:  call-for-code
cryptoprom
CryptoProm is a Prometheus metrics exporter for Cryptocurrency market prices.
Stars: ✭ 19 (-13.64%)
Mutual labels:  grafana
go-zero-looklook
🔥基于go-zero(go zero) 微服务全技术栈开发最佳实践项目。Develop best practice projects based on the full technology stack of go zero (go zero) microservices.
Stars: ✭ 2,691 (+12131.82%)
Mutual labels:  grafana
tracker
Track your activities!
Stars: ✭ 14 (-36.36%)
Mutual labels:  grafana
grafana-backup
[ON HOLD] CLI tool for backup/restore Grafana dashboards and datasources.
Stars: ✭ 28 (+27.27%)
Mutual labels:  grafana
ibm-spectrum-scale-bridge-for-grafana
This tool allows the IBM Spectrum Scale users to perform performance monitoring for IBM Spectrum Scale devices using third-party applications such as Grafana software.
Stars: ✭ 24 (+9.09%)
Mutual labels:  grafana
Elasticsearch
App Metrics Extensions for Elasticsearch reporting
Stars: ✭ 18 (-18.18%)
Mutual labels:  grafana
ruby-grafana-reporter
Reporting Service for Grafana
Stars: ✭ 42 (+90.91%)
Mutual labels:  grafana
grafana-dashboards
Collection of reusable Grafana dashboards
Stars: ✭ 55 (+150%)
Mutual labels:  grafana
InfluxDB
App Metrics Extensions for InfluxDB reporting
Stars: ✭ 17 (-22.73%)
Mutual labels:  grafana
iot-edge-offline-dashboarding
Azure IoT Edge offline dashboarding/reporting sample. Guidance and sample dashboards
Stars: ✭ 31 (+40.91%)
Mutual labels:  grafana

OpenEEW Dashboard

Build and Deploy to IKS linter

The OpenEEW Dashboard is a web application currently being developed by the OpenEEW community for the purpose of managing network sensors and viewing sensor data.

Currently, the project consists of:

  • A React application built with IBM's Carbon Design System
  • An API that handles requests from the React dashboard and other OpenEEW applications
  • Grafana dashboards that provide sensor visualizations, used in lieu of the web application until this project is further along in development (see more)

For developers: Setup a development environment

Creating a development environment involves cloning this repository and setting up several API keys, secrets and other environment variables for both the React application and API.

1. Create a vcap-local.json file from the template provided to store API credentials

Make a copy of the vcap-local.template.json file located in the web/api directory and rename it vcap-local.json (this file is ignored by Git) using this command:

# from the root directory
cp ./web/api/vcap-local.template.json ./web/api/vcap-local.json

2. Add IBM Cloud service credentials and required environment variables to vcap-local.json

This step will require a IBM Cloud account.

AppID

  1. Provision an AppID instance in IBM Cloud https://cloud.ibm.com/catalog/services/app-id
  2. Add at least one user to Cloud Directory to authenticate in development. From the AppID instance, go to Cloud Directory -> Users -> Create User
  3. Create AppID service credentials: In the newly created AppID instance, go to Service Credentials -> New credential. Set the role to Writer.
  4. Expand the created credentials and fill in the required properties in your vcap-local.json file located in web/api under AppID and credentials. You can leave the scopes field as an empty array.
  5. Copy the apiKey from your service credentials and add it to vcap-local.json in the api_key field under ibm_cloud

Cloudant

  1. Provision a Cloudant instance in IBM Cloud https://cloud.ibm.com/catalog/services/cloudant
    • For Authentication Method, select "IAM and Legacy Credentials"
  2. Once the service has completed provisioning, create Service Credentials
  3. Fill in the following properties in your vcap-local.json file, under Cloudant_sensors: url, username, password

Optional: Add mock device data to Cloudant

  1. Add a database called openeew-devices in your Cloudant instance (Go to Dashboard -> Create Database)
  2. Some basic mock device records can be found in web/api/mockdata.json.

MQTT

Connecting a MQTT broker is not necessary for development. The MQTT client will only attempt to connect if there are credentials available.

Other required environment variables

Also add the following environment variables to your vcap-local.json file:

  1. session_secret For development, this can be any random string of characters

  2. openeew_api_key For development, this can be any random string of characters. This is used to send authenticated requests to the API

  3. jwt_secret For development, this can be any random string of characters

All of these should be changed and kept secret in production.

3. Add a Mapbox access token to the React client

If you don't already have a Mapbox account, create one, and then navigate to your account's access token page to view your tokens. You can use the Default public token or create a new one.

After you have copied your token, create a file called .env.local in the web/client directory.

In .env.local add the following, replacing your_token with your Mapbox access token. Save -- the application should include the key as an environment variable.

REACT_APP_MAPBOX_ACCESS_TOKEN=your_token

3. Install dependencies for both the mock API and application

# setup scripts are located in /web
cd web

# this might take a few minutes
npm run setup

4. Start the mock API and application concurrently

# From the /web directory
npm start

5. Start developing!

The application should be running on http://localhost:3000.

The mock API should be running on http://localhost:4000

Screenshot

dashboard-events.png

Docker

Install Docker and build your own image.

cd web
docker build --tag openeew/dashboard:dev .

Then run a development container:

docker run \
  --interactive \
  --detach \
  --publish 3000:3000 \
  --name openeew-dashboard-dev \
  openeew/dashboard:dev

Design & Development

It is planned to expand this application so that in future, it will allow for the following:

  • User authentication through IBM Cloud App ID
  • Ability to connect to your sensor device, or the global OpenEEW network of devices
  • Ability to configure your device (sample rate, device ID) and also query statistics (connectivity, signal quality)
  • Ability to see historic data from your device and run simulations with detection system
  • Ability to visualize sensor accelerations for each axis
  • Ability to see sensor(s) on map

For every new addition to this application, there is a process in which prototypes and designs are discussed and approved by the OpenEEW community and Technical Steering Committee before development starts. To join the conversation, and to begin contributing to this project, please join our slack channel and review the Contributing and Developer Information section below.

You can view the current prototype here.

Contributors


Enjoy! Give us feedback if you have suggestions on how to improve this information.

Contributing and Developer Information

The community welcomes your involvement and contributions to this project. Please read the OpenEEW contributing document for details on our code of conduct, and the process for submitting pull requests to the community.

License

This information is licensed under the Apache Software License, Version 2. Separate third party code objects invoked within this code pattern are licensed by their respective providers pursuant to their own separate licenses. Contributions are subject to the Developer Certificate of Origin, Version 1.1 (DCO) and the Apache Software License, Version 2.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].