Skip to content

CriticalAssetManagement/CAMS-Dashboard

Repository files navigation

CAMS

This repo relates to CAMS (Critical Asset Management System) and the project UI. It is where the magic happens, report bugs, submit features, and see the current workload here.

CAMS is an open-source project dedicated to helping nations, communities, cities, and people become disaster resilient. We want to enable people to plan for disasters so they can rebuild faster and save lives. It is a mobile and desktop application that users can securely access to learn more about their critical assets and the potential failure chains associated with each.

CAMS Technology

CAMS is built with TerminusDB, the TerminusDB UI SDK, and React, the popular JS library. The maps are OpenStreetMap. JSON is the data-interchange format. TerminusDB is a document-oriented graph database that links JSON documents in a knowledge graph through a document API. The Document UI SDK builds the UI directly from documents in the database.

Contributions

If you’re interested in contributing, here is the contributions guide

This repo features the front end code, it includes:

  • User data capture - Forms for users to add, update, and delete critical asset information
  • Critical asset map GUI
  • Critical asset list GUI

For more information about the full project, please visit the CAMS Repo.

LOCAL INSTALL

Getting started locally with the Miami demo (fastest way to get started)

Step 1.

Be sure to install Docker and the docker-compose plugin.

Step 2.

Copy env.default to .env.

Step 3.

Run docker compose up or alternatively docker-compose up.

You might need root access depending on whether your user has been added to the Docker group, or you can use sudo, for instance: sudo docker compose up.

Step 4.

Visit localhost:3036/Miami in your browser.

These steps will get you up and running and will allow you to contribute to CAMS.

TERMINUSCMS INSTALL

Getting started for online teams.

Step 1 - TerminusCMS

TerminusCMS, which is a hosted content management system built on TerminusDB, is used as the database back-end to store the critical assets.

  • Sign up or log in to TerminusCMS as dashboard.terminusdb.com

  • Create a new Data Product by the ID CAMSDemo by clicking "New Data Product" in the upper right corner of the dashboard.

  • Add the the CAMS schema from https://github.com/CriticalAssetManagement/CAMS-Dashboard/blob/main/CAMSSchema.JSON by doing the following:

    • Open the schema by clicking on the upper link and copy the entire schema in your clipboard
    • Click on the added data product in the sidebar (called CAMSDemo in this README example)
    • Click on the bubbly icon on the sidebar on the left (the second entry in the three icons)
    • Click on the JSON View tab
    • Click the edit button
    • Paste the entire schema, overwrite the default schema and save it

Step 2 - Clone CAMS Dashboard repo CAMS-Dashboard

Step 3: Set up ENV for TerminusX

  • Create an .env file in the CAMS-Dashboard directory and include the below variables.

    let team = process.env.MY_TEAM                  // your team
    let token = process.env.MY_TOKEN                // your personal token
    let user = process.env.MY_USER                  // your email account used for signing into TerminusX
    let server = process.env.TERMINUSDB_SERVER      // TerminusCMS URL https://dashboard.terminusdb.com/
    

    Refer to our TerminusCMS documentation for help about how to get your team and token information from TerminusCMS.

Step 4 - Run development environment (NodeJS locally)

Run inside the CAMS-dashboard directory:

  • npm install
  • npm run start