https://www.youtube.com/watch?v=r61tJPlTtnI https://www.youtube.com/channel/UC1WL2YE3a569B3bOtUz3mXQ
Un projet e-commerce fullstack complet avec gestion d'authentification, de produits, de commandes et panel administrateur.
- Présentation du projet
- Technologie utilisées
- Prérequis
- Installation
- Démarrage du projet
- Arrêt des services
- Structure du projet
- Accès aux applications
- Fonctionnalités
- Base de données
Ce projet est une application e-commerce fullstack permettant :
✅ Pour les utilisateurs :
- Inscription et connexion sécurisée avec JWT
- Consultation du catalogue de produits
- Filtrage par catégories
- Création de commandes
- Suivi des commandes personnelles
✅ Pour les administrateurs :
- Gestion complète des produits (ajout, modification, suppression)
- Gestion des catégories
- Gestion des stocks
- Suivi de toutes les commandes
- Gestion des utilisateurs
- Spring Boot 3.2.0 - Framework web Java
- Spring Security - Authentification et autorisation
- Spring Data JPA - ORM pour la base de données
- JWT (JSON Web Tokens) - Authentification stateless
- H2 Database - Base de données embarquée
- Maven - Gestion des dépendances
- Java 17 - Langage de programmation
- Vue.js 3.4 - Framework JavaScript réactif
- Vue Router 4.3 - Routage côté client
- Pinia 2.1 - Gestion d'état
- Axios 1.6 - Client HTTP
- Vite 5.0 - Build tool moderne
- Node.js / npm - Gestion des dépendances
Avant de démarrer, assurez-vous d'avoir installé :
- Java 17+ → Télécharger
- Node.js 16+ et npm → Télécharger
- Git → Télécharger
- Maven (optionnel - inclus dans le projet via mvnw)
java -version
node -v
npm -v
git --versiongit clone https://github.com/dadafax/projet_java.git
cd projet_javacd frontend
npm install
cd ..Le backend utilise Maven Wrapper (mvnw.cmd), aucune installation supplémentaire n'est nécessaire.
Double-cliquez sur START_ALL.bat depuis le dossier racine du projet.
Le script va :
- ✅ Vérifier la structure du projet
- ✅ Vérifier la disponibilité des ports
- ✅ Démarrer le Backend Spring Boot (port 8080)
- ✅ Démarrer le Frontend Vue.js (port 5173)
- ✅ Afficher les URLs d'accès
Sortie attendue :
======================================
✅ Démarrage en cours !
======================================
📱 Frontend: http://localhost:5173
🔧 Backend: http://localhost:8080
💾 H2 DB: http://localhost:8080/h2-console
Fenêtre Terminal 1 - Backend :
cd backend
./mvnw.cmd spring-boot:runFenêtre Terminal 2 - Frontend :
cd frontend
npm run devDouble-cliquez sur KILL_PORTS.bat pour arrêter les processus :
======================================
Arrêt des Processus
======================================
Vérification du port 8080...
✓ Processus XXXX arrêté
Vérification du port 5173...
✓ Processus YYYY arrêté
======================================
✓ Nettoyage complété
======================================
Ensuite, relancez START_ALL.bat.
En PowerShell (Windows) :
# Arrêter le backend (port 8080)
Get-Process | Where-Object {$_.Port -eq 8080} | Stop-Process -Force
# Arrêter le frontend (port 5173)
Get-Process | Where-Object {$_.Port -eq 5173} | Stop-Process -ForceOu via Task Manager :
- Cherchez
java.exeetnode.exe - Cliquez droit → Terminer la tâche
projet_java/
├── backend/ # Spring Boot API
│ ├── src/main/java/com/example/
│ │ ├── controller/ # Contrôleurs REST
│ │ ├── service/ # Logique métier
│ │ ├── entity/ # Modèles JPA
│ │ ├── repository/ # Accès aux données
│ │ ├── security/ # JWT & Authentification
│ │ └── dto/ # Data Transfer Objects
│ ├── src/main/resources/
│ │ └── application.properties # Configuration
│ └── pom.xml # Dépendances Maven
│
├── frontend/ # Vue.js SPA
│ ├── src/
│ │ ├── views/ # Pages (Home, Login, Admin, etc.)
│ │ ├── router/ # Configuration routes
│ │ ├── stores/ # État Pinia (authentification)
│ │ ├── services/ # Client HTTP (Axios)
│ │ ├── App.vue # Composant racine
│ │ └── main.js # Point d'entrée
│ ├── package.json # Dépendances npm
│ └── vite.config.js # Configuration Vite
│
├── START_ALL.bat # Script démarrage auto
├── KILL_PORTS.bat # Script arrêt services
└── README.md # Ce fichier
Une fois démarrées, accédez à :
| Service | URL | Description |
|---|---|---|
| Frontend | http://localhost:5173 | Application web Vue.js |
| API Backend | http://localhost:8080 | API REST Spring Boot |
| H2 Console | http://localhost:8080/h2-console | Base de données en ligne |
- JDBC URL :
jdbc:h2:mem:testdb - Username :
sa - Password : (laisser vide)
- ✅ Inscription des utilisateurs
- ✅ Connexion avec JWT
- ✅ Tokens sécurisés expirables
- ✅ Déconnexion
- ✅ Rôles utilisateur (USER, ADMIN)
- ✅ Consultation des produits avec images
- ✅ Filtrage par catégories
- ✅ Affichage du stock en temps réel
- ✅ Sélection de quantité avant commande
- ✅ Indicateur de rupture de stock
- ✅ Création de commandes (utilisateurs authentifiés)
- ✅ Suivi des commandes personnelles
- ✅ Vérification du stock avant commande
- ✅ Restauration automatique du stock en cas d'annulation
- ✅ Suppression de commandes (admin)
- ✅ Annulation de commandes (admin)
- ✅ Tableau de bord avec statistiques (produits, utilisateurs, commandes)
- ✅ Gestion des produits (ajout, modification, suppression)
- ✅ Gestion des catégories (ajout, suppression)
- ✅ Gestion des stocks (mise à jour)
- ✅ Suivi de toutes les commandes
- ✅ Consultation de tous les utilisateurs (username, email, rôle)
- ✅ Édition en ligne des produits
- ✅ Affichage des informations personnelles
- ✅ Modification du profil utilisateur
User
- ID, Email, Mot de passe, Nom, Prénom, Rôle
Product
- ID, Nom, Description, Prix, Stock, Catégorie
Category
- ID, Nom, Description
Order
- ID, User, Date, Total, Statut
- Items (produits commandés)
Le projet inclut un DataInitializer qui crée automatiquement :
- 2 comptes test (user et admin)
- catégories de produits
- produits d'exemple
# Vérifier que Java 17+ est installé
java -version
# Vérifier que le port 8080 est libre
netstat -ano | findstr :8080# Vérifier les dépendances
cd frontend
npm install
# Relancer
npm run dev# Double-cliquez sur KILL_PORTS.bat
# Ou arrêtez manuellement les processus via Task Manager# Vérifier que le backend est bien lancé sur http://localhost:8080
# Vérifier les logs dans la fenêtre du backendUne fois l'application démarrée, vous pouvez utiliser :
- ID :
user - Password :
user123
- ID :
admin - Password :
admin123