Desarrollador Full Stack (Python)

Job ID: 31948444

Budget: $30 – $250 USD

Hola, Estamos necesitando un perfil de python Full stack, pero queremos iniciar con esta "prueba", que servirá de abrebocas para lo que seria posteriormente un "trabajo recurrente".

Si puede desarrollar esta prueba, y mostrar los resultados, como allí se sugiere, continuaríamos bajo la modalidad de trabajo recurrente, por un periodo de un par de meses. *** Postularse solo si realmente puede desarrollarla ***

#1 - Desarrolle un script que sea capaz de ejecutar efectivamente las siguientes tareas:
El script consiste en dos modos de ejecución diferente (Abierto a más modos):
** Collector:
- Conexión en tiempo real al precio BTCUSDT DOGEUSDT ETHUSDT vía WebSocket, usar la siguiente documentación: https://github.com/binance/binance-spot-api-docs/blob/master/web-socket-streams.md#klinecandlestick-streams
- Guardar los precios recibidos (desde que el script inicia) con la fecha en que se recibió en un gestor de base de datos (cuál sea de su preferencia, teniendo presente que manejara big-data (Tenga presente que podemos a llegar a tener mas de 5 años de información equivalente a más de 800m de filas))
- Mostrar un mensaje cada N segundos con el progreso de cantidad guardada y notificación de que el script está funcionando correctamente.
** Correlator
-Obtiene los precios guardados (Tenga presente que podría ser big-data. más de 800m de filas) anteriormente gracias al colector y traza las primeras líneas del movimiento del precio (normalizado) antes de iniciar el modo en tiempo real.
- Graficar en tiempo real los precios recibidos normalizados aplicando la siguiente fórmula: https://en.wikipedia.org/wiki/Feature_scaling (Rescaling (min-max normalization)).
- Si el precio de Símbolo N se Cruza de arriba abajo con otro Símbolo N marcar en la gráfica con un punto la zona de cruce y guardar en base de datos los puntos de cruce.


#2 - Refactorize el siguiente código: https://gist.github.com/pedrocarvajal/4637a120bf77c5f695278ea759398247 y agregue una función para guardar los datos recibidos o recolectados - Explique que refactoriza y porque...

#3 - Desarrolle un web server basado en microservicios que distribuya 4 end-points (C.R.U.D) por cada un modelo diferente “User” y “Course”. - Tenga en cuenta el patron MVC y Repository.



El objetivo con esta prueba es:
- Evaluar la calidad del trabajo, código y estructuración del proyecto
- evidenciar el manejo de programación orientada a objetos
- Conocimiento y uso de los principios S.O.L.I.D
- Evidenciar skills de Testing y documentacion del proyecto, ademas del Correcto uso de Pylint