El objetivo del reto Malackathon 2024, realizado el 17-18 de octubre, es diseñar una aplicación web segura que gestione y analice la información de los embalses en España, accediendo a la base de datos autónoma proporcionada por Oracle Cloud (OCI). La solución debe ser eficiente, permitir consultas avanzadas, y prever las necesidades de agua a partir de datos históricos.
-
Descargar la información de las siguientes tablas:
- EMBALSES: Contiene información básica de los embalses.
- AGUA_ALMACENADA: Registra el agua almacenada en los embalses en diversas fechas.
- LISTADO_EMBALSES: Datos adicionales de los embalses.
-
Cargar los datos en una base de datos autónoma de Oracle Cloud (OCI).
-
Establecer relaciones entre los datos de las tablas para los embalses de Andalucía. Se pueden crear tablas intermedias y añadir índices.
- Desarrollar una aplicación web segura, accesible desde dispositivos móviles.
- La aplicación debe:
- Mostrar embalses en un radio de 100 km alrededor de la ubicación del usuario o una ubicación GPS dada.
- Incluir funcionalidades para filtrar datos y calcular estadísticas (máximos, mínimos, medias).
- Prestar especial atención al agua embalsada a final del año hidrológico.
- Implementar medidas de seguridad para evitar ataques de web scraping y denegación de servicio.
- Modificar el modelo de datos según sea necesario.
- Enriquecer la información de los embalses con datos adicionales (pluviometría, temperatura, consumo de agua, etc.).
- Analizar patrones de consumo de agua en los últimos 5 años.
- Predecir las necesidades de agua para los próximos 12 meses.
- Proponer soluciones de trasvase de agua entre embalses cercanos.
- Evaluar capacidad, disponibilidad y predicciones para asegurar una distribución equilibrada.
- Rendimiento: Evaluar la rapidez del procesamiento de datos.
- Eficiencia: Uso óptimo de recursos computacionales.
- Optimización: Mejora en la distribución del agua.
- Precisión: Calidad de las predicciones y recomendaciones.
- Metodologías: Uso riguroso de metodologías de desarrollo y herramientas de IA.
- Seguridad: Integración de aspectos de seguridad.
- UI/UX: Accesibilidad y usabilidad en la interfaz de usuario.
- Express.js y FastAPI: Gestión de la API y conexión con la base de datos.
- React: Interfaz de usuario para dispositivos móviles y escritorio.
- Oracle Cloud Infrastructure (OCI): Base de datos autónoma para almacenar y procesar los datos de los embalses.
- CAPTCHA: Protección contra web scraping y ataques de automatización.
- Rate Limiting: Límite de peticiones para prevenir denegación de servicio.
- Análisis de User-Agent: Detectar scraping mediante User-Agent de navegadores.
- Retardos en las Respuestas: Introducción de retardos para ralentizar las herramientas automatizadas.
- Filtro de Coordenadas: Ingrese las coordenadas o utilice la ubicación GPS para encontrar embalses cercanos.
- Estadísticas: Realice consultas sobre el nivel de agua, embalses eléctricos, y más.
- Seguridad: La aplicación utiliza varios mecanismos de seguridad para asegurar un uso adecuado por parte de los usuarios.
- Clonar el repositorio del proyecto.
- Instalar dependencias con
npm install
(Express) ypip install
(FastAPI). - Configurar las variables de entorno necesarias para la conexión con la base de datos OCI.
- Ejecutar el backend con:
- Express:
npm start
- FastAPI:
uvicorn main:app --reload
- Express:
- Clonar el repositorio del frontend.
- Instalar las dependencias con
npm install
. - Configurar las variables de entorno para el acceso a la API y Google reCAPTCHA.
- Ejecutar el frontend con
npm start
.
Este proyecto fue desarrollado por los participantes del equipo durante la competición Malackathon 2024. Cada miembro contribuyó en áreas específicas como backend, frontend, y la integración con OCI.
Es muy recomendable que el usuario revise el informe de decisiones de diseño y desarrollo, pues en él se detallan las explicaciones completas de todo el sistema y el cumplimiento de los requisitos especificados en el reto.