Skip to content
/ Swapp Public

Plateforme de vente et d'achat de vêtements d'occasion entre particuliers.

Notifications You must be signed in to change notification settings

UTT-GL03/Swapp

Repository files navigation

Swapp

Plateforme de vente et d'achat de vêtements d'occasion entre particuliers.

Choix du sujet

Dans notre quotidien, les plateformes d’achat et de revente d’articles de seconde main, comme Vinted, prennent une place importante. En tant qu'utilisatrices régulières de ces services pour acheter et revendre des vêtements et accessoires que nous n'utilisons plus, nous avons constaté qu’elles pouvaient avoir un impact environnemental conséquent malgré leur objectif de promouvoir la réutilisation. Cela est dû à la forte demande en infrastructure numérique et au nombre d'interactions qu'elles nécessitent.

L'essor des plateformes de seconde main s'inscrit dans une dynamique plus large d'économie circulaire. 73 % des Français ont déclaré avoir acheté un produit d'occasion au cours des 12 derniers mois (source : ENOV). Ces services jouent un rôle crucial dans la lutte contre la surconsommation et la réduction des déchets, mais leur impact écologique lié à leur utilisation numérique mérite d’être examiné pour optimiser leurs bénéfices.

Utilité sociale

Les services de vente et d'échange d'articles de seconde main jouent un rôle social essentiel en réduisant les déchets et en prolongeant la durée de vie des objets. En facilitant les échanges entre particuliers, ces plateformes luttent activement contre la culture du jetable et la surproduction, notamment dans des secteurs à fort impact environnemental comme la mode, où la fast fashion est régulièrement pointée du doigt.

Elles offrent une alternative à la consommation de produits neufs, plus durable et accessible, tout en permettant aux utilisateurs de générer un revenu complémentaire en revendant des articles qu'ils n'utilisent plus. Ces services sont également un levier d’inclusion économique, permettant à un large public d'acquérir des biens de qualité à prix réduits. En favorisant la réutilisation et l'échange, ils soutiennent la transition vers une économie circulaire, où les ressources sont mieux exploitées.

Enfin, ces plateformes renforcent les liens sociaux en créant des communautés d'utilisateurs partageant des centres d'intérêt communs, et en facilitant les échanges locaux, promouvant ainsi des pratiques de consommation plus collaboratives et solidaires.

Effets de la numérisation

La numérisation de la vente et de l’échange d’articles de seconde main a permis de démocratiser l'accès à ce type de services et de créer des communautés massives d'acheteurs et de vendeurs. Avant l’ère numérique, la revente d'articles se limitait à des pratiques locales comme les vide-greniers, les marchés de seconde main, ou encore les associations caritatives. Ces échanges restaient limités par les contraintes géographiques et le faible nombre d'acheteurs potentiels. Avec l'essor des plateformes numériques, les transactions se font désormais à grande échelle, ouvrant des possibilités accrues de trouver des acheteurs ou des vendeurs, mais avec un coût écologique amplifié par le trafic en ligne.

Bien que ça n’ait pas été l’objectif, un effet rebond s’est installé : l'échange facilité de biens qualitatifs à coûts dérisoires incite les utilisateurs à consommer plus que jamais. Du côté des vendeurs, il est probable que l'argent obtenu par la vente ne soit pas épargné, mais réinjecté dans des achats, qu’ils soient d'occasion ou neufs, ce qui compromet l'idée d'une véritable économie circulaire. Cette démesure s’illustre sur Vinted par la création de comptes “pro” d’utilisateurs qui capitalisent sur ce commerce (source : Le Parisien).

D’autre part, chaque interaction numérique, qu'il s'agisse de la consultation des annonces, de l'envoi de messages, ou de la gestion des paiements et expéditions, a un coût écologique. L'impact environnemental d'une annonce en ligne peut sembler négligeable au premier abord, mais lorsqu'on considère les millions d'utilisateurs actifs et les multiples images, descriptions et requêtes serveur générées, cela devient significatif. De plus, des mécanismes incitatifs (comme les notifications push et les algorithmes de recommandation) poussent les utilisateurs à passer plus de temps sur la plateforme, augmentant ainsi leur empreinte numérique.

Pour contrer l’effet rebond, Swapp s’efforcera de limiter la stimulation artificielle de l'achat impulsif par une conception éthique de l’interface et de l'expérience utilisateur. Nous viserons un modèle d'interactions responsable, évitant les notifications fréquentes et en réduisant l’encouragement à une consommation excessive, en privilégiant une approche minimaliste et durable.

Enfin, il est essentiel de rappeler que si les plateformes de seconde main ont révolutionné le marché de l'occasion en le rendant accessible, elles doivent aussi trouver un équilibre entre accessibilité et durabilité pour préserver leur impact écologique positif initial.

Scénarios d'usage

Nous faisons l'hypothèse que les utilisateurs visitent les plateformes de vente d'articles de seconde main lors de moments opportunistes, que ce soit pendant leurs pauses, dans les transports en commun ou à la maison. Ces visites peuvent être motivées par la recherche d'articles spécifiques, la découverte de bonnes affaires ou la consultation de nouveautés.

