Retour aux projets

Scraper Web - Démonstration

Exécutez le scraper et suivez les logs en temps réel

Logs en temps réel - Démonstration

Vidéo de démonstration montrant l'exécution du scraper et les logs en temps réel

À propos du projet

🔗Liens du projet

API REST performante en Go avec MongoDB et scraper de recettes parallèle pour le restaurant Hótwings.

Description détaillée

Une solution complète développée pour le restaurant Hótwings afin d'étendre son activité avec un service de livraison. Le restaurant souhaite développer son activité avec de la vente en livraison en proposant une carte très étendue de plats et recettes. Pour plaire à tous les goûts, l'API permet de proposer une large variété de recettes scrapées depuis AllRecipes.com.

L'API propose une carte étendue de recettes scrapées depuis AllRecipes.com avec un système de scraping parallèle optimisé utilisant des goroutines. Le scraper extrait les informations complètes des recettes (nom, ingrédients, instructions, images) depuis plusieurs catégories et pages. Gestion de gros volumes de données avec processing asynchrone via goroutines.

Architecture industrielle avec équilibrage automatique de charge entre workers, stockage des résultats en JSON, logs et métriques de performance pour suivi en temps réel. Extension avec interface web interactive (Next.js) permettant aux utilisateurs d'exécuter le scraper et de visualiser les résultats en temps réel via Server-Sent Events (SSE), avec aperçu et téléchargement des résultats JSON.

📋Contexte métier

Le restaurant Hótwings souhaite développer son activité avec un service de livraison en proposant une carte très étendue de plats et recettes. Pour plaire à tous les goûts, l'API permet de proposer une large variété de recettes scrapées depuis AllRecipes.com. Cette solution permet au restaurant d'offrir une carte très étendue sans avoir à créer manuellement toutes les recettes.

🎯Objectifs techniques

  • API REST complète avec Fiber framework
  • Base de données MongoDB avec Docker
  • Scraper performant avec goroutines parallèles
  • Tests complets avec couverture de code
  • CI/CD automatisé avec GitHub Actions
  • Containerisation Docker complète
  • Cross-platform binaires (Linux, Windows, macOS)
  • Interface web interactive avec streaming temps réel

Fonctionnalités principales

🔍 Fonctionnalités de lecture

  • Lister les recettes avec pagination
  • Détail d'une recette (ingrédients, instructions, image)
  • Recherche avancée par nom ou ingrédient

🔄 Importation de données

  • Import JSON de recettes
  • Scraper automatique depuis AllRecipes.com
  • Gestion robuste des erreurs

Performance

Scraper

  • • Parallélisme : 12 workers adaptatifs (6 cœurs × 2)
  • • Vitesse : 650 recettes en 21.4 secondes
  • • Débit : ~30 recettes/seconde
  • • Taux de succès : 100%

API

  • • Framework : Fiber (Express-like pour Go)
  • • Base de données : MongoDB avec indexation
  • • Performance : ~10k req/s en conditions optimales
  • • Latence : < 50ms pour requêtes simples

Technologies utilisées

GoFiberCollyMongoDBDockerDocker ComposeGoroutinesGitHub ActionsMakeJSONREST APICORSBashMongo Express