Este proyecto se centra en la obtención de datos de una API externa, incluyendo el calendario de partidos y estadísticas de jugadores, ... Con el objetivo de realizar cálculos sencillos y actualizar de manera eficiente las entradas correspondientes en nuestra base de datos Firestore.
**Requisitos**:
* Programación en
Node.js y TypeScript, con un enfoque en el desarrollo en el lado del servidor.
* Uso de Firebase Cloud Functions (Google Cloud Functions) para la gestión eficiente de tareas.
* Conocimiento sólido de bases de datos NoSQL, en particular Firebase Cloud Firestore.
* Experiencia en trabajar con APIs para la recuperación y manipulación de datos.
**Responsabilidades Clave**:
* **Recuperación de Datos de la API**: Su tarea principal será la extracción de datos esenciales de una API externa que proporciona información detallada sobre los partidos y estadísticas de jugadores de fútbol durante cada "jornada" y entre "jornadas" de la liga. Esto implica el diseño y desarrollo de una solución robusta que permita la recopilación continua de datos de forma programada. Deberá garantizar la eficiencia y la precisión en la obtención de datos, lo que incluye la gestión de cualquier posible variabilidad en la respuesta de la API. Las tareas dentro de este proyecto pueden ejecutarse a diversas frecuencias. Algunas tareas pueden ejecutarse a intervalos constantes (por ejemplo, cada 30 minutos), mientras que otras pueden depender de datos recuperados de la API, por ejemplo como el inicio y fin de la "jornada" de fútbol.
* **Cálculos**: Se requerirá que realice cálculos simples basados en los datos obtenidos. Por ejemplo, deberá calcular una "puntuación" para los jugadores de fútbol tras cada jornada o su o su precio de mercado de forma diaria, utilizando algoritmos sencillos (tablas de conversión o regresión linear) que se le proporcionará.
* **Actualización de Datos en Firestore**: La integridad y la actualización precisa de nuestra base de datos Firestore son esenciales. Será su responsabilidad garantizar que cada entrada en la base de datos refleje fielmente la información más reciente. Esto incluye la implementación de un sistema de actualización en tiempo real que sincronice los resultados de los cálculos con Firestore de manera eficiente y precisa.
La estructura de la base de datos ya está definida, así como la la mayoría de los modelos de datos ya están implementados en Typescript. Sería por tanto solo la el desarrollo de las differentes Cloud Functions.
**Hitos del Proyecto**:
**Paso 1**: Crear una Interfaz "Facade" y una API Simulada
Desarrollar una interfaz "facade" para interactuar con una API externa. Crear una versión simulada de la API utilizando la interfaz "facade". Esta API simulada servirá como base para los pasos de desarrollo posteriores.
**Paso 2**: Implementar el Sistema
Diseñar e implementar las funcionalidades centrales del sistema, incluida la programación de tareas, los cálculos, la recuperación de datos de la API simulada y las actualizaciones en la base de datos de Firebase Cloud Firestore. Asegurarse de que el sistema pueda ejecutar tareas a diferentes frecuencias, como intervalos regulares o basados en datos obtenidos de la API simulada.
**Paso 3**: Conectar con la API Real y Realizar Pruebas
Establecer una conexión entre el sistema y la API externa real. Realizar pruebas exhaustivas y validación del rendimiento y la precisión del sistema. Verificar que los cálculos y las actualizaciones de datos se ejecuten sin problemas con los datos obtenidos de la API real.
Contexto general del proyecto
Este proyecto se centra en la obtención de datos de una API externa, incluyendo el calendario de partidos y estadísticas de jugadores, ... Con el objetivo de realizar cálculos sencillos y actualizar de manera eficiente las entradas correspondientes en nuestra base de datos Firestore.
Plazo de Entrega: No definido