Want to make creations as awesome as this one?


Data storage

Everytime a work-order is created, everytime a picture is sent to analysis, everytime a work-order is reviewed, the data is stored in the engage DB (also called Vulcain DB).

Insights DB creation

To create our dashboards, we never use the data directly from the engage DB.

Rather, we create a dedicated DB for each client containing only his aggregated data.
๐Ÿ‘‰ Ask Juliette to perform this step (not necessary for this tutorial).

To feed our client DB, we need to set up a cloud function. This cloud function will run everynight to export and aggregate the data (generated during the previous day) from a replica of the engage DB to our client DB.

Cloud function

The data in the client DB is stored into three tables: work-orders, task-groups and tasks.

We can now use those tables to create the charts we want on Superset.

Access the data





To create Insights Dashboards, we need data !

This data is generated when our customers use Deepomatic on the field to perform their operations (either through Deepomatic's app or through Deepomatic's API integrated in the customer's native app).

Accessing Data in Insights

Cloud functions

A cloud function allows to write simple, single-purpose functions that are attached to events emitted from your cloud infrastructure and services. Your function is triggered when an event being watched is fired, in our case every night.

Cloud functions are storred in the repo sa-cloud-functions on github and deployed to our cloud provider Google. The documentation is accessible here.

In the cloud function, we define the columns in the tables that we want to create or rather update everynight.

We usually create the same 3 tables for each of our client DB:
- work-orders
- task-groups
- tasks