Skip to content

🛋️ Kanap – Développement d’un site e-commerce dynamique en JavaScript ​

Kanap

Contexte ​

Dans une mission pour une agence de développement web, j’ai été chargé de rendre dynamique le site e-commerce de la marque fictive Kanap, spécialisée dans la vente de canapés. Le front-end statique était déjà intégré, et l’API back-end mise à disposition par un autre développeur.

Objectif ​

Connecter le front-end à l’API afin de rendre l’interface fonctionnelle, gérer dynamiquement le catalogue de produits, le panier, la validation des formulaires, ainsi que la confirmation de commande. Le site devait respecter une architecture modulaire en JavaScript, avec un code clair, commenté et réutilisable.

Défis techniques ​

  • Connexion Ă  l’API REST pour rĂ©cupĂ©rer les produits (GET) et passer une commande (POST)
  • Affichage dynamique du catalogue produit sur la page d’accueil
  • Page produit : sĂ©lection des options (couleur, quantitĂ©) et ajout au panier
  • Gestion du panier : modification des quantitĂ©s, suppression de produits, calculs automatiques des totaux
  • Validation du formulaire : vĂ©rification des formats (email, prĂ©nom sans chiffres, etc.)
  • Envoi de la commande : construction de l’objet contact + tableau des product-ID, envoi au back-end
  • Affichage dynamique de la page de confirmation avec l’identifiant de commande
  • Stockage local sĂ©curisĂ© : aucune donnĂ©e sensible comme le prix n’est conservĂ©e en localStorage

Compétences développées ​

  • Manipulation du DOM avec JavaScript Vanilla
  • Utilisation de fetch et des promesses
  • Structuration du code en fonctions modulaires et rĂ©utilisables
  • Mise en place d’un plan de test d’acceptation
  • Validation dynamique de formulaire (regex, messages d’erreur, UX)
  • Gestion avancĂ©e du localStorage
  • Rigueur dans le respect des spĂ©cifications fonctionnelles et techniques

Technologies utilisées ​

  • HTML5
  • CSS3
  • JavaScript ES6
  • API REST (JSON)

Fonctionnalités principales ​

  • âś… Liste des produits dynamique
  • âś… DĂ©tail d’un produit avec choix couleur + quantitĂ©
  • âś… Panier dynamique (modification, suppression, regroupement)
  • âś… Formulaire de commande avec validation en temps rĂ©el
  • âś… RequĂŞte POST vers l’API pour finaliser la commande
  • âś… Page de confirmation affichant un numĂ©ro unique de commande

Liens utiles ​

Logo de Gitlab