Sobre este proyecto
it-programming / web-development
Abierto
El propósito del proyecto es enviar solicitudes a anuncios de alquiler publicados en idealista y recoger las respuestas a dichas solicitudes. El proceso para ello se estructura en tres pasos:
Paso 1: Webscraping
Recolectar anuncios publicados en idealista en base a una serie de criterios (por ejemplo, pisos que no tengan más de 3 habitaciones y que no cuesten más de 1.000 euros al mes). Guardar la información de dichos pisos en una base de datos (tamaño piso, precio, código identificación, enlace…)
Paso 2: Envío de solicitudes
Para enviar una solicitud en idealista no es necesario registrarse. Solo rellenar un formulario en el que se indica el nombre, el correo electrónico y se escribe el mensaje. Al enviar la solicitud primero se recibe un mensaje en el correo que se ha indicado en el que se detalla el código del anuncio al que se ha aplicado y luego (solo si el propietario responde) vuelve a llegar otro mensaje (al email que se indicó en el formulario) en el que aparece la respuesta del propietario y también el código del piso.
Queremos enviar una solicitud por piso. Las solicitudes deben ser diferentes siguiendo dos niveles de randomización.
• Hay un primer nivel que es el nombre (tenemos unos 60 nombres aproximadamente). Esto querría decir que necesitaríamos 60 cuentas de correo (con el dominio horizoninbox).
• Además, el texto que se envía debe variar.
Por ejemplo, si tenemos 2 nombres (Pedro y Álvaro), dos opciones de mensajes, mensaje A y mensaje B, y 100 anuncios. Pedro aplicaría a 50 anuncios, 25 de ellos con el mensaje A y 25 con el mensaje B. ÁLvaro aplicaría a los otros 50, 25 de ellos con el mensaje A y 25 con el mensaje B.
Paso 3: Recepción de respuestas
Guardar las respuestas en la misma base de datos en la que se recogió la información del piso. En esa base de datos final debería aparecer toda la información que se recogió en el paso 1, los detalles del “perfil” que envió el mensaje (nombre, correo, texto) y la respuesta (en el caso de recibirla.
Queremos automatizar el proceso pero que existan ciertos pasos manuales. Lo ideal sería:
• Poder ejecutar el webscraping cada X tiempo
• Poder ver qué anuncios se han scrapeado y tener la opción de clicar en ellos para enviar la solicitud (o eliminarlos si no son procedentes).
• Que al enviar la solicitud se rellene la información necesaria para aplicar (siguiendo la randomización establecida) pero que se pueda revisar y cambiar si es necesario
• Que al recibir la respuesta tengamos una opción para codificar la misma, y, además de que se guarde el texto, crear una variable que recoja el tipo de respuesta, nosotros daríamos las categorías.
*Ya existe un interfaz /webapp para poder desarrollar estos procesos, pero necesitamos adaptarla al caso de España
¿Qué tenemos?
Actualmente tenemos un servidor y un dominio. Además, una interfaz / webapp, para enviar los mensajes y recibir las respuestas que está escrita en TypeScript. Trabajaremos con bases de datos relacionales y utilizaremos Mailgun como servicio de automatización del envío de mensajes.
¿Qué necesitamos?
Esta aplicación ha sido creada en Holanda por otro miembro del equipo y está diseñada para hacer el mismo proceso con los perfiles y randomización que empleará el equipo holandés (que son diferentes a los españoles). Por ello, debe ser adaptada en al caso de España. Concretamente estas adaptaciones consistirían en:
• Replicar/conectar dicha aplicación en el servidor de España
• Integrar el código para ejecutar el webscraping en dicha aplicación
• Modificar el código en TypeScript referido a los nombres, la randomización, la plantilla del email…
El código de la aplicación estará disponible en GitHub y se contará con el apoyo del programador de Holanda (que ha desarrollado la aplicación) para resolver dudas (vía de comunicación: Discord)
Habilidades/experiencia requerida:
Inglés/ Back-end development/Bases de datos relacionales/ TypeScript / webscraping* (en este último punto lo ideal sería realizar el webscraping utilizando TypeScript o en su defecto java o c++)
Categoría Programación y Tecnología
Subcategoría Programación Web
¿Cuál es el alcance del proyecto? Crear un nuevo sitio personalizado
¿Es un proyecto o una posición? Un proyecto
Actualmente tengo Tengo las especificaciones
Disponibilidad requerida Según se necesite
Roles necesarios Programador
Plazo de Entrega: No definido
Habilidades necesarias