Introducing Soilanalyst Web App

Introducing Soilanalyst Web App

Made for Africa

Eureka!!! I introduce to you a project i have been working on in the past few weeks named "Soilanalyst".

This project helps farmers, researchers, students and any other intrested users to determine various physical or chemical properties of soils anywhere in Africa, just by inputting the location coordinates of the intrested area.

For awhile now there has been few or no know collection or database of soil properties in Africa, like it applies in other parts of the world.

I can recall that during my postgraduate studies research work, i intended working on the estimation of soil loss in various watershed areas in the whole state using the "Revised Universal Soil Loss Equation (RUSLE) in combination with Geographic information systems (GIS) and remote sensing technologies, but the unavailability of a comprehensive soil database for the state made me modify the research work to include just the watersheds in my immediate community, since carrying out a laboratory analysis of soils for the whole state will be quite expensive and resource consuming.

Fortunately, the privileged software engineering knowledge i acquired after the period enabled me to find a solution to closing this wide gap.

My findings made me come across the major backbone of the soilanalyst web application project, which is an api service provided by iSDA soil.

iSDA built the first field-level soil map for Africa, with 20+ soil properties predicted at 30m resolution for the entire continent. The development process applies predictive machine learning technology using data from over 130,000 soil samples, much of it based on years of research by the African Soil Information Service (AfSIS) and other soil data resources.

Features

Leveraging on this api service, i created an improved web app service, where users can:

  1. Determine their real time location coordinates.

  2. Determine the perimeter and area of a specific size of land in hectares or square meters.

  3. Determine various physical and chemical properties of soil in the area(within african continent).

  4. Save and retrieve acquired soil data.

Technologies Used

  • For the frontend, I made use of html5, Css3 and JavaScript.

  • In the backend, i used flask app, Flask is known for its simplicity and minimalistic approach. This allows for greater flexibility and control over the application structure, it also means that Flask provides a more basic set of features compared to Django.

    Also serving in the backend is the MYSQL database for data storage.

  • In addition is the iSDA api endpoint to request for data on soil properties.

  • The leafletjs map service to render the location map and leaflet measure plugin to enable users define polygon shape around interested area and then determine the total area of the land in hectares or square meters.

Challenges

I encountered the first challenge while try to choose which service to use in rendering the location map.

I came across various services such as the google map api, mapbox service and so on.

Making a choice was daunting because for example, the google map service required registering and creating an api key that has limitations such as being only restricted to using google cloud to deploy the app.

Also, the mapbox service required adding my debit card details which i dont find convinient for now.

In the end i was able to find the leafletjs service which is open source, simple , frequently maintained and straight forward to implement in any project.

Another major challenge i encountered was implementing the feature to enable users create polygon shapes around interested areas and determining the total area. Various research led me to try various JavaScript implementations and finally using the leaflet measure plugin for leafletjs map by ljagis.

Takeaway

  • This project reinforced what I was taught about version control. Github is really a powerful service that makes the life of a developer easy.

  • This project also endeared me more towards specializing in backend development. Thinking logically and coming up with algorithms to solve a problem feels satisfying.

I appreciate Alx Africa and its team for giving me this rare priviledge of learning a valuable skill. I also appreciate the Mastercard foundation for sponsoring the Scholarship.

Fatola Fatai has a background in Agriculture, majoring in Soil science and Land management with a Bachelor's degree and a Postgraduate Master's degree in Soil science.

I have experience in the use of Geographic informations systems (GIS) and remote sensing for various projects. I am currently a student of Software Engineering at ALX Africa.

Project Github

Project url

Project landing page

Linkdin profile