Scénario 1 : Consulter les articles de la page de recherche

Ce scénario répond à l’un des besoins primaires d’un utilisateur qui découvre la plateforme. La présentation d’articles récents ou populaires lui permet d’explorer le catalogue facilement. Cela attire les nouveaux visiteurs et augmente leur engagement initial sans demander un investissement immédiat (comme une inscription), facilitant la découverte de la plateforme.

Étapes :

  1. L’utilisateur visite le site pour la première fois.
  2. Il explore une page présentant les articles récents ou mis en avant.
  3. Il navigue dans le catalogue d’articles, en déroulant ou en parcourant des sections thématiques.

Scénario 2 : Rechercher des articles spécifiques et ajouter un article au panier

Ce scénario illustre l’expérience utilisateur pour trouver un produit particulier. L’ajout d’un article au panier sans achat immédiat favorise une consommation réfléchie et limite l’impact écologique.

Étapes :

  1. L’utilisateur utilise une barre de recherche pour trouver un produit spécifique (é.g., “veste en cuir”).
  2. Il applique des filtres pertinents (prix minimum : 0, prix maximum : 50).
  3. Il examine les résultats filtrés et sélectionne une annonce pour voir ses détails.
  4. Il ajoute l’article au panier pour considération ultérieure.

Analyse des impacts de nos concurrents avec GreenIt-Analysis

Pour cette étude, nous avons mesuré l’impact environnemental des scénarios 1 et 2 à l’aide de GreenItAnalysis, car ils sont réalisables sans compte utilisateur.

Résultats d'analyse de Vinted

Scénario ecolIndex Part due aux actions Eau (cl) GES (gCO2e) Bonnes pratiques à mettre en œuvre
Chargement de la page G 🔴 58 4.5 3 9
Cliquer sur la première suggestion G 🔴 17 4.5 3 9
Définir le prix minimum D ⚪ 0 3.09 2.06 5
Définir le prix maximum D ⚪ 0 3.15 2.1 6

Tab1 : GreenIT-Analysis : Impact de Vinted obtenu automatiquement à partir d'un fichier .yml

Bonne pratique Effort Impact Priorité Grade
Ajouter des expires ou cache-control headers (>= 95%) 3 4 4
Compresser les ressources (>= 95%) 9 9 9
Limiter le nombre de domaines (< 3) 3 4 3
Ne pas retailler les images dans le navigateur 4 4 4
Éviter les tags SRC vides 9 9 9
Externaliser les CSS 4 4 4
Externaliser les JS 4 4 4
Éviter les requêtes en erreur 9 9 9
Limiter le nombre de requêtes HTTP (< 27) 3 4 4
Ne pas télécharger des images inutilement 9 9 9
Valider le JavaScript 3 3 3
Taille maximum des cookies par domaine (< 512 Octets) 9 9 9
Minifier les CSS (>= 95%) 3 4 4
Minifier les JS (>= 95%) 3 4 4
Pas de cookie pour les ressources statiques 9 9 9
Éviter les redirections 3 3 3
Optimiser les images bitmap 4 4 4
Optimiser les images SVG 4 4 4
Ne pas utiliser de plugins 9 9 9
Fournir une print CSS 4 3 3
N'utilisez pas les boutons standards des réseaux sociaux 4 4 4
Limiter le nombre de fichiers CSS (< 3) 4 4 4
Utiliser des ETags (>= 95%) 9 9 9
Utiliser des polices de caractères standards 3 4 4

Tab2 : GreenIT-Analysis : tableau des bonnes pratiques de Vinted obtenu automatiquement à partir d'un fichier .yml

Date Url Nombre requêtes Taille (kb) Taille du DOM GES Eau ecolIndex Note Description de la page mesurée
10/01/2025 18:59 https://www.vinted.fr/ 139 5199 3010 2.76 4.15 11.75 F 🟠 Page d'accueil
10/01/2025 19:00 https://www.vinted.fr/ 285 10778 9362 2.90 4.35 4.96 G 🔴 Page d'accueil après avoir scrollé (chargement de nouveaux articles et augmentation du nombre de requêtes)
10/01/2025 19:01 https://www.vinted.fr/catalog/4-clothing 237 7298 10004 2.88 4.31 6.17 G 🔴 Page "Voir tout" de la catégorie "Femme"
10/01/2025 19:01 https://www.vinted.fr/catalog/2984-designer-b 381 12614 6897 2.90 4.35 4.92 G 🔴 Page "Sacs de créateurs" de la catégorie "Articles de créateurs"

Tab3 : GreenIT-Analysis Plugin : Impact de Vinted d'après le scénario 1 : consulter les articles sur la page de recherche

