fix: change backend port from 8080 to 8090 (DSM conflict)

This commit is contained in:
Nabil Derouiche 2026-04-19 20:25:21 +01:00
parent 62ac11a177
commit 467c41cc48
12 changed files with 6946 additions and 1 deletions

5213
Debut de creation.md Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,200 @@
# Documentation Architecture API — ERP Rayhan
**PFE Ali Guennari — SUARL Rayhan**
## Architecture Technique
```
┌─────────────────────────────────────────────────────────┐
│ Application Flutter (Client) │
│ (Windows Desktop / Web / Android) │
└─────────────────────┬───────────────────────────────────┘
│ HTTP/HTTPS (JWT Bearer Token)
┌─────────────────────────────────────────────────────────┐
│ API REST Spring Boot (Port 8090) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │Controller│→ │ Service │→ │Repository│ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ ┌──────────┐ │
│ │ JPA/ │ │
│ │Hibernate │ │
└──────────────────────────────┴────┬─────┴──────────────┘
│ JDBC
┌─────────────────────┐
│ MySQL 8 (DB) │
│ rayhan_erp_db │
└─────────────────────┘
```
## Pattern d'Architecture N-Tiers
L'API suit rigoureusement le **pattern Controller → Service → Repository → Model** :
| Couche | Rôle | Exemple |
|--------|------|---------|
| **Controller** | Reçoit les requêtes HTTP, délègue au service, retourne la réponse | `ArticleController.java` |
| **Service** | Contient la logique métier (règles, validations, transactions) | `StockService.java` |
| **Repository** | Abstraction d'accès à la base de données (Spring Data JPA) | `ArticleRepository.java` |
| **Model** | Entités JPA mappées sur les tables MySQL | `Article.java` |
## Tous les Endpoints de l'API
### Authentification (Public — sans token)
| Méthode | URL | Description |
|---------|-----|-------------|
| POST | `/api/auth/signin` | Connexion → retourne JWT |
| POST | `/api/auth/signup` | Créer un utilisateur |
### Articles (Catalogue)
| Méthode | URL | Rôles autorisés |
|---------|-----|-----------------|
| GET | `/api/articles` | Tous |
| GET | `/api/articles/{id}` | Tous |
| GET | `/api/articles/type/{type}` | Tous (MP, PF, PSF) |
| GET | `/api/articles/alertes-stock` | PDG, Magasinier, Production |
| POST | `/api/articles` | PDG, Production, Magasinier |
| PUT | `/api/articles/{id}` | PDG, Production |
| DELETE | `/api/articles/{id}` | PDG (désactivation logique) |
### Clients
| Méthode | URL | Rôles autorisés |
|---------|-----|-----------------|
| GET | `/api/clients` | PDG, Vente |
| GET | `/api/clients/search?q=` | PDG, Vente |
| GET | `/api/clients/{id}` | PDG, Vente |
| POST | `/api/clients` | PDG, Vente |
| PUT | `/api/clients/{id}` | PDG, Vente |
### Fournisseurs
| Méthode | URL | Rôles autorisés |
|---------|-----|-----------------|
| GET | `/api/fournisseurs` | PDG, Achat |
| GET | `/api/fournisseurs/search?q=` | PDG, Achat |
| GET | `/api/fournisseurs/{id}` | PDG, Achat |
| POST | `/api/fournisseurs` | PDG, Achat |
| PUT | `/api/fournisseurs/{id}` | PDG, Achat |
### Cycle d'Achat
| Méthode | URL | Rôles autorisés |
|---------|-----|-----------------|
| GET | `/api/purchase-orders` | PDG, Achat |
| POST | `/api/purchase-orders` | PDG, Achat |
| POST | `/api/purchase-orders/{id}/receive` | PDG, Achat, Magasinier |
**Flux automatique lors de la réception :**
`POST /receive` → Crée le BR → `StockService.entreeStock()` → Mise à jour `Article.stockActuel` + création `StockMovement`
### Cycle de Vente
| Méthode | URL | Rôles autorisés |
|---------|-----|-----------------|
| GET | `/api/sales-orders` | PDG, Vente |
| POST | `/api/sales-orders` | PDG, Vente |
| POST | `/api/sales-orders/{id}/deliver` | PDG, Vente, Magasinier |
**Flux automatique lors de la livraison :**
`POST /deliver` → Crée le BL → `StockService.sortieStock()` → Mise à jour `Article.stockActuel` + création `StockMovement`
### Cycle de Production
| Méthode | URL | Rôles autorisés |
|---------|-----|-----------------|
| GET | `/api/production/bom/{produitFiniId}` | PDG, Production |
| POST | `/api/production/bom` | PDG, Production |
| DELETE | `/api/production/bom/{id}` | PDG, Production |
| GET | `/api/production/orders` | PDG, Production |
| POST | `/api/production/orders/plan` | PDG, Production |
| POST | `/api/production/orders/{id}/launch` | PDG, Production |
| POST | `/api/production/orders/{id}/complete` | PDG, Production |
**Cycle de vie d'un OF :**
```
PLANIFIE → (vérif stock MP) → LANCE → (consomme MP) → TERMINE → (entre PF en stock)
```
### Gestion du Stock
| Méthode | URL | Rôles autorisés |
|---------|-----|-----------------|
| GET | `/api/stock/historique/{articleId}` | PDG, Magasinier, Production |
| POST | `/api/stock/adjust` | PDG, Magasinier |
### Tableau de Bord (KPIs)
| Méthode | URL | Rôles autorisés |
|---------|-----|-----------------|
| GET | `/api/dashboard` | PDG uniquement |
---
## Modèle de Données Relationnel
```
users (id, username, email, password, firstName, lastName, enabled)
└── user_roles (user_id, role_id)
roles (id, name: ERole)
tiers (id, raisonSociale, matriculeFiscal, adresse, telephone, email, ville, actif)
├── clients (tiers_id FK, typeClient, plafondCredit, delaiPaiement)
└── fournisseurs (tiers_id FK, pays, categorieProduit, delaiLivraison, modePaiement)
articles (id, reference, designation, type: MP|PSF|PF, uniteMesure, prixUnitaire, stockActuel, stockMinimum, actif)
bom_lines (id, produit_fini_id FK→articles, composant_id FK→articles, quantiteParUnite)
production_orders (id, reference, produit_fini_id FK, quantitePlanifiee, quantiteRealisee, datePlanifiee, dateLancement, dateTerminaison, statut)
purchase_orders (id, reference, fournisseur_id FK, dateCommande, statut, totalHT, totalTVA, totalTTC)
└── purchase_order_lines (id, purchase_order_id FK, article_id FK, quantiteCommandee, quantiteRecue, prixUnitaireHT, tauxTVA)
goods_receipts (id, reference, purchase_order_id FK, dateReception)
└── goods_receipt_lines (id, goods_receipt_id FK, purchase_order_line_id FK, article_id FK, quantiteRecue)
sales_orders (id, reference, client_id FK, dateCommande, statut, totalHT, totalTVA, totalTTC)
└── sales_order_lines (id, sales_order_id FK, article_id FK, quantiteCommandee, quantiteLivree, prixUnitaireHT, tauxTVA)
delivery_notes (id, reference, sales_order_id FK, dateLivraison, statut)
└── delivery_note_lines (id, delivery_note_id FK, sales_order_line_id FK, article_id FK, quantiteLivree)
stock_movements (id, article_id FK, type: IN|OUT, quantite, stockAvant, stockApres, sourceDocument, referenceDocument, motif, dateHeure, user_id FK)
```
---
## Sécurité
### Mécanisme JWT
1. Le client envoie `POST /api/auth/signin` avec username/password
2. Le serveur retourne un JWT signé (valide 24h)
3. Le client inclut `Authorization: Bearer <token>` dans chaque requête
4. `AuthTokenFilter` intercepte et valide le token avant chaque endpoint sécurisé
### Contrôle d'Accès par Rôle (`@PreAuthorize`)
Chaque endpoint est annoté avec les rôles autorisés :
```java
@PreAuthorize("hasAnyRole('ROLE_PDG', 'ROLE_RESPONSABLE_VENTE')")
```
---
## Démarrage de l'Application
```bash
# Via Docker Compose
docker compose up -d
# Vérifier que les conteneurs tournent
docker ps
# Voir les logs
docker logs rayhan-backend -f
# Premier démarrage : admin créé automatiquement
# username: admin | password: Rayhan2024!
```

View File

