"# 🇫🇷 Projet EIR Francisé - Système de Gestion des IMEI
Version francisée complète avec API entièrement traduite en français, système de permissi### 📧 Notifications et Audit -### 📧 Notifications et Communicat### 🌍 Système et Validation
GET /verification-etat- État de santé complet du système avec métriquesGET /languages- Langues supportées avec détails culturelsGET /protocols/status- Statut des protocoles d'intégration (SS7, Diameter)GET /public/statistiques- Statistiques publiques avec limitationsGET /debug-env- Variables d'environnement (admin seulement)POST /test-send-email- Test envoi email completGET /test-email-config- Test configuration emailGET /notifications- Liste des notifications avec filtres avancésGET /notifications/statistiques/globales- Statistiques complètes des notificationsPOST /admin/notifications/envoyer-a-utilisateur- Envoi administrateur par email/utilisateurPOST /admin/notifications/envoyer-lot-utilisateurs- Envoi en lot par IDs utilisateurPOST /admin/notifications/envoyer-lot-emails- Envoi en lot par emailsGET /admin/notifications/liste-utilisateurs- Liste utilisateurs pour notifications adminPOST /admin/notifications/test-email- Test configuration email avec diagnosticPOST /admin/notifications/test-sms- Test configuration SMS avec diagnostic
GET /admin/gestion-acces/niveaux-acces- Niveaux d'accès disponibles avec descriptionsGET /admin/gestion-acces/utilisateurs- Liste utilisateurs avec permissions détailléesGET /admin/gestion-acces/utilisateurs/{id}/permissions- Permissions granulaires utilisateurPUT /admin/gestion-acces/utilisateurs/{id}/permissions- Mise à jour permissions avec auditPOST /admin/gestion-acces/utilisateurs/{id}/regles-acces- Ajouter règle d'accèsDELETE /admin/gestion-acces/utilisateurs/{id}/regles-acces/{index}- Supprimer règleGET /admin/gestion-acces/audit/changements-permissions- Audit changements permissionsPOST /admin/gestion-acces/mise-a-jour-lot-permissions- Mise à jour permissions en lotGET /admin/gestion-acces/modeles- Modèles de permissions prédéfinis
GET /admin/journaux-audit- Consultation détaillée des journaux d'auditGET /admin/notifications/scheduler/status- Statut du planificateur avec tâchesPOST /admin/notifications/scheduler/trigger/{job_id}- Déclencher tâche manuelleGET /admin/utilisateurs- Gestion administrative des utilisateursPOST /admin/utilisateurs/{user_id}/desactiver- Désactiver utilisateurPOST /admin/utilisateurs/{user_id}/activer- Réactiver utilisateur/notifications` - Liste des notifications avec filtresGET /notifications/statistiques/globales- Statistiques des notificationsPOST /admin/notifications/envoyer-a-utilisateur- Envoi administrateur par emailPOST /admin/notifications/envoyer-lot-utilisateurs- Envoi en lot par IDsPOST /admin/notifications/envoyer-lot-emails- Envoi en lot par emailsGET /admin/liste-utilisateurs- Liste pour notifications adminPOST /admin/test-email- Test configuration emailPOST /admin/test-sms- Test configuration SMSGET /admin/journaux-audit- Consultation des journaux d'auditGET /admin/notifications/scheduler/status- Statut du planificateurPOST /admin/notifications/scheduler/trigger/{job_id}- Déclencher tâche manuelle
GET /admin/gestion-acces/niveaux-acces- Niveaux d'accès disponiblesGET /admin/gestion-acces/utilisateurs- Liste avec permissionsGET /admin/gestion-acces/utilisateurs/{id}/permissions- Permissions détailléesPUT /admin/gestion-acces/utilisateurs/{id}/permissions- Mise à jour permissionsPOST /admin/gestion-acces/utilisateurs/{id}/regles-acces- Ajouter règle d'accèsDELETE /admin/gestion-acces/utilisateurs/{id}/regles-acces/{index}- Supprimer règleGET /admin/gestion-acces/audit/changements-permissions- Audit permissionsPOST /admin/gestion-acces/mise-a-jour-lot-permissions- Mise à jour en lotGET /admin/gestion-acces/modeles- Modèles de permissions prédéfinisanulaires en français, et interface de gestion intuitive.
- ✅ API 100% francisée : Tous les endpoints, messages et erreurs en français
- ✅ Système de permissions granulaires avec valeurs françaises cohérentes en base de données
- ✅ Support multilingue : Français (par défaut), Anglais, Arabe avec traduction dynamique
- ✅ Interface de gestion intuitive avec scripts automatisés et menu interactif
- ✅ Architecture Docker pour un déploiement simplifié sur tous les environnements
- ✅ Documentation interactive Swagger entièrement francisée
- ✅ Base de données PostgreSQL universelle compatible avec tous les clouds
- ✅ Système d'audit complet pour traçabilité et conformité réglementaire
- ✅ Validation IMEI avancée avec base de données TAC intégrée et algorithme Luhn
- ✅ Système de notifications email/SMS automatisé avec planificateur
- ✅ Gestion multi-protocoles (REST, SS7, Diameter) pour intégration réseau
- ✅ Import/Export en lot avec mapping de colonnes flexible
- ✅ Robustesse production avec gestion d'erreurs gracieuse
- ✅ Déploiement universel compatible avec Render, Heroku, AWS, Google Cloud, Azure
# Clone du projet
git clone https://github.com/Mohamedsalem00/eir-project.git
cd eir-project
# Démarrage automatique
./quick-start.sh./scripts/manage-eir.sh# Construction et démarrage
docker compose up --build -d
# Vérification du statut
docker compose ps🎉 L'application sera accessible sur :
- Interface API : http://localhost:8000
- Documentation : http://localhost:8000/docs
- Santé système : http://localhost:8000/verification-etat
- Interface de test : http://localhost:8000
Le script manage-eir.sh offre un menu interactif avec :
- Reconstruction complète : Build et déploiement depuis zéro
- Redémarrage intelligent : Redémarrage rapide avec conservation des données
- Gestion par service : Web ou base de données individuellement
- Reconstruction complète : Nouveau schéma avec données de test
- Réinitialisation rapide : Conservation du schéma, nouvelles données
- Sauvegarde/Restauration : Protection et récupération des données
- Statut des services : Vue d'ensemble de l'état du système
- Tests API francisée : Validation des endpoints français
- Consultation des logs : Debugging facilité
- Nettoyage Docker : Libération d'espace disque
- Gestion des sauvegardes : Archivage et restauration
eir-project/
├── 🚀 quick-start.sh # Démarrage automatique
├── 🔧 scripts/ # Suite complète de gestion
│ ├── manage-eir.sh # Script principal interactif
│ ├── rebuild-containers.sh # Reconstruction des conteneurs
│ ├── restart-containers.sh # Redémarrage des services
│ ├── rebuild-database.sh # Reconstruction de la DB
│ └── reset-database.sh # Réinitialisation des données
├── 📦 backend/ # API FastAPI francisée
│ ├── app/
│ │ ├── main.py # Point d'entrée principal
│ │ ├── api/ # Endpoints API francisés
│ │ ├── models/ # Modèles SQLAlchemy
│ │ ├── schemas/ # Schémas Pydantic
│ │ ├── core/ # Configuration et authentification
│ │ ├── i18n/ # Système de traduction
│ │ └── services/ # Logique métier
│ ├── Dockerfile
│ └── requirements.txt
├── 🐳 docker compose.yml # Configuration multi-services
├── 📚 docs/ # Documentation technique
└── 📖 README.md # Ce fichier
- Documentation interactive :
http://localhost:8000/docs - Santé du système :
http://localhost:8000/verification-etat - Langues supportées :
http://localhost:8000/languages - Page d'accueil :
http://localhost:8000/
GET /imei/{imei}- Recherche d'un IMEI spécifique avec contrôle d'accès granulaireGET /imei/{imei}/validate- Validation IMEI avec algorithme Luhn et base TACGET /imei/{imei}/details- Détails complets d'un IMEI avec statut globalPOST /verify_imei- Vérification IMEI multi-protocoles (REST, SS7, Diameter)POST /imei/recherche-avancee- Recherche avec filtres et journalisationPOST /imei/enregistrer- Enregistrement d'un nouvel appareil
GET /tac/{tac}- Recherche d'informations TAC dans la baseGET /admin/tac/stats- Statistiques avancées de la base TAC avec répartitionsPOST /admin/tac/sync- Synchronisation avec sources externes OsmocomPOST /admin/tac/import- Import TAC depuis fichier CSV/JSON avec mappingGET /admin/tac/sync/logs- Historique détaillé des synchronisations
POST /utilisateurs/creer- Création d'utilisateurGET /utilisateurs/profil- Profil utilisateur connectéPUT /utilisateurs/modifier- Modification du profilGET /mes-permissions- Permissions et niveaux d'accès détaillés de l'utilisateurGET /utilisateurs/{user_id}- Consultation d'un utilisateurGET /utilisateurs/{user_id}/recherches- Historique des recherches utilisateur
GET /appareils- Liste des appareils avec contrôle d'accès granulaire et filtragePOST /appareils- Enregistrement d'un nouvel appareil avec auditPUT /appareils/{device_id}/assigner- Assignation d'appareil à un utilisateurDELETE /admin/appareils/{device_id}- Suppression d'appareil avec auditPOST /admin/import-lot-appareils- Import en lot d'appareils avec validationPOST /admin/import-file- Import depuis fichier CSV/JSON avec mapping colonnesGET /admin/import-template- Télécharger template d'importPOST /admin/preview-import- Prévisualiser import avec recommandationsPOST /appareils/{appareil_id}/imeis- Ajouter IMEI à un appareilPUT /imeis/{imei_id}/status- Mettre à jour statut IMEI
POST /authentification/inscription- Inscription nouvel utilisateur avec notification bienvenuePOST /authentification/connexion- Connexion avec JWT et auditPOST /authentification/deconnexion- Déconnexion sécuriséeGET /authentification/profile- Profil utilisateur détaillé avec statistiquesGET /authentification/profile/simple- Profil utilisateur simplePOST /authentification/mot-de-passe-oublie- Demande reset mot de passePOST /authentification/verifier-code-reset- Vérification code resetPOST /authentification/nouveau-mot-de-passe- Changement mot de passe sécurisé
GET /notifications- Liste des notificationsPOST /admin/notifications/send- Envoi de notifications administrateurGET /admin/journaux-audit- Consultation des journaux d'auditGET /admin/notifications/scheduler/status- Statut du planificateurPOST /admin/notifications/scheduler/trigger/{job_id}- Déclencher une tâche
GET /verification-etat- État de santé du systèmeGET /imei/{imei}/validate- Validation IMEI avec base TACGET /tac/{tac}- Recherche d'informations TACGET /mes-permissions- Permissions de l'utilisateur connectéGET /protocols/status- Statut des protocoles d'intégrationGET /languages- Langues supportées par le système
erDiagram
Utilisateur ||--o{ Appareil : "possède"
Utilisateur ||--o{ SIM : "possède"
Utilisateur ||--o{ IMEI : "recherche"
Utilisateur ||--o{ Recherche : "effectue"
Utilisateur ||--o{ Notification : "reçoit"
Utilisateur ||--o{ JournalAudit : "génère"
Utilisateur ||--o{ PasswordReset : "demande"
Utilisateur ||--o{ ImportExport : "réalise"
Utilisateur ||--o{ EmailVerification : "valide"
Appareil ||--o{ IMEI : "contient"
IMEI }o--|| TAC_Database : "valide_avec"
TAC_Database ||--o{ TAC_Sync_Log : "synchronise"
Utilisateur {
UUID id
string nom
string email
text mot_de_passe
string type_utilisateur
boolean email_valide
string numero_telephone
string niveau_acces
string portee_donnees
string organisation
boolean est_actif
jsonb marques_autorisees
jsonb plages_imei_autorisees
timestamp date_creation
}
EmailVerification {
UUID id
UUID utilisateur_id
string token
timestamp date_creation
timestamp date_expiration
boolean used
}
Appareil {
UUID id
string marque
string modele
string emmc
string numero_serie
UUID utilisateur_id
}
IMEI {
UUID id
string numero_imei
integer numero_slot
string statut
UUID appareil_id
}
SIM {
UUID id
string iccid
string operateur
UUID utilisateur_id
}
Recherche {
UUID id
timestamp date_recherche
string imei_recherche
UUID utilisateur_id
}
Notification {
UUID id
string type
string destinataire
string sujet
text contenu
string source
string statut
integer tentative
text erreur
timestamp date_creation
timestamp date_envoi
UUID utilisateur_id
}
JournalAudit {
UUID id
text action
timestamp date
UUID utilisateur_id
}
ImportExport {
UUID id
string type_operation
text fichier
timestamp date
UUID utilisateur_id
}
PasswordReset {
UUID id
UUID utilisateur_id
string token
string methode_verification
string code_verification
string email
string telephone
boolean utilise
timestamp date_creation
timestamp date_expiration
timestamp date_utilisation
string adresse_ip
}
TAC_Database {
string tac
string marque
string modele
integer annee_sortie
string type_appareil
string statut
string raison
timestamp date_creation
timestamp date_modification
}
TAC_Sync_Log {
UUID id
string source_name
string source_url
string sync_type
string format_type
string status
integer records_imported
integer records_updated
integer records_errors
integer sync_duration_ms
text error_message
timestamp sync_date
integer file_size_bytes
string checksum
}
valider_imei_avec_tac(VARCHAR): Validation complète IMEI avec base TAC et algorithme Luhnvalider_luhn(VARCHAR): Validation algorithme Luhn pour vérification intégrité IMEIextraire_tac_depuis_imei(VARCHAR): Extraction code TAC depuis numéro IMEIvalider_lot_imeis_avec_tac(TEXT[]): Validation en lot jusqu'à 100 IMEIs simultanément
sync_osmocom_csv(): Synchronisation automatique depuis API CSV Osmocomsync_osmocom_json(): Synchronisation depuis API JSON Osmocomimporter_tac_avec_mapping(TEXT, VARCHAR): Import flexible avec mapping de colonnesimporter_tac_depuis_json(JSONB, VARCHAR): Import depuis données JSON structurées
obtenir_stats_tac_temps_reel(): Statistiques TAC en temps réel avec répartitionsobtenir_stats_sync_tac(): Métriques de synchronisation des 30 derniers joursnettoyer_logs_sync_tac(INTEGER): Nettoyage automatique logs anciens
vue_analyse_tac: Analyse de couverture TAC par marques et annéesvue_sync_tac_recent: Monitoring synchronisations récentes avec statutsvue_monitoring_sync_tac: Surveillance avancée avec niveaux d'urgence
- Utilisateurs administrateurs avec permissions complètes (
eirrproject@gmail.com) - Utilisateurs standards avec accès personnel (
sidis9828@gmail.com) - Utilisateurs opérateurs avec accès organisationnel (Orange:
devvmrr@gmail.com, Inwi:inwi@eir.ma) - Appareils d'exemple avec IMEIs valides et multiples slots (Samsung, Apple, Huawei, OnePlus)
- Base de données TAC avec codes de validation (Samsung: 35326005, Apple: 35692005, etc.)
- Cartes SIM de test de différents opérateurs (Orange, Inwi)
- Notifications système prêtes à l'envoi avec contenu français
- Historique d'audit complet pour démonstration
- Données de synchronisation TAC pour tests d'intégration avec logs détaillés
- Tokens de reset pour tests de sécurité avec méthodes email/SMS
- Journaux d'import/export pour tests en lot avec mapping de colonnes
- Fonctions PostgreSQL avancées : validation IMEI avec algorithme Luhn, synchronisation TAC automatisée
- Vues et statistiques : monitoring des synchronisations, analyses TAC temps réel, nettoyage automatique des logs
# Administrateur système
Email: eirrproject@gmail.com
Mot de passe: admin123
Permissions: Accès complet (niveau: admin, portée: tout)
# Utilisateur standard
Email: sidis9828@gmail.com
Mot de passe: admin123
Permissions: Accès personnel (niveau: standard, portée: personnel)
# Opérateur Orange
Email: devvmrr@gmail.com
Mot de passe: admin123
Permissions: Accès organisationnel Orange (niveau: standard, portée: organisation)
# Opérateur Inwi
Email: inwi@eir.ma
Mot de passe: admin123
Permissions: Accès organisationnel Inwi (niveau: standard, portée: organisation)# Base de données PostgreSQL
POSTGRES_DB=eir_project
POSTGRES_USER=postgres
POSTGRES_PASSWORD=motdepasse_securise
DATABASE_URL=postgresql://postgres:motdepasse_securise@localhost:5432/eir_project
# API et sécurité JWT
API_SECRET_KEY=cle_secrete_jwt_super_longue_et_securisee
API_ALGORITHM=HS256
API_ACCESS_TOKEN_EXPIRE_MINUTES=30
BCRYPT_ROUNDS=12
# Support multilingue
DEFAULT_LANGUAGE=fr
SUPPORTED_LANGUAGES=fr,en,ar
TIMEZONE=UTC
# Notifications Email (Gmail/Outlook/SMTP)
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
SMTP_USERNAME=votre_email@gmail.com
SMTP_PASSWORD=votre_mot_de_passe_app_gmail
SMTP_FROM_EMAIL=noreply@eir-project.com
SMTP_FROM_NAME=EIR Project
SMTP_USE_TLS=true
# Notifications SMS (Twilio/Africa's Talking)
SMS_PROVIDER=twilio
TWILIO_ACCOUNT_SID=votre_account_sid
TWILIO_AUTH_TOKEN=votre_auth_token
TWILIO_PHONE_NUMBER=+1234567890
# Intégration TAC et validation IMEI
TAC_SYNC_ENABLED=true
TAC_SOURCE_URL=https://raw.githubusercontent.com/musalbas/mcc-mnc-table/master/imei_tac.csv
TAC_AUTO_SYNC_INTERVAL=24 # heures
TAC_CACHE_TTL=3600 # secondes
IMEI_VALIDATION_STRICT=true
LUHN_ALGORITHM_ENABLED=true
# Intégration multi-protocoles
ENABLE_SS7_PROTOCOL=false
ENABLE_DIAMETER_PROTOCOL=false
SS7_GATEWAY_URL=http://ss7-gateway:8080
DIAMETER_GATEWAY_URL=http://diameter-gateway:8080
# Déploiement Cloud (Render/Heroku/AWS/GCP/Azure)
PORT=8000
HOST=0.0.0.0
ENVIRONMENT=production
DEBUG=false
CORS_ORIGINS=["http://localhost:3000", "https://your-domain.com"]
RENDER_EXTERNAL_URL=https://your-app.onrender.com
HEROKU_APP_NAME=your-heroku-app
# Monitoring et logging
LOG_LEVEL=INFO
LOG_FORMAT=json
SENTRY_DSN=https://your-sentry-dsn@sentry.io/project
ENABLE_METRICS=true
METRICS_PORT=9090
# Cache et performance
REDIS_URL=redis://localhost:6379/0
CACHE_TTL=300
RATE_LIMIT_REQUESTS=100
RATE_LIMIT_WINDOW=60Tous les scripts peuvent être personnalisés via des options :
# Reconstruction avec données personnalisées
./scripts/rebuild-database.sh --custom-data
# Redémarrage en mode verbose
./scripts/restart-containers.sh --verbose
# Sauvegarde avec compression
./scripts/manage-eir.sh # Option 10 dans le menusudo systemctl start docker
# Ou démarrer Docker Desktopsudo netstat -tulpn | grep :8000
sudo kill -9 <PID_DU_PROCESSUS>./scripts/rebuild-database.sh./scripts/rebuild-containers.sh# Vérifier les permissions et valeurs françaises
curl -H "Authorization: Bearer YOUR_TOKEN" \
http://localhost:8000/mes-permissions
# Tester l'endpoint avec utilisateur admin
curl -H "Authorization: Bearer ADMIN_TOKEN" \
http://localhost:8000/appareils
# Reconstruire si nécessaire
./scripts/rebuild-database.sh# Vérifier la configuration email
curl http://localhost:8000/test-email-config
# Tester l'envoi d'email admin
curl -X POST "http://localhost:8000/admin/test-email?email_test=test@example.com" \
-H "Authorization: Bearer ADMIN_TOKEN"
# Voir les logs du planificateur
curl http://localhost:8000/admin/notifications/scheduler/status \
-H "Authorization: Bearer ADMIN_TOKEN"
# Vérifier les statistiques des notifications
curl http://localhost:8000/notifications/statistiques/globales \
-H "Authorization: Bearer YOUR_TOKEN"# Vérifier les niveaux d'accès disponibles
curl http://localhost:8000/admin/gestion-acces/niveaux-acces \
-H "Authorization: Bearer ADMIN_TOKEN"
# Lister les utilisateurs avec permissions
curl http://localhost:8000/admin/gestion-acces/utilisateurs \
-H "Authorization: Bearer ADMIN_TOKEN"
# Audit des changements de permissions
curl http://localhost:8000/admin/gestion-acces/audit/changements-permissions \
-H "Authorization: Bearer ADMIN_TOKEN"# Tester la validation IMEI
curl http://localhost:8000/imei/353260051234567/validate
# Vérifier les statistiques TAC
curl http://localhost:8000/admin/tac/stats \
-H "Authorization: Bearer ADMIN_TOKEN"
# Synchroniser la base TAC
curl -X POST http://localhost:8000/admin/tac/sync \
-H "Authorization: Bearer ADMIN_TOKEN"# Via le menu principal
./scripts/manage-eir.sh # Option 8
# Ou directement
docker compose logs -f- Authentification JWT avec expiration automatique et refresh tokens
- Hashage bcrypt des mots de passe avec salt rounds configurables
- Permissions granulaires par utilisateur avec portée de données française
- Validation stricte des données d'entrée avec Pydantic
- Protection CORS configurée pour domaines autorisés
- Contrôle d'accès par marques pour les parties concernées (opérateurs)
- Gestion des plages IMEI autorisées par organisation
- Journalisation complète des actions utilisateur pour audit
- Reset mot de passe sécurisé avec codes de vérification temporaires
- Protection contre bruteforce avec limitation de tentatives
- Validation des tokens avec blacklist pour déconnexions forcées
- Support multilingue automatique
- Détection de langue via headers HTTP
- Messages d'erreur traduits dans toutes les langues
- Format de dates localisé
- Pool de connexions à la base de données avec gestion automatique
- Cache des traductions en mémoire pour responses multilingues rapides
- Validation asynchrone des requêtes avec FastAPI
- Compression gzip automatique des réponses API
- Indexation optimisée des recherches IMEI avec GIN/BTREE
- Gestion d'erreurs robuste avec fallback gracieux et retry logic
- Validation TAC intégrée avec cache local et synchronisation automatique
- Pagination intelligente pour les listes d'appareils et notifications
- Optimisation des requêtes SQL avec jointures efficaces
- Monitoring des performances avec métriques Prometheus/Grafana
- Rate limiting configurable par endpoint et utilisateur
- Traçabilité complète des actions utilisateur avec timestamps UTC
- Logs structurés en JSON pour parsing automatique
- Rotation automatique des fichiers de log avec archivage
- Alertes temps réel pour les erreurs critiques et tentatives d'intrusion
- Synchronisation TAC avec journalisation détaillée des sources
- Notifications système avec suivi des tentatives et statuts d'envoi
- Historique des permissions et changements d'accès granulaires
- Audit des imports/exports avec détails des mappings de colonnes
- Suivi des connexions avec géolocalisation IP et détection d'anomalies
- Métriques de performance avec dashboards temps réel
- Archivage automatique des logs avec compression et rétention configurable
- 📁 Scripts de Gestion - Guide détaillé des scripts d'automatisation
- 🔐 Guide d'Accès Granulaire - Configuration des permissions françaises
- 📋 Cahier des Charges - Spécifications techniques complètes
- 🏗️ Diagrammes UML - Architecture système et flux de données
- 📧 Guide Notifications - Configuration email/SMS détaillée
- 🔧 Guide Admin - Endpoints administrateur avancés
- 🚀 Guide Déploiement - Déploiement production multi-cloud
- 📊 Guide Import - Import de données en lot avec mapping
- 🌐 API Multi-Protocoles - Intégration SS7/Diameter
- 🏥 Guide de Reprise - Procédures de récupération
- 📈 Monitoring - Surveillance et métriques système
- Consulter les logs :
./scripts/manage-eir.sh(option 8) oudocker compose logs -f - Vérifier le statut :
./scripts/manage-eir.sh(option 6) oucurl http://localhost:8000/verification-etat - Reproduire l'erreur en mode verbose avec logs détaillés
- Créer une issue GitHub avec logs, environnement et étapes de reproduction
- Tester les endpoints de diagnostic disponibles
- Issues GitHub : https://github.com/Mohamedsalem00/eir-project/issues
- Documentation : Consultez les fichiers dans
/docs/pour la documentation technique - Scripts : Guide détaillé dans
/scripts/README.mdpour l'automatisation - Architecture : Diagrammes UML dans
/docs/uml/pour comprendre le système - API Interactive : http://localhost:8000/docs pour tester les endpoints
- Support Email : contact@eir-project.com (pour les déploiements professionnels)
🎯 Objectif : Fournir un système EIR complet, francisé et prêt pour la production avec une interface de gestion intuitive, un système de permissions granulaires en français, et une robustesse éprouvée.
✨ Innovation : Premier système EIR entièrement francisé avec scripts de gestion automatisés, interface multilingue, validation TAC intégrée, système de notifications automatisé, et cohérence linguistique française complète.
🔧 Dernières Améliorations (Août 2025) :
- ✅ Schéma PostgreSQL universel : Compatible avec tous les clouds (Render, Heroku, AWS, GCP, Azure)
- ✅ Fonctions PostgreSQL avancées : 15+ fonctions pour validation IMEI, synchronisation TAC, statistiques temps réel
- ✅ Base de données TAC intégrée : Validation automatique avec algorithme Luhn et synchronisation Osmocom
- ✅ Système de permissions français : Cohérence linguistique complète avec valeurs françaises en base
- ✅ Endpoints administratifs avancés : Gestion granulaire permissions, notifications en lot, audit détaillé
- ✅ System de reset mot de passe : Sécurisé avec codes de vérification email/SMS et tokens temporaires
- ✅ Notifications enrichies : Templates français, planificateur automatisé, statistiques complètes
- ✅ Import/Export robuste : Mapping colonnes flexible, prévisualisation, recommandations automatiques
- ✅ Monitoring avancé : Vues PostgreSQL optimisées, métriques temps réel, alertes intégrées
- ✅ Documentation complète : 60+ endpoints documentés, guides techniques, exemples pratiques
📊 Statistiques du Projet :
- Endpoints API : 60+ endpoints francisés avec documentation Swagger complète
- Modèles de données : 12+ tables avec relations et contraintes optimisées PostgreSQL
- Système de permissions : 6 niveaux d'accès avec 5 portées de données en français
- Support multilingue : Français, Anglais, Arabe avec traduction dynamique temps réel
- Tests intégrés : Données de test complètes avec 4 comptes utilisateur et scénarios avancés
- Scripts d'automatisation : 15+ scripts pour gestion complète du système et déploiement
- Documentation : 12+ guides techniques et utilisateur en français avec exemples pratiques
- Fonctions PostgreSQL : 15+ fonctions avancées pour validation IMEI, synchronisation TAC, statistiques
- Intégrations externes : APIs Osmocom TAC, services email/SMS, protocoles SS7/Diameter
- Système d'audit : Journalisation complète avec 10+ types d'événements tracés
🏆 Conformité et Standards :
- RGPD : Gestion des données personnelles et audit trail complet
- Sécurité : Authentification JWT, hashage bcrypt, permissions granulaires
- Internationali[ation : Support I18N complet avec locale française par défaut
- API REST : Conformité OpenAPI 3.0 avec documentation interactive
- Base de données : PostgreSQL avec contraintes d'intégrité et indexation optimisée
- Docker : Containerisation complète pour déploiement multi-environnement
La documentation du projet a été réorganisée pour une meilleure navigation :
- 📁 Guide de Documentation - Index complet de la documentation
- 🧪 Guide des Tests - Tests et validation du système
- 🔧 Scripts de Gestion - Scripts d'administration
📁 documentation/ # Documentation technique et utilisateur
├── user-guides/ # Guides d'utilisation
├── technical/ # Documentation technique
├── deployment/ # Guides de déploiement
└── api/ # Documentation API
📁 testing/ # Tests organisés par type
├── unit/ # Tests unitaires
├── integration/ # Tests d'intégration
└── api/ # Tests API spécialisés