Generador de Reportes
Resumen del Proyecto
Sistema en la nube para generar y gestionar reportes de Pokémon utilizando datos de la PokeAPI. La aplicación permite crear reportes enriquecidos que incluyen las estadísticas base y habilidades de cada Pokémon, aplicar muestreo aleatorio para obtener conjuntos de datos de tamaño personalizado y eliminar permanentemente reportes tanto de la base de datos como del almacenamiento en la nube. El frontend, desarrollado con Next.js, ofrece una interfaz intuitiva y responsiva. El backend, implementado con FastAPI, gestiona la lógica de negocio y las integraciones, mientras que el procesamiento asíncrono se maneja con Azure Functions en Python. La persistencia de datos se realiza en Azure SQL Database y los archivos CSV se almacenan en Azure Blob Storage. El despliegue y la configuración de la infraestructura se automatizan mediante Terraform. Este proyecto destaca por su arquitectura modular, escalable y robusta, con un manejo eficiente de datos e integración fluida de servicios en la nube.
Tecnologias Clave:
- Next.js
- FastAPI
- Azure Functions
- Azure SQL
- Blob Storage
- Terraform
Implementación Técnica
Eliminar
- Se agregó la capacidad de eliminar reportes, tanto del frontend (Next.js) como del backend (FastAPI), incluyendo la limpieza de registros asociados en la base de datos (Azure SQL DB) y el almacenamiento (Azure Blob Storage).
Enriquecer Reporte
- Se mejoró el procesamiento del worker (Azure Function) para incluir datos adicionales de la PokeAPI (como habilidades, tipos y estadísticas) en el CSV generado, asegurando un reporte más detallado y útil.
Muestreo Aleatorio
- Se añadió un campo numérico ("Número de Registros").
- Se extendió el endpoint de creación para aceptar el parámetro sample_size y se almacenó en la base de datos.
- Se implementó lógica para, al procesar el reporte, aplicar muestreo aleatorio (con random.sample()) cuando sample_size es válido, generando un CSV con un subconjunto aleatorio de los datos.