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.