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ç.