# Configuration de l'Application TravelMate Admin ## Configuration de Base de Données Pour configurer la connexion à votre base de données, modifiez le fichier : `TravelMateAdmin/Configuration/AppSettings.cs` ### Exemple pour une connexion locale : ```csharp public const string Server = "localhost"; public const string Port = "3306"; public const string Database = "travelmateadmin"; public const string User = "root"; public const string Password = "monmotdepasse"; ``` ### Exemple pour une connexion distante : ```csharp public const string Server = "192.168.1.100"; // IP du serveur public const string Port = "3306"; public const string Database = "travelmateadmin"; public const string User = "admin"; public const string Password = "motdepassesecurise"; ``` ### Exemple avec un serveur cloud (ex: AWS RDS, Azure Database) : ```csharp public const string Server = "myserver.mysql.database.azure.com"; public const string Port = "3306"; public const string Database = "travelmateadmin"; public const string User = "myadmin@myserver"; public const string Password = "P@ssw0rd!"; ``` ## Sécurité ⚠️ **Important** : Ne commitez JAMAIS vos mots de passe dans Git ! Pour une meilleure sécurité en production : 1. Utilisez des variables d'environnement 2. Utilisez un système de gestion des secrets (Azure Key Vault, AWS Secrets Manager) 3. Chiffrez la chaîne de connexion ### Exemple avec variables d'environnement : ```csharp public static string GetConnectionString() { var server = Environment.GetEnvironmentVariable("DB_SERVER") ?? Server; var port = Environment.GetEnvironmentVariable("DB_PORT") ?? Port; var database = Environment.GetEnvironmentVariable("DB_NAME") ?? Database; var user = Environment.GetEnvironmentVariable("DB_USER") ?? User; var password = Environment.GetEnvironmentVariable("DB_PASSWORD") ?? Password; return $"Server={server};Port={port};Database={database};User={user};Password={password};"; } ``` ## Paramètres Supplémentaires MySQL Vous pouvez ajouter des paramètres supplémentaires à la chaîne de connexion : ```csharp public static string GetConnectionString() { return $"Server={Server};Port={Port};Database={Database};User={User};Password={Password};" + "SslMode=Required;" + // Pour SSL/TLS "AllowPublicKeyRetrieval=True;" + // Pour l'authentification "ConnectionTimeout=30;" + // Timeout en secondes "DefaultCommandTimeout=30;"; // Timeout des commandes } ``` ## Test de Connexion Pour tester votre connexion, lancez l'application et vérifiez : 1. Le dashboard doit afficher "✓ Connecté" en haut à droite 2. Les statistiques doivent se charger 3. Si "✗ Déconnecté", vérifiez vos paramètres et les logs de débogage ## Dépannage Connexion ### Erreur "Access denied" - Vérifiez le nom d'utilisateur et le mot de passe - Vérifiez que l'utilisateur a les droits sur la base de données : ```sql GRANT ALL PRIVILEGES ON travelmateadmin.* TO 'user'@'localhost'; FLUSH PRIVILEGES; ``` ### Erreur "Cannot connect to server" - Vérifiez que MySQL est démarré - Vérifiez le serveur et le port - Vérifiez les règles de firewall ### Erreur "Unknown database" - Vérifiez que la base de données existe - Exécutez le script `database_setup.sql`