El problema se tuvo que abordar de la siguiente manera:
- Se realiza una normalizacion de la tablas y hojas de excel a una base de datos de 6 tablas, de las cuales solo se utilizaron 3 tablas para obtener el json response según la estructura pedida en este challenge, además de esto se aplicó las buenas practicas en el diseño de base de datos en cuanto a la nomenclatura de los campos.
- Se realiza una limpieza de datos de manera que no genere campos repetidos en cuanto a los codigos zip, debido a que primero se realiza la importacion de todos los datos segun esta hoja de excel a una tabla raw_data y a partir de ahi se realizan las diferentes consultas para llenar las otras tablas con las que se ha realizado este challenge.
- Se implementan las consultas de tal manera que se genere el menor tiempo de respuesta posible en la atención de la API, agregando además la caracteristica de cache en el servidor e indices en las claves de las tablas en las que se habia trasladado los datos para optimizar el tiempo de respuesta, se realizo pruebas de rendimiento con Telescope.
- Validacion del codigo de la API, asi como validación del response.
- Se ha creado test unitarios para el endpoint, comprobando que la estructura del Json sea la misma que la esperada, validacion del response codigo 200 además del tipo de error 404 y 500 aparte un test de peticiones continuas.
- Se realiza una optimización a nivel de configuración del framework para obtener el menor tiempo de respuesta posible en cada request de api ademas se mejora el rate limit de la aplicacion.