Application de gestion de panier d'achat avec une architecture n-tiers.
Le projet est divisé en 3 modules :
- persistence : Gestion de la persistance des données (entités et repositories)
- business : Logique métier (services et DTOs)
- presentation : API REST (contrôleurs)
- Java 21
- Maven
- PostgreSQL 16.6
- Base de données
archop
créée sur le port 5432
La base de données doit être configurée avec :
- URL :
jdbc:postgresql://localhost:5432/archop
- Cloner le repository :
git clone [URL_DU_REPO]
cd archop_ultimate
- Compiler le projet :
mvn clean install
- Lancer l'application :
cd presentation
mvn spring-boot:run
-
Lister tous les produits
curl http://localhost:8080/api/products
-
Créer un produit
curl -X POST -H "Content-Type: application/json" \ -d '{"name":"Produit", "description":"Description", "sellingPrice":99.99, "purchasePrice": 69.99}' \ http://localhost:8080/api/products
-
Voir un produit
curl http://localhost:8080/api/products/{id}
-
Voir le panier
curl http://localhost:8080/api/cart
-
Ajouter au panier
curl -X POST "http://localhost:8080/api/cart/items?productId={id}&quantity={quantité}"
-
Supprimer du panier
curl -X DELETE "http://localhost:8080/api/cart/items/{productId}"
-
Voir le total du panier
curl http://localhost:8080/api/cart/total
-
Valider le panier
curl -X POST "http://localhost:8080/api/cart/checkout"
- Method: GET
- URL:
http://localhost:8080/api/products
- Description: Récupère la liste de tous les produits
- Method: POST
- URL:
http://localhost:8080/api/products
- Headers:
Content-Type: application/json
- Body (raw JSON):
{ "name": "Produit Test", "description": "Description du produit", "sellingPrice": 99.99, "purchasePrice": 69.99 }
- Method: GET
- URL:
http://localhost:8080/api/products/{id}
- Description: Récupère un produit par son ID
- Method: GET
- URL:
http://localhost:8080/api/cart
- Description: Affiche le contenu du panier
- Method: POST
- URL:
http://localhost:8080/api/cart/items
- Params:
- productId: ID du produit (number)
- quantity: Quantité désirée (number)
- Example:
http://localhost:8080/api/cart/items?productId=1&quantity=2
- Method: DELETE
- URL:
http://localhost:8080/api/cart/items/{productId}
- Description: Supprime un produit du panier
- Method: GET
- URL:
http://localhost:8080/api/cart/total
- Description: Calcule le total du panier
- Method: POST
- URL:
http://localhost:8080/api/cart/checkout
- Description: Valide le panier et le vide
baseUrl
: http://localhost:8080apiPrefix
: /api
- ✅ Affichage des produits
- ✅ Interface d'ajout/modification/suppression de produits
- ✅ Ajout des produits dans un panier
- ✅ Validation du panier avec suppression de son contenu
- ✅ Base de données PostgreSQL pour les produits
- ✅ Architecture n-tiers
- ✅ Utilisation d'un ORM (Hibernate/JPA)
- Spring Boot 3.4.2
- Spring Data JPA
- PostgreSQL
- Maven
- JUnit
- Lombok