Date Url Nombre requêtes Taille (kb) Taille du DOM GES Eau ecolIndex Note Description de la page mesurée
10/01/2025 19:14 https://www.vinted.fr/ 135 9374 3014 2.78 4.16 11.17 F 🟠 Page d'accueil
10/01/2025 19:14 https://www.vinted.fr/catalog?search_text=veste+en+cuir 314 8772 10296 2.90 4.35 4.95 G 🔴 Page après recherche du terme "veste en cuir"
10/01/2025 19:14 https://www.vinted.fr/catalog?search_text=veste+en+cuir 408 10353 10422 2.90 4.35 4.90 G 🔴 Page après avoir appliqué les filtres de prix
10/01/2025 19:14 https://www.vinted.fr/items/5626428632-grun 71 2132 1079 2.27 3.41 36.44 E 🟡 Page de détails d'un article
10/01/2025 19:15 https://www.vinted.fr/items/5626428632-grun 80 2230 1142 2.33 3.50 33.33 E 🟡 N'ayant pas de compte, la page après avoir cliqué "Acheter" correspond à la page d'inscription.

Tab4 : GreenIT-Analysis Plugin : Impact de Vinted d'après le scénario 2 : rechercher des articles spécifiques et ajouter un article au panier

Résultats d'analyse de Depop

Nous avons d'abord tenté d'utiliser la version automatisée de GreenIT-Analysis avec un fichier .yml, mais nous avons rencontré plusieurs obstacles, notamment des problèmes liés aux captchas sur les sites analysés. Face à ces limitations, nous avons opté pour une approche manuelle à l'aide du plugin GreenIT-Analysis pour contourner ces problèmes et poursuivre l'étude.

Date Url Nombre requêtes Taille (kb) Taille du DOM GES Eau ecolIndex Note Description de la page mesurée
10/01/2025 19:28 https://www.depop.com/fr/?moduleOrigin=menu 168 3121 816 2.46 3.69 27.17 E 🟡 Page d'accueil
10/01/2025 19:28 https://www.depop.com/fr/category/womens/dresses 235 2491 1334 2.67 4.00 16.53 F 🟠 Page "Robes" de la catégorie "Vêtements pour femmes"
10/01/2025 19:28 https://www.depop.com/fr/category/womens/dresses 712 6457 3966 2.89 4.34 5.30 G 🔴 Même page que la précédente mais après avoir scrollé (scroll infini)

Tab5 : GreenIT-Analysis Plugin : Impact de Depop d'après le scénario 1 : consulter les articles sur la page de recherche

Date Url Nombre requêtes Taille (kb) Taille du DOM GES Eau ecolIndex Note Description de la page mesurée
10/01/2025 19:35 https://www.depop.com/fr/?moduleOrigin=menu 173 2924 816 2.46 3.68 27.18 E 🟡 Page d'accueil
10/01/2025 19:35 https://www.depop.com/fr/?moduleOrigin=menu 324 4297 1202 2.71 4.06 14.60 F 🟠 Page après recherche du terme "veste en cuir"
10/01/2025 19:35 https://www.depop.com/fr/?moduleOrigin=menu 457 5154 1223 2.73 4.09 13.63 F 🟠 Page après avoir appliqué les filtres de prix
10/01/2025 19:36 https://www.depop.com/products/rosavalentina/ 235 3375 1199 2.67 4.00 16.64 F 🟠 Page de détails d'un article
10/01/2025 19:36 https://www.depop.com/login?titleKey=Content 139 1676 264 1.93 2.89 53.66 D ⚪ Page de création de compte. N'ayant pas de compte, la page après avoir cliqué "Acheter maintenant" correspond à cette page.

Tab6 : GreenIT-Analysis Plugin : Impact de Depop d'après le scénario 2 : rechercher des articles spécifiques et ajouter un article au panier

Réflexions analytiques

Les analyses réalisées avec GreenAnalysis mettent en lumière des stratégies distinctes entre Vinted et Depop, ainsi que des impacts environnementaux notables. Vinted utilise un scroll automatique sur sa page d’accueil, ce qui engendre une augmentation modérée du nombre de requêtes et de la taille du DOM à mesure du chargement des contenus. Depop, quant à lui, adopte un scroll infini sur ses pages de recherche ou de catégories d’articles, ce qui provoque une forte hausse des requêtes, du poids des données et de la complexité du DOM, avec un impact environnemental plus marqué sur ces pages. Toutefois, Depop affiche généralement de meilleurs scores EcoIndex que Vinted, notamment sur ses pages d’accueil et de création de compte. Cela montre une meilleure optimisation des ressources pour certaines interactions simples.

Cependant, de manière générale, les deux plateformes affichent des performances environnementales préoccupantes, avec des EcoIndex souvent inférieurs à 20 et des notes faibles (F ou G pour la majorité des pages mesurées). Ces résultats soulignent l’importance d’optimiser davantage la gestion des DOM, de réduire les requêtes inutiles et de limiter la charge induite par les fonctionnalités dynamiques, telles que le scroll infini ou automatique.

Maquettage & données

Afin de limiter au maximum l'afflux de données inutile, nous avons choisi de mettre en place une page d'accueil sans scroll, dans laquelle il est possible de sélectionner une catégorie ou taper un élément spécifique dans le champ de saisie.

Maquette page d'accueil Fig1 : maquette de la page d'accueil

Cette même idée est poursuivie dans la page de recherche. Les items sont donc à minima triés par catégorie, afin de limiter les données à récupérer. Il est possible de pousser la recherche en lançant une recherche par une chaîne de caractères ou en précisant un état, une taille, une couleur, un prix, sa localisation.

