Skip to content

Backend

El backend és la part del sistema encarregada de gestionar les dades d’ofertes de feina i usuaris, integrant mecanismes d’extracció automàtica de dades (web scraping), emmagatzematge i autenticació.


1. Extracció automàtica d’ofertes (Web Scraping)

  • S’utilitza Puppeteer Extra amb el Stealth Plugin per controlar un navegador Chromium en mode headless, evitant ser detectat com a bot.
  • El scraper recorre la pàgina de Jooble per diverses regions de Catalunya (Barcelona, Girona, Tarragona, Lleida i les seves poblacions principals).
  • Extreu informació rellevant de cada oferta, com el títol, l’URL, l’empresa, la ubicació, la data de publicació i etiquetes associades.
  • Es limita el nombre d’ofertes recollides per cada regió per evitar un volum excessiu.
  • Les dades extretes s’emmagatzemen en un fitxer JSON local (joobleOfertas.json) per a la seva posterior importació a la base de dades.

2. Importació i emmagatzematge d’ofertes

  • El sistema llegeix el fitxer JSON generat pel scraper.
  • Converteix les dates relatives (p.ex. "3 hores", "2 dies") a dates concretes.
  • Insereix les ofertes a la base de dades MongoDB, evitant duplicats basant-se en la URL de l’oferta.

3. Consulta d’ofertes

  • S’ofereix un endpoint per obtenir ofertes des de la base de dades.
  • Permet filtrar les ofertes per zona (ubicació).

4. Gestió d’usuaris

  • Registre: Valida que tots els camps obligatoris estiguin omplerts, que les contrasenyes coincideixin i que no existeixin usuaris ni correus duplicats.
  • La contrasenya s’ofusca amb bcrypt abans d’emmagatzemar-la.
  • Login: Comprova que l’usuari existeixi i que la contrasenya sigui correcta mitjançant comparació amb el hash.
  • Middlewares per assegurar la validesa de les contrasenyes (mínim 8 caràcters, coincidència) i per comprovar que l’usuari no existeixi abans del registre.

5. Infraestructura i API

  • Es fa servir Express.js per gestionar les rutes i la lògica de backend.
  • El servidor està configurat amb CORS per permetre peticions des de diferents orígens.
  • Les variables d’entorn configuren la connexió a MongoDB i el port on s’executa el servidor.
  • Hi ha una ruta base per verificar que el backend està actiu i funcionant.

Aquest backend permet mantenir una base de dades actualitzada d’ofertes de feina captades automàticament, així com gestionar usuaris i la seva autenticació de manera segura i eficaç.