Skip to main content

Admin Service - Vue d'ensemble

📋 Introduction​

Le Admin Service est un microservice complet de gestion administrative utilisant NestJS, Prisma, et NATS pour la communication inter-microservices. Il gère tous les aspects administratifs du système OFR (Online Freight Routing).

🏗️ Architecture Technique​

Stack Technologique​

  • Framework : NestJS avec TypeScript
  • Base de données : Prisma ORM
  • Communication : NATS Message Patterns
  • Queue : admin-service
  • Validation : class-validator
  • Sécurité : bcrypt pour les mots de passe

Architecture Modulaire​

Le service est organisé en 7 modules principaux avec 3 sous-modules Actors pour une meilleure maintenabilité :

ModuleDescriptionPatterns NATS
👥 Actors ManagementGestion des acteurs du système
├── 🔧 AdminsGestion des profils administrateursadmins.*
├── 🚛 AgentsGestion des agents (FOCAL_POINT, AGENT)agents.*
├── 👤 CustomersGestion des clientscustomers.*
📢 AnnouncementsGestion des annonces systèmeannouncements.*
💬 Forum ModerationModération du forumforum.*
📋 Complaints ManagementGestion des plaintescomplaints.*
🚛 Transports ManagementGestion des transportstransports.*
👤 Users & SessionsGestion utilisateurs et sessionsusers.*, sessions.*
⚙️ ConfigurationsConfiguration systèmelocations.*, vehicle-types.*, etc.

📊 Statistiques du Service​

Couverture Fonctionnelle​

  • 7 modules principaux avec responsabilités claires
  • 3 sous-modules Actors (Admins, Agents, Customers)
  • 6 sous-modules de configuration spécialisés
  • 80+ patterns NATS documentés
  • Architecture microservice complète

Fonctionnalités Clés​

  • ✅ Gestion complète des acteurs (Admin, Agents, Customers)
  • ✅ Modération avancée du forum
  • ✅ Système d'annonces avec upload d'images
  • ✅ Gestion des plaintes avec workflow
  • ✅ Suivi des transports et véhicules
  • ✅ Monitoring des utilisateurs et sessions
  • ✅ Configuration système centralisée

🛡️ Sécurité et Permissions​

Types d'Accès Administrateur​

enum AdminRole {
SUPER_ADMIN = 'SUPER_ADMIN', // Accès complet au système
ADMIN = 'ADMIN', // Accès administrateur standard
SUPPORT = 'SUPPORT' // Accès support client
}

Système de Permissions​

{
"users": ["create", "read", "update", "delete"],
"roles": ["create", "read", "update", "delete"],
"settings": ["create", "read", "update", "delete"],
"reports": ["read", "export"],
"analytics": ["read"]
}

🚀 Format de Réponse Standardisé​

Toutes les réponses suivent le format JSON standardisé :

Réponse de Succès​

{
"success": true,
"message": "Opération réussie",
"result": {
// Données de la réponse
}
}

Réponse d'Erreur​

{
"success": false,
"message": "Message d'erreur en français",
"result": null,
"errors": "Détails de l'erreur"
}

📈 Pagination et Performance​

Pagination Obligatoire​

Toutes les listes utilisent la pagination pour optimiser les performances :

{
"page": 1,
"limit": 10,
"search": "terme de recherche",
"sortBy": "createdAt",
"sortOrder": "desc"
}

Optimisations​

  • Indexes appropriés sur les champs de recherche
  • Requêtes préparées pour la sécurité
  • Lazy loading pour les relations
  • Cache intelligent (architecture prête pour Redis)

🔗 Communication NATS​

Queue Principale​

  • Queue : admin-service
  • Patterns structurés par module
  • Gestion d'erreurs robuste
  • Documentation complète de tous les endpoints

Exemples de Patterns​

// Gestion des administrateurs
'admin.create'
'admin.list'
'admin.details'
'admin.update'
'admin.delete'

// Gestion des annonces
'announcements.all'
'announcements.create'
'announcements.update'
'announcements.publish'
'announcements.bulk-action'

// Statistiques
'admin.stats'
'announcements.stats'
'forum.stats'
'complaints.stats'

📚 Modules Disponibles​

Explorez chaque module pour une documentation détaillée :

🔧 Modules Principaux​

👥 Actors Management - Gestion des Acteurs​

📋 Modules Fonctionnels​

📊 Fonctionnalités Avancées​

  • Upload d'images intégré avec validation
  • Opérations en lot pour l'efficacité
  • Recherche intelligente multi-critères
  • Statistiques complètes avec analytics
  • Audit trail complet des actions
  • Notifications automatiques

🎯 Prochaines Étapes​

  1. Explorez les modules selon vos besoins
  2. Consultez les exemples de code fournis
  3. Testez les patterns NATS dans votre environnement
  4. Implémentez les fonctionnalités requises

💡 Le Admin Service constitue une base solide et évolutive pour tous les besoins administratifs du système OFR, avec une architecture moderne et des fonctionnalités complètes pour une gestion efficace et sécurisée.