Maquette page de recherche Fig2 : maquette de la page de recherche

Le nombre d'images admis par item est de 4, à la taille maximale de 1Mo.

Maquette page de détails d'un item Fig3 : maquette de la page descriptive d'un élément

L'échantillon de données a été créé par dummy-json selon les attributs de catégorie, état, taille, couleur, prix et localisation évoqués préalablement.

Prototypes

Prototype 1

Pour ce premier prototype, nous créons les composants nécessaires à notre grille de résultats, à partir de 3 éléments codés en dur dans notre fichier. Aucune recherche ou filtrage n'est fonctionnel.

Prototype 1 - Capture d'écran de la page d'accueil Fig4 : Prototype 1 - Capture d'écran de la page d'accueil

Navigateur GreenFrame Hébergement statique Swapp Total
CPU 1.4 mWh (2%) 0 mWh (0%) 1.4 mWh (1%)
Réseau 20 mWh (22%) 19 mWh (100%) 40 mWh (36%)
Ecran 68 mWh (76%) 0 mWh (0%) 68 mWh (62%)
Mémoire 0.1 mWh (0%) 0 mWh (0%) 0.1 mWh (0%)
Disque 0 mWh (0%) 0 mWh (0%) 0 mWh (0%)
Total énergie 89.5 mWh 19 mWh 109 mWh
Total carbone 40 mg eq. CO₂ 0.8 mg eq. CO₂ 48 mg eq. CO₂

Tab7 : résultats GreenFrame de la page d'accueil du prototype 1

Prototype 1 - Capture d'écran de la page de recherche Fig5 : Prototype 1 - Capture d'écran de la page de recherche

Navigateur GreenFrame Hébergement statique Swapp Total
CPU 1 mWh (1%) 0 mWh (0%) 1 mWh (1%)
Réseau 1.7 mWh (2%) 1.1 mWh (2%) 2.8 mWh (4%)
Ecran 69 mWh (96%) 0 mWh (0%) 69 mWh (96%)
Mémoire 0.1 mWh (0%) 0 mWh (0%) 0.1 mWh (0%)
Disque 0 mWh (0%) 0 mWh (0%) 0 mWh (0%)
Total énergie 71 mWh 1.1 mWh 72.1 mWh
Total carbone 32 mg eq. CO₂ 0.5 mg eq. CO₂ 32.5 mg eq. CO₂

Tab8 : résultats GreenFrame de la page d'articles du prototype 1

Nous observons une différence notable d'énergie nécessaire au réseau entre la page d'accueil et la page de résultats. L'onglet réseau de l'inspecteur nous fait remarquer la taille considérable de l'image de fond au format PNG. Nous supposons que l'impact énergétique est principalement lié à la taille des éléments chargés via le réseau. Nous décidons alors de la changer pour utiliser le format SGV (car le SVG utilise des descriptions vectorielles basées sur le texte pour définir les formes et les couleurs, ce qui permet de réduire la taille du fichier, contrairement au PNG qui stocke chaque pixel individuellement, ce qui augmente la quantité de données nécessaires).

Prototype 1 - Capture d'écran de l'image de fond Fig6 : Prototype 1 - Capture d'écran de la page d'accueil et sa nouvelle image de fond

Navigateur GreenFrame Hébergement statique Swapp Total
CPU 0.8 mWh (1%) 0 mWh (0%) 0.8 mWh (1%)
Réseau 1.7 mWh (2%) 1.1 mWh (2%) 2.8 mWh (4%)
Ecran 67 mWh (95%) 0 mWh (0%) 67 mWh (95%)
Mémoire 0.1 mWh (0%) 0 mWh (0%) 0.1 mWh (0%)
Disque 0 mWh (0%) 0 mWh (0%) 0 mWh (0%)
Total énergie 70 mWh 1.1 mWh 71.1 mWh
Total carbone 30 mg eq. CO₂ 0.5 mg eq. CO₂ 31 mg eq. CO₂

Tab9 : résultats GreenFrame de la page d'accueil du prototype 1 avec une nouvelle image de fond

La seule modification de l'image a effectivement permis une réduction de 98% de la dépense en énergie liée au réseau.

Prototype 2

Pour ce deuxième prototype, nous mettons à jour dynamiquement la grille de résultats en fonction d'une chaîne de caractères de recherche, à partir de données statiques. Seule la barre de recherche est pour l'instant fonctionnelle.

Nous créons la logique de liste déroulante des filtres à partir de données statiques. Nous permettons la mise à jour des filtres à la fermeture des listes déroulantes. Ainsi, nous permettons une première fonctionnalité de filtrage côté client.

Prototype 2 - Capture d'écran des listes déroulantes Fig7 : Prototype 2 - Capture d'écran de la page de recherche, liste déroulante ouverte

