From fad239a29cf7e48d93b842c5d0a96bbb31c0aa42 Mon Sep 17 00:00:00 2001 From: Aitor Murguzur Date: Wed, 6 Mar 2024 16:49:02 +0100 Subject: [PATCH] Changing the images names and the docs with that images --- docs/How-to guides/How to create a dashboard.md | 6 +++--- docs/How-to guides/How to create a schema.md | 8 ++++---- .../How to create developer API credentials.md | 12 ++++++------ docs/How-to guides/How to invite users.md | 16 ++++++++-------- docs/How-to guides/How to register devices.md | 4 ++-- .../How to use dashboard variables.md | 6 +++--- .../Message-type Schema specification.md | 2 +- docs/Tutorials/Creating a Biotz account.md | 10 +++++----- .../Step 1 - Creating a Device Type.md | 8 ++++---- .../Step 2 - Creating a Message Type.md | 4 ++-- .../Step 3 - Creating a Schema.md | 12 ++++++------ .../Step 4 - Creating a device.md | 4 ++-- .../Step 7 - Displaying the data.md | 8 ++++---- static/img/NewDashboard.png | Bin 13329 -> 0 bytes ...ceptInvitation.png => accept-invitation.png} | Bin ...tualizarCuenta.png => actualizar-cuenta.png} | Bin static/img/{AddNewItem.png => add-new-item.png} | Bin static/img/{AddUser.png => add-user.png} | Bin static/img/{AllSchemas.png => all-schemas.png} | Bin static/img/{authorize1.png => authorize-1.png} | Bin static/img/{authorize2.png => authorize-2.png} | Bin static/img/{ClickHere.png => click-here.png} | Bin static/img/{Confirm.png => confirm.png} | Bin static/img/{createNew.png => create-new.png} | Bin static/img/{Created.png => created.png} | Bin .../{CreatingSchema.png => creating-schema.png} | Bin ...shboardToolbar.png => dashboard-toolbar.png} | Bin static/img/{Dashboards.png => dashboards.png} | Bin ...ngestionFlow.png => data-ingestion-flow.png} | Bin ...ngestionForm.png => data-ingestion-form.png} | Bin static/img/{DeviceType.png => device-type.png} | Bin ...ashboard.png => documentation-dashboard.png} | Bin .../{EmptyDashboard.png => empty-dashboard.png} | Bin .../{InviteNewUser.png => invite-new-user.png} | Bin static/img/{itemTypes.png => item-types.png} | Bin ...ginCredentials.png => login-credentials.png} | Bin static/img/{LoginPage.png => login-page.png} | Bin .../img/{MyTestPanel.png => my-test-panel.png} | Bin ...QricSsWVM6dV7iV2ZI.png => new-dashboard.png} | Bin static/img/{NewDevice2.png => new-device-2.png} | Bin .../{NewDeviceType.png => new-device-type.png} | Bin static/img/{NewDevice.png => new-device.png} | Bin ...{NewMessageType.png => new-message-type.png} | Bin static/img/{NewSchema.png => new-schema.png} | Bin ...yloadTimestamp.png => payload-timestamp.png} | Bin static/img/{Query1.png => query.png} | Bin static/img/{Register.png => register.png} | Bin ...aDefinition2.png => schema-definition-2.png} | Bin ...hemaDefinition.png => schema-definition.png} | Bin static/img/{SignIn.png => sign-in.png} | Bin .../img/{SpecialItem.png => special-item.png} | Bin .../{SpecificDevice.png => specific-device.png} | Bin static/img/{TimeFilter.png => time-filter.png} | Bin ...pdatePassword2.png => update-password-2.png} | Bin .../{UpdatePassword.png => update-password.png} | Bin .../img/{UsingCSVway.png => using-csv-way.png} | Bin static/img/{UsingUI.png => using-ui.png} | Bin .../img/{Verification.png => verification.png} | Bin static/img/{Verifying.png => verifying.png} | Bin 59 files changed, 50 insertions(+), 50 deletions(-) delete mode 100644 static/img/NewDashboard.png rename static/img/{AcceptInvitation.png => accept-invitation.png} (100%) rename static/img/{ActualizarCuenta.png => actualizar-cuenta.png} (100%) rename static/img/{AddNewItem.png => add-new-item.png} (100%) rename static/img/{AddUser.png => add-user.png} (100%) rename static/img/{AllSchemas.png => all-schemas.png} (100%) rename static/img/{authorize1.png => authorize-1.png} (100%) rename static/img/{authorize2.png => authorize-2.png} (100%) rename static/img/{ClickHere.png => click-here.png} (100%) rename static/img/{Confirm.png => confirm.png} (100%) rename static/img/{createNew.png => create-new.png} (100%) rename static/img/{Created.png => created.png} (100%) rename static/img/{CreatingSchema.png => creating-schema.png} (100%) rename static/img/{dashboardToolbar.png => dashboard-toolbar.png} (100%) rename static/img/{Dashboards.png => dashboards.png} (100%) rename static/img/{dataIngestionFlow.png => data-ingestion-flow.png} (100%) rename static/img/{dataIngestionForm.png => data-ingestion-form.png} (100%) rename static/img/{DeviceType.png => device-type.png} (100%) rename static/img/{documentationDashboard.png => documentation-dashboard.png} (100%) rename static/img/{EmptyDashboard.png => empty-dashboard.png} (100%) rename static/img/{InviteNewUser.png => invite-new-user.png} (100%) rename static/img/{itemTypes.png => item-types.png} (100%) rename static/img/{LoginCredentials.png => login-credentials.png} (100%) rename static/img/{LoginPage.png => login-page.png} (100%) rename static/img/{MyTestPanel.png => my-test-panel.png} (100%) rename static/img/{64d60b035aec071039edec2d_qOcNynHWMH72PXNXvKeigaIX45XT5v4NxwU02YZ459_SI307xq-2-JZiD7ctLUv--hEzepUHSTs1nUPRyZf0sdisYksSxRoGRlFsNP6Weu2zOpN-vu4pdZCZH3EQedzI94eEJQricSsWVM6dV7iV2ZI.png => new-dashboard.png} (100%) rename static/img/{NewDevice2.png => new-device-2.png} (100%) rename static/img/{NewDeviceType.png => new-device-type.png} (100%) rename static/img/{NewDevice.png => new-device.png} (100%) rename static/img/{NewMessageType.png => new-message-type.png} (100%) rename static/img/{NewSchema.png => new-schema.png} (100%) rename static/img/{payloadTimestamp.png => payload-timestamp.png} (100%) rename static/img/{Query1.png => query.png} (100%) rename static/img/{Register.png => register.png} (100%) rename static/img/{SchemaDefinition2.png => schema-definition-2.png} (100%) rename static/img/{SchemaDefinition.png => schema-definition.png} (100%) rename static/img/{SignIn.png => sign-in.png} (100%) rename static/img/{SpecialItem.png => special-item.png} (100%) rename static/img/{SpecificDevice.png => specific-device.png} (100%) rename static/img/{TimeFilter.png => time-filter.png} (100%) rename static/img/{UpdatePassword2.png => update-password-2.png} (100%) rename static/img/{UpdatePassword.png => update-password.png} (100%) rename static/img/{UsingCSVway.png => using-csv-way.png} (100%) rename static/img/{UsingUI.png => using-ui.png} (100%) rename static/img/{Verification.png => verification.png} (100%) rename static/img/{Verifying.png => verifying.png} (100%) diff --git a/docs/How-to guides/How to create a dashboard.md b/docs/How-to guides/How to create a dashboard.md index edf03ba..d9681c6 100644 --- a/docs/How-to guides/How to create a dashboard.md +++ b/docs/How-to guides/How to create a dashboard.md @@ -14,12 +14,12 @@ In order to create a dashboard having a device-type with at least one message ty Dashboards are created from the “Dashboards” list. Just a name and an optional description are requested.
- ![Dashboards](/img/Dashboards.png) + ![Dashboards](/img/dashboards.png)
When clicking on “create” an empty dashboard is created.
-![Empty dashboard](/img/EmptyDashboard.png) +![Empty dashboard](/img/empty-dashboard.png)
## Creating panels @@ -30,7 +30,7 @@ A dashboard is composed of one or more panels. To create a new one use the “Ne At the moment the available panel types are the following: time-series, pie chart and gauge.
- ![creating panels](/img/creating-panels.png) + ![Creating panels](/img/creating-panels.png)
### General information diff --git a/docs/How-to guides/How to create a schema.md b/docs/How-to guides/How to create a schema.md index 0ae8d1d..25005ca 100644 --- a/docs/How-to guides/How to create a schema.md +++ b/docs/How-to guides/How to create a schema.md @@ -13,12 +13,12 @@ In order to create a schema having a deceive-type with at least one message type Schemas are created from the Setup > Data ingestion flow > Device-type > Message-type “New schema”
-![Creating a schema](/img/CreatingSchema.png) +![Creating a schema](/img/creating-schema.png)
When clicking on “New schema” an empty schema is created.
-![New schema](/img/NewSchema.png) +![New schema](/img/new-schema.png)
First thing will be giving a name to the schema, the purpose of this is just to identify it, it is not further used in the communication or data sending. @@ -27,7 +27,7 @@ First thing will be giving a name to the schema, the purpose of this is just to After naming the schema the proper and important specification happens under the ‘Schema definition’ section. It is time to let Biotz know how the sending data is structured. Once ‘Add new item’ is selected, a set of different item types are offered to cover almost all the data sending options:
-![item types](/img/itemTypes.png) +![Item types](/img/item-types.png)
Detailed specification of the item types is shared in -![Payload Timestamp](/img/payloadTimestamp.png) +![Payload Timestamp](/img/payload-timestamp.png) Once the schema is totally represented the ‘save’ button will register the schema. This will create the necessary machinery for the data validation and ingestion, it will also create the needed database structure for the data to be stored. diff --git a/docs/How-to guides/How to create developer API credentials.md b/docs/How-to guides/How to create developer API credentials.md index c7e58c1..6323b64 100644 --- a/docs/How-to guides/How to create developer API credentials.md +++ b/docs/How-to guides/How to create developer API credentials.md @@ -10,19 +10,19 @@ To create applications that consume our data we have a Developer API, following In order to connect with the API, you need to create some **credentials** in the credentials view, under the **Developer API** section
-![credentials creation](/img/credentials-creation.png) +![Credentials creation](/img/credentials-creation.png)
Once here, clicking in the **New credentials** button will redirect you to the form. In this view we have to set the credentials name, a description can also be set to differentiate better between one another.
-![new credentials](/img/new-credentials.png) +![New credentials](/img/new-credentials.png)


