- 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.
103 lines
3.3 KiB
Markdown
103 lines
3.3 KiB
Markdown
# 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`
|