M. BENJAMIN
Projet personnel
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.
Développeur Fullstack
JAN - AOU 2025
Next.js
React.js
TypeScript
Spring
Java
Postgres
Hibernate
Docker
Tailwind
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.
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.
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.
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.
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.
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.