idealista coding test (dotnet version)
Este repositorio contiene un API parcialmente desarrollada para desarrollar un servicio que se encargue de medir la calidad de los anuncios. Tu objetivo será implementar las historias de usuario que se describen más adelante.
Los supuestos están basados en un hipotético equipo de gestión de calidad de los anuncios, que demanda una serie de verificaciones automáticas para clasificar los anuncios en base a una serie de características concretas.
Yo, como encargado del equipo de gestión de calidad de los anuncios quiero asignar una puntuación a un anuncio para que los usuarios de idealista puedan ordenar anuncios de más completos a menos completos. La puntuación del anuncio es un valor entre 0 y 100 que se calcula teniendo encuenta las siguientes reglas:
Yo como encargado de calidad quiero que los usuarios no vean anuncios irrelevantes para que el usuario siempre vea contenido de calidad en idealista. Un anuncio se considera irrelevante si tiene una puntación inferior a 40 puntos.
Yo como encargado de calidad quiero poder ver los anuncios irrelevantes y desde que fecha lo son para medir la calidad media del contenido del portal.
Yo como usuario de idealista quiero poder ver los anuncios ordenados de mejor a peor para encontrar fácilmente mi vivienda.
En este proyecto te proporcionamos un pequeño esqueleto escrito en .Net Core 2.2 (puedes pasarlo a Framework 4.X o a otra versión de .Net core)
En dicho esqueleto hemos dejado para que completes un [Controller] y un [Repository] en memoria. Puedes crear las clases y métodos que consideres necesarios.
La persistencia de datos no forma parte del objetivo del reto. Si no vas a usar el esqueleto que te proporcionamos, te sugerimos que la simplifiques tanto como puedas (con una base de datos embebida, “persistiendo” los objetos en memoria, usando un fichero…). El diseño de una interfaz gráfica tampoco forma parte del alcance del reto, por tanto no es necesario que la implementes.
Nota: No estás obligado a usar el proyecto proporcionado. Si lo prefieres, puedes usar cualquier otro lenguaje, framework y/o librería. Incluso puedes prescindir de estos últimos si consideras que no son necesarios. A lo que más importancia damos es a tener un código limpio y de calidad.
El código debe compilar y ser ejecutable
Debes proporcionar 3 endpoints: Uno para calcular la puntuación de todos los anuncios, otro para listar los anuncios para un usuario de idealista y otro para listar los anuncios para el responsable de del departamento de gestión de calidad.