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
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.

