M. BENJAMIN

Site e-commerce

Projet personnel

WEB
FULLSTACK

Description

Ce projet de site e-commerce m'a permis d'explorer la gestion d’un environnement de vente en ligne, notamment autour des articles et du panier. J’ai implémenté des fonctionnalités clés telles que la création, la modification et la suppression de produits, ainsi que la gestion dynamique du panier (ajout, suppression, mise à jour des quantités).

Ce projet m’a permis de consolider mes compétences en développement Fullstack et de mieux comprendre les enjeux liés à l’expérience utilisateur dans un contexte marchand.

Rôle

Développeur Fullstack

Période

JAN - AOU 2025

Compétences

  • Next.js

  • React.js

  • TypeScript

  • Spring

  • Java

  • Postgres

  • Hibernate

  • Docker

  • file_type_tailwind

    Tailwind

Conception de la base de données

Ce projet repose sur la modélisation de plusieurs entités pour assurer le bon fonctionnement d’un site e-commerce : les articles, les utilisateurs et le panier.

L’objectif principal est de permettre une expérience utilisateur fluide, notamment à travers la consultation des produits, leur ajout au panier, et la gestion des articles dans ce panier.

Chaque choix de conception a été guidé par la simplicité d’action côté utilisateur et par la cohérence des relations entre les entités côté base de données.

shop db

API

L’API du projet est construite selon les principes REST, afin d’assurer une communication simple et cohérente entre le front-end et le back-end. Chaque ressource dispose de ses propres endpoints, permettant d’effectuer les opérations courantes : consultation, ajout, modification et suppression.

rest api model

Test

Des tests unitaires et des tests d’intégration ont été mis en place pour assurer la fiabilité de l’application. Les tests unitaires permettent de valider le bon fonctionnement isolé de chaque composant, tandis que les tests d’intégration vérifient la cohérence des interactions entre les différentes parties du système. Cette stratégie de test garantit une meilleure stabilité du code et facilite la maintenance du projet.

Gestion des articles

La gestion des articles comprend la création, la modification, la suppression et l’affichage des produits. Chaque article possède des informations clés telles que le nom, la description, le prix, le stock disponible et une image. Ces données sont manipulées via l’API pour garantir une bonne synchronisation avec le front-end.

cart management

Gestion du pannier

Le système de panier permet à chaque utilisateur d’ajouter ou de retirer des articles facilement. Il garde en mémoire les choix de l’utilisateur, même en cas de déconnexion ou de rafraîchissement de la page. Le panier est lié à l’utilisateur et géré dynamiquement via l’API.

cart management

Recherche avancer

Pour implémenter un système de recherche flexible et dynamique, j’ai utilisé le module Spring Data JPA Specifications. Cette approche permet de construire des requêtes complexes de manière programmatique en combinant plusieurs critères (nom, catégorie, prix, etc.). Grâce aux Specifications, il est possible d'ajouter des filtres conditionnels à la volée, tout en gardant un code maintenable et évolutif. Ce système offre une grande souplesse pour répondre aux besoins des utilisateurs en matière de recherche multi-critères.