Navigateur GreenFrame Hébergement statique Swapp Total
CPU 0.9 mWh (1%) 0 mWh (0%) 0.9 mWh (1%)
Réseau 2 mWh (3%) 1.4 mWh (100%) 3.5 mWh (4%)
Ecran 68 mWh (96%) 0 mWh (0%) 68 mWh (96%)
Mémoire 0.1 mWh (0%) 0 mWh (0%) 0.1 mWh (0%)
Disque 0 mWh (0%) 0 mWh (0%) 0 mWh (0%)
Total énergie 71 mWh 1.4 mWh 72.4 mWh
Total carbone 31 mg eq. CO₂ 0.6 mg eq. CO₂ 32.8 mg eq. CO₂

Tab10 : résultats GreenFrame de la page d'articles du prototype 2

La mise à jour dynamique des filtres a augmenté de 25% l'énergie liée au réseau. Les autres dépenses énergétiques restent inchangées.

Prototype 3 : Données dynamiques & Chargement dynamique

Dans cette troisième version du prototype, les données sont désormais centralisées dans une base de données CouchDB, accessible via une API Web. L’adoption d’une telle solution offre plusieurs avantages : elle permet d’ajouter, de modifier et de gérer les articles de manière plus fluide, tout en offrant une plus grande flexibilité pour le filtrage et l’accès aux données.

Les bases de données présentent de nombreux avantages par rapport aux fichiers statiques. Elles permettent d'exécuter des requêtes complexes et dynamiques, offrant ainsi un accès plus précis et flexible aux données. De plus, elles optimisent la gestion de l'espace de stockage et les performances, en particulier lorsque les volumes de données sont importants. Enfin, les bases de données facilitent considérablement les modifications et les mises à jour, éliminant la nécessité de manipuler manuellement de grands fichiers, ce qui est souvent source d'erreurs.

Pour ce troisième prototype, nous permettons la recherche fonctionnelle depuis la barre de recherche, mais tout le filtrage reste codé côté client. Ainsi, l’intégralité des articles est toujours récupérée depuis la base de données. La véritable nouveauté ici réside dans leur gestion dynamique et leur accessibilité améliorée par le biais d’une base de données.

Navigateur GreenFrame Hébergement statique Swapp Backend Swapp Total
CPU 1 mWh (1%) 0 mWh (0%) 1.1 mWh (91%) 2.1 mWh (3%)
Réseau 2.1 mWh (3%) 1.4 mWh (100%) 0.1 mWh (6%) 3.6 mWh (5%)
Écran 68 mWh (96%) 0 mWh (0%) 0 mWh (0%) 68 mWh (92%)
Mémoire 0.1 mWh (0%) 0 mWh (0%) 0 mWh (3%) 0.1 mWh (0%)
Disque 0 mWh (0%) 0 mWh (0%) 0 mWh (0%) 0 mWh (0%)
Total énergie 71 mWh 1.4 mWh 1.3 mWh 73.7 mWh
Total carbone 31 mg eq. CO₂ 0.6 mg eq. CO₂ 0.6 mg eq. CO₂ 32.2 mg eq. CO₂

Tab11 : résultats GreenFrame de la page d'articles du prototype 3

Il n'y a pas de changement significatif au niveau des performances réseau, mais une augmentation de l'utilisation du CPU a été constatée. Cela s'explique par la création et le déploiement d'un backend, un composant naturellement plus demandant en ressources de calcul.

Nous pouvons retenir que l'effet de l'introduction d'une base de données, quoique négligeable, est, pour l'instant, plutôt défavorable d'un point de vue écologique. Le bilan de ce changement devrait cependant rapidement s'inverser avec l'augmentation de la quantité de données gérées et les requêtes réalisées.

Prototype 4

Un problème est relevé : puisque nous avons créé aléatoirement des titres d'articles et les valeurs des catégories, le filtrage, bien que fonctionnel, paraît douteux. En effet, un article pouvait jusqu'alors avoir un titre "Veste en cuir", une catégorie "Robe" et un description "Gilet tout doux". En sélectionnant la catégorie "Robe", obtenir un élément au titre de "Veste en cuir" laisse croire à une erreur de tri.

Par conséquent, nous avons modifié notre sample_data.hbs pour que les titres ne comprennent ni des valeurs possibles de catégorie, de couleur et de matière. Les descriptions sont toutes modifiées pour correspondre à un "lorem ipsum" de 100 mots.

Jeu de données Fig9 : Fichier sample_data.hbs utilisé pour la génération de données

Passage à l'échelle

Dans le cadre de notre service, la croissance des données est principalement liée à deux aspects : le volume des annonces et les médias associés (photos). L'évolution de ces données est directement liée à la croissance du nombre d'utilisateurs et au rythme de publication des annonces.

