gilles 4ff5d3ee79 feat: auto-scrape on product creation and update product data (Step 4)
- Add automatic scraping when creating a new product
- Update product title and image from scraped data
- Add GET /products/{id}/snapshots endpoint for price history
- Add list_snapshots and get_latest_snapshot to CRUD

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 19:33:04 +01:00
1
2026-01-18 19:21:51 +01:00
1er
2026-01-18 12:23:01 +01:00
1er
2026-01-18 12:23:01 +01:00
1er
2026-01-18 12:23:01 +01:00
1er
2026-01-18 12:23:01 +01:00
1er
2026-01-18 12:23:01 +01:00
1er
2026-01-18 12:23:01 +01:00
1er
2026-01-18 12:22:43 +01:00

suivi_produit

Suite self-hosted pour suivre les prix et l'état des produits Amazon.fr (et autres stores à venir).

Structure

  • backend/ : API FastAPI + scraper Playwright + persistance SQLite
  • frontend/ : SPA Gruvbox dark pour afficher les vignettes, graphiques et logs
  • docker/ : fichiers nécessaires pour docker-compose + builds
  • docs/, TODO.md, CHANGELOG.md, kanban.md : documentation et suivi

Objectif MVP

  1. CRUD produits + historique des snapshots
  2. Scraper Amazon via Playwright avec logs et artifacts
  3. Interface responsive avec vignettes & graphique 30j
  4. Configuration JSON frontend/backend rangée dans le repo
  5. Docker Compose + scheduler interne pour lancer les scrapes

Environnement

  1. Copier cp .env.example .env avant tout lancement backend/tests.
  2. Activer le venv :
    • source .venv/bin/activate
    • ou poetry shell
  3. poetry install (backend)
  4. npm install (frontend, à compléter)

Tests

  • Toujours exécuter poetry run pytest dans lenvironnement .env avant un docker compose up.
  • Test scraper en CLI (Playwright) :
    • SCRAPE_TEST_MAX=0 .venv/bin/poetry run python backend/app/scraper/run_scrape_tests.py
    • Optionnel (ouvrir le navigateur si blocage) :
      • SCRAPE_TEST_HEADFUL_ON_BLOCK=1 SCRAPE_TEST_MAX=0 .venv/bin/poetry run python backend/app/scraper/run_scrape_tests.py

Audit code (imports / code mort)

  • Installer les outils (dans le venv) :
    • .venv/bin/pip install ruff vulture coverage pip-check-reqs pyright
  • Lancer laudit :
    • .venv/bin/ruff check backend/
    • .venv/bin/vulture backend/
    • .venv/bin/pip-check-reqs backend/
    • .venv/bin/coverage run -m pytest
    • .venv/bin/coverage report -m

Déploiement

  1. docker compose up --build (à configurer)

Notes

  • Le scraping est volontairement lent (15-20 produits/jour) pour éviter le blocage.
  • Le raw JSON est conservé pendant 30 jours dans backend/data/raw.
Description
No description provided
Readme 219 MiB
Languages
JavaScript 44%
Python 38.9%
SCSS 16.4%
HTML 0.7%