Project types
This section shows the different kinds of projects that any user can create and interact with. As well as the main benefits and drawbacks of using each one of them.
Intro to project types
A user can create projects to organize and separate their sensors before uploading their data to the blockchain.
However, Airtrace supports more than one type of project, each with their own unique advantages.
In order to create any project, the user can create it directly from the website by pressing the "Create new project" button, or they can use the specific POST method for the project they want to create, each of the methods is documented below.
Hierarchical projects
Hierarchical projects are composed of different deployments, each deployment generally encompasses a set of spots which are geographically close to one another.
The user can assign sensors to a spot after creating an identity for that sensor, see Infrastructure
Hierarchical projects do not have a commit interval associated, instead, each of the deployments associated to the project will have it's own commit interval, this allows the user to set many deployments with different values for the commit interval inside their project if they consider some spots should blockchainize the data more often than others.
A hierarchical project has a title and optional picture associated with it, which may be inputed by the user during the project creation, in the following endpoint:
Creates a new project
POST
https://api.airtrace.io/v1/projects
Request Body
name*
String
Name of the new project
photo*
String
Project picture url
status*
String
Status of the current project
Plain projects
Plain projects serve as a group of spots, each with the same commit interval. Spots can be directly created under a plain project without the need of intermediary deployments.
The user can assign sensors directly to a plain project after creating an identity for that sensor, see Infrastructure
The user may create a plain project if they feel like the different spots inside the project needn't be grouped by either geographical location or commit interval.
To create a new plain project the user can either add a new optional field "commit_interval" to the hierarchical project creation endpoint, or user the more specific plain project creation endpoint:
Creates a new plain project
POST
https://api.airtrace.io/v1/plain
Request Body
name*
String
Name of the new project
photo*
String
Project picture url
status*
String
Status of the current project
commit_interval*
String
Commit interval for the project
Bio projects
Bio projects are similar to plain projects but exist to serve the specific purpose of tracking the species and their environmental resilience in a given environment.
Bio projects may host biological data on the species contained in them and use satellite imagery merged with artificial intelligence in order to track the evolution and environmental resilience of the ecosystem through time.
The user may create a bio project and add biological data either manually or by submitting a shapefile containing the necessary information to our API.
Creates a new bio project
POST
https://api.airtrace.io/v1/bio
Request Body
name*
String
Name of the new project
photo*
String
Project picture url
status*
String
Status of the current project
commit_interval*
String
Commit interval for the project
Auto-Generated projects
The user can also automatically create and populate a project using the autogenerate endpoint.
This endpoint receives a csv file that contains all of the primary identifiers of the sensors that our project will have when it is done generating, and creates a new plain project with a sensor for each primary identifier.
The primary identifiers should be unique for the user, each one will be assigned to a new automatically generated sensor. For more information about primary identifiers, see Identities.
Creates a new plain project and populates it
POST
https://api.airtrace.io/v1/plain/autogenerate/{interface}
The endpoint should receive a multipart request with a 'file' field, containing csv file with any name. The csv file contains one line for each primary identifier.
Path Parameters
interface*
String
Either "mqtt" or "restful"
Request Body
file*
File
csv file containing primay ids
Last updated