Python was used becuase it provided many features such as creating a database, starting a webserver and providing API endpoints for the front end to access. Python was also used in this project for the preprocessing module to seperate each GeoTIFF file by band and then create mosaic images for each region.
JavaScript along with jQuery was used primarily for creating and manging the user interface. JavaScript provides easy access to the elements on the webpage and jQuery helps create JavaScript code that is cleaner and easier to maintain.
Node JS was used because of the expansive amount of libraries availible for testing on the front end modules and ensuring that they produce the correct output.
Terracotta was used because of the built in tiling server that automatically ingests GeoTIFF files and converts the files into smaller png images which can then be called in the front end for faster loading times.
Raster IO was used to determine the location of each GeoTIFF file and then properly create a mosaic for each region specified in an input file which can then be viewed in the user interface.
Leaflet was used to create the interactive map on the user interface which provided functionality to dynamically load and view each layer that was called from the SQL database.
Halfmoon was chosen for its overall ease of use to develop a clean and responsive user interface that is built upon Bootstrap, and it provides extra features such a toggle for dark mode.