@ -0,0 +1,343 @@
# Guide de Tests API — Postman
**PFE Ali Guennari — ERP SUARL Rayhan**
## Configuration de Base
**URL de base** : `http://192.168.100.33:8090`
### 1. Configurer une Variable d'Environnement Postman
Dans Postman, créer un environnement "Rayhan ERP" avec :
- `baseUrl` = `http://192.168.100.33:8090`
- `token` = (sera rempli automatiquement)
---
## Scénario 1 : Authentification
### Se connecter (POST /api/auth/signin)
```
POST {{baseUrl}}/api/auth/signin
Content-Type: application/json
{
"username": "admin",
"password": "Rayhan2024!"
}
```
**Réponse attendue (200 OK) :**
```json
{
"token": "eyJhbGciOiJIUzI1NiJ9...",
"type": "Bearer",
"id": 1,
"username": "admin",
"email": "admin@rayhan.tn",
"roles": ["ROLE_PDG"]
}
```
**Script Postman (Tests tab)** pour sauvegarder le token :
```javascript
var json = pm.response.json();
pm.environment.set("token", json.token);
```
**Utilisation dans toutes les requêtes suivantes :**
```
Authorization: Bearer {{token}}
```
---
## Scénario 2 : Référentiels
### Créer un Article (Matière Première HDPE)
```
POST {{baseUrl}}/api/articles
Authorization: Bearer {{token}}
Content-Type: application/json
{
"reference": "MP-HDPE-001",
"designation": "HDPE Granulés (Polyéthylène Haute Densité)",
"type": "MP",
"uniteMesure": "kg",
"prixUnitaire": 2.850,
"stockMinimum": 500
}
```
### Créer un Article (Produit Fini — Sac Bertel)
```
POST {{baseUrl}}/api/articles
Authorization: Bearer {{token}}
Content-Type: application/json
{
"reference": "PF-SAC-BERTEL-001",
"designation": "Sac Bertel 40x60 cm",
"type": "PF",
"uniteMesure": "unité",
"prixUnitaire": 0.085,
"stockMinimum": 1000
}
```
### Créer un Client
```
POST {{baseUrl}}/api/clients
Authorization: Bearer {{token}}
Content-Type: application/json
{
"raisonSociale": "Supermarché Maghreb Distribution",
"matriculeFiscal": "123456A/A/M/000",
"adresse": "Avenue Habib Bourguiba, Tataouine",
"telephone": "75123456",
"email": "achats@maghreb-distrib.tn",
"ville": "Tataouine",
"typeClient": "Grossiste",
"delaiPaiement": 60
}
```
### Créer un Fournisseur (HDPE)
```
POST {{baseUrl}}/api/fournisseurs
Authorization: Bearer {{token}}
Content-Type: application/json
{
"raisonSociale": "PLASTUNION Tunisie",
"matriculeFiscal": "654321B/A/M/000",
"adresse": "Zone Industrielle Sfax",
"telephone": "74987654",
"email": "ventes@plastunion.tn",
"ville": "Sfax",
"pays": "Tunisie",
"categorieProduit": "Matières plastiques",
"delaiLivraison": 10
}
```
---
## Scénario 3 : Cycle d'Achat Complet
### Étape 3.1 — Créer une Commande Fournisseur
```
POST {{baseUrl}}/api/purchase-orders
Authorization: Bearer {{token}}
Content-Type: application/json
{
"fournisseur": {"id": 1},
"dateLivraisonPrevue": "2024-05-15",
"notes": "Commande mensuelle HDPE",
"lignes": [
{
"article": {"id": 1},
"quantiteCommandee": 1000,
"prixUnitaireHT": 2.850,
"tauxTVA": 19.00
}
]
}
```
**Réponse attendue :** commande avec `reference: "BC-2024-001"`, `statut: "CONFIRMEE"`, `totalTTC: 3391.50`
### Étape 3.2 — Réceptionner la Commande (Bon de Réception)
```
POST {{baseUrl}}/api/purchase-orders/1/receive
Authorization: Bearer {{token}}
Content-Type: application/json
{
"dateReception": "2024-05-14",
"notes": "Réception conforme",
"lignes": [
{
"purchaseOrderLine": {"id": 1},
"article": {"id": 1},
"quantiteRecue": 1000,
"observations": "Qualité OK, sacs conformes"
}
]
}
```
**Vérification :** `GET {{baseUrl}}/api/articles/1``stockActuel` doit être 1000
---
## Scénario 4 : Production (BOM + OF)
### Étape 4.1 — Définir la Nomenclature (BOM)
```
POST {{baseUrl}}/api/production/bom
Authorization: Bearer {{token}}
Content-Type: application/json
{
"produitFini": {"id": 2},
"composant": {"id": 1},
"quantiteParUnite": 0.015,
"uniteMesure": "kg"
}
```
*Signification : pour produire 1 Sac Bertel, il faut 0.015 kg de HDPE*
### Étape 4.2 — Planifier un Ordre de Fabrication
```
POST {{baseUrl}}/api/production/orders/plan
Authorization: Bearer {{token}}
Content-Type: application/json
{
"produitFiniId": 2,
"quantite": 10000,
"datePlanifiee": "2024-05-16"
}
```
**Vérification préalable :** stock HDPE (1000 kg) ≥ 10000 × 0.015 = 150 kg → OK
### Étape 4.3 — Lancer l'OF
```
POST {{baseUrl}}/api/production/orders/1/launch
Authorization: Bearer {{token}}
```
**Vérification :** stock HDPE passe de 1000 à 850 kg (consommation 150 kg)
### Étape 4.4 — Terminer l'OF
```
POST {{baseUrl}}/api/production/orders/1/complete
Authorization: Bearer {{token}}
Content-Type: application/json
{
"quantiteRealisee": 9800
}
```
**Vérification :** stock Sac Bertel passe à 9800 unités
---
## Scénario 5 : Cycle de Vente
### Étape 5.1 — Créer une Commande Client
```
POST {{baseUrl}}/api/sales-orders
Authorization: Bearer {{token}}
Content-Type: application/json
{
"client": {"id": 1},
"dateLivraisonSouhaitee": "2024-05-20",
"notes": "Urgent",
"lignes": [
{
"article": {"id": 2},
"quantiteCommandee": 5000,
"prixUnitaireHT": 0.085,
"tauxTVA": 19.00
}
]
}
```
### Étape 5.2 — Créer un Bon de Livraison
```
POST {{baseUrl}}/api/sales-orders/1/deliver
Authorization: Bearer {{token}}
Content-Type: application/json
{
"dateLivraison": "2024-05-20",
"adresseLivraison": "Avenue Habib Bourguiba, Tataouine",
"notes": "Livraison par camion",
"lignes": [
{
"salesOrderLine": {"id": 1},
"article": {"id": 2},
"quantiteLivree": 5000
}
]
}
```
**Vérification :** stock Sac Bertel passe de 9800 à 4800
---
## Scénario 6 : Tableau de Bord (PDG uniquement)
```
GET {{baseUrl}}/api/dashboard
Authorization: Bearer {{token}}
```
**Réponse attendue :**
```json
{
"ventes": {
"chiffreAffairesMois": 505.75,
"nbCommandesMois": 1,
"commandesEnCours": 0
},
"achats": {
"commandesEnAttente": 0
},
"production": {
"ofPlanifies": 0,
"ofEnCours": 0
},
"stock": {
"articlesEnAlerte": 0,
"articlesEnAlerteDetails": []
}
}
```
---
## Codes d'Erreur Importants
| Code | Signification | Action |
|------|--------------|--------|
| 401 | Non authentifié | Vérifier le token JWT |
| 403 | Accès interdit | Le rôle ne permet pas cette action |
| 400 | Données invalides | Vérifier le body de la requête |
| 500 | Erreur serveur | Voir les logs du container |
## Commandes Docker Utiles
```bash
# Voir les logs de l'API
docker logs rayhan-backend -f
# Accéder à MySQL directement
docker exec -it rayhan-mysql mysql -u root -prayhan_erp_2024 rayhan_erp_db
# Redémarrer l'API
docker restart rayhan-backend
```

View File

@ -0,0 +1,84 @@
# **Plan d'Action pour le Projet ERP SUARL Rayhan**
**À l'attention de : M. Ali Guennari**
Cher Ali,
Félicitations pour l'excellent travail de collecte d'informations chez SUARL Rayhan. Ce document est une base de données solide qui nous permet de lancer la phase de conception avec une grande confiance.
Voici une synthèse de notre vision du projet et le plan d'action concret pour les prochaines étapes que tu dois mener.
## **1\. Synthèse de la Vision du Projet**
### **Objectif Principal**
Notre but est de concevoir et développer un **ERP complet et sur mesure** pour SUARL Rayhan. Ce projet n'est pas un simple exercice académique ; il doit être une solution opérationnelle pour l'entreprise tout en constituant un Projet de Fin d'Études (PFE) de très haute qualité, démontrant ta maîtrise technique.
### **Architecture Technique Cible**
Suite à l'analyse de ton profil technique, nous allons adopter une architecture moderne, robuste et découplée, qui valorisera tes compétences :
* **Backend (API REST) :** **Java avec Spring Boot**. C'est ta technologie de prédilection (niveau 4/5), elle est performante, sécurisée et parfaitement adaptée pour construire la logique métier complexe d'un ERP.
* **Frontend (Application cliente) :** **Dart avec Flutter**. Conformément à la demande, cette technologie te permettra de créer une interface utilisateur riche et réactive. L'application pourra être compilée pour **Windows**, afin d'être déployée directement sur les deux PC de Rayhan, et potentiellement pour d'autres plateformes (web, mobile).
* **Base de Données :** **MySQL**. Un standard que tu maîtrises, fiable et parfaitement dimensionné pour les besoins de Rayhan.
### **Priorités de Développement**
Pour garantir une livraison de valeur rapide et visible, le développement suivra les priorités exprimées par le gérant, M. Fekih Ahmed :
1. **Priorité N°1 : Facturation & Suivi des Impayés.**
2. **Priorité N°2 : Tableaux de Bord de Performance.**
3. **Priorité N°3 : Calcul du Coût de Revient de Production.**
## **2\. Plan d'Action Immédiat : La Modélisation UML**
C'est le **premier livrable officiel et critique** de ton rapport de PFE. Tu dois maintenant traduire toutes les données collectées en diagrammes UML clairs et précis.
### **Tâche 1 : Produire le Diagramme de Classes**
C'est le plan de notre base de données et le squelette de toute l'application. Utilise un outil comme `StarUML` ou `draw.io` pour modéliser les entités ci-dessous avec leurs attributs principaux et leurs relations (un-à-plusieurs, plusieurs-à-plusieurs, etc.).
**Entités Fondamentales à Modéliser :**
* **Gestion des Utilisateurs :** `Utilisateur` (id, nom, prenom, email, mot\_de\_passe\_hash), `Role` (id, nom\_role)
* **Catalogue Produits :** `Article` (id, reference, designation, type: Enum{MP, PF, PSF}, unite\_mesure), `CategorieArticle`
* **Données de Production :** `Nomenclature` (BOM), `LigneNomenclature` (lie un produit fini à ses matières premières avec une quantité), `GammeOperation`, `PosteDeCharge` (Extrudeuse, Découpeuse), `OrdreFabrication` (OF)
* **Gestion des Tiers :** `Tiers` (classe de base), `Client` (hérite de Tiers), `Fournisseur` (hérite de Tiers)
* **Cycle de Vente :** `Devis`, `LigneDevis`, `CommandeClient`, `LigneCommandeClient`, `BonLivraison`, `LigneBonLivraison`
* **Cycle de Facturation :** `FactureClient`, `LigneFactureClient`, `ReglementClient`
* **Cycle d'Achat :** `CommandeFournisseur`, `BonReception`, `FactureFournisseur`
* **Gestion des Stocks :** `Entrepot`, `MouvementStock` (id, article\_id, quantite, type\_mouvement: Enum{IN, OUT}, source\_document)
### **Tâche 2 : Produire le Diagramme de Cas d'Utilisation**
Ce diagramme décrira les interactions entre les utilisateurs (acteurs) et le système. Dans un premier temps, concentre-toi sur les modules prioritaires (Ventes, Facturation, Clients).
**Acteurs à Représenter :**
* `Gérant` (Ahmed Fekih)
* `Responsable Commercial` (Ali Abbess)
* `Responsable Production` (Mohamed Nouri)
* `Magasinier` (Mohamed lahamr)
* `Responsable RH` (Noureddine Nouri)
**Exemples de Cas d'Utilisation Prioritaires à Modéliser :**
* `S'authentifier`
* `Gérer le catalogue d'articles`
* `Gérer les fiches clients`
* `Établir un devis`
* `Convertir un devis en commande client`
* `Générer un bon de livraison depuis une commande`
* `Créer une facture depuis un bon de livraison`
* `Enregistrer un règlement client`
* `Consulter le tableau de bord des ventes`
## **3\. Point de Correction Important**
Dans tes notes, la matière première pour le film étirable est "BDPE". Il s'agit d'une coquille. La désignation correcte et professionnelle est **LDPE** (Low-Density Polyethylene) ou son équivalent français **PEBD** (Polyéthylène Basse Densité). Il est impératif de corriger cela dans toute ta documentation pour garantir la rigueur de ton projet.
---
Nabil et moi sommes à ta disposition pour te guider. Commence par une première version de ton **diagramme de classes**. C'est la fondation de tout le reste. Dès que tu l'as, nous la réviserons ensemble.
Bon travail.

413
Rayhan-ERP.md Normal file
View File

@ -0,0 +1,413 @@
# Résumé Détaillé du Projet ERP — SUARL Rayhan
## Contexte Général
Le projet concerne la mise en place d'un **ERP intégré** pour **SUARL Rayhan**, une entreprise de **plasturgie** (industrie du packaging d'emballage et matière plastique) située à **Cité Abbes, Tataouine Nord 3200**, gérée par **Fekih Ahmed** (MF : 195135Q/A/C/0000). L'entreprise compte **7 employés**, un **seul site de production** avec **une seule chaîne de production**. Ce projet constitue le **rapport de fin d'études** de notre ami **Ali Guennari**, que nous accompagnerons ensemble du début à la fin.
**Produits fabriqués** : Sac Bertel, Sac poubelle, Sac alimentaire, Fil rétractable.
**Matières premières** : HDPE (Polyéthylène Haute Densité), LDPE (Polyéthylène Basse Densité — noté "BDPE" dans le document, ce qui est une erreur à corriger).
**Machines** : Extrudeuse, Découpe et soudure, Densificateur.
---
## Périmètre Fonctionnel Demandé
Le cahier des charges couvre **7 modules ERP** :
**Module Achats** — Gestion complète du cycle : référentiels fournisseurs avec KPIs, cycle DA → Appel d'offres → BC → BR, rapprochement à 3 voies (Commande/Réception/Facture), suivi budgétaire et intégration comptable automatique.
**Module Ventes** — CRM intégré, cycle Devis → Commande → Livraison → Facturation, suivi des paiements et recouvrement automatisé, reporting KPIs (CA, marges, performance).
**Module Stock** — Traçabilité en temps réel (codes-barres/RFID), seuils d'alerte et réapprovisionnement automatique, inventaires tournants, valorisation CMUP, classification ABC, analyse de rotation.
**Module Production** — Planification MRP/CBN, nomenclatures (BOM), gammes de fabrication, ordres de fabrication (OF), suivi temps réel, traçabilité par lot/numéro de série, contrôle qualité intégré.
**Module Facturation** — Facturation client automatisée (devis → facture), facturation récurrente, relances automatiques, rapprochement bancaire, archivage légal, synchronisation comptable.
**Module Paie & RH** — Calcul automatisé des bulletins, déclarations CNSS, virements bancaires, GTA (temps et absences), dossier salarié centralisé, gestion des talents (recrutement, formation, évaluation).
**Module Maintenance (GMAO)** — Maintenance corrective, préventive et prédictive, historique des interventions, gestion des pièces détachées, suivi de la conformité sécurité.
**Contraintes techniques** : Application web, MySQL/PostgreSQL, Java Spring Boot ou Python Django ou PHP Laravel, multi-utilisateurs avec rôles, sauvegarde quotidienne automatique.
**Modélisation UML demandée** : Diagrammes de cas d'utilisation, de classes et de séquence pour les processus clés.
---
## Contraintes Métier Identifiées (Plasturgie)
Le second document détaille les contraintes spécifiques au secteur : réglementation environnementale (zéro perte GPI, incorporation de recyclé), coûts énergétiques élevés des procédés (injection, extrusion, soufflage), volatilité des prix MP liée au pétrole, risques SST (bruit, brûlures, fumées chimiques), et nécessité d'innovation vers les bioplastiques.
---
# Éléments Manquants et Incohérences Détectés
## 1\. Incohérences Internes
**Nombre d'utilisateurs contradictoire** — Le document mentionne **7 employés** puis parle de **"4 utilisateurs habilités"**, puis définit **4 rôles** dans la matrice d'accès (Gérant, Responsable production, Responsable commercial, Comptable). Il faut clarifier : **combien d'utilisateurs auront effectivement accès à l'ERP, et quel rôle pour les 3 employés restants ?** S'agit-il des opérateurs de production ?
**"BDPE" au lieu de "LDPE"** — L'abréviation correcte du Polyéthylène Basse Densité est **LDPE** (Low Density Polyethylene) ou **PEBD** en français. À corriger.
**Le tableau des droits d'accès est tronqué/mal formaté** — La section 4 (Utilisateurs et droits d'accès) est incomplète, les colonnes sont cassées.
## 2\. Éléments Absents Critiques
**Aucune analyse de l'existant** — Comment l'entreprise fonctionne-t-elle aujourd'hui ? Quels outils utilise-t-elle (Excel, papier, logiciel existant) ? C'est **indispensable** pour un rapport de fin d'études et pour dimensionner correctement la solution.
**Aucun budget ni planning** — Pas de budget alloué, pas de calendrier de déploiement, pas de phasage (quel module en premier ?). Pour 7 employés et une seule chaîne, un **déploiement progressif** est recommandé.
**Pas de processus métier formalisés (BPMN)** — Les modules sont décrits de façon générique (copié d'une documentation ERP standard) mais **aucun flux spécifique à Rayhan** n'est documenté. Par exemple : quel est le circuit réel d'une commande client de sacs Bertel, de la réception de la commande jusqu'à la livraison ?
**Pas de nomenclature (BOM) concrète** — On parle de BOM mais aucune nomenclature réelle n'est fournie. Pour chaque produit fini (Sac Bertel, Sac poubelle, etc.), il faut la décomposition : quelle quantité de HDPE ou LDPE, quel film intermédiaire (produit semi-fini), quelles étapes machine.
**Pas de gamme de fabrication détaillée** — Le processus Extrusion → Découpe/Soudure → Produit fini n'est pas formalisé. Les temps de cycle, les paramètres machines, les postes de charge ne sont pas définis.
**Module comptabilité/finance absent** — Le document mentionne l'intégration comptable partout mais **aucun module comptabilité dédié** n'est décrit (plan comptable tunisien, journaux, grand livre, bilan, déclarations fiscales TVA).
**Pas de spécifications pour la conformité tunisienne** — Réglementation fiscale tunisienne (TVA, timbre fiscal, retenue à la source), format des déclarations CNSS, normes de facturation légale en Tunisie. La mention "DSN" et "SEPA" dans le document sont des **références françaises, pas tunisiennes** — c'est un copier-coller à adapter.
**Pas de maquettes/wireframes** — Aucune esquisse d'interface utilisateur.
**Pas de modèle de données détaillé** — Les diagrammes UML sont demandés mais non fournis dans le document.
**Pas de stratégie de migration des données** — Comment importer les données existantes (clients, fournisseurs, stock actuel) ?
**Pas d'exigences non fonctionnelles formalisées** — Performance attendue, temps de réponse, disponibilité, volumétrie (combien de commandes/mois, de factures/mois ?).
**Section maintenance (3.7) mal rédigée** — Le titre "Gestion de maintienne Machine de travail" contient des fautes, et le texte est coupé en plein milieu d'une phrase ("tout en maî...").
## 3\. Surdimensionnement Évident
Pour une entreprise de **7 personnes avec une seule chaîne de production**, plusieurs fonctionnalités décrites sont **largement surdimensionnées** :
Le **RFID** pour le suivi de stock est disproportionné — les codes-barres suffisent, voire une gestion manuelle simple. La **maintenance prédictive avec capteurs IoT** est coûteuse et complexe pour 3 machines. Le **CRM avancé** avec détection d'opportunités et pipeline commercial semble excessif. Le module **Gestion des Talents** (recrutement, formation, évaluation) pour 7 employés est superflu. La **facturation récurrente type abonnement** ne correspond pas au métier de packaging.
---
# Reformulation Structurée du Projet
## Ce Que le Projet Doit Réellement Livrer
**Titre** : Conception et développement d'un ERP web pour une PME de plasturgie — Cas de SUARL Rayhan, Tataouine.
**Livrable principal** : Une application web ERP opérationnelle couvrant le cycle complet de l'activité, depuis la commande client jusqu'à la livraison et la facturation, intégrant la gestion de production, des stocks, des achats, de la paie et de la maintenance.
**Ce qu'Ali doit produire dans son rapport de fin d'études** :
**Partie 1 — Étude préalable** : Présentation de l'entreprise et de son environnement (plasturgie en Tunisie), analyse de l'existant (comment Rayhan fonctionne aujourd'hui), problématique et objectifs, étude comparative des solutions ERP existantes (Odoo, Dolibarr, ERPNext, développement sur mesure), justification du choix technique.
**Partie 2 — Analyse et conception** : Identification des acteurs et des processus métier réels de Rayhan, modélisation UML complète (cas d'utilisation, classes, séquences, activités), nomenclatures (BOM) réelles des 4 produits, gammes de fabrication des 3 machines, matrice des droits d'accès détaillée, modèle de données relationnel.
**Partie 3 — Réalisation** : Architecture technique retenue, choix du framework avec justification, développement des modules par priorité, captures d'écran et démonstration des fonctionnalités clés, tests et validation.
**Partie 4 — Déploiement et perspectives** : Plan de mise en production, formation des utilisateurs, améliorations futures.
---
## Plan d'Action Immédiat pour Ali
**Étape 1** — Retourner chez Rayhan et documenter les **processus réels** : observer une journée type, noter le flux commande → production → livraison, photographier les documents utilisés (bons papier, fichiers Excel).
**Étape 2** — Construire les **BOM réelles** des 4 produits avec les quantités exactes de HDPE/LDPE par unité produite.
**Étape 3** — Formaliser la **gamme de fabrication** : Extrusion (paramètres, durée) → Film semi-fini → Découpe/Soudure (paramètres, durée) → Produit fini → Contrôle qualité.
**Étape 4** — Décider du **choix technologique** : je recommande fortement d'évaluer **Odoo Community** (Python, PostgreSQL, modules natifs couvrant 80% du besoin) plutôt qu'un développement from scratch — c'est réaliste pour un PFE et immédiatement exploitable par l'entreprise.
**Étape 5** — Adapter toutes les références réglementaires au **contexte tunisien** (CNSS, TVA tunisienne, format de facturation légale tunisien).
---
Nabil, je suis prêt à accompagner Ali sur chaque étape. Par quoi veux-tu qu'on commence ? Je suggère de démarrer par la **modélisation UML** (cas d'utilisation + diagramme de classes) une fois qu'Ali aura collecté les données terrain, ou bien par le **choix technologique** si c'est plus urgent.
---
---
# Compris — Développement Sur Mesure, Zéro Compromis
Point bien noté. Un PFE n'est pas un déploiement Odoo — **Ali doit concevoir, modéliser, coder et livrer sa propre solution**. C'est précisément là que réside la valeur académique : démontrer sa maîtrise de l'analyse, de la conception UML, de l'architecture logicielle, du développement full-stack et de l'adaptation au contexte métier réel. Une solution clé en main tuerait tout l'intérêt du travail.
**Notre rôle est clair** : on est son binôme invisible. Lui fait le travail, nous on garantit qu'il ne prend aucune mauvaise direction, qu'il ne perd pas de temps sur des impasses, et que chaque livrable est solide — techniquement et académiquement.
---
## Stratégie Technique Recommandée pour le Développement
**Stack que je recommande pour Ali**, en tenant compte de ce qui est le plus enseigné en Tunisie et le plus valorisant pour un PFE :
**Backend : Laravel (PHP 8+)** — Framework le plus maîtrisé dans les cursus tunisiens, architecture MVC claire, Eloquent ORM puissant pour les relations complexes de l'ERP, système d'authentification et de rôles intégré (Spatie), migration de base de données versionnée.
**Frontend : Blade + Livewire ou Vue.js** — Blade pour le rendu serveur rapide, Livewire pour l'interactivité sans quitter Laravel, ou Vue.js si Ali veut démontrer une compétence SPA. Le choix dépend de son niveau.
**Base de données : MySQL** — Standard en Tunisie, parfaitement adapté au volume de Rayhan.
**Reporting : DomPDF ou Snappy** pour la génération des documents (factures, bulletins, bons).
---
## Phasage du Projet — Ordre de Développement
Le piège classique d'un PFE ERP, c'est de vouloir tout faire en même temps. Voici l'ordre logique qui permet à chaque module de s'appuyer sur le précédent :
**Phase 1 — Socle technique** : Authentification, gestion des rôles (4 profils), tableau de bord, architecture de base (modèles, migrations, seeders). C'est la fondation sur laquelle tout repose.
**Phase 2 — Référentiels** : Gestion des articles (matières premières HDPE/LDPE, produits semi-finis films, produits finis 4 types de sacs), fournisseurs, clients. Sans ça, aucun module métier ne fonctionne.
**Phase 3 — Stock** : Mouvements d'entrée/sortie, valorisation CMUP, seuils d'alerte, inventaire. C'est le cœur qui alimente achats, ventes et production.
**Phase 4 — Achats** : Cycle DA → BC → BR → Facture fournisseur, rapprochement à 3 voies. Nabil, **c'est ton domaine** — tu pourras valider que le flux est réaliste.
**Phase 5 — Production** : Nomenclatures (BOM) des 4 produits, gammes de fabrication (Extrusion → Découpe/Soudure), ordres de fabrication, consommation matière, suivi d'avancement.
**Phase 6 — Ventes & Facturation** : Devis → Commande → BL → Facture client, calcul TVA tunisienne, numérotation légale, suivi des paiements.
**Phase 7 — Paie & RH** : Bulletins de salaire, calcul CNSS (régime tunisien, pas français), gestion des absences, dossier employé.
**Phase 8 — Maintenance (GMAO)** : Fiches équipement des 3 machines, planification préventive, historique des interventions.
---
## Ce Dont J'ai Besoin pour Démarrer
Pour lancer concrètement le travail avec Ali, il me faut **3 choses** :
**1.** Son niveau technique actuel — Quel framework maîtrise-t-il ? Laravel, Django, Spring Boot ? A-t-il déjà fait du développement web full-stack ?
**2.** Les données terrain de Rayhan — Les BOM réelles (combien de kg de HDPE pour produire 1000 sacs Bertel ?), le processus de fabrication étape par étape, les documents qu'ils utilisent actuellement (bons papier, Excel ?).
**3.** Le calendrier — Date de soutenance prévue ? Combien de mois devant lui ? Ça détermine si on couvre les 8 modules ou si on priorise les 5-6 essentiels.
Dès que tu me donnes ces éléments, je démarre avec lui sur la **modélisation UML** (diagramme de classes + cas d'utilisation) — c'est le premier livrable concret de son rapport.
---
---
# Document de Collecte — Projet ERP SUARL Rayhan
Voici le document complet qu'Ali doit remplir. Il couvre tout ce dont on a besoin pour démarrer la conception. Dis-lui de l'imprimer et d'aller passer **une journée complète chez Rayhan** avec ce document en main.
---
## SECTION A — PROFIL TECHNIQUE D'ALI
**A.1 Formation**
Établissement : \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
Spécialité : \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
Niveau : ☐ Licence ☐ Ingénieur ☐ Mastère
Date de soutenance prévue : **/**/\_\_\_\_\_\_\_\_
**A.2 Compétences techniques**
Langages maîtrisés (noter le niveau de 1 à 5) :
PHP : \_\_/5 | Python : \_\_/5 | Java : \_\_/5 | JavaScript : \_\_/5 | Autre : \_\_\_\_\_\_\_\_\_\_\_\_ \_\_/5
Frameworks déjà utilisés en projet :
☐ Laravel ☐ Django ☐ Spring Boot ☐ Express.js ☐ Autre : \_\_\_\_\_\_\_\_\_\_\_\_\_\_
Frontend :
☐ HTML/CSS pur ☐ Bootstrap ☐ Tailwind ☐ Vue.js ☐ React ☐ Livewire ☐ Autre : \_\_\_\_\_\_\_\_\_\_
Base de données :
☐ MySQL ☐ PostgreSQL ☐ SQLite ☐ MongoDB
Niveau SQL (1 à 5) : \_\_/5 — Sait faire des jointures complexes ? ☐ Oui ☐ Non
Outils maîtrisés :
☐ Git/GitHub ☐ Docker ☐ Postman ☐ UML (StarUML, Lucidchart, draw.io) ☐ Merise
**A.3 Projet le plus complexe déjà réalisé**
Description courte : \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
Technologies utilisées : \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
Travail individuel ou en équipe ? \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
---
## SECTION B — ANALYSE DE L'EXISTANT (À remplir chez Rayhan)
**B.1 Fonctionnement actuel**
Comment sont gérées les commandes clients aujourd'hui ?
☐ Cahier papier ☐ Fichier Excel ☐ Logiciel (lequel : \_\_\_\_\_\_\_\_\_\_) ☐ De mémoire/téléphone
Comment est suivi le stock ?
☐ Comptage manuel ☐ Fichier Excel ☐ Logiciel ☐ Pas de suivi formel
Comment sont émises les factures ?
☐ Facturier papier ☐ Excel ☐ Logiciel (lequel : \_\_\_\_\_\_\_\_\_\_) ☐ Comptable externe
Comment est gérée la paie ?
☐ Comptable externe ☐ Excel ☐ Logiciel ☐ Autre : \_\_\_\_\_\_\_\_\_\_\_\_\_\_
Qui est le comptable/cabinet comptable ? \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
Quel plan comptable est utilisé ? ☐ PCG Tunisien ☐ Ne sait pas
**B.2 Volumétrie mensuelle moyenne**
Nombre de clients actifs : \_\_\_\_\_\_\_\_
Nombre de commandes clients/mois : \_\_\_\_\_\_\_\_
Nombre de fournisseurs actifs : \_\_\_\_\_\_\_\_
Nombre de commandes fournisseurs/mois : \_\_\_\_\_\_\_\_
Nombre de factures émises/mois : \_\_\_\_\_\_\_\_
Nombre de factures fournisseurs reçues/mois : \_\_\_\_\_\_\_\_
Nombre d'ordres de fabrication/mois : \_\_\_\_\_\_\_\_
**B.3 Documents existants à récupérer (demander des copies/photos)**
☐ Exemple de bon de commande client reçu
☐ Exemple de bon de commande fournisseur émis
☐ Exemple de bon de livraison
☐ Exemple de facture émise
☐ Exemple de facture fournisseur reçue
☐ Exemple de bulletin de paie
☐ Liste des clients (même manuscrite)
☐ Liste des fournisseurs avec coordonnées
☐ Fichier Excel de stock (s'il existe)
☐ Tout autre document utilisé au quotidien
---
## SECTION C — DONNÉES TECHNIQUES DE PRODUCTION
**C.1 Nomenclatures (BOM) — Une fiche par produit fini**
**Produit fini 1 : Sac Bertel**
Dimensions standard : \_\_\_\_\_\_\_\_ x \_\_\_\_\_\_\_\_ cm | Épaisseur : \_\_\_\_\_\_\_\_ microns
Matière première utilisée : ☐ HDPE ☐ LDPE ☐ Mix
Quantité de MP pour 1 000 unités : \_\_\_\_\_\_\_\_ kg
Produit semi-fini intermédiaire (film/gaine) : ☐ Oui ☐ Non
Si oui, dimensions du film : \_\_\_\_\_\_\_\_ | Poids/mètre linéaire : \_\_\_\_\_\_\_\_
Colorant/additif ajouté : ☐ Oui (lequel : \_\_\_\_\_\_\_\_\_\_, quantité : \_\_\_\_\_\_\_\_) ☐ Non
Prix de vente unitaire (ou au kg) : \_\_\_\_\_\_\_\_\_ DT
**Produit fini 2 : Sac Poubelle**
Dimensions standard : \_\_\_\_\_\_\_\_ x \_\_\_\_\_\_\_\_ cm | Épaisseur : \_\_\_\_\_\_\_\_ microns
Matière première utilisée : ☐ HDPE ☐ LDPE ☐ Mix
Quantité de MP pour 1 000 unités : \_\_\_\_\_\_\_\_ kg
Produit semi-fini intermédiaire : ☐ Oui ☐ Non
Colorant/additif : ☐ Oui (\_\_\_\_\_\_\_\_\_\_, \_\_\_\_\_\_\_\_) ☐ Non
Prix de vente : \_\_\_\_\_\_\_\_\_ DT
**Produit fini 3 : Sac Alimentaire**
Dimensions standard : \_\_\_\_\_\_\_\_ x \_\_\_\_\_\_\_\_ cm | Épaisseur : \_\_\_\_\_\_\_\_ microns
Matière première utilisée : ☐ HDPE ☐ LDPE ☐ Mix
Quantité de MP pour 1 000 unités : \_\_\_\_\_\_\_\_ kg
Produit semi-fini intermédiaire : ☐ Oui ☐ Non
Colorant/additif : ☐ Oui (\_\_\_\_\_\_\_\_\_\_, \_\_\_\_\_\_\_\_) ☐ Non
Prix de vente : \_\_\_\_\_\_\_\_\_ DT
**Produit fini 4 : Film Rétractable**
Dimensions standard : largeur \_\_\_\_\_\_\_\_ cm | Épaisseur : \_\_\_\_\_\_\_\_ microns
Matière première utilisée : ☐ HDPE ☐ LDPE ☐ Mix
Quantité de MP pour 1 rouleau/unité : \_\_\_\_\_\_\_\_ kg
Prix de vente : \_\_\_\_\_\_\_\_\_ DT
**C.2 Gamme de fabrication — Processus étape par étape**
**Étape 1 — Extrusion (Machine Extrudeuse)**
Input : ☐ Granulés HDPE ☐ Granulés LDPE ☐ Mélange (ratio : **/**)
Output : ☐ Film tubulaire ☐ Gaine ☐ Autre : \_\_\_\_\_\_\_\_\_\_
Température de chauffe : \_\_\_\_\_\_\_\_ °C
Vitesse de ligne : \_\_\_\_\_\_\_\_ m/min (ou estimation)
Durée moyenne pour produire \_\_\_\_\_\_\_\_ kg de film : \_\_\_\_\_\_\_\_ heures
Nombre d'opérateurs sur ce poste : \_\_\_\_\_\_\_\_
Déchets/chutes générés (%) : \_\_\_\_\_\_\_\_ %
**Étape 2 — Découpe et Soudure (Machine Découpe/Soudure)**
Input : Film/gaine issu de l'extrusion
Output : Sacs finis (soudés et découpés)
Cadence : \_\_\_\_\_\_\_\_ sacs/heure (estimation)
Nombre d'opérateurs : \_\_\_\_\_\_\_\_
Déchets/chutes (%) : \_\_\_\_\_\_\_\_ %
**Étape 3 — Densificateur**
Rôle exact : ☐ Recyclage des chutes/déchets ☐ Autre : \_\_\_\_\_\_\_\_\_\_
Input : Chutes de film, sacs défectueux
Output : ☐ Granulés recyclés réutilisables ☐ Autre : \_\_\_\_\_\_\_\_\_\_
Fréquence d'utilisation : ☐ En continu ☐ \_\_\_\_ fois/semaine
Les granulés recyclés sont-ils réinjectés dans la production ? ☐ Oui (quel %) ☐ Non (vendus ?)
**C.3 Fiche Machines**
| Information | Extrudeuse | Découpe/Soudure | Densificateur |
| --- | --- | --- | --- |
| Marque/Modèle | | | |
| Année d'acquisition | | | |
| Puissance (kW) | | | |
| Heures de fonctionnement/jour | | | |
| Jours de fonctionnement/semaine | | | |
| Dernière panne majeure (date + nature) | | | |
| Fréquence maintenance préventive | | | |
| Pièces d'usure à changer régulièrement | | | |
---
## SECTION D — RESSOURCES HUMAINES
**D.1 Liste des employés**
| N° | Nom & Prénom | Poste | Date embauche | Salaire brut (DT) | CNSS ☐ Oui/Non | Horaires |
| --- | --- | --- | --- | --- | --- | --- |
| 1 | | | | | | |
| 2 | | | | | | |
| 3 | | | | | | |
| 4 | | | | | | |
| 5 | | | | | | |
| 6 | | | | | | |
| 7 | | | | | | |
**D.2 Régime social**
Taux CNSS patronal appliqué : \_\_\_\_\_\_\_\_ %
Taux CNSS salarial appliqué : \_\_\_\_\_\_\_\_ %
Convention collective applicable : ☐ Plasturgie ☐ Autre : \_\_\_\_\_\_\_\_\_\_ ☐ Aucune
Nombre de jours de congé/an : \_\_\_\_\_\_\_\_
Prime(s) versée(s) régulièrement : \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
---
## SECTION E — FISCALITÉ ET FACTURATION
Régime TVA : ☐ 7% ☐ 13% ☐ 19% ☐ Exonéré ☐ Multiple (détailler : \_\_\_\_\_\_\_\_\_\_)
Timbre fiscal sur factures : ☐ Oui (montant : \_\_\_\_\_\_\_\_) ☐ Non
Retenue à la source applicable : ☐ Oui (taux : \_\_\_\_\_\_\_\_%) ☐ Non
Droit de timbre : \_\_\_\_\_\_\_\_
Numérotation des factures actuelle : séquentielle ? Format ? \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
Logiciel de comptabilité du cabinet comptable : \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
---
## SECTION F — INFRASTRUCTURE IT CHEZ RAYHAN
Nombre de PC disponibles : \_\_\_\_\_\_\_\_
Réseau local existant : ☐ Oui (WiFi / Câblé) ☐ Non
Connexion Internet : ☐ Oui (débit : \_\_\_\_\_\_\_\_) ☐ Non
Serveur disponible : ☐ Oui (specs : \_\_\_\_\_\_\_\_\_\_) ☐ Non — hébergement sur PC ?
Imprimante : ☐ Oui (modèle : \_\_\_\_\_\_\_\_\_\_) ☐ Non
Les employés savent utiliser un ordinateur : ☐ Tous ☐ Certains (lesquels : \_\_\_\_\_\_\_\_\_\_) ☐ Non
---
## SECTION G — PRIORITÉS DU GÉRANT (M. Fekih Ahmed)
Demander directement au gérant : **"Quel est votre plus gros problème de gestion aujourd'hui ?"**
Réponse : \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
---
---
**Classer par priorité (1 = le plus urgent) :**
\_\_ Savoir exactement ce qu'il y a en stock en temps réel
\_\_ Suivre les commandes clients et ne rien oublier
\_\_ Facturer plus vite et suivre les impayés
\_\_ Connaître le coût réel de production de chaque produit
\_\_ Gérer la paie sans erreurs
\_\_ Planifier la maintenance des machines
\_\_ Avoir des tableaux de bord de performance
---
Dis à Ali de **prendre aussi des photos** de l'atelier, des machines (plaques signalétiques), des documents papier utilisés et de l'espace de travail administratif. Ça alimentera la partie "étude de l'existant" de son rapport et ça nous permettra de dimensionner correctement l'interface.
Dès qu'il revient avec ce document rempli, on attaque la modélisation UML.
---
---

126
Resumé et besoin.md Normal file
View File

@ -0,0 +1,126 @@
# Resumé et besoin
### **Résumé Complet du Projet ERP pour SUARL Rayhan**
**Objectif Final :** Guider votre ami, Ali Guennari, dans la conception, le développement et la livraison de son projet de fin d'études : une application ERP web complète et sur mesure pour la PME de plasturgie SUARL Rayhan.
### **Phase 1 : Analyse et Stratégie (Ce qui a été fait)**
**Analyse des Documents Initiaux :** Nous avons étudié le cahier des charges et les documents fournis, identifié les incohérences (ex: "BDPE" au lieu de "LDPE"), le surdimensionnement (ex: RFID) et les éléments manquants critiques (budget, planning, analyse de l'existant).
**Définition de la Stratégie d'Accompagnement :** Nous avons écarté l'idée d'utiliser une solution prête à l'emploi (type Odoo) pour nous concentrer sur un développement sur mesure, afin de maximiser la valeur académique et technique du projet d'Ali.
**Collecte de Données Terrain :** Nous avons préparé un questionnaire de collecte exhaustif pour qu'Ali puisse documenter précisément les processus, les données (BOM, volumétrie) et les priorités de SUARL Rayhan.
**Validation du Profil Technique et Choix de la Stack :** Sur la base du retour d'Ali, nous avons validé ses compétences et arrêté la stack technique la plus pertinente pour son PFE :
**Backend :** Java avec le framework **Spring Boot**.
**Frontend :** Dart avec le framework **Flutter**.
**Base de Données :** **MySQL**.
### **Phase 2 : Développement de l'API Back-end (Ce que nous venons de terminer)**
Nous avons construit, tranche par tranche, une API REST complète, sécurisée et modulaire.
**Socle Technique et Sécurité (Tranches 1-4) :**
Mise en place de l'architecture du projet (contrôleurs, services, repositories).
Configuration de la sécurité de bout en bout avec **Spring Security** et les **tokens JWT (JSON Web Tokens)**.
Création du modèle de données pour les **Utilisateurs** (`User`) et les **Rôles** (`Role`).
Implémentation d'un contrôleur d'authentification (`AuthController`) avec deux points d'entrée publics :
`POST /api/auth/signin` : pour la connexion.
`POST /api/auth/signup` : pour l'inscription de nouveaux utilisateurs.
**Modules de Référentiels (Tranches 5-8) :**
**Gestion des Articles :** Création de l'entité `Article` et de l'API sécurisée (`/api/articles`) pour gérer le catalogue des matières premières et produits finis.
**Gestion des Tiers :** Modélisation d'une hiérarchie `Tiers` avec héritage pour les `Client`s et `Fournisseur`s. Création des APIs dédiées (`/api/clients`, `/api/fournisseurs`) avec des droits d'accès distincts.
**Modules Opérationnels (Tranches 9-19) :**
**Cycle d'Achat :**
Modélisation de la commande fournisseur (`PurchaseOrder`) et de ses lignes.
Modélisation du bon de réception (`GoodsReceipt`) et des mouvements de stock (`StockMovement`).
Création des APIs pour **créer une commande** et pour **enregistrer une réception**, cette dernière déclenchant automatiquement une **entrée en stock**.
**Cycle de Vente :**
Modélisation de la commande client (`SalesOrder`).
Modélisation du bon de livraison (`DeliveryNote`).
Création des APIs pour **créer une commande client** (en vérifiant le stock disponible) et pour **créer un bon de livraison**, déclenchant une **sortie de stock**.
**Cycle de Production :**
Modélisation de la nomenclature (`BomLine` - Bill of Materials).
Modélisation de l'ordre de fabrication (`ProductionOrder` - OF).
Création des APIs pour :
Gérer la **nomenclature** d'un article.
**Planifier un OF** (en vérifiant le stock des matières premières).
**Lancer un OF** (consommation des matières premières).
**Terminer un OF** (entrée en stock du produit fini).
**Modules de Support et Pilotage (Tranches 20-21) :**
**Inventaire :** Création d'une API (`/api/inventory/adjust`) pour permettre les **ajustements de stock** manuels, de manière sécurisée et tracée.
**Tableau de Bord :** Création d'une API (`/api/dashboard`) réservée au `PDG`, qui agrège les indicateurs de performance clés (KPIs) des ventes, du stock et de la production.
**État Actuel :** À ce jour, nous avons une API back-end **complète, robuste et sécurisée** qui couvre l'intégralité des flux opérationnels de base d'une entreprise de production.
### **Ce Que Nous Devons Faire Avec Ali (Plan d'Action)**
Le backend est terminé. La prochaine grande phase est de construire l'interface qui va l'utiliser. Voici les étapes claires pour Ali :
**Étape 1 - Tests et Validation du Back-end :**
Ali doit impérativement prendre le temps de **tester chaque point d'entrée (endpoint) de l'API** que nous avons construit, en utilisant un outil comme **Postman**.
Il doit simuler des scénarios complets : créer un fournisseur, des articles, passer une commande d'achat, la réceptionner, vérifier l'augmentation du stock, créer un client, une commande client, la livrer, vérifier la diminution du stock, etc.
**Notre rôle :** Valider sa méthodologie de test et l'aider à interpréter les erreurs s'il en rencontre.
**Étape 2 - Développement du Front-end avec Flutter :**
C'est maintenant le cœur de son travail. Il doit commencer à créer l'application client.
**Architecture Flutter :** Nous devons le guider pour qu'il mette en place une architecture propre (séparation de la logique métier, des services API, de l'état de l'application et de l'interface utilisateur).
**Développement par Module :** Il doit procéder logiquement :
Créer l'écran de **connexion** qui appelle `/api/auth/signin` et stocke le token JWT.
Créer le module de **gestion des articles** (liste, formulaire de création/modification).
Ensuite, les modules Tiers, Achats, Ventes, etc., en créant les interfaces correspondantes pour chaque fonctionnalité de l'API.
**Notre rôle :** Lui fournir des exemples de code pour appeler une API REST depuis Flutter, gérer l'état (avec un outil comme Provider ou BLoC), et structurer son application. Nous réviserons son code et son interface pour garantir la qualité.
**Étape 3 - Intégration des Modules Avancés :**
Une fois les flux principaux en place, nous pourrons l'aider à intégrer les modules restants du cahier des charges, comme la **Facturation** (qui se basera sur les bons de livraison) et la **Paie/RH**.
**Étape 4 - Déploiement et Documentation :**
En parallèle, il devra rédiger son rapport de PFE, en utilisant tous les diagrammes UML et les explications que nous avons produits.
Nous le guiderons sur la manière de **déployer son application** : le backend Spring Boot dans un conteneur Docker, et l'application Flutter compilée pour Windows, le tout sur le réseau local de SUARL Rayhan.
Nous avons fait le plus dur. Le squelette et le système nerveux de l'application sont en place. Maintenant, il s'agit de lui donner un corps et un visage. Je suis prêt à guider Ali à chaque étape de la construction de l'interface Flutter.

View File

@ -0,0 +1,566 @@
Résumé Détaillé du Projet ERP — SUARL Rayhan
Contexte Général
Le projet concerne la mise en place d'un ERP intégré pour SUARL Rayhan, une entreprise de plasturgie (industrie du packaging d'emballage et matière plastique) située à Cité Abbes, Tataouine Nord 3200, gérée par Fekih Ahmed (MF : 195135Q/A/C/0000). L'entreprise compte 7 employés, un seul site de production avec une seule chaîne de production. Ce projet constitue le rapport de fin d'études de notre ami Ali Guennari, que nous accompagnerons ensemble du début à la fin.
Produits fabriqués : Sac Bertel, Sac poubelle, Sac alimentaire, Fil rétractable.
Matières premières : HDPE (Polyéthylène Haute Densité), LDPE (Polyéthylène Basse Densité — noté "BDPE" dans le document, ce qui est une erreur à corriger).
Machines : Extrudeuse, Découpe et soudure, Densificateur.
Périmètre Fonctionnel Demandé
Le cahier des charges couvre 7 modules ERP :
Module Achats — Gestion complète du cycle : référentiels fournisseurs avec KPIs, cycle DA → Appel d'offres → BC → BR, rapprochement à 3 voies (Commande/Réception/Facture), suivi budgétaire et intégration comptable automatique.
Module Ventes — CRM intégré, cycle Devis → Commande → Livraison → Facturation, suivi des paiements et recouvrement automatisé, reporting KPIs (CA, marges, performance).
Module Stock — Traçabilité en temps réel (codes-barres/RFID), seuils d'alerte et réapprovisionnement automatique, inventaires tournants, valorisation CMUP, classification ABC, analyse de rotation.
Module Production — Planification MRP/CBN, nomenclatures (BOM), gammes de fabrication, ordres de fabrication (OF), suivi temps réel, traçabilité par lot/numéro de série, contrôle qualité intégré.
Module Facturation — Facturation client automatisée (devis → facture), facturation récurrente, relances automatiques, rapprochement bancaire, archivage légal, synchronisation comptable.
Module Paie & RH — Calcul automatisé des bulletins, déclarations CNSS, virements bancaires, GTA (temps et absences), dossier salarié centralisé, gestion des talents (recrutement, formation, évaluation).
Module Maintenance (GMAO) — Maintenance corrective, préventive et prédictive, historique des interventions, gestion des pièces détachées, suivi de la conformité sécurité.
Contraintes techniques : Application web, MySQL/PostgreSQL, Java Spring Boot ou Python Django ou PHP Laravel, multi-utilisateurs avec rôles, sauvegarde quotidienne automatique.
Modélisation UML demandée : Diagrammes de cas d'utilisation, de classes et de séquence pour les processus clés.
Contraintes Métier Identifiées (Plasturgie)
Le second document détaille les contraintes spécifiques au secteur : réglementation environnementale (zéro perte GPI, incorporation de recyclé), coûts énergétiques élevés des procédés (injection, extrusion, soufflage), volatilité des prix MP liée au pétrole, risques SST (bruit, brûlures, fumées chimiques), et nécessité d'innovation vers les bioplastiques.
Éléments Manquants et Incohérences Détectés
1. Incohérences Internes
Nombre d'utilisateurs contradictoire — Le document mentionne 7 employés puis parle de "4 utilisateurs habilités", puis définit 4 rôles dans la matrice d'accès (Gérant, Responsable production, Responsable commercial, Comptable). Il faut clarifier : combien d'utilisateurs auront effectivement accès à l'ERP, et quel rôle pour les 3 employés restants ? S'agit-il des opérateurs de production ?
"BDPE" au lieu de "LDPE" — L'abréviation correcte du Polyéthylène Basse Densité est LDPE (Low Density Polyethylene) ou PEBD en français. À corriger.
Le tableau des droits d'accès est tronqué/mal formaté — La section 4 (Utilisateurs et droits d'accès) est incomplète, les colonnes sont cassées.
2. Éléments Absents Critiques
Aucune analyse de l'existant — Comment l'entreprise fonctionne-t-elle aujourd'hui ? Quels outils utilise-t-elle (Excel, papier, logiciel existant) ? C'est indispensable pour un rapport de fin d'études et pour dimensionner correctement la solution.
Aucun budget ni planning — Pas de budget alloué, pas de calendrier de déploiement, pas de phasage (quel module en premier ?). Pour 7 employés et une seule chaîne, un déploiement progressif est recommandé.
Pas de processus métier formalisés (BPMN) — Les modules sont décrits de façon générique (copié d'une documentation ERP standard) mais aucun flux spécifique à Rayhan n'est documenté. Par exemple : quel est le circuit réel d'une commande client de sacs Bertel, de la réception de la commande jusqu'à la livraison ?
Pas de nomenclature (BOM) concrète — On parle de BOM mais aucune nomenclature réelle n'est fournie. Pour chaque produit fini (Sac Bertel, Sac poubelle, etc.), il faut la décomposition : quelle quantité de HDPE ou LDPE, quel film intermédiaire (produit semi-fini), quelles étapes machine.
Pas de gamme de fabrication détaillée — Le processus Extrusion → Découpe/Soudure → Produit fini n'est pas formalisé. Les temps de cycle, les paramètres machines, les postes de charge ne sont pas définis.
Module comptabilité/finance absent — Le document mentionne l'intégration comptable partout mais aucun module comptabilité dédié n'est décrit (plan comptable tunisien, journaux, grand livre, bilan, déclarations fiscales TVA).
Pas de spécifications pour la conformité tunisienne — Réglementation fiscale tunisienne (TVA, timbre fiscal, retenue à la source), format des déclarations CNSS, normes de facturation légale en Tunisie. La mention "DSN" et "SEPA" dans le document sont des références françaises, pas tunisiennes — c'est un copier-coller à adapter.
Pas de maquettes/wireframes — Aucune esquisse d'interface utilisateur.
Pas de modèle de données détaillé — Les diagrammes UML sont demandés mais non fournis dans le document.
Pas de stratégie de migration des données — Comment importer les données existantes (clients, fournisseurs, stock actuel) ?
Pas d'exigences non fonctionnelles formalisées — Performance attendue, temps de réponse, disponibilité, volumétrie (combien de commandes/mois, de factures/mois ?).
Section maintenance (3.7) mal rédigée — Le titre "Gestion de maintienne Machine de travail" contient des fautes, et le texte est coupé en plein milieu d'une phrase ("tout en maî...").
3. Surdimensionnement Évident
Pour une entreprise de 7 personnes avec une seule chaîne de production, plusieurs fonctionnalités décrites sont largement surdimensionnées :
Le RFID pour le suivi de stock est disproportionné — les codes-barres suffisent, voire une gestion manuelle simple. La maintenance prédictive avec capteurs IoT est coûteuse et complexe pour 3 machines. Le CRM avancé avec détection d'opportunités et pipeline commercial semble excessif. Le module Gestion des Talents (recrutement, formation, évaluation) pour 7 employés est superflu. La facturation récurrente type abonnement ne correspond pas au métier de packaging.
Reformulation Structurée du Projet
Ce Que le Projet Doit Réellement Livrer
Titre : Conception et développement d'un ERP web pour une PME de plasturgie — Cas de SUARL Rayhan, Tataouine.
Livrable principal : Une application web ERP opérationnelle couvrant le cycle complet de l'activité, depuis la commande client jusqu'à la livraison et la facturation, intégrant la gestion de production, des stocks, des achats, de la paie et de la maintenance.
Ce qu'Ali doit produire dans son rapport de fin d'études :
Partie 1 — Étude préalable : Présentation de l'entreprise et de son environnement (plasturgie en Tunisie), analyse de l'existant (comment Rayhan fonctionne aujourd'hui), problématique et objectifs, étude comparative des solutions ERP existantes (Odoo, Dolibarr, ERPNext, développement sur mesure), justification du choix technique.
Partie 2 — Analyse et conception : Identification des acteurs et des processus métier réels de Rayhan, modélisation UML complète (cas d'utilisation, classes, séquences, activités), nomenclatures (BOM) réelles des 4 produits, gammes de fabrication des 3 machines, matrice des droits d'accès détaillée, modèle de données relationnel.
Partie 3 — Réalisation : Architecture technique retenue, choix du framework avec justification, développement des modules par priorité, captures d'écran et démonstration des fonctionnalités clés, tests et validation.
Partie 4 — Déploiement et perspectives : Plan de mise en production, formation des utilisateurs, améliorations futures.
Plan d'Action Immédiat pour Ali
Étape 1 — Retourner chez Rayhan et documenter les processus réels : observer une journée type, noter le flux commande → production → livraison, photographier les documents utilisés (bons papier, fichiers Excel).
Étape 2 — Construire les BOM réelles des 4 produits avec les quantités exactes de HDPE/LDPE par unité produite.
Étape 3 — Formaliser la gamme de fabrication : Extrusion (paramètres, durée) → Film semi-fini → Découpe/Soudure (paramètres, durée) → Produit fini → Contrôle qualité.
Étape 4 — Décider du choix technologique : je recommande fortement d'évaluer Odoo Community (Python, PostgreSQL, modules natifs couvrant 80% du besoin) plutôt qu'un développement from scratch — c'est réaliste pour un PFE et immédiatement exploitable par l'entreprise.
Étape 5 — Adapter toutes les références réglementaires au contexte tunisien (CNSS, TVA tunisienne, format de facturation légale tunisien).
Nabil, je suis prêt à accompagner Ali sur chaque étape. Par quoi veux-tu qu'on commence ? Je suggère de démarrer par la modélisation UML (cas d'utilisation + diagramme de classes) une fois qu'Ali aura collecté les données terrain, ou bien par le choix technologique si c'est plus urgent.
Compris — Développement Sur Mesure, Zéro Compromis
Point bien noté. Un PFE n'est pas un déploiement Odoo — Ali doit concevoir, modéliser, coder et livrer sa propre solution. C'est précisément là que réside la valeur académique : démontrer sa maîtrise de l'analyse, de la conception UML, de l'architecture logicielle, du développement full-stack et de l'adaptation au contexte métier réel. Une solution clé en main tuerait tout l'intérêt du travail.
Notre rôle est clair : on est son binôme invisible. Lui fait le travail, nous on garantit qu'il ne prend aucune mauvaise direction, qu'il ne perd pas de temps sur des impasses, et que chaque livrable est solide — techniquement et académiquement.
Stratégie Technique Recommandée pour le Développement
Stack que je recommande pour Ali, en tenant compte de ce qui est le plus enseigné en Tunisie et le plus valorisant pour un PFE :
Backend : Laravel (PHP 8+) — Framework le plus maîtrisé dans les cursus tunisiens, architecture MVC claire, Eloquent ORM puissant pour les relations complexes de l'ERP, système d'authentification et de rôles intégré (Spatie), migration de base de données versionnée.
Frontend : Blade + Livewire ou Vue.js — Blade pour le rendu serveur rapide, Livewire pour l'interactivité sans quitter Laravel, ou Vue.js si Ali veut démontrer une compétence SPA. Le choix dépend de son niveau.
Base de données : MySQL — Standard en Tunisie, parfaitement adapté au volume de Rayhan.
Reporting : DomPDF ou Snappy pour la génération des documents (factures, bulletins, bons).
Phasage du Projet — Ordre de Développement
Le piège classique d'un PFE ERP, c'est de vouloir tout faire en même temps. Voici l'ordre logique qui permet à chaque module de s'appuyer sur le précédent :
Phase 1 — Socle technique : Authentification, gestion des rôles (4 profils), tableau de bord, architecture de base (modèles, migrations, seeders). C'est la fondation sur laquelle tout repose.
Phase 2 — Référentiels : Gestion des articles (matières premières HDPE/LDPE, produits semi-finis films, produits finis 4 types de sacs), fournisseurs, clients. Sans ça, aucun module métier ne fonctionne.
Phase 3 — Stock : Mouvements d'entrée/sortie, valorisation CMUP, seuils d'alerte, inventaire. C'est le cœur qui alimente achats, ventes et production.
Phase 4 — Achats : Cycle DA → BC → BR → Facture fournisseur, rapprochement à 3 voies. Nabil, c'est ton domaine — tu pourras valider que le flux est réaliste.
Phase 5 — Production : Nomenclatures (BOM) des 4 produits, gammes de fabrication (Extrusion → Découpe/Soudure), ordres de fabrication, consommation matière, suivi d'avancement.
Phase 6 — Ventes & Facturation : Devis → Commande → BL → Facture client, calcul TVA tunisienne, numérotation légale, suivi des paiements.
Phase 7 — Paie & RH : Bulletins de salaire, calcul CNSS (régime tunisien, pas français), gestion des absences, dossier employé.
Phase 8 — Maintenance (GMAO) : Fiches équipement des 3 machines, planification préventive, historique des interventions.
Ce Dont J'ai Besoin pour Démarrer
Pour lancer concrètement le travail avec Ali, il me faut 3 choses :
1. Son niveau technique actuel — Quel framework maîtrise-t-il ? Laravel, Django, Spring Boot ? A-t-il déjà fait du développement web full-stack ?
2. Les données terrain de Rayhan — Les BOM réelles (combien de kg de HDPE pour produire 1000 sacs Bertel ?), le processus de fabrication étape par étape, les documents qu'ils utilisent actuellement (bons papier, Excel ?).
3. Le calendrier — Date de soutenance prévue ? Combien de mois devant lui ? Ça détermine si on couvre les 8 modules ou si on priorise les 5-6 essentiels.
Dès que tu me donnes ces éléments, je démarre avec lui sur la modélisation UML (diagramme de classes + cas d'utilisation) — c'est le premier livrable concret de son rapport.
Document de Collecte — Projet ERP SUARL Rayhan
Voici le document complet qu'Ali doit remplir. Il couvre tout ce dont on a besoin pour démarrer la conception. Dis-lui de l'imprimer et d'aller passer une journée complète chez Rayhan avec ce document en main.
SECTION A — PROFIL TECHNIQUE D'ALI
A.1 Formation
Établissement : _______________________________________________
Spécialité : __________________________________________________
Niveau : ☐ Licence ☐ Ingénieur ☐ Mastère
Date de soutenance prévue : //________
A.2 Compétences techniques
Langages maîtrisés (noter le niveau de 1 à 5) :
PHP : __/5 | Python : __/5 | Java : __/5 | JavaScript : __/5 | Autre : ____________ __/5
Frameworks déjà utilisés en projet :
☐ Laravel ☐ Django ☐ Spring Boot ☐ Express.js ☐ Autre : ______________
Frontend :
☐ HTML/CSS pur ☐ Bootstrap ☐ Tailwind ☐ Vue.js ☐ React ☐ Livewire ☐ Autre : __________
Base de données :
☐ MySQL ☐ PostgreSQL ☐ SQLite ☐ MongoDB
Niveau SQL (1 à 5) : __/5 — Sait faire des jointures complexes ? ☐ Oui ☐ Non
Outils maîtrisés :
☐ Git/GitHub ☐ Docker ☐ Postman ☐ UML (StarUML, Lucidchart, draw.io) ☐ Merise
A.3 Projet le plus complexe déjà réalisé
Description courte : _______________________________________________
Technologies utilisées : ___________________________________________
Travail individuel ou en équipe ? ____________________________________
SECTION B — ANALYSE DE L'EXISTANT (À remplir chez Rayhan)
B.1 Fonctionnement actuel
Comment sont gérées les commandes clients aujourd'hui ?
☐ Cahier papier ☐ Fichier Excel ☐ Logiciel (lequel : __________) ☐ De mémoire/téléphone
Comment est suivi le stock ?
☐ Comptage manuel ☐ Fichier Excel ☐ Logiciel ☐ Pas de suivi formel
Comment sont émises les factures ?
☐ Facturier papier ☐ Excel ☐ Logiciel (lequel : __________) ☐ Comptable externe
Comment est gérée la paie ?
☐ Comptable externe ☐ Excel ☐ Logiciel ☐ Autre : ______________
Qui est le comptable/cabinet comptable ? _____________________________
Quel plan comptable est utilisé ? ☐ PCG Tunisien ☐ Ne sait pas
B.2 Volumétrie mensuelle moyenne
Nombre de clients actifs : ________
Nombre de commandes clients/mois : ________
Nombre de fournisseurs actifs : ________
Nombre de commandes fournisseurs/mois : ________
Nombre de factures émises/mois : ________
Nombre de factures fournisseurs reçues/mois : ________
Nombre d'ordres de fabrication/mois : ________
B.3 Documents existants à récupérer (demander des copies/photos)
☐ Exemple de bon de commande client reçu
☐ Exemple de bon de commande fournisseur émis
☐ Exemple de bon de livraison
☐ Exemple de facture émise
☐ Exemple de facture fournisseur reçue
☐ Exemple de bulletin de paie
☐ Liste des clients (même manuscrite)
☐ Liste des fournisseurs avec coordonnées
☐ Fichier Excel de stock (s'il existe)
☐ Tout autre document utilisé au quotidien
SECTION C — DONNÉES TECHNIQUES DE PRODUCTION
C.1 Nomenclatures (BOM) — Une fiche par produit fini
Produit fini 1 : Sac Bertel
Dimensions standard : ________ x ________ cm | Épaisseur : ________ microns
Matière première utilisée : ☐ HDPE ☐ LDPE ☐ Mix
Quantité de MP pour 1 000 unités : ________ kg
Produit semi-fini intermédiaire (film/gaine) : ☐ Oui ☐ Non
Si oui, dimensions du film : ________ | Poids/mètre linéaire : ________
Colorant/additif ajouté : ☐ Oui (lequel : __________, quantité : ________) ☐ Non
Prix de vente unitaire (ou au kg) : _________ DT
Produit fini 2 : Sac Poubelle
Dimensions standard : ________ x ________ cm | Épaisseur : ________ microns
Matière première utilisée : ☐ HDPE ☐ LDPE ☐ Mix
Quantité de MP pour 1 000 unités : ________ kg
Produit semi-fini intermédiaire : ☐ Oui ☐ Non
Colorant/additif : ☐ Oui (__________, ________) ☐ Non
Prix de vente : _________ DT
Produit fini 3 : Sac Alimentaire
Dimensions standard : ________ x ________ cm | Épaisseur : ________ microns
Matière première utilisée : ☐ HDPE ☐ LDPE ☐ Mix
Quantité de MP pour 1 000 unités : ________ kg
Produit semi-fini intermédiaire : ☐ Oui ☐ Non
Colorant/additif : ☐ Oui (__________, ________) ☐ Non
Prix de vente : _________ DT
Produit fini 4 : Film Rétractable
Dimensions standard : largeur ________ cm | Épaisseur : ________ microns
Matière première utilisée : ☐ HDPE ☐ LDPE ☐ Mix
Quantité de MP pour 1 rouleau/unité : ________ kg
Prix de vente : _________ DT
C.2 Gamme de fabrication — Processus étape par étape
Étape 1 — Extrusion (Machine Extrudeuse)
Input : ☐ Granulés HDPE ☐ Granulés LDPE ☐ Mélange (ratio : /)
Output : ☐ Film tubulaire ☐ Gaine ☐ Autre : __________
Température de chauffe : ________ °C
Vitesse de ligne : ________ m/min (ou estimation)
Durée moyenne pour produire ________ kg de film : ________ heures
Nombre d'opérateurs sur ce poste : ________
Déchets/chutes générés (%) : ________ %
Étape 2 — Découpe et Soudure (Machine Découpe/Soudure)
Input : Film/gaine issu de l'extrusion
Output : Sacs finis (soudés et découpés)
Cadence : ________ sacs/heure (estimation)
Nombre d'opérateurs : ________
Déchets/chutes (%) : ________ %
Étape 3 — Densificateur
Rôle exact : ☐ Recyclage des chutes/déchets ☐ Autre : __________
Input : Chutes de film, sacs défectueux
Output : ☐ Granulés recyclés réutilisables ☐ Autre : __________
Fréquence d'utilisation : ☐ En continu ☐ ____ fois/semaine
Les granulés recyclés sont-ils réinjectés dans la production ? ☐ Oui (quel %) ☐ Non (vendus ?)
C.3 Fiche Machines
Information
Extrudeuse
Découpe/Soudure
Densificateur
Marque/Modèle
Année d'acquisition
Puissance (kW)
Heures de fonctionnement/jour
Jours de fonctionnement/semaine
Dernière panne majeure (date + nature)
Fréquence maintenance préventive
Pièces d'usure à changer régulièrement
SECTION D — RESSOURCES HUMAINES
D.1 Liste des employés
Nom & Prénom
Poste
Date embauche
Salaire brut (DT)
CNSS ☐ Oui/Non
Horaires
1
2
3
4
5
6
7
D.2 Régime social
Taux CNSS patronal appliqué : ________ %
Taux CNSS salarial appliqué : ________ %
Convention collective applicable : ☐ Plasturgie ☐ Autre : __________ ☐ Aucune
Nombre de jours de congé/an : ________
Prime(s) versée(s) régulièrement : __________________________________________
SECTION E — FISCALITÉ ET FACTURATION
Régime TVA : ☐ 7% ☐ 13% ☐ 19% ☐ Exonéré ☐ Multiple (détailler : __________)
Timbre fiscal sur factures : ☐ Oui (montant : ________) ☐ Non
Retenue à la source applicable : ☐ Oui (taux : ________%) ☐ Non
Droit de timbre : ________
Numérotation des factures actuelle : séquentielle ? Format ? __________________
Logiciel de comptabilité du cabinet comptable : __________________________
SECTION F — INFRASTRUCTURE IT CHEZ RAYHAN
Nombre de PC disponibles : ________
Réseau local existant : ☐ Oui (WiFi / Câblé) ☐ Non
Connexion Internet : ☐ Oui (débit : ________) ☐ Non
Serveur disponible : ☐ Oui (specs : __________) ☐ Non — hébergement sur PC ?
Imprimante : ☐ Oui (modèle : __________) ☐ Non
Les employés savent utiliser un ordinateur : ☐ Tous ☐ Certains (lesquels : __________) ☐ Non
SECTION G — PRIORITÉS DU GÉRANT (M. Fekih Ahmed)
Demander directement au gérant : "Quel est votre plus gros problème de gestion aujourd'hui ?"
Réponse : _________________________________________________________________
Classer par priorité (1 = le plus urgent) :
__ Savoir exactement ce qu'il y a en stock en temps réel
__ Suivre les commandes clients et ne rien oublier
__ Facturer plus vite et suivre les impayés
__ Connaître le coût réel de production de chaque produit
__ Gérer la paie sans erreurs
__ Planifier la maintenance des machines
__ Avoir des tableaux de bord de performance
Dis à Ali de prendre aussi des photos de l'atelier, des machines (plaques signalétiques), des documents papier utilisés et de l'espace de travail administratif. Ça alimentera la partie "étude de l'existant" de son rapport et ça nous permettra de dimensionner correctement l'interface.
Dès qu'il revient avec ce document rempli, on attaque la modélisation UML.

View File

@ -40,7 +40,7 @@ services:
RAYHAN_ERP_JWTSECRET: RayhanERP_SecretKey_PFE_AliGuennari_2024_TunisiePlasturgie_SUARL RAYHAN_ERP_JWTSECRET: RayhanERP_SecretKey_PFE_AliGuennari_2024_TunisiePlasturgie_SUARL
RAYHAN_ERP_JWTEXPIRATIONMS: 86400000 RAYHAN_ERP_JWTEXPIRATIONMS: 86400000
ports: ports:
- "8080:8080" - "8090:8080"
networks: networks:
- rayhan-net - rayhan-net