0% ont trouvé ce document utile (0 vote)
4 vues27 pages

Documentation Technique SuppWayy Vente

Transféré par

jawadelibrahimi8
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues27 pages

Documentation Technique SuppWayy Vente

Transféré par

jawadelibrahimi8
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Documentation Technique

Projet SuppWayy Vente

Auteur : Jawad El Ibrahimi


Encadrant : [Nom du gérant]

19 août 2025
Table des matières
I Gestion des Bons de Commande (SaleOrder) 3

1 Introduction 4
2 Objectifs 5
3 Architecture générale 6
3.1 Technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2 Structure du domaine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3 Dépendances entre modules . . . . . . . . . . . . . . . . . . . . . . . . . . 6

4 Fonctionnalités développées 7
5 API REST - SaleOrder 8
6 Fonctionnalités - SaleOrder 13

II Gestion des Livraisons (Delivery) 15

7 Introduction 16
8 Périmètre implémenté 17
9 API REST - Delivery 18
10 Fonctionnalités - Delivery 20
11 Partie 3 : Dépendances entre modules 21
12 Authentication et gestion des rôles 23
13 États et cycles de vie 24
14 Outils et technologies utilisées 25

1
Table des gures

5.1 Schéma général des commandes (SaleOrder) . . . . . . . . . . . . . . . . . 9


5.2 Exemple PUT /api/sale/orders/{id} . . . . . . . . . . . . . . . . . . . . . 9
5.3 Exemple POST /api/sale/orders . . . . . . . . . . . . . . . . . . . . . . . . 10
5.4 Mise à jour ligne optionnelle . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.5 Export PDF de la commande . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.6 Diagramme séquence commande client . . . . . . . . . . . . . . . . . . . . 11
5.7 Envoi de la commande par e-mail . . . . . . . . . . . . . . . . . . . . . . . 11
5.8 Exemple réception e-mail côté partenaire . . . . . . . . . . . . . . . . . . . 12

6.1 Vue d'ensemble des fonctionnalités SaleOrder . . . . . . . . . . . . . . . . . 13

9.1 Exemple POST /api/sale/deliveries . . . . . . . . . . . . . . . . . . . . . . 18


9.2 Exemple PUT /api/sale/deliveries/{id} . . . . . . . . . . . . . . . . . . . . 19
9.3 Exemple POST /api/sale/deliveries/{id}/line . . . . . . . . . . . . . . . . 19
9.4 Exemple DELETE /api/sale/deliveries/{id} . . . . . . . . . . . . . . . . . 19

10.1 Vue d'ensemble des fonctionnalités Delivery . . . . . . . . . . . . . . . . . 20

11.1 Relations entre les modules du projet SuppWayy . . . . . . . . . . . . . . . 21


11.2 Relations entités : Partner, Orders, Products, Lot, Delivery et Address . . 22

2
Première partie
Gestion des Bons de Commande
(SaleOrder)

3
Chapitre 1
Introduction
Cette première partie documente le module SaleOrder (gestion des bons de com-
mande).

4
Chapitre 2
Objectifs
 Décrire l'architecture technique du module Vente.
 Présenter les fonctionnalités réalisées et les intégrations.
 Fournir un guide d'installation et de test.
 Documenter les endpoints REST exposés.
 Dénir les rôles et permissions associés.

5
Chapitre 3
Architecture générale

3.1 Technologies
 Backend : Spring Boot, Spring Security, JPA/Hibernate, PostgreSQL.
 Frontend : Thymeleaf, Bootstrap, JavaScript.
 Intégrations : Génération PDF, envoi e-mail SMTP, modules Core.

3.2 Structure du domaine


L'entité principale est SaleOrder (commande client) reliée à :
 Partner (client),
 Location (lieu de livraison),
 SaleOrderLine (lignes produits),
 OptionalSaleOrderLine (lignes optionnelles).

3.3 Dépendances entre modules


 mod-core  utilisé par : mod-sale, mod-partner, mod-location
 mod-partner  utilisé dans : mod-sale, mod-app-shop
 mod-location  utilisé dans : mod-sale, mod-trace
 mod-product  utilisé dans : mod-sale, mod-trace
 mod-trace  utilisé dans : mod-sale, mod-product
 app-shop  interagit avec : mod-sale, mod-partner

6
Chapitre 4
Fonctionnalités développées
 CRUD commande : créer, consulter, mettre à jour, supprimer.
 Gestion des lignes : produits + lignes optionnelles.
 États de commande : DRAFT, CONFIRMED, CANCEL.
 Export PDF : génération automatique de la commande.
 Envoi par e-mail : avec le chier PDF en pièce jointe.

7
Chapitre 5
API REST - SaleOrder

Exemple JSON (GET commande)


