- Added DatabaseService to handle database operations for messages and support requests. - Created IDatabaseService interface to define the contract for database operations. - Developed ViewModels for Dashboard, Messages, and Support pages to manage data and commands. - Implemented XAML views for Dashboard, Messages, and Support, including data binding and UI elements. - Created SQL script for setting up the database schema and inserting test data.
3.3 KiB
3.3 KiB
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 :
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 :
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) :
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 :
- Utilisez des variables d'environnement
- Utilisez un système de gestion des secrets (Azure Key Vault, AWS Secrets Manager)
- Chiffrez la chaîne de connexion
Exemple avec variables d'environnement :
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 :
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 :
- Le dashboard doit afficher "✓ Connecté" en haut à droite
- Les statistiques doivent se charger
- 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 :
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