Prueba de Candidatos Full-Stack Middle/Senior
En esta prueba analizaremos tus conocimientos generales e incluso tu velocidad de desarrollo. A continuaciócontinuación te explicaremos todo lo que seráserá necesario. La prueba general se divide en pequeñpequeños ejercicios con los cuales se evaluaráevaluará en prápráctica:
- Pensamiento
lólógico ResolucióResolución de problemas- Tiempo de desarrollo
- Entre otros
Se incluyen bonos extra que podrápodrán ser tomados en cuenta mámás no son obligatorios.
Ejercicios Backend
1. ImportacióImportación de data.
PROBLEMA:
El siguiente archivo .csv (resource_accommodation.csv) contiene una serie de datos relacionados con el comercio inmobiliario. Ejemplo (DireccióDirección del apartamento/piso, Metros cuadrados, CaracteríCaracterísticas, entre otros) que deben residir en una tabla en base de datos MySQL.
REQUERIMIENTO:
El objetivo principal es crear un API endpoint en NodeJS (preferiblemente ExpressJS o NestJS) el cual sea capaz de leer el archivo .csv e importar la data a la tabla de la base de datos. Utilizar NodeJS es mandatorio.
BONO EXTRA: Proteja el endpoint utilizando JWT
2. Filtrar data.
PROBLEMA:
Basado en el ejercicio #1 ya tenemos una base de datos funcional. Ahora necesitamos poder filtrar la data.
REQUERIMIENTO:
Se requiere un endpoint mémétodo GET el cual permita pasar atributos para poder filtrar el resultado de la data por:
- Rango de precio
mímínimo ymámáximo. NúNúmero de habitaciones.
BONO EXTRA: Proteja el endpoint utilizando JWT
3. Procesar data.
PROBLEMA:
En algunos casos necesitamos saber el precio del alquiler por zona. Para ello necesitamos procesar la informacióinformación de nuestra base de datos.
REQUERIMIENTO:
Se necesita endpoint mémétodo GET en el cual se pasen 3 atributos (Latitud, Longitud, Distancia en Kms = X), y esta retorne el precio promedio del metro cuadrado dentro de un radio de X kilókilómetros de la latitud y longitud indicados. Ver imagen:
BONO EXTRA: Provea un endpoint GET el cual utilice los mismos paráparámetros del ejercicio, pero devuelva una lista de las propiedades en formato JSON, que se encuentren dentro del áárea establecida.
4. Reportes.
PROBLEMA:
En ocasiones se necesita generar reportes para el áárea administrativa.
REQUERIMIENTO:
Se requiere un endpoint al cual se pasen los atributos de filtro, coordenadas y tipo de reporte (PDF, CSV) y dicho reporte generado se guarde en una carpeta.
Ejercicios Frontend
Los siguientes ejercicios puedendeben ser realizados con cualquier Framework para frontend de su elección, o incluso utilizando HTML,React. CSS y JavaScript puros, y tratanTratan sobre hacer una GUI protegida por autenticacióautenticación de usuario/contraseñcontraseña en donde se podrápodrán cargar archivos .css para alimentar la base de datos de propiedades y luego hacer consultas/filtros.
Se calificarápuede presentacióutilizar cualquier framework o librería adicional que considere conveniente para su desarrollo. Lo único mandatorio es utilizar react.
Se calificará presentación, formato y responsiveness.
1. AutenticacióAutenticación de Usuarios
PROBLEMA:
Se debe contar con una tabla en la base de datos con los usuarios y contraseñcontraseñas para autenticacióautenticación del uso de la GUI.
REQUERIMIENTO:
Crear una tabla con los usuarios y sus respectivas contraseñcontraseñas y hacer una pápágina de inicio de sesiósesión para proteger todas las pápáginas subsiguientes en la GUI.
2. Despliegue de GUI
REQUERIMIENTO:
Crear una GUI en donde el usuario que inicióinició sesiósesión exitosa pueda realizar las siguientes tareas:
- Cargar un archivo .csv para alimentar la lista de propiedades
- Ver una lista completa de propiedades y filtrarlas basado en los siguientes campos:
- Cantidad de habitaciones
- Rango de precio (
mímínimo ymámáximo) UbicacióUbicación basada en rangos dekilókilómetros de un punto de referencia (zona perimetral)- Metraje de la propiedad
- Posee
balcóbalcón - Pet friendly
- Piscina
- Jardin
- Descargar un CSV o PDF con los resultados aplicados en el filtro
BONO EXTRA: Desplegar un mapa con las propiedades del filtro marcadas dentro del mismo
Cualquier duda estoy a las óórdenes en WhatsApp o en el correo amejia@voxdatacomm.silvio.orozco@voxdatacomm.com