Reforestation
Progress
Tracking
Desktop
App
KiDrone
HTML/CSS
JavaScript
Python
Flask
React
Electron
ArcGIS
QGIS

Overview
The goal of this project is to automate and facilitate the process of drone reforestation by allowing the users to create, record, track, and modify seed dispersion projects and drone flight paths. The desktop app, along with the backend algorithm, allows the user to generate flight path for drones offline (because there are usually no internet access in a rural site) and provides the most fuel-optimal flight path across multiple areas. It is envisioned that in the near future, an unmanned drone will be able to execute seed dispersion tasks hundreds of miles from where it is launched, and a reforestation project can be carried out in a clean and streamlined way.

What?
As of August 2024, the desktop application is built using vanilla HTML/CSS and Javascript with a backend call to a python algoirthm packaged into an executable file. In the near future, the front-end will migrate to React to provide more readable codebase and better renderings.
The desktop app fetches map data from ArcGIS Maps SDK Javascript API to generate updated geographic information, and extracts elevation data from the U.S. Geological Survey (USGS), a government agency. The user is able to manually outline a site on the map in the application to generate a drone flight path, or import a .shp file, an export file type from ArcGIS (the most popular geographical data system software). The app can then output flight path information that can then be imported into the drone for execution. Projects can be saved locally for easy access and storage.

Why?
The forestry experts collaborating with KiDrone often times aren't familiar with running codes, hence a more user-friendly interface is necessary to put the flight path planning algorithm into practice.

How?
When the task of creating an interface was given after finishing the algorithm, there were only two weeks left before the internship ends. With minimal experience in application development, I knew it will be a stretch, but I took on the challenge regardless. The company hired Lasagna Studio for the design of the front-end, and I was responsible for steering the direction of the design to align with the purpose of the app. When the design was finalized, only a little more than a week was left for development. Hence vanilla HTML/CSS, Javascript and Electron were used as the toolstack to simplify the task. At the end of the internship, the desktop app has all the basic functions implemented including map integration, python backend packaging, python backend calls, application packaging, etc. A plan to further collaborate with KiDrone is expected in the near future.