📚 Trade Tutorials - Tutoriels et guides
Le module Tutorials fournit des ressources éducatives aux utilisateurs pour les aider à utiliser efficacement le système FreeTrade.
🎯 Objectif
Fournir des ressources éducatives complètes aux utilisateurs pour optimiser leur utilisation du système et améliorer leurs compétences en transport et logistique.
✨ Fonctionnalités principales
- Tutoriels vidéo : Guides pratiques pour utiliser le système
- Recherche avancée : Par titre, mots-clés, date de création
- Organisation : Classement par difficulté ou thématique
- Suivi : Statistiques de consultation et progression
- Évaluation : Système de notation et commentaires
📋 Types de tutoriels
Utilisation du système
- "Comment déposer une plainte"
- "Utiliser le forum efficacement"
- "Comprendre les statuts de transport"
- "Gérer ses documents officiels"
Optimisation métier
- "Optimiser ses opérations logistiques"
- "Réduire les coûts de transport"
- "Améliorer la satisfaction client"
- "Gestion des risques en transport"
Réglementation
- "Comprendre la réglementation transport"
- "Documents obligatoires"
- "Procédures de contrôle"
- "Sanctions et recours"
🔌 Endpoints disponibles
Lister les tutoriels
GET /trade/tutorials?page=1&limit=10&category=system&difficulty=BEGINNER
Paramètres de requête :
page: Numéro de page (défaut: 1)limit: Éléments par page (défaut: 10, max: 50)category: Filtrer par catégoriedifficulty: Filtrer par difficulté (BEGINNER, INTERMEDIATE, ADVANCED)duration: Filtrer par durée (SHORT, MEDIUM, LONG)search: Recherche textuelle dans titre/descriptiontags: Filtrer par tags (séparés par virgules)sortBy: Tri (recent, popular, rating, duration)
Réponse :
{
"success": true,
"message": "Liste des tutoriels",
"result": {
"meta": {
"total": 42,
"total_pages": 5,
"current_page": 1,
"limit": 10
},
"data": [
{
"id": 123,
"publicId": "tutorial-abc-123",
"title": "Comment déposer une plainte efficacement",
"description": "Guide complet pour déposer une plainte et assurer son suivi",
"summary": "Apprenez à utiliser le système de plaintes pour résoudre vos problèmes de transport",
"difficulty": "BEGINNER",
"duration": "SHORT",
"estimatedTime": 15,
"category": {
"id": 1,
"name": "Utilisation système",
"color": "#007bff",
"icon": "💻"
},
"thumbnail": {
"url": "/uploads/tutorials/complaint-tutorial-thumb.jpg",
"alt": "Tutoriel plaintes"
},
"tags": [
{
"id": 1,
"name": "plaintes",
"color": "#dc3545"
},
{
"id": 2,
"name": "débutant",
"color": "#28a745"
}
],
"statistics": {
"viewsCount": 1250,
"completionsCount": 890,
"averageRating": 4.7,
"ratingsCount": 156
},
"author": {
"id": 456,
"firstName": "Formation",
"lastName": "OFR",
"role": "INSTRUCTOR"
},
"isCompleted": false,
"lastViewedAt": null,
"createdAt": "2025-01-15T10:00:00Z",
"updatedAt": "2025-07-01T14:30:00Z"
},
{
"id": 124,
"title": "Optimiser ses coûts de transport",
"description": "Stratégies pour réduire les coûts tout en maintenant la qualité",
"difficulty": "INTERMEDIATE",
"duration": "MEDIUM",
"estimatedTime": 45,
"category": {
"id": 2,
"name": "Optimisation métier",
"color": "#ffc107",
"icon": "📈"
},
"statistics": {
"viewsCount": 890,
"completionsCount": 567,
"averageRating": 4.9,
"ratingsCount": 89
},
"isCompleted": true,
"lastViewedAt": "2025-07-20T16:45:00Z",
"createdAt": "2025-02-01T09:00:00Z"
}
]
}
}
Détail d'un tutoriel
GET /trade/tutorials/{id}
Réponse :
{
"success": true,
"message": "Détail du tutoriel",
"result": {
"id": 123,
"publicId": "tutorial-abc-123",
"title": "Comment déposer une plainte efficacement",
"description": "Guide complet pour déposer une plainte et assurer son suivi dans le système FreeTrade",
"summary": "Apprenez à utiliser le système de plaintes pour résoudre vos problèmes de transport",
"content": "## Introduction\n\nLe système de plaintes FreeTrade vous permet de signaler et suivre la résolution de problèmes...\n\n## Étapes détaillées\n\n### 1. Accéder au formulaire\n\n...",
"difficulty": "BEGINNER",
"duration": "SHORT",
"estimatedTime": 15,
"category": {
"id": 1,
"name": "Utilisation système",
"description": "Tutoriels sur l'utilisation du système FreeTrade",
"color": "#007bff",
"icon": "💻"
},
"thumbnail": {
"url": "/uploads/tutorials/complaint-tutorial-thumb.jpg",
"alt": "Tutoriel plaintes",
"width": 800,
"height": 450
},
"video": {
"url": "/uploads/tutorials/complaint-tutorial.mp4",
"duration": 900,
"size": 52428800,
"quality": "HD",
"subtitles": [
{
"language": "fr",
"url": "/uploads/tutorials/complaint-tutorial-fr.vtt"
}
]
},
"attachments": [
{
"id": 1,
"filename": "guide_plaintes.pdf",
"type": "application/pdf",
"size": 1024576,
"url": "/uploads/tutorials/guide_plaintes.pdf",
"description": "Guide PDF complémentaire"
}
],
"chapters": [
{
"id": 1,
"title": "Introduction au système de plaintes",
"startTime": 0,
"duration": 120,
"description": "Présentation générale du système"
},
{
"id": 2,
"title": "Créer une plainte",
"startTime": 120,
"duration": 300,
"description": "Étapes pour créer une nouvelle plainte"
},
{
"id": 3,
"title": "Suivre sa plainte",
"startTime": 420,
"duration": 180,
"description": "Comment suivre l'évolution de sa plainte"
}
],
"tags": [
{
"id": 1,
"name": "plaintes",
"color": "#dc3545"
},
{
"id": 2,
"name": "débutant",
"color": "#28a745"
},
{
"id": 3,
"name": "système",
"color": "#007bff"
}
],
"prerequisites": [
{
"id": 100,
"title": "Créer un compte FreeTrade",
"isCompleted": true
}
],
"relatedTutorials": [
{
"id": 125,
"title": "Gérer ses transports",
"difficulty": "BEGINNER",
"estimatedTime": 20
}
],
"author": {
"id": 456,
"firstName": "Formation",
"lastName": "OFR",
"role": "INSTRUCTOR",
"bio": "Équipe de formation officielle OFR",
"avatar": "/avatars/formation-ofr.jpg"
},
"statistics": {
"viewsCount": 1251,
"completionsCount": 890,
"averageRating": 4.7,
"ratingsCount": 156,
"averageCompletionTime": 18
},
"userProgress": {
"isCompleted": false,
"completionPercentage": 0,
"lastViewedAt": null,
"timeSpent": 0,
"currentChapter": null,
"userRating": null
},
"createdAt": "2025-01-15T10:00:00Z",
"updatedAt": "2025-07-01T14:30:00Z"
}
}
Marquer comme terminé
POST /trade/tutorials/{id}/complete
Paramètres :
{
"timeSpent": 1080,
"rating": 5,
"comment": "Très utile et bien expliqué !"
}
Réponse :
{
"success": true,
"message": "Tutoriel marqué comme terminé",
"result": {
"tutorialId": 123,
"userId": 789,
"completedAt": "2025-07-21T17:00:00Z",
"timeSpent": 1080,
"rating": 5,
"comment": "Très utile et bien expliqué !",
"certificateUrl": "/certificates/tutorial-123-user-789.pdf"
}
}
Progression d'un tutoriel
POST /trade/tutorials/{id}/progress
Paramètres :
{
"chapterId": 2,
"timeSpent": 300,
"currentPosition": 420
}
Réponse :
{
"success": true,
"message": "Progression mise à jour",
"result": {
"tutorialId": 123,
"userId": 789,
"completionPercentage": 67,
"currentChapter": {
"id": 2,
"title": "Créer une plainte"
},
"timeSpent": 300,
"lastViewedAt": "2025-07-21T16:45:00Z"
}
}
Catégories de tutoriels
GET /trade/tutorials/categories
Réponse :
{
"success": true,
"message": "Catégories de tutoriels",
"result": [
{
"id": 1,
"name": "Utilisation système",
"description": "Tutoriels sur l'utilisation du système FreeTrade",
"color": "#007bff",
"icon": "💻",
"tutorialsCount": 15,
"isActive": true
},
{
"id": 2,
"name": "Optimisation métier",
"description": "Stratégies d'optimisation des opérations",
"color": "#ffc107",
"icon": "📈",
"tutorialsCount": 12,
"isActive": true
},
{
"id": 3,
"name": "Réglementation",
"description": "Aspects légaux et réglementaires",
"color": "#dc3545",
"icon": "⚖️",
"tutorialsCount": 8,
"isActive": true
}
]
}
Recherche avancée
GET /trade/tutorials/search?q=transport&difficulty=BEGINNER,INTERMEDIATE&duration=SHORT&tags=optimisation,coûts
Paramètres de requête :
q: Terme de recherchedifficulty: Niveaux de difficulté (séparés par virgules)duration: Durées (séparés par virgules)tags: Tags (séparés par virgules)minRating: Note minimum (1-5)maxDuration: Durée maximum en minutes
Réponse :
{
"success": true,
"message": "Résultats de recherche",
"result": {
"query": "transport",
"filters": {
"difficulty": ["BEGINNER", "INTERMEDIATE"],
"duration": ["SHORT"],
"tags": ["optimisation", "coûts"]
},
"meta": {
"total": 8,
"total_pages": 1,
"current_page": 1,
"limit": 10
},
"data": [
{
"id": 124,
"title": "Optimiser ses coûts de transport",
"description": "Stratégies pour réduire les coûts",
"difficulty": "INTERMEDIATE",
"duration": "SHORT",
"estimatedTime": 25,
"averageRating": 4.9,
"relevanceScore": 0.95
}
]
}
}
📊 Niveaux de difficulté
| Niveau | Description | Public cible |
|---|---|---|
BEGINNER | Débutant | Nouveaux utilisateurs |
INTERMEDIATE | Intermédiaire | Utilisateurs expérimentés |
ADVANCED | Avancé | Experts et professionnels |
⏱️ Durées des tutoriels
| Durée | Description | Temps estimé |
|---|---|---|
SHORT | Court | 5-20 minutes |
MEDIUM | Moyen | 20-60 minutes |
LONG | Long | 60+ minutes |
🏆 Système de certification
Critères d'obtention
- Complétion : Visionner 100% du tutoriel
- Temps minimum : Respecter 80% du temps estimé
- Évaluation : Note minimum de 3/5 (optionnel)
Format du certificat
- PDF généré automatiquement
- QR Code de vérification
- Signature numérique OFR
- Date de validité (si applicable)
❌ Gestion des erreurs
Tutoriel non trouvé
{
"success": false,
"message": "Tutoriel non trouvé",
"errors": {
"code": "TUTORIAL_NOT_FOUND",
"tutorialId": 999
}
}
Prérequis non satisfaits
{
"success": false,
"message": "Prérequis non satisfaits",
"errors": {
"code": "PREREQUISITES_NOT_MET",
"missing": [
{
"id": 100,
"title": "Créer un compte FreeTrade"
}
]
}
}
Déjà terminé
{
"success": false,
"message": "Tutoriel déjà terminé",
"errors": {
"code": "ALREADY_COMPLETED",
"completedAt": "2025-07-20T16:45:00Z"
}
}
Section suivante : Modules Admin