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é :
| Module | Description | Patterns NATS |
|---|---|---|
| 👥 Actors Management | Gestion des acteurs du système | |
| ├── 🔧 Admins | Gestion des profils administrateurs | admins.* |
| ├── 🚛 Agents | Gestion des agents (FOCAL_POINT, AGENT) | agents.* |
| ├── 👤 Customers | Gestion des clients | customers.* |
| 📢 Announcements | Gestion des annonces système | announcements.* |
| 💬 Forum Moderation | Modération du forum | forum.* |
| 📋 Complaints Management | Gestion des plaintes | complaints.* |
| 🚛 Transports Management | Gestion des transports | transports.* |
| 👤 Users & Sessions | Gestion utilisateurs et sessions | users.*, sessions.* |
| ⚙️ Configurations | Configuration système | locations.*, 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
- 🔧 Admin Management - Gestion des administrateurs
- 🚛 Agents Management - Gestion des agents de transport
- 👤 Customers Management - Gestion des clients
📋 Modules Fonctionnels
- 📢 Announcements - Système d'annonces
- 💬 Forum Moderation - Modération du forum
- 📋 Complaints Management - Gestion des plaintes
- 🚛 Transports Management - Gestion des transports
- 👤 Users & Sessions - Utilisateurs et sessions
- ⚙️ Configurations - Configuration système
📊 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
- Explorez les modules selon vos besoins
- Consultez les exemples de code fournis
- Testez les patterns NATS dans votre environnement
- 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.