CyberShop — Plateforme e-commerce

Projet de fin d'études (PFE) · DUT Génie Informatique · EST FBS

CyberShop — une plateforme e-commerce complète avec Spring Boot et Angular

Développement d'une plateforme de vente en ligne avec gestion des produits, panier, commandes, authentification JWT, espace administrateur (dashboard) et espace livreur.

Contexte du projet

Ce projet a été réalisé dans le cadre de mon Projet de Fin d'Études (PFE) pour l'obtention du Diplôme Universitaire de Technologie (DUT) en Génie Informatique à l'EST FBS. L'objectif était de concevoir une plateforme e-commerce moderne, sécurisée et évolutive, de sa conception à son déploiement.

Architecture technique

L'application repose sur une architecture full-stack :

  • Backend : Java avec Spring Boot (Spring Security, JWT, Spring Data JPA, Hibernate)
  • Frontend : Angular 17 avec TypeScript, Bootstrap et Angular Material
  • Base de données : MySQL (gestion des utilisateurs, produits, commandes, catégories)
  • API REST : communication sécurisée entre frontend et backend via JWT (stocké en cookie HttpOnly)
  • Outils : Maven, Git/GitHub, Postman (tests API), Notion (gestion de projet Agile)

Fonctionnalités principales

Côté client Inscription/connexion, catalogue produits, recherche/filtres, panier, historique commandes, avis.
Admin (dashboard) Gestion produits, utilisateurs, commandes, catégories, statistiques ventes, assignation livreur.
Livreur Visualisation des livraisons assignées, mise à jour du statut de livraison.

Sécurité

L'authentification repose sur JSON Web Tokens (JWT) stockés en cookies HttpOnly pour prévenir les attaques XSS. Les mots de passe sont hachés (BCrypt). Les accès aux routes sont protégés selon les rôles (USER, ADMIN, DELIVERER).

Méthodologie

Le projet a été développé en suivant une approche Agile (Scrum) avec des sprints de 2 semaines. La gestion des tâches a été centralisée sur Notion (tableau Kanban).

Défis techniques

  • Gestion des sessions : Mise en place de l'authentification JWT avec refresh token pour maintenir la session utilisateur.
  • Panier d'achat : Gestion du panier en session avec persistance des données entre les pages.
  • Statistiques en temps réel : Dashboard admin avec graphiques dynamiques (Chart.js).
  • Assignation des livraisons : Système d'assignation automatique des commandes aux livreurs disponibles.
  • Déploiement : Mise en production sur serveur avec configuration de l'environnement (variables d'environnement, base de données en ligne).

Résultat

La plateforme est fonctionnelle, responsive, et a été déployée en environnement de test. Ce projet a contribué à l'obtention de la mention Très Bien lors de la soutenance devant le jury de l'EST FBS.