Portafolio de diseño y desarrollo web - Sistema de Alerta y Respuesta Temprana
En 2019, Nicolás y Miguel diseñaron y desarrollaron el software de la plataforma SART para la Secretaría de Derechos Humanos de la República de Honduras.
- Publicado en
- Secretaría de Derechos Humanos de la República de Honduras
- Año
- Características
- Una plataforma Full-Stack desarrollada con FastAPI, Angular, MongoDB, y Docker.
Qué hicimos
- Frontend (Angular)
- Backend (FastAPI)
- Despliegue
- Capacitación
Lamentablemente, dado que se trata de una herramienta de uso interno del gobierno de Honduras, no podemos compartir capturas de pantalla de la plataforma. Sin embargo, podemos compartir algunos detalles sobre el proyecto.
El problema
La Secretaría de Derechos Humanos de la República de Honduras necesitaba una plataforma para gestionar las alertas de posibles violaciones de derechos humanos en el país y poder tomar acciones para prevenirlas o mitigarlas. La plataforma debía permitir a los usuarios crear alertas, asignarlas a los distintos tomadores de decisiones, y darles seguimiento hasta su resolución.
La plataforma también debía permitir el registro de información geográfica y temporal, así como la carga de archivos multimedia. Además, debe permitir la creación de reportes y estadísticas sobre las alertas. Debía ser una plataforma web, accesible desde cualquier dispositivo. Y debía ser fácil de usar, para que los usuarios pudieran aprender a utilizarla rápidamente.
Nuestra solución
En colaboración con los especialistas en herechos humanos Natalia Arce Camiade (coordinadora e investigadora) y Nick Middeldorp (investigador), diseñamos y desarrollamos la plataforma SART.
SART es una plataforma Full-Stack desarrollada con FastAPI, Angular, MongoDB, y Docker.
Backend
El backend de SART está desarrollado con teconologías modernas como FastAPI que permite:
- Documentación interactiva vía Swagger
- Aceso a un manifiesto de la API OpenAPI
- Fácil extensión de la API con nuevos puntos de acceso
Documentación interactiva
Al hacer uso de las mejores prácticas de desarrollo en FastAPI, logramos documentar ampliamente la totalidad de los puntos de acceso de la API, así como todos los modelos de datos utilizados. Esto nos permitió generar una documentación interactiva de la API mediante Swagger, que permite a los desarrolladores futuros de la plataforma probar los puntos de acceso directamente desde el navegador.
Base de datos
Debido a la naturaleza de los datos que se manejan en la plataforma, optamos por utilizar una base de datos NoSQL. En particular, utilizamos MongoDB, una base de datos NoSQL orientada a documentos. Esto nos permitió almacenar los datos de manera flexible, sin tener que definir un esquema de datos rígido. Además, nos permitió almacenar archivos multimedia directamente en la base de datos, lo que facilita la gestión y respaldo de los mismos.
Estadísticas y reportes directos desde la base de datos
Uno de los motivos por los que escogimos usar MongoDB es su pipeline de agregación de datos. Esto nos permitió generar reportes y estadísticas directamente desde la base de datos, sin tener que procesar los datos en el backend.
Un modelo predictivo para priorizar las alertas
En colaboración con Natalia y Nick, desarrollamos un modelo estadístico predictivo para priorizar las alertas. El modelo integra un sistema de retroalimentación para mejorar su precisión con el tiempo.
Frontend
El frontend de SART está desarrollado con Angular. Angular es un framework moderno para el desarrollo de aplicaciones web.
Interfaz de usuario moderna y accesible
El diseño de la interfaz de usuario de SART es moderno y está basado en los estándares de diseño material de Google. Además, es accesible, lo que permite a los usuarios con discapacidades físicas utilizar la plataforma sin problemas.
Diseño responsivo
SART está diseñado para adaptarse a cualquier dispositivo. Esto permite a los usuarios acceder a la plataforma desde cualquier dispositivo, ya sea una computadora de escritorio o un teléfono celular.
Mapas interactivos
Para mostrar la información geográfica de las alertas, utilizamos la librería OpenLayers. OpenLayers es una librería de código abierto para mapas interactivos. Esto nos permitió mostrar mapas interactivos en la plataforma y permitir a los usuarios interactuar con ellos.
Documentación
En el caso del Frontend, utilizamos la herramienta Compodoc para generar documentación interactiva de la interfaz de usuario. Esto nos permitió generar documentación de la interfaz de usuario automáticamente y mantenerla actualizada con el código.
Seguridad
La seguridad de los datos es un aspecto fundamental de la plataforma. Por ello, implementamos un sistema de autenticación y autorización basado en JWT (JSON Web Tokens) y RBAC (Role-Based Access Control). Esto nos permitió diseñar un sistema de permisos flexible, que se adapta a las necesidades de la Secretaría de Derechos Humanos.
También se desarrolló una implementación secundaria del sistema de autenticación que permite la integración con el sistema de autenticación de la República de Honduras en caso de que se requiera en un futuro.
Despliegue
Para el despliegue de la plataforma utilizamos Docker. Docker es una herramienta que permite empaquetar aplicaciones en contenedores. Esto nos permitió desplegar la plataforma en cualquier servidor, sin tener que preocuparnos por las dependencias de la misma.