Shinybricks

Découvrez des sets LEGO® brique par brique

Hassan TILKI et Corentin DUCLOUX

26/03/2024

L’histoire de LEGO

Création en 1932 par Ole Kirk Christiansen au Danemark

  • 1946 : Du bois au plastique
  • 1958 : La fameuse “brique” LEGO®
  • 1969 – 1977 : CrĂ©ation de la gamme DUPLO et TECHNIC
  • 1999 : Première gamme (STAR WARS) de produits dĂ©rivĂ©s
  • 2000 – 2005 : Les difficultĂ©s
  • 2005 – 2015 : La Remontada
  • 2015 – 2024 : Position incontestĂ©e de leader du jouet

Acronymes spécifiques

Définitions

  • Set : Identifiant unique d’une boĂ®te LEGO®
  • PPP : Price Per Piece
  • AFOL : Adult Fan Of Lego
  • MOC : My Own Creation
  • NPU : Nice Parts Usage
  • SNOT : Studs Not On Top
  • UCS : Ultimate Collector Series

Shinybricks, c’est quoi ?

Une plateforme d’analyse LEGO sur un ensemble de points

  • Une analyse par thème
  • Une analyse par an
  • Une analyse par set
  • Un aperçu des stratĂ©gies de pricing adoptĂ©es

Sources de données

Source Méthode
Brickset API
Brickeconomy Scraping

\(\Rightarrow\) Brickset : récupération de la base de données complète

\(\Rightarrow\) Brickeconomy : récupération des prix

API Brickset

Grâce au wrapper sur développé par Jason Bryer, l’utilisation de l’API est encore plus simple !

library(brickset)

sets_2021 <- brickset::getSets(2021)
reviews_29830 <- brickset::getReviews(29830)
instructions_29830 <-brickset::getInstructions(29830)

Note

Ici, on récupère les sets de l’année 2021, les reviews du setID 29830 et les instructions du setID 29830 directement dans un dataframe.

Set Maker

CLI pour extraire les sets par année et les exporter en format parquet grâce à arrow::write_parquet()

── SetMaker ───────────────────────────────────────────────

    “Une petite CLI pour extraire des sets LEGO® vers un format
    parquet.”
    — 
Veuillez entrer une année entre 1970 et 2024 (année actuelle) ⇒ 2018

Résultat :

\(\Rightarrow\) sets_2018.parquet dans le dossier /data

Scraping Brickeconomy

Utilisation conjointe des packages {httr2} et {rvest}

  • {httr2} pour effectuer la requĂŞte et changer les headers
  • {rvest} pour faire le scraping

Exemple :

set_number <- "75573-1"

link <- glue::glue(https://www.brickeconomy.com/set/{set_number}/)

link |> ShinyBricksFuncs::make_request()

Scraping Launcher

CLI pour extraire les prix par année et les exporter en format feather grâce à feather::write_feather()

── ScrapingLauncher ─────────────────────────────────────

    “Une petite CLI pour lancer le scraping année par année des sets
    LEGO® présents sur Brickeconomy vers un format feather.”
    — 

Veuillez entrer une année entre 1994 et 2024 (année actuelle) ⇒ 2018

Résultat :

\(\Rightarrow\) scraping_2018.feather dans le dossier /data

Fusion !

Application

Shinybricks a été créée avec {shiny} et {bslib}

Pourquoi bslib ?

Le package {bslib} permet de créer une UI moderne pour Shiny et basée sur la version 5 de Bootstrap.

Pour les autres composants interactifs de l’application :

  • Graphiques rĂ©alisĂ©s avec {plotly}
  • Tableaux rĂ©alisĂ©s avec {gt}

Conclusion

Application avec de nombreuses fonctionnalités et UI/UX moderne.

En cours…

  • Pas assez de donnĂ©es pour faire un modèle fiable de sĂ©ries temporelles.
  • Utilisation du package {golem} pour dĂ©ployer l’application en tant que package avec tests et modules, etc.