Facteurs d'augmentation des données :

  • Nombre d'utilisateurs Chaque nouvel utilisateur inscrit est susceptible d'ajouter des annonces (texte, photos, descriptions) et d'effectuer des interactions (messages, transactions, évaluations, etc.). L'augmentation est non linéaire puisque le nombre de nouveaux utilisateurs peut croître rapidement grâce au bouche-à-oreille et aux campagnes de marketing.

  • Volume d'annonces
    Chaque utilisateur peut publier plusieurs annonces et ces annonces restent dans la base de données (même après la vente ou l'expiration) pour des raisons de traçabilité et d'historique. La croissance est approximativement linéaire en fonction du nombre d'utilisateurs et de leur activité.

  • Médias associés (photos)
    Chaque annonce inclut plusieurs photos (généralement 3 à 5). Ces fichiers multimédias représentent la majeure partie de l'empreinte en stockage.

Avant ajustements

Passage de 15 à 3000 à 10 000 articles

Nombre d'articles Composant Navigateur GreenFrame Hébergement statique Swapp Backend Swapp Total
15 articles CPU 1 mWh (1%) 0 mWh (0%) 1,1 mWh (91%) 2,1 mWh (3%)
Réseau 2,1 mWh (3%) 1,4 mWh (100%) 0,1 mWh (6%) 3,6 mWh (5%)
Écran 68 mWh (96%) 0 mWh (0%) 0 mWh (0%) 68 mWh (92%)
Mémoire 0,1 mWh (0%) 0 mWh (0%) 0 mWh (3%) 0,1 mWh (0%)
Disque 0 mWh (0%) 0 mWh (0%) 0 mWh (0%) 0 mWh (0%)
Total énergie 71 mWh 1,4 mWh 1,3 mWh 73,7 mWh
Total carbone 31 mg éq. CO₂ 0,6 mg éq. CO₂ 0,6 mg éq. CO₂ 32,2 mg éq. CO₂
3 000 articles CPU 2,8 mWh (3%) 📈 +180% 0 mWh (0%) 3,3 mWh (22%) 📈 +200% 6,1 mWh (7%) 📈 +190%
👉 Consulter la comparaison sur GreenFrame Réseau 14 mWh (16%) 📈 +567% 1,4 mWh (100%) 12 mWh (78%) 📈 +11,900% 27,4 mWh (31%) 📈 +661%
Écran 69 mWh (81%) 📈 +1.5% 0 mWh (0%) 0 mWh (0%) 69 mWh (62%) 📈 +1.5%
Mémoire 0,1 mWh (0%) 0 mWh (0%) 0,1 mWh (0%) 0,2 mWh (0%) 📈 +100%
Disque 0 mWh (0%) 0 mWh (0%) 0 mWh (0%) 0 mWh (0%)
Total énergie 86 mWh 📈 +21% 1,4 mWh 15 mWh 📈 +1,054% 102,4 mWh 📈 +39%
Total carbone 38 mg éq. CO₂ 📈 +23% 0,6 mg éq. CO₂ 6,8 mg éq. CO₂ 📈 +1,033% 45,4 mg éq. CO₂ 📈 +41%
10 000 articles CPU 6,9 mWh (6%) 📈 +146% 0 mWh (0%) 8,2 mWh (17%) 📈 +148% 15,1 mWh (9%) 📈 +148%
👉 Consulter la comparaison sur GreenFrame Réseau 41 mWh (34%) 📈 +193% 1,4 mWh (100%) 39 mWh (83%) 📈 +225% 81,4 mWh (48%) 📈 +197%
Écran 73 mWh (60%) 📈 +6% 0 mWh (0%) 0 mWh (0%) 73 mWh (43%) 📈 +6%
Mémoire 0,1 mWh (0%) 0 mWh (0%) 0,1 mWh (0%) 0,2 mWh (0%)
Disque 0 mWh (0%) 0 mWh (0%) 0 mWh (0%) 0 mWh (0%)
Total énergie 121 mWh 📈 +41% 1,4 mWh 48 mWh 📈 +220% 170,4 mWh 📈 +66%
Total carbone 53 mg éq. CO₂ 📈 +39% 0,6 mg éq. CO₂ 21 mg éq. CO₂ 📈 +209% 74,6 mg éq. CO₂ 📈 +64%

Tab12 : tableau comparatif de la page d'articles du prototype 3 en changeant le nombre d'articles de 15 à 3 000 à 10 0000

L'augmentation de la consommation CPU est notable entre 10 articles et 10 000 articles, avec une hausse de 📈 +146% pour le Navigateur GreenFrame et de 📈 +148% pour le Backend Swapp. Cela s'explique par le fait que, avec un tri côté client, la charge de traitement est déplacée vers le navigateur, qui doit gérer un volume important de données. De son côté, le backend ne traite que les requêtes initiales, ce qui réduit son implication dans les opérations de tri ou de filtrage.

La consommation réseau montre une augmentation drastique, atteignant 📈 +193% pour le Navigateur GreenFrame, 📈 +225% pour le Backend Swapp et 📈 +197% pour le total réseau. Cela s'explique par le fait que l'ensemble des données est envoyé en une seule requête, quel que soit le nombre d'articles, augmentant la bande passante consommée. Le réseau devient ainsi un goulot d'étranglement potentiel, surtout pour des utilisateurs ayant une connexion instable ou limitée.

La consommation énergétique de l'écran reste stable avec une augmentation de 📈 +6% pour 10 000 articles. Cela indique que la visualisation des données n'est pas un facteur déterminant dans l'augmentation de l'énergie consommée, car les interfaces ne changent pas significativement en termes de complexité graphique.

La consommation mémoire reste négligeable, bien qu'elle double en passant de 10 à 3 000 articles. Cela peut devenir problématique pour des volumes encore plus importants de données, surtout sur des appareils avec des ressources limitées.

Après ajustements

Pour limiter cette augmentation de l'impact de l'application, nous décidons de mettre en place un système de pagination et de trier côté serveur.

Tri côté serveur

Comme expliqué plus haut, nous récupérions encore une quantité massive d'articles, triés côté client et entièrement affichés, ce qui augmente fortement l'impact lié à l'utilisation du processeur. Nous passons donc à un filtrage côté serveur, en conservant tous les types de filtrage précédemment définis côté client.

Trois modes d'accès aux articles sont actuellement disponibles :

  • Recherche par titre : L'utilisateur effectue une recherche, et les résultats sont filtrés pour correspondre uniquement aux titres pertinents, limités à 25 articles ;
  • navigation par catégorie : L'utilisateur sélectionne une catégorie spécifique et accède à une liste triée et restreinte à 25 articles maximum ;
  • recherche dans une catégorie : En combinant les deux méthodes, l'utilisateur peut affiner davantage les résultats, qui restent plafonnés à 25 articles.

Mise en place de la pagination

L'intégration d'une limite stricte à 25 articles maximum par affichage a été une décision centrale dans la conception de notre plateforme, en réponse aux enjeux d'optimisation des performances et de réduction de l'impact environnemental. Associée à l'obligation d'utiliser des filtres lors des recherches, cette approche garantit une expérience utilisateur ciblée et écoresponsable.

En cas de dépassement de la limite de 25 articles, nous permettons à l'utilisateur de cliquer sur un bouton pour charger 25 articles suivants. Nous évitons le système de scroll infini pour ne pas décourager l'utilsateur à charger davantage de contenu que le nécessaire.

Résultats

Navigateur GreenFrame Hébergement statique Swapp Backend Swapp Total
CPU 1.1 mWh (2%) 0 mWh (0%) 1.3 mWh (93%) 2.4 mWh (3%)
Réseau 2 mWh (3%) 1.4 mWh (100%) 0 mWh (1%) 3.4 mWh (5%)
Écran 68 mWh (96%) 0 mWh (0%) 0 mWh (0%) 68 mWh (92%)
Mémoire 0.1 mWh (0%) 0 mWh (0%) 0.1 mWh (6%) 0.2 mWh (0%)
Disque 0 mWh (0%) 0 mWh (0%) 0 mWh (0%) 0 mWh (0%)
Total énergie 71 mWh 1.4 mWh 1.4 mWh 73.8 mWh
Total carbone 31 mg eq. CO₂ 0.6 mg eq. CO₂ 0.6 mg eq. CO₂ 32.2 mg eq. CO₂

Tab13 : résultats GreenFrame de la page d'articles du prototype 4 après ajustements

Les bénéfices de cette approche sont clairement mesurables. Avant l'implémentation de cette stratégie, notre page de résultats consommait en moyenne 75 mg par exécution, selon les données de GreenFrame. Après l'application de la limitation et des filtres obligatoires, nous avons atteint une consommation réduite à 32 mg par exécution, soit une réduction de plus de 57 %.

Cette optimisation démontre l'importance d'adopter une conception numérique responsable et sobre, non seulement pour minimiser l'impact environnemental mais également pour améliorer les performances globales du système. Notre démarche illustre comment des choix techniques simples, tels que la limitation des résultats ou l'application de filtres obligatoires, peuvent avoir un impact significatif sur la durabilité des plateformes numériques tout en offrant une expérience utilisateur optimisée et fluide.

Prototype 5

Dans ce prototype, nous avons complété le scénario 2 à notre implémentation. Dans le cadre d'une plateforme de vente et d'achat de vêtements d'occasion entre particuliers, il est essentiel de permettre aux utilisateurs d'accéder aux détails d'un article après avoir cliqué sur celui-ci suite à une recherche.

Nous avons donc conçu et développé la page de détails d'un article, conformément à la maquette initiale.

Page de détails d'un article Fig10 : Prototype 5 - Page de détails d'un article

L'ajout de cette nouvelle page entraîne une augmentation de la "Global Estimated Consumption" (= Consommation Énergétique Estimée Globale) de l'application. Cela est dû à l'impact énergétique de la page, notamment en raison des ressources qu'elle nécessite pour être chargée et affichée. Cependant, cette fonctionnalité est indispensable pour le bon fonctionnement de l'application et permet d'offrir des services essentiels aux utilisateurs. En pratique, cette page génère une consommation estimée de 33 mg d'énergie. Comparée à d'autres pages de l'application ou à des scénarios similaires, cette consommation reste raisonnable et ne compromet pas l'efficacité globale de l'application.

Navigateur GreenFrame Hébergement statique Swapp Backend Swapp Total
CPU 0.9 mWh (1%) 0 mWh (0%) 1.4 mWh (93%) 2.3 mWh (3%)
Réseau 1.8 mWh (2%) 1.1 mWh (99%) 0 mWh (1%) 2.9 mWh (4%)
Écran 69 mWh (96%) 0 mWh (0%) 0 mWh (0%) 69 mWh (93%)
Mémoire 0 mWh (0%) 0 mWh (0%) 0.1 mWh (6%) 0.1 mWh (0%)
Disque 0 mWh (0%) 0 mWh (0%) 0 mWh (0%) 0 mWh (0%)
Total énergie 72 mWh 1.1 mWh 1.5 mWh 74.6 mWh
Total carbone 32 mg eq. CO₂ 0.5 mg eq. CO₂ 0.6 mg eq. CO₂ 33.1 mg eq. CO₂

Tab13 : résultats GreenFrame de la page de détails d'un articles du prototype 5

Ces données permettent d'identifier l'affichage comme le principal point d'optimisation pour réduire l'empreinte environnementale de cette fonctionnalité.

Les résultats globaux de notre application sont alors les suivants.

Page d'accueil Page de résultats Page d'article Total
CPU 2.2 mWh (3%) 2.3 mWh (3%) 2.3 mWh (3%) 6.8 mWh (3%)
Réseau 4.5 mWh (6%) 3.5 mWh (5%) 2.9 mWh (4%) 10.9 mWh (5%)
Écran 67 mWh (91%) 68 mWh (92%) 69 mWh (93%) 204 mWh (92%)
Mémoire 0.1 mWh (0%) 0.1 mWh (0%) 0.1 mWh (0%) 0.3 mWh (0%)
Disque 0 mWh (0%) 0 mWh (0%) 0 mWh (0%) 0 mWh (0%)
Total énergie 73.3 mWh 73.9 mWh 74.3 mWh 222 mWh
Total carbone 32.5 mg eq. CO₂ 32.2 mg eq. CO₂ 33.1 mg eq. CO₂ 98 mg eq. CO₂

Tab14 : résultats GreenFrame globaux de notre application

Conclusion

Ce projet a été l'occasion d'explorer les multiples dimensions de l'éco-conception dans les produits numériques. Nous avons constaté que des choix techniques judicieux permettent de réduire l'empreinte écologique d'une application ou d'un site. Ce travail nous a montré l'importance d'adopter une approche intégrée où chaque décision, de la conception à la maintenance, contribue à un numérique plus responsable et durable.

Ce qui nous a surpris

  • Le faible impact des calculs du CPU
    Contrairement à ce que nous pensions, les calculs intensifs ne représentent pas la principale source de consommation énergétique.
    Ce sont plutôt les requêtes réseau et le volume de données échangées qui ont un impact significatif sur l'empreinte écologique d'une application.

  • L’impact significatif des publicités et du tracking
    Les publicités et le tracking jouent un rôle prépondérant dans la consommation énergétique.
    Ces éléments, souvent perçus comme secondaires, figurent en réalité parmi les principaux contributeurs à une empreinte carbone élevée.
    Cette prise de conscience souligne l'urgence de limiter ces pratiques ou d'opter pour des alternatives plus respectueuses de l'environnement.

  • Le potentiel des optimisations simples
    Une meilleure gestion des requêtes serveur ou une simple compression des images peut réduire de manière significative la consommation de bande passante.
    Ces ajustements permettent également de diminuer les émissions de CO2 associées.
    Cela démontre qu'une optimisation réfléchie peut avoir un impact considérable, même avec des changements modestes.

  • La différence d’impact par rapport aux concurrents
    Le projet a mis en évidence une différence d'impact importante entre notre solution et celles des concurrents.
    Grâce à notre approche d’éco-conception, notre produit s'est avéré nettement plus performant en termes d’empreinte écologique.

Les bonnes pratiques à retenir

Pour réduire l'empreinte écologique de nos produits numériques, voici les principales pratiques identifiées :

  • Mesurer l’impact dès la conception et tout au long du cycle de vie, en utilisant des outils adaptés ;
  • limiter et compresser les images, ou mieux, privilégier des formats légers comme le SVG au lieu du PNG ;
  • réduire la création de nouvelles pages et opter pour des architectures optimisées avec une pagination claire ;
  • bannir le scroll infini, qui encourage une consommation non contrôlée de ressources et nuit à l'expérience utilisateur ;
  • supprimer les requêtes superflues et filtrer les données pour ne transmettre que ce qui est réellement nécessaire ;
  • limiter les publicités ou opter pour des business plans plus éco-responsables qui ne reposent pas uniquement sur le tracking et la consommation massive de ressources ;
  • minimiser le temps passé sur les applications, en concevant des expériences centrées sur l'efficacité et non sur la rétention abusive ;
  • utiliser une base de données bien conçue et optimisée pour réduire les temps de réponse et limiter les requêtes inutiles.

En conclusion, ce projet a mis en lumière le rôle clé des développeurs et concepteurs dans la réduction de l'empreinte écologique du numérique. Les technologies actuelles offrent déjà des solutions concrètes pour un numérique plus durable. Il ne nous reste qu'à les appliquer, en veillant à toujours privilégier la simplicité, l'optimisation et l'éthique dans nos choix.

About

Plateforme de vente et d'achat de vêtements d'occasion entre particuliers.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •