Skip to content

Lenguajes y librerías

jreyesr edited this page Mar 29, 2021 · 2 revisions

La aplicación está desarrollada en dos lenguajes de programación diferentes:

  • El backend y sus pruebas están escritos en Python.
  • La aplicación de frontend está escrita en Javascript, más las extensiones que agregan los Single File Components de Vue. Las pruebas unitarias del frontend están escritas en Javascript puro.

Adicionalmente, hay varios lenguajes (no necesariamente de programación) que son usados puntualmente:

  • Docker Compose usa archivos YAML para describir los contenedores.
  • Geoserver usa una mezcla de archivos XML y JSON para crear y describir las imágenes que almacena.
  • NodeODM reporta información en formato JSON.

El backend usa las siguientes librerías principales:

  • Django para el servidor web, los modelos y como base para la API.
  • Django Rest Framework (DRF) para implementar la API REST. Se usan los serializadores, vistas, permisos y autenticación de DRF.
  • Requests para hacer llamadas a otras APIs (NodeODM y Geoserver).
  • Numpy, Matplotlib y Pillow para manipular imágenes, tanto geométricamente (escalar, rotar, cortar, etc) como punto a punto (por ejemplo, calcular índices de vegetación a partir de dos bandas).
  • WeasyPrint para generar reportes PDF a partir de archivos HTML, preprocesados con el sistema de templating de Django.
  • GeoExt para mostrar los mapas de los proyectos (compuestos de uno o varios vuelos), realizar mediciones sobre ellos, activar o desactivar capas y visualizar la evolución en el tiempo.
  • pytest, pytest-django y el módulo de pruebas de DRF para las pruebas unitarias.

El frontend usa la siguientes librerías principales: