Skip to main content

📚 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égorie
  • difficulty : Filtrer par difficulté (BEGINNER, INTERMEDIATE, ADVANCED)
  • duration : Filtrer par durée (SHORT, MEDIUM, LONG)
  • search : Recherche textuelle dans titre/description
  • tags : 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 recherche
  • difficulty : 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é

NiveauDescriptionPublic cible
BEGINNERDébutantNouveaux utilisateurs
INTERMEDIATEIntermédiaireUtilisateurs expérimentés
ADVANCEDAvancéExperts et professionnels

⏱️ Durées des tutoriels

DuréeDescriptionTemps estimé
SHORTCourt5-20 minutes
MEDIUMMoyen20-60 minutes
LONGLong60+ 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