When finished, click **Save** and it will show the user information:
-![credentials created succesfully](/img/credentials-created-succesfully.png) +![Credentials created succesfully](/img/credentials-created-succesfully.png)
As shown in the pop-up, this information will only appear once. So download the credentials file and save somewhere safe. @@ -30,7 +30,7 @@ As shown in the pop-up, this information will only appear once. So download the Now that we have our credentials created. We need to configure the authentication. For this example we will use the API documentation mentioned before.
-![developer](/img/biotz-developer-api.png) +![Developer](/img/biotz-developer-api.png)
Clicking the **Authorize** button a pop-up will show, in which we need to add this information, also found on the
Developer API. @@ -43,12 +43,12 @@ Clicking the **Authorize** button a pop-up will show, in which we need to add th - **Scopes:** You need to check the openid box.
-![authorize1](/img/authorize1.png) +![Authorize1](/img/authorize-1.png)
When the authorization is done correctly, you should see a pop-up saying that your **Authorized**.
-![authorize2](/img/authorize2.png) +![authorize2](/img/authorize-2.png)
With this your capable of consuming the API and get the needed data. diff --git a/docs/How-to guides/How to invite users.md b/docs/How-to guides/How to invite users.md index 6f73499..bbe3520 100644 --- a/docs/How-to guides/How to invite users.md +++ b/docs/How-to guides/How to invite users.md @@ -13,12 +13,12 @@ Only organization administrators can invite new users. New users are created from the user list view. The list can be accessed from 'Users' in the 'Organization management' section in the sidebar menu.
-![Invite New User](/img/InviteNewUser.png) +![Invite New User](/img/invite-new-user.png)
There, new users can be created using the “Add new user” button.
-![Add new user](/img/AddUser.png) +![Add new user](/img/add-user.png)
For creating the new user only an email address is required. Upon pressing save, the web application will notify the user if the process was successful or not. @@ -27,32 +27,32 @@ For creating the new user only an email address is required. Upon pressing save, When a new user is created, a welcome email is sent.
-![Accept Invitation](/img/AcceptInvitation.png) +![Accept Invitation](/img/accept-invitation.png)
The email contains a URL that the new user has to open when it’s ready to set up its login credentials.
-![Login Credentials](/img/LoginCredentials.png) +![Login Credentials](/img/login-credentials.png)
Opening the URL will trigger another email to be sent.
-![Actualizar Cuenta](/img/ActualizarCuenta.png) +![Actualizar Cuenta](/img/actualizar-cuenta.png)
Clicking on the second email will redirect the user to the authentication provider. There the user will have to type the password that wants to use to login into Biotz.
-![Update Password](/img/UpdatePassword.png) +![Update Password](/img/update-password.png)
-![Update Password2](/img/UpdatePassword2.png) +![Update Password2](/img/update-password-2.png)
And finally the user will be redirected to the login page, where it can start using Biotz.
-![Login Page](/img/LoginPage.png) +![Login Page](/img/login-page.png)
diff --git a/docs/How-to guides/How to register devices.md b/docs/How-to guides/How to register devices.md index 8972f87..01d32d8 100644 --- a/docs/How-to guides/How to register devices.md +++ b/docs/How-to guides/How to register devices.md @@ -25,7 +25,7 @@ Follow the steps: - That will present the form for the device registration.
-![Using the UI](/img/UsingUI.png) +![Using the UI](/img/using-ui.png)
Parameters description: @@ -45,7 +45,7 @@ Follow the steps: - That will present the form for the device registration. -
-![Using the CSV way](/img/UsingCSVway.png) +![Using the CSV way](/img/using-csv-way.png)
Parameters description: diff --git a/docs/How-to guides/How to use dashboard variables.md b/docs/How-to guides/How to use dashboard variables.md index e61a8f5..4eac8e8 100644 --- a/docs/How-to guides/How to use dashboard variables.md +++ b/docs/How-to guides/How to use dashboard variables.md @@ -16,7 +16,7 @@ The dashboard has to be pre-created, and at least one device is needed. The variables are created from the dashboard edition view. For that click on the “pencil” icon in the dashboard toolbar.
-![Dashboard Toolbars](/img/dashboardToolbar.png) +![Dashboard Toolbars](/img/dashboard-toolbar.png)
Creating a variable only requires specifying a name and selecting a device-type. @@ -25,7 +25,7 @@ Creating a variable only requires specifying a name and selecting a device-type. The dashboard variables are always device-type specific to ensure that all the selectable devices are compatible with the dashboard panel queries in which the variable is used.
-![Documentation Dasboard](/img/documentationDashboard.png) +![Documentation Dasboard](/img/documentation-dashboard.png)
Up to 4 variables can be defined. @@ -38,7 +38,7 @@ Once a dashboard variable is defined it can be used when defining dashboard pane For that, click on the “Variable, select a variable defined in the dashboard” in the query builder. Then select a specific variable from the list. Continue with the rest of the form as when selecting a specific device.
-![Specific Device](/img/SpecificDevice.png) +![Specific Device](/img/specific-device.png)
The dashboard variable is now ready to use. Changing the device in the dashboard view will update the corresponding panels. diff --git a/docs/Reference guides/Message-type Schema specification.md b/docs/Reference guides/Message-type Schema specification.md index dbb9529..c2ff1b5 100644 --- a/docs/Reference guides/Message-type Schema specification.md +++ b/docs/Reference guides/Message-type Schema specification.md @@ -11,7 +11,7 @@ Supported data types: - MessagePack - DB column type
- ![message-type-schema](/img/message-type-schema.png) + ![Message type schema](/img/message-type-schema.png)
Additional information about some of the data types above: diff --git a/docs/Tutorials/Creating a Biotz account.md b/docs/Tutorials/Creating a Biotz account.md index 66a51dd..7b3f38d 100644 --- a/docs/Tutorials/Creating a Biotz account.md +++ b/docs/Tutorials/Creating a Biotz account.md @@ -12,19 +12,19 @@ Please not that In order to complete this tutorial you will need a valid email a First navigate to the [Biotz Cloud](https://auth.biotz.io/realms/biotz-platform/protocol/openid-connect/auth?client_id=biotz-platform-spa&redirect_uri=https%3A%2F%2Fapp.biotz.io%2Foverview&state=9821fae0-b8ea-4b9f-b7f2-ebe9ad3c482c&response_mode=fragment&response_type=code&scope=openid&nonce=2063c301-fb70-4d7e-81f0-5790cefcf23f&ui_locales=en&code_challenge=bj-DokiKe4Pu4Xfta9-fhtiK1qjA8--GqPnUwWXfv1Y&code_challenge_method=S256). Once here you will be presented with the login page:
- ![sign-in](/img/SignIn.png) + ![Sign in](/img/sign-in.png)
Since you do not have an account yet, hit the **Register** link at the bottom, below the **Sign In** button. This will lead you to the registration page.
- ![New Device2](/img/Register.png) + ![Register](/img/register.png)
As can be seen in the image above, the registration form asks for just your **Email** address and a **Password**. Once you have entered that information, hit **Register** and you will be prompted to accept the **Terms and Conditions** of Biotz. By accepting them, an email will be sent to you to verify your email address and activate your account.
- ![Verifying](/img/Verifying.png) + ![Verifying](/img/verifying.png)
In case you didn’t receive an email, you can try sending it again by clicking on the **Click here to resend the email** link. @@ -36,13 +36,13 @@ The email you received will have a verification link that you have to use before By navigating to the verification link you will see the following page:
- ![Confirm](/img/Confirm.png) + ![Confirm](/img/confirm.png)
Just click on the link below **Click here to proceed** and you will have verified your email account.
- ![Click here](/img/ClickHere.png) + ![Click here](/img/click-here.png)
# Creating your organisation diff --git a/docs/Tutorials/Getting started/Step 1 - Creating a Device Type.md b/docs/Tutorials/Getting started/Step 1 - Creating a Device Type.md index 5b2494c..5af50ce 100644 --- a/docs/Tutorials/Getting started/Step 1 - Creating a Device Type.md +++ b/docs/Tutorials/Getting started/Step 1 - Creating a Device Type.md @@ -4,20 +4,20 @@ Before we start sending and ingesting data you have to configure your Biotz account to be able to know **who** is sending data and **how** to process it. The first step is to create a Device Type, which will allow you to categorise your devices. Assuming you have signed in into the application, from the sidebar, in the **Setup** section, click on **Device Type**.
- ![Confirm](/img/DeviceType.png) + ![Device type](/img/device-type.png)
You will be presented with the following page:
- ![Confirm](/img/NewDeviceType.png) + ![New Device Type](/img/new-device-type.png)
If you haven’t created any Device Type yet this table should be empty. Now, on the top right corner of the table click on New Device Type. Once you have done, you will have to fill a few details about the device type such as name and optionally description as can been seen in the image below:
- ![Confirm](/img/createNew.png) + ![Create New](/img/create-new.png)
@@ -34,7 +34,7 @@ The **Internal name** is auto-generated based on the **Name** you write. However Leave the **Internal name** unchanged and click on **Save**. If there is nothing wrong, the device type should be created and you will be notified that is succeeded:
- ![Confirm](/img/Created.png) + ![Confirm](/img/created.png)
Now that you have created a Device Type, the next step is to create a Message Type . diff --git a/docs/Tutorials/Getting started/Step 2 - Creating a Message Type.md b/docs/Tutorials/Getting started/Step 2 - Creating a Message Type.md index f5f6a62..903b675 100644 --- a/docs/Tutorials/Getting started/Step 2 - Creating a Message Type.md +++ b/docs/Tutorials/Getting started/Step 2 - Creating a Message Type.md @@ -1,7 +1,7 @@ As the name implies this is a type of message your device can send. If your device outputs different information structures, each of them would be a different Message Type. In this tutorial, you will create a single Message Type for the sake of simplicity. To do so, from the sidebar, in the **Setup** section, click on **Data Ingestion Flow**. You will be presented with the following page:
- ![Confirm](/img/dataIngestionFlow.png) + ![Data ingestion flow](/img/data-ingestion-flow.png)
This is a table listing the different Device Types you have. As per this tutorial instructions, and assuming you did not create any resources yet, you should see only one Device Type which is the one you created in the previous step, **My test device type**. @@ -17,7 +17,7 @@ Fill the form with the following information: - **Message encoding: JSON**
- ![Confirm](/img/NewMessageType.png) + ![New message type](/img/new-message-type.png)
diff --git a/docs/Tutorials/Getting started/Step 3 - Creating a Schema.md b/docs/Tutorials/Getting started/Step 3 - Creating a Schema.md index 9bec4bf..7f82620 100644 --- a/docs/Tutorials/Getting started/Step 3 - Creating a Schema.md +++ b/docs/Tutorials/Getting started/Step 3 - Creating a Schema.md @@ -10,20 +10,20 @@ Now that you have created a Message Type, you have to define the shape of the da Schemas have a set of data types you can choose in order to define the shape of the data you are sending. It ranges from simple types such as **Integers**, **Decimals** and **Boolean** to more complex types like **Objects/Dictionaries** and **Collection/Arrays**. Each with their own properties and restrictions. This tutorial will not dive into the intricacies of each data type but if you wish to get a more detailed explanation about them, please refer to its reference guide \\. With that said, assuming you are still in the **My test message type** page (the one you created in the previous step), click on **New schema**. Once you have done that you will see the following page:
- ![Confirm](/img/dataIngestionForm.png) + ![Data ingestion form](/img/data-ingestion-form.png)
Schemas are defined with items. They can be a single item or multiple items depending on **Item type** you select. To create your first item click on **Add new item**. This will open up a dropdown with the different item data types you can choose from. For the purpose of this tutorial select the **Object** item type.
- ![Confirm](/img/AllSchemas.png) + ![All schemas](/img/all-schemas.png)
After doing so, you will see that a new button appears below the new selected item type. That is because the **Object** item type is a complex type and can have child items. Now, click on **Add new item**.
- ![Confirm](/img/AddNewItem.png) + ![Add new item](/img/add-new-item.png)
There is a new element on the screen now named Key name. It is a special property of Objects since they are composed of key value pairs. However, bear in mind that you are just defining the structure, not the actual values in this section. Now, select the Decimal item. This will show up yet another element on the screen named Item name. This is the name or rather the internal name that Biotz will use to store and reference your ingested data. So, keep in mind that what you can type in this input element is very restricted \\. With that out of the way, input the following information for each field: @@ -46,7 +46,7 @@ You might have noticed that to your right there are two checkboxes: Biotz will use this information to validate the data it receives from your device. In case the shape of the data does not fulfil the defined schema constraints, it will be rejected and discarded. For this tutorial check **Mandatory?** and leave **Can be null?** unchecked.
- ![Confirm](/img/SchemaDefinition.png) + ![Schema definition](/img/schema-definition.png)
Now, add another item and fill in the following details: @@ -58,7 +58,7 @@ Now, add another item and fill in the following details: - **Can be null?: unchecked.**
- ![Confirm](/img/SchemaDefinition2.png) + ![Schema definition 2](/img/schema-definition-2.png)
Last but not least, we have a special item that serves to create a reliable timeline of the data we receive from your devices. For each object created, we can add more than one timestamp, but only one with the Payload timestamp? option checked. This will mark the item as responsible for telling the time of collection by your device. In case this item is not provided, Biotz will add one, but note that this is from when we received the data and may not be as accurate as the one from the device. @@ -67,7 +67,7 @@ For this tutorial we are not going to add this item, but in case you want to add
- ![Confirm](/img/SpecialItem.png) + ![Special item](/img/special-item.png)
diff --git a/docs/Tutorials/Getting started/Step 4 - Creating a device.md b/docs/Tutorials/Getting started/Step 4 - Creating a device.md index 02bd513..38e4fcd 100644 --- a/docs/Tutorials/Getting started/Step 4 - Creating a device.md +++ b/docs/Tutorials/Getting started/Step 4 - Creating a device.md @@ -1,13 +1,13 @@ Before sending any data you need to register a device. To do so, from the sidebar, in the **Device Management** section, click on **Devices**. This will show up a list of devices. In the top right corner you click on **New device**. You will see the following form:
- ![New Device](/img/NewDevice.png) + ![New Device](/img/new-device.png)
From the **Device type** dropdown list select **My test device type**. Remember that this device type contains all the configuration you have done before. For the name input **My test device** and the same for **Description**. For the **Timezone** select your time zone. Finally, you can optionally add **Tags** to your new device. **Tags** are just key value pairs that serve as metadata about your device. Add one by clicking on **Add new tag**. You can add as many tags as you desire. Tags are useful to filter your devices for example or to add additional information to them.
- ![New Device2](/img/NewDevice2.png) + ![New Device 2](/img/new-device-2.png)
Now, click on **Save**. By doing so, Biotz will register the new device in the platform and perform certain actions to create the credentials for your device. Once it is done, you will automatically download the device credentials file. In the credentials file you will have important and sensitive information about your device. Among other things it contains the username and password of your device that is required to interact with Biotz services. Even though this is a tutorial, bear in mind that the credentials file should be stored in a safe place and avoid sharing it over the network. With this information before sending data to Biotz we need to authenticate and get our token. diff --git a/docs/Tutorials/Getting started/Step 7 - Displaying the data.md b/docs/Tutorials/Getting started/Step 7 - Displaying the data.md index 29714ec..2cfd32e 100644 --- a/docs/Tutorials/Getting started/Step 7 - Displaying the data.md +++ b/docs/Tutorials/Getting started/Step 7 - Displaying the data.md @@ -6,7 +6,7 @@ To create a new dashboard, from the sidebar, click on the **Dashboards** section
- ![New Dashboard](/img/NewDashboard.png) + ![New Dashboard](/img/new-dashboard.png)
Click on create and now you have a dashboard. The dashboard alone is not really useful, so let us create a panel in it. On the dashboard list, click on the dashboard name. This will lead you to the dashboard view. On the top right corner, click on **New panel**. This will open a dropdown with the panel type options you can choose. For the purpose of this tutorial, select **Time series**. @@ -24,7 +24,7 @@ Once you are in the panel creation page you will see on the left the panel basic - **Select aggregation method: Mean**
- ![Query1](/img/Query1.png) + ![Query](/img/query.png)
You can also change the appearance of the panel but that is out of the scope for this tutorial. As you can see, you can also add more queries to the panel but in this tutorial we want to make it simple and go with just a single query. @@ -34,14 +34,14 @@ You can also change the appearance of the panel but that is out of the scope for Once you fill the query builder with the details above click on **Save**. This will create the panel and it should display a single data point in your.
- ![MyTestPanel](/img/MyTestPanel.png) + ![My Test Panel](/img/my-test-panel.png)
If it says “No data to show” please make sure the time filter, found in the top right toolbar, is set to a smaller time range, for example 30 minutes.
- ![Time Filter](/img/TimeFilter.png) + ![Time Filter](/img/time-filter.png)
diff --git a/static/img/NewDashboard.png b/static/img/NewDashboard.png deleted file mode 100644 index 3c4c57d512070104c54d79676cf127dc94228331..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13329 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