Terminado

Desarrollo de Microservicio - Exportación e Importación de Datos

Publicado el 27 Octubre, 2023 en Programación y Tecnología

Sobre este proyecto

Abierto

Nuestra empresa necesita un experto en desarrollo de software para crear un microservicio que permita exportar datos desde una base de datos Postgresql en múltiples formatos (xlsx, csv, json) y, al mismo tiempo, posibilite la importación de datos desde archivos excel a la base de datos. Este microservicio debe ser capaz de comunicarse por eventos y suscripciones, utilizando Redis como ruta de comunicación con el gateway.

Contexto general del proyecto

Requisitos del aspirante: Conocimiento sólido en lenguaje de programación Python. Familiaridad con el uso de Flask o FastAPI como frameworks para microservicios. Experiencia en el uso de Redis para implementar sistemas de mensajería por eventos y suscripciones. Competencia en la manipulación de datos y la generación de archivos en formatos xlsx, csv y json. Experiencia con PostgreSQL y el diseño de bases de datos eficientes. Capacidad para gestionar la importación de datos desde archivos Excel, utilizando librerías como Pandas o OpenPyXL. Habilidad para optimizar consultas SQL y mejorar el rendimiento de aplicaciones. Criterios de aceptación del proyecto 1. **Exportación de Datos:** - El microservicio puede exportar datos desde la base de datos Postgresql en los formatos solicitados (xlsx, csv, json). - Debe exportar la data basada en filtros proporcionados, con la selección de los campos proporcionados en la solicitud - Los archivos generados deben ser válidos y contener la información correcta. - Se deben proporcionar rutas de exportación para cada uno de los formatos y deben funcionar correctamente. - Se debe realizar un control de errores adecuado para manejar situaciones inesperadas. 2. **Importación de Datos:** - El microservicio es capaz de importar datos desde archivos Excel correctamente. - Los datos importados se almacenan de manera precisa en la base de datos PostgreSQL. - Se realiza una validación de datos para asegurarse de que no haya duplicados ni información incorrecta. - El proceso de importación debe ser eficiente y no causar cuellos de botella en la base de datos. 3. **Comunicación por Eventos y Suscripciones:** - El microservicio se suscribe a eventos utilizando Redis como ruta de comunicación. - Es capaz de recibir eventos y procesarlos adecuadamente. - La comunicación por eventos es confiable y no se pierden mensajes importantes. - El microservicio puede publicar eventos de manera correcta para notificar sobre ciertas acciones o cambios. 4. **Optimización y Rendimiento:** - El microservicio está diseñado para un alto rendimiento y es eficiente en el uso de recursos. - Se han realizado pruebas de rendimiento para asegurarse de que pueda manejar cargas de trabajo significativas sin degradación del rendimiento. - Las consultas SQL utilizadas están optimizadas y se ejecutan de manera eficiente. 5. **Pruebas y Cobertura de Código:** - Se han realizado pruebas unitarias y de integración exhaustivas que cubren todas las funcionalidades. - La cobertura de código debe ser adecuada, con la mayoría de las rutas y funciones del microservicio probadas. - Se han identificado y corregido todos los errores y problemas de seguridad. 6. **Documentación:** - Se ha proporcionado documentación completa que describe cómo utilizar el microservicio, incluyendo cómo configurarlo, las rutas disponibles y ejemplos de uso. - Se ha documentado el esquema de la base de datos y las estructuras de datos relevantes. 7. **Seguridad:** - El microservicio ha sido evaluado y se han implementado medidas de seguridad para protegerlo contra amenazas comunes, como inyección SQL y acceso no autorizado. - Se han aplicado prácticas recomendadas de seguridad en la comunicación con Redis y PostgreSQL. 8. **Escalabilidad:** - El microservicio se ha diseñado teniendo en cuenta la escalabilidad y puede manejar un aumento en la carga de trabajo sin degradación del rendimiento. 9. **Despliegue:** - El microservicio se puede implementar en un entorno de producción sin problemas. - Se ha proporcionado un plan de implementación que describe los pasos necesarios para poner el microservicio en funcionamiento. Estos son ejemplos de criterios de aceptación que puedes utilizar como base. Deberías adaptarlos a tus necesidades específicas y asegurarte de que los stakeholders estén de acuerdo con ellos antes de iniciar el desarrollo del microservicio. Los criterios de aceptación son fundamentales para garantizar la calidad y el éxito del proyecto.

Categoría Programación y Tecnología
Subcategoría Data Science
Tamaño del proyecto Pequeño
¿Es un proyecto o una posición? Un proyecto
Disponibilidad requerida Según se necesite

Plazo de Entrega: 15 Noviembre, 2023

Habilidades necesarias