{
"id": 1,
"name": "SO2500001",
"comment": "string",
"date": "2025-08-17T21:38:56.144",
"partnerId": 1,
"deliveryLocationId": 1,
"lines": [
{
"id": 3,
"productId": 1,
"quantity": 3,
"price": 150,
"discount": 0,
"taxe": 20
},
{
"id": 5,
"productId": 2,
"quantity": 3,
"price": 150,
"discount": 10,
"taxe": 20
},
{
"id": 6,
"productId": 1,
"quantity": 3,
"price": 150,
"discount": 10,
"taxe": 20
}
],

8
Documentation du Projet CHAPITRE 5. API REST - SALEORDER

"optionalLines": [
{
"id": 2,
"productId": 2,
"discount": 10
}
]
}

Illustrations API SaleOrder

Figure 5.1  Schéma général des commandes (SaleOrder)

Figure 5.2  Exemple PUT /api/sale/orders/{id}

9
Documentation du Projet CHAPITRE 5. API REST - SALEORDER

Figure 5.3  Exemple POST /api/sale/orders

Figure 5.4  Mise à jour ligne optionnelle

Figure 5.5  Export PDF de la commande

10
Documentation du Projet CHAPITRE 5. API REST - SALEORDER

Figure 5.6  Diagramme séquence commande client

Figure 5.7  Envoi de la commande par e-mail

11
Documentation du Projet CHAPITRE 5. API REST - SALEORDER

Figure 5.8  Exemple réception e-mail côté partenaire

12
Chapitre 6
Fonctionnalités - SaleOrder

Figure 6.1  Vue d'ensemble des fonctionnalités SaleOrder

Description rapide
 Lister commandes : récupérer toutes les commandes.
 Détails commande : acher les infos d'un bon de commande.
 Créer commande : ajout d'une nouvelle commande.
 Mettre à jour commande : modication des champs.
 Supprimer commande : suppression dénitive.
 Gérer lignes : ajout, modication, suppression.
 Lignes optionnelles : ajout, modication, suppression.
 Export PDF : génération d'un bon de commande au format PDF.
 Envoi e-mail : envoyer la commande PDF au partenaire.

13
Deuxième partie
Gestion des Livraisons (Delivery)

15
Chapitre 7
Introduction
Cette deuxième partie documente le module Delivery.

16
Chapitre 8
Périmètre implémenté
 États de livraison : PENDING, PREPARED, SHIPPED, DELIVERED, CANCELED.
 Méthodes de signature : NONE, SMS_OTP, PIN_PAD, PAPER.
 Entités : SaleDelivery, SaleDeliveryLine.
 Auto-génération des lignes si non fournies.
 CRUD + PATCH état et quantité.

17
Chapitre 9
API REST - Delivery

Exemple DTO
{
"date": "2025-08-19T15:35:26.266Z",
"state": "NOT_READY",
"signatureMethod": "TEXT_MESSAGE",
"signed": false,
"addressId": 5,
"orderId": 1,
"lines": [
{
"state": "NOT_DELIVERED",
"comment": "Livraison en attente",
"lotId": 10
}
]
}

Illustrations API Delivery

Figure 9.1  Exemple POST /api/sale/deliveries

18
Documentation du Projet CHAPITRE 9. API REST - DELIVERY

Figure 9.2  Exemple PUT /api/sale/deliveries/{id}

Figure 9.3  Exemple POST /api/sale/deliveries/{id}/line

Figure 9.4  Exemple DELETE /api/sale/deliveries/{id}

19
Chapitre 10
Fonctionnalités - Delivery

Figure 10.1  Vue d'ensemble des fonctionnalités Delivery

Description rapide
 Lister livraisons : récupérer toutes les livraisons.
 Lister par commande : voir les livraisons associées à un bon.
 Créer livraison : création à partir d'une commande.
 Mettre à jour livraison : modication d'état ou quantité.
 Supprimer livraison : suppression avec cascade des lignes.
 Gérer lignes : ajout, mise à jour quantité.
 Signature : valider via méthode dénie (SMS, papier, etc.).
 Auto-génération lignes : si non fournies, créées depuis la commande.

20
Chapitre 11
Partie 3 : Dépendances entre modules

Schéma global

app-shop
(Application mobile)

mod-partner
(Clients)

mod-core mod-sale mod-product m


(PDF, email, sécurité) (SaleOrder, Delivery) (Produits) (Lot

mod-location
(Adresses)

Figure 11.1  Relations entre les modules du projet SuppWayy

Schéma entités détaillées

21
Documentation du CHAPITRE
Projet 11. PARTIE 3 : DÉPENDANCES ENTRE MODULES

Partner SaleOrder SaleOrderLine Product

PurchaseOrder PurchaseOrderLine Lot

DeliveryNote

Address

Figure 11.2  Relations entités : Partner, Orders, Products, Lot, Delivery et Address

22
Chapitre 12
Authentication et gestion des rôles
Le module Vente intègre une sécurité basée sur Spring Security. Chaque utilisateur
se voit attribuer un rôle, lequel détermine les actions accessibles via les endpoints REST.

Rôles disponibles et permissions associées


Rôle Permissions associées
ADMIN Toutes les permissions, accès complet à tous les
endpoints (gestion des commandes, lignes, options,
PDF, e-mails, livraison).
GESTIONNAIRE_VENTE CONSULTER_COMMANDES,
CREER_COMMANDE, MODI-
FIER_COMMANDE, SUPPRI-
MER_COMMANDE, AJOUTER_LIGNE,
MODIFIER_LIGNE, SUPPRIMER_LIGNE,
GERER_LIGNES_OPTIONNELLES, EXPOR-
TER_PDF, ENVOYER_EMAIL.
VENDEUR_SUP CONSULTER_COMMANDES,
CREER_COMMANDE, MO-
DIFIER_COMMANDE, AJOU-
TER_LIGNE, MODIFIER_LIGNE, GE-
RER_LIGNES_OPTIONNELLES, EXPOR-
TER_PDF.
CONSULTANT_VENTE CONSULTER_COMMANDES uniquement (droits
en lecture seule).

Principes d'authentication
 Authentication basée sur JWT (JSON Web Token) : le client reçoit un token
après login, qu'il doit envoyer dans chaque requête (header Authorization: Bearer
...).
 Les rôles sont stockés en base et chargés via UserDetailsService.
 Les contrôleurs REST sont protégés avec des annotations @PreAuthorize("hasRole('...')").
 Exemple : seul un utilisateur avec rôle GESTIONNAIRE_VENTE ou ADMIN peut appeler
POST /api/sale/orders.

23
Chapitre 13
États et cycles de vie
Cette section décrit les diérents états utilisés dans le projet, aussi bien pour les
commandes (SaleOrder) que pour les livraisons (Delivery).

États d'une commande (SaleOrderState)


État Description
DRAFT Commande en brouillon, pas encore validée.
CONFIRMED Commande conrmée et prête à être traitée.
CANCEL Commande annulée par le client ou le gestionnaire.

États d'une livraison (DeliveryState)


État Description
NOT_READY Livraison créée mais pas encore prête.
READY Livraison prête à être expédiée.
IN_PROGRESS Livraison en cours de transport.
DELIVERED Livraison terminée avec succès.

États d'une ligne de livraison (DeliveryLineState)


État Description
NOT_DELIVERED Ligne non livrée.
INVALID Ligne annulée / invalide.
VALID Ligne livrée correctement.

Méthodes de signature (SignatureMethod)


Méthode Description
TEXT_MESSAGE Signature validée par SMS ou OTP.
EMAIL Signature validée par conrmation e-mail.
HANDWRITTEN Signature manuscrite (papier ou pad).

24
Chapitre 14
Outils et technologies utilisées
Cette section décrit les principaux outils, frameworks et composants techniques inté-
grés dans le projet SuppWayy Vente.

Frameworks Backend
 Spring Boot : framework principal pour le développement du backend.
 Spring Data JPA (Hibernate) : gestion de la persistance des données.
 Spring Security : gestion de l'authentication et des rôles.

Base de données
 PostgreSQL : base relationnelle utilisée pour stocker les entités.
 JPA Repositories : simplication des requêtes SQL.

Documentation et tests
 Swagger UI : documentation interactive des endpoints REST.
 JUnit / Postman : tests unitaires et d'intégration.

Communication réseau
 API REST (JSON) : échanges entre modules et applications clientes.
 SMTP : protocole utilisé pour l'envoi d'e-mails.
 Validation e-mail : conrmation via lien ou OTP.

Génération et envoi de documents


 PDF Export : génération automatique de bons de commande.
 Email SMTP : envoi automatique des PDF en pièce jointe.

25
Documentation du Projet CHAPITRE 14. OUTILS ET TECHNOLOGIES UTILISÉES

Interface utilisateur
 Thymeleaf : moteur de templates pour générer les pages HTML.
 Bootstrap / CSS / JS : mise en forme et ergonomie de l'interface.

Principes clés d'utilisation


 Architecture modulaire : séparation en modules (sale, delivery, core...).
 DTO vs Entités JPA : séparation claire pour éviter les fuites de données.
 Transitions d'états : contrôlées dans les services.
 Sécurité par rôles : ADMIN, GESTIONNAIRE_VENTE, VENDEURSUP, CONSUL-
TANT_VENTE.

26

Vous aimerez peut-être aussi