← Volver al inicio

Alquisiera

Fullstack completed ⭐ Destacado

Explicación del proyecto

Alquisiera es una plataforma fullstack que automatiza la busqueda de propiedades en alquiler en Puerto Madryn. El proyecto utiliza una arquitectura de dos backends: un scraper en Vercel con Playwright y POO, y un cron job en Render que alimenta Firebase cada madrugada. El frontend en Next.js 14 consume estos datos con sistema de cache integrado. Una solucion ingeniosa aprovechando free tiers de diferentes plataformas.

Stack Tecnológico

Next JS 14
Express
Node.js

Características Principales

  1. Arquitectura dual de backends : Sistema distribuido con dos backends especializados: un scraper en Vercel que utiliza Playwright y programacion orientada a objetos para extraer datos de multiples sitios web, y un cron job en Render que se auto-mantiene activo mediante un endpoint /health coordinando las ejecuciones programadas y la sincronizacion con Firebase
  2. Scraping automatizado nocturno : Sistema de extraccion de datos que se ejecuta automaticamente cada tarde-noche, recopilando informacion actualizada de 8 inmobiliarias diferentes de Puerto Madryn. El proceso alimenta Firebase continuamente, asegurando que los usuarios siempre tengan acceso a las ultimas ofertas del mercado
  3. Filtros de busqueda por precio : Herramienta de filtrado intuitiva que permite definir rangos de precio minimo y maximo para encontrar propiedades ajustadas al presupuesto. El sistema procesa consultas de forma eficiente gracias al cache de Next.js
  4. Cache optimizado con Next.js 14 : Implementacion estrategica del cache nativo de Next.js 14 para reducir consultas a Firebase y mejorar tiempos de carga sin exceder los limites del free tier
  5. Base de datos renovada diariamente : Estrategia de actualizacion que limpia y refresca la base de datos de Firebase cada dia, eliminando propiedades obsoletas y agregando nuevas ofertas
  6. Interfaz responsive y moderna : Diseno adaptable con Tailwind CSS que ofrece una experiencia fluida en cualquier dispositivo y facilita navegar entre cientos de propiedades

Logros Destacados

  • Reduce el tiempo de busqueda de propiedades en un 80%
  • Mas de 1000 propiedades indexadas automaticamente
  • Sistema de actualizacion diaria sin intervencion manual

Desafíos Técnicos

  • Arquitectura sin presupuesto : Disenar una solucion robusta aprovechando free tiers de multiples plataformas (Vercel + Render + Firebase) requirio creatividad para distribuir la carga
  • Mantener el backend de Render activo : Implementar un sistema de auto-ping al endpoint /health para evitar que el servicio gratuito se duerma por inactividad
  • Scraping con Playwright de 8 sitios diferentes : Crear parsers especificos con POO para manejar diferentes estructuras HTML manteniendo el codigo escalable
  • Sincronizacion entre backends : Coordinar el cron job en Render para llamar al scraper en Vercel y actualizar Firebase sin fallos, manejando timeouts y errores
  • Optimizacion de costos y rendimiento : Balancear limites del free tier, tiempos de scraping y experiencia de usuario con cache en Next.js
#web-scraping#nextjs#express#firebase#automation