DigiAgriApp is a client-server application to manage different kinds of data related to farming fields. It is able to store information about crops (specie, farming forms/system...), any kind of sensor data (included sensors and device hardware, weather, soils...), irrigation information (system type, openings...), field operations (pruning, mowing, treatments...), remote sensing data (taken from different devices as mobiles, drone, satellites) and production quantities. The DigiAgriApp server is composed of a PostgreSQL/PostGIS database and a REST API service to interface with it. The server is developed using Django and the Django REST framework extension with other minor extensions are used to create the REST API. This service plays the key interface between the database and the client. We choose a nested way to create the API, of which the main element is the farm; this way the user can see only the farms related to him and from there he can look to other nested elements, first of all the farm’s fields and later other elements like sensor and remote data or other sub-fields like rows and plants. The REST API is using JavaScript Object Notation as input and output format to simplify and standardize the communication with it. To obtain data from the sensors the server is also composed of a growing number of services to work with data providers, of which currently only a few are implemented. The Message Queue Telemetry Transport provider is a demon listening continuously to a broker (backend system to coordinate different clients) and several topics to obtain data as soon as they are provided; the second provided that is already implemented is related to remote sensing data and uses the SpatioTemporal Asset Catalogs specification to obtain the data. STAC is a common language to describe geospatial information, so it can more easily be worked with, indexed and discovered. The client side instead is developed using Flutter, an open-source UI software development kit based on dart, a programming language designed for client development. Flutter is able to create cross-platform applications and it was chosen precisely because of its ability to realize cross platform applications. All the code is released as Free and Open Source software with a GNU General Public License Version 3 license; it is available in the DigiAgriApp repository on GitLab and the client application will be published also in the main stores for mobile apps.
None
Speakers: Andrea Antonello